>
A landmark factory specification is either a newly created instance or a landmark factory that has been defined previously. This page describes how one can specify a new landmark factory instance. For re-using landmark factories, see [[OptionSyntax#Landmark_Predefinitions|Landmark Predefinitions]].
This feature type can be bound to variables using {{{let(variable_name, variable_definition, expression)}}} where {{{expression}}} can use {{{variable_name}}}. Predefinitions using {{{--evaluator}}}, {{{--heuristic}}}, and {{{--landmarks}}} are automatically transformed into {{{let}}}-expressions but are deprecated.
== Exhaustive Landmarks ==
Exhaustively checks for each fact if it is a landmark.This check is done using relaxed planning.
{{{
lm_exhaust(verbosity=normal, only_causal_landmarks=false)
}}}
* ''verbosity'' ({silent, normal, verbose, debug}): Option to specify the verbosity level.
* {{{silent}}}: only the most basic output
* {{{normal}}}: relevant information to monitor progress
* {{{verbose}}}: full output
* {{{debug}}}: like verbose with additional debug output
* ''only_causal_landmarks'' (bool): keep only causal landmarks
Supported language features:
* '''conditional_effects:''' ignored, i.e. not supported
== h^m Landmarks ==
The landmark generation method introduced by Keyder, Richter & Helmert (ECAI 2010).
{{{
lm_hm(m=2, conjunctive_landmarks=true, verbosity=normal, use_orders=true)
}}}
* ''m'' (int): subset size (if unsure, use the default of 2)
* ''conjunctive_landmarks'' (bool): keep conjunctive landmarks
* ''verbosity'' ({silent, normal, verbose, debug}): Option to specify the verbosity level.
* {{{silent}}}: only the most basic output
* {{{normal}}}: relevant information to monitor progress
* {{{verbose}}}: full output
* {{{debug}}}: like verbose with additional debug output
* ''use_orders'' (bool): use orders between landmarks
Supported language features:
* '''conditional_effects:''' ignored, i.e. not supported
== Merged Landmarks ==
Merges the landmarks and orderings from the parameter landmarks
{{{
lm_merged(lm_factories, verbosity=normal)
}}}
* ''lm_factories'' (list of [[Doc/LandmarkFactory|LandmarkFactory]]):
* ''verbosity'' ({silent, normal, verbose, debug}): Option to specify the verbosity level.
* {{{silent}}}: only the most basic output
* {{{normal}}}: relevant information to monitor progress
* {{{verbose}}}: full output
* {{{debug}}}: like verbose with additional debug output
'''Precedence:''' Fact landmarks take precedence over disjunctive landmarks, orderings take precedence in the usual manner (gn > nat > reas > o_reas).
'''Note:''' Does not currently support conjunctive landmarks
Supported language features:
* '''conditional_effects:''' supported if all components support them
== HPS Orders ==
Adds reasonable orders described in the following paper
* Jörg Hoffmann, Julie Porteous and Laura Sebastia.<
>
[[https://jair.org/index.php/jair/article/view/10390/24882|Ordered Landmarks in Planning]].<
>
''Journal of Artificial Intelligence Research'' 22:215-278. 2004.
{{{
lm_reasonable_orders_hps(lm_factory, verbosity=normal)
}}}
* ''lm_factory'' ([[Doc/LandmarkFactory|LandmarkFactory]]):
* ''verbosity'' ({silent, normal, verbose, debug}): Option to specify the verbosity level.
* {{{silent}}}: only the most basic output
* {{{normal}}}: relevant information to monitor progress
* {{{verbose}}}: full output
* {{{debug}}}: like verbose with additional debug output
'''Obedient-reasonable orders:''' Hoffmann et al. (2004) suggest obedient-reasonable orders in addition to reasonable orders. Obedient-reasonable orders were later also used by the LAMA planner (Richter and Westphal, 2010). They are "reasonable orders" under the assumption that all (non-obedient) reasonable orders are actually "natural", i.e., every plan obeys the reasonable orders. We observed experimentally that obedient-reasonable orders have minimal effect on the performance of LAMA (Büchner et al., 2023) and decided to remove them in issue1089.
Supported language features:
* '''conditional_effects:''' supported if subcomponent supports them
== RHW Landmarks ==
The landmark generation method introduced by Richter, Helmert and Westphal (AAAI 2008).
{{{
lm_rhw(disjunctive_landmarks=true, verbosity=normal, use_orders=true, only_causal_landmarks=false)
}}}
* ''disjunctive_landmarks'' (bool): keep disjunctive landmarks
* ''verbosity'' ({silent, normal, verbose, debug}): Option to specify the verbosity level.
* {{{silent}}}: only the most basic output
* {{{normal}}}: relevant information to monitor progress
* {{{verbose}}}: full output
* {{{debug}}}: like verbose with additional debug output
* ''use_orders'' (bool): use orders between landmarks
* ''only_causal_landmarks'' (bool): keep only causal landmarks
Supported language features:
* '''conditional_effects:''' supported
== Zhu/Givan Landmarks ==
The landmark generation method introduced by Zhu & Givan (ICAPS 2003 Doctoral Consortium).
{{{
lm_zg(verbosity=normal, use_orders=true)
}}}
* ''verbosity'' ({silent, normal, verbose, debug}): Option to specify the verbosity level.
* {{{silent}}}: only the most basic output
* {{{normal}}}: relevant information to monitor progress
* {{{verbose}}}: full output
* {{{debug}}}: like verbose with additional debug output
* ''use_orders'' (bool): use orders between landmarks
Supported language features:
* '''conditional_effects:''' We think they are supported, but this is not 100% sure.