Differences between revisions 1 and 25 (spanning 24 versions)
Revision 1 as of 2014-01-27 10:59:03
Size: 7493
Editor: XmlRpcBot
Comment:
Revision 25 as of 2024-01-10 17:29:26
Size: 5887
Editor: XmlRpcBot
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:

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.
Line 8: Line 12:
lm_exhaust(cost_type=NORMAL, reasonable_orders=false, only_causal_landmarks=false, disjunctive_landmarks=true, conjunctive_landmarks=true, no_orders=false, lm_cost_type=NORMAL) lm_exhaust(verbosity=normal, only_causal_landmarks=false)
Line 11: Line 15:
 * ''cost_type'' ({NORMAL, ONE, PLUSONE}): Operator cost adjustment type. No matter what this setting is, axioms will always be considered as actions of cost 0 by the heuristics that treat axioms as actions.
  * {{{NORMAL}}}: all actions are accounted for with their real cost
  * {{{ONE}}}: all actions are accounted for as unit cost
  * {{{PLUSONE}}}: all actions are accounted for as their real cost + 1 (except if all actions have original cost 1, in which case cost 1 is used). This is the behaviour known for the heuristics of the LAMA planner. This is intended to be used by the heuristics, not search engines, but is supported for both.
 * ''reasonable_orders'' (bool): generate reasonable orders
 * ''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
Line 17: Line 21:
 * ''disjunctive_landmarks'' (bool): keep disjunctive landmarks
 * ''conjunctive_landmarks'' (bool): keep conjunctive landmarks
 * ''no_orders'' (bool): discard all orderings
 * ''lm_cost_type'' ({NORMAL, ONE, PLUSONE}): landmark action cost adjustment
'''Relevant options:''' reasonable_orders, only_causal_landmarks

Supported language features:

 * '''conditional_effects:''' ignored, i.e. not supported
Line 24: Line 27:
Line 25: Line 29:
Line 26: Line 31:
lm_hm(m=2, cost_type=NORMAL, reasonable_orders=false, only_causal_landmarks=false, disjunctive_landmarks=true, conjunctive_landmarks=true, no_orders=false, lm_cost_type=NORMAL) lm_hm(m=2, conjunctive_landmarks=true, verbosity=normal, use_orders=true)
Line 29: Line 34:
 * ''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
Line 30: Line 43:
 * ''m'' (int): subset size (if unsure, use the default of 2)
 * ''cost_type'' ({NORMAL, ONE, PLUSONE}): Operator cost adjustment type. No matter what this setting is, axioms will always be considered as actions of cost 0 by the heuristics that treat axioms as actions.
  * {{{NORMAL}}}: all actions are accounted for with their real cost
  * {{{ONE}}}: all actions are accounted for as unit cost
  * {{{PLUSONE}}}: all actions are accounted for as their real cost + 1 (except if all actions have original cost 1, in which case cost 1 is used). This is the behaviour known for the heuristics of the LAMA planner. This is intended to be used by the heuristics, not search engines, but is supported for both.
 * ''reasonable_orders'' (bool): generate reasonable orders
 * ''only_causal_landmarks'' (bool): keep only causal landmarks
 * ''disjunctive_landmarks'' (bool): keep disjunctive landmarks
 * ''conjunctive_landmarks'' (bool): keep conjunctive landmarks
 * ''no_orders'' (bool): discard all orderings
 * ''lm_cost_type'' ({NORMAL, ONE, PLUSONE}): landmark action cost adjustment
'''Relevant options:''' m, reasonable_orders, conjunctive_landmarks, no_orders
Supported language features:

 * '''conditional_effects:''' ignored, i.e. not supported
Line 44: Line 48:
Line 45: Line 50:
Line 46: Line 52:
lm_merged(lm_graphs, cost_type=NORMAL, reasonable_orders=false, only_causal_landmarks=false, disjunctive_landmarks=true, conjunctive_landmarks=true, no_orders=false, lm_cost_type=NORMAL) lm_merged(lm_factories, verbosity=normal)
Line 49: Line 55:
 * ''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
Line 50: Line 62:
 * ''lm_graphs'' (list of [[Doc/LandmarkGraph|LandmarkGraph]]):
 * ''cost_type'' ({NORMAL, ONE, PLUSONE}): Operator cost adjustment type. No matter what this setting is, axioms will always be considered as actions of cost 0 by the heuristics that treat axioms as actions.
  * {{{NORMAL}}}: all actions are accounted for with their real cost
  * {{{ONE}}}: all actions are accounted for as unit cost
  * {{{PLUSONE}}}: all actions are accounted for as their real cost + 1 (except if all actions have original cost 1, in which case cost 1 is used). This is the behaviour known for the heuristics of the LAMA planner. This is intended to be used by the heuristics, not search engines, but is supported for both.
 * ''reasonable_orders'' (bool): generate reasonable orders
 * ''only_causal_landmarks'' (bool): keep only causal landmarks
 * ''disjunctive_landmarks'' (bool): keep disjunctive landmarks
 * ''conjunctive_landmarks'' (bool): keep conjunctive landmarks
 * ''no_orders'' (bool): discard all orderings
 * ''lm_cost_type'' ({NORMAL, ONE, PLUSONE}): landmark action cost adjustment
Line 62: Line 63:

'''Relevant options:''' Depends on landmarks
Line 67: Line 66:
== RHW Landmarks ==
The landmark generation method introduced by Richter, Helmert and Westphal (AAAI 2008).
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.<<BR>>
[[https://jair.org/index.php/jair/article/view/10390/24882|Ordered Landmarks in Planning]].<<BR>>
''Journal of Artificial Intelligence Research'' 22:215-278. 2004.
Line 70: Line 79:
lm_rhw(cost_type=NORMAL, reasonable_orders=false, only_causal_landmarks=false, disjunctive_landmarks=true, conjunctive_landmarks=true, no_orders=false, lm_cost_type=NORMAL) lm_reasonable_orders_hps(lm_factory, verbosity=normal)
Line 73: Line 82:
 * ''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
Line 74: Line 89:
 * ''cost_type'' ({NORMAL, ONE, PLUSONE}): Operator cost adjustment type. No matter what this setting is, axioms will always be considered as actions of cost 0 by the heuristics that treat axioms as actions.
  * {{{NORMAL}}}: all actions are accounted for with their real cost
  * {{{ONE}}}: all actions are accounted for as unit cost
  * {{{PLUSONE}}}: all actions are accounted for as their real cost + 1 (except if all actions have original cost 1, in which case cost 1 is used). This is the behaviour known for the heuristics of the LAMA planner. This is intended to be used by the heuristics, not search engines, but is supported for both.
 * ''reasonable_orders'' (bool): generate reasonable orders
'''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
Line 80: Line 111:
 * ''disjunctive_landmarks'' (bool): keep disjunctive landmarks
 * ''conjunctive_landmarks'' (bool): keep conjunctive landmarks
 * ''no_orders'' (bool): discard all orderings
 * ''lm_cost_type'' ({NORMAL, ONE, PLUSONE}): landmark action cost adjustment
'''Relevant Options:''' reasonable_orders, only_causal_landmarks, disjunctive_landmarks, no_orders

Supported language features:

 * '''conditional_effects:''' supported
Line 87: Line 117:
Line 88: Line 119:
Line 89: Line 121:
lm_zg(cost_type=NORMAL, reasonable_orders=false, only_causal_landmarks=false, disjunctive_landmarks=true, conjunctive_landmarks=true, no_orders=false, lm_cost_type=NORMAL) lm_zg(verbosity=normal, use_orders=true)
Line 92: Line 124:
 * ''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
Line 93: Line 131:
 * ''cost_type'' ({NORMAL, ONE, PLUSONE}): Operator cost adjustment type. No matter what this setting is, axioms will always be considered as actions of cost 0 by the heuristics that treat axioms as actions.
  * {{{NORMAL}}}: all actions are accounted for with their real cost
  * {{{ONE}}}: all actions are accounted for as unit cost
  * {{{PLUSONE}}}: all actions are accounted for as their real cost + 1 (except if all actions have original cost 1, in which case cost 1 is used). This is the behaviour known for the heuristics of the LAMA planner. This is intended to be used by the heuristics, not search engines, but is supported for both.
 * ''reasonable_orders'' (bool): generate reasonable orders
 * ''only_causal_landmarks'' (bool): keep only causal landmarks
 * ''disjunctive_landmarks'' (bool): keep disjunctive landmarks
 * ''conjunctive_landmarks'' (bool): keep conjunctive landmarks
 * ''no_orders'' (bool): discard all orderings
 * ''lm_cost_type'' ({NORMAL, ONE, PLUSONE}): landmark action cost adjustment
'''Relevant options:''' reasonable_orders, no_orders
Supported language features:
Line 105: Line 133:
/* moin code generated by txt2tags 2.6b (http://txt2tags.sf.net) */  * '''conditional_effects:''' We think they are supported, but this is not 100% sure.

/* moin code generated by txt2tags 2.6 (http://txt2tags.org) */

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 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 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.
Ordered Landmarks in Planning.
Journal of Artificial Intelligence Research 22:215-278. 2004.

lm_reasonable_orders_hps(lm_factory, verbosity=normal)
  • lm_factory (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.

FastDownward: Doc/LandmarkFactory (last edited 2024-01-11 22:26:37 by XmlRpcBot)