Differences between revisions 1 and 23 (spanning 22 versions)
Revision 1 as of 2014-01-27 10:59:03
Size: 7493
Editor: XmlRpcBot
Comment:
Revision 23 as of 2023-01-27 16:18:33
Size: 5247
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
Language features supported:
 * '''conditional_effects:''' ignored, i.e. not supported
Line 26: Line 26:
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 31: Line 31:
 * ''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
Line 39: Line 32:
 * ''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
 * ''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
Language features supported:
 * '''conditional_effects:''' ignored, i.e. not supported
Line 46: Line 43:
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 50: Line 47:
 * ''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
 * ''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 62: Line 54:

'''Relevant options:''' Depends on landmarks
Line 67: Line 57:
Language features supported:
 * '''conditional_effects:''' supported if all components support them
== HPS Orders ==
Adds reasonable orders and obedient 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.

{{{
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
Language features supported:
 * '''conditional_effects:''' supported if subcomponent supports them
Line 70: Line 81:
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_rhw(disjunctive_landmarks=true, verbosity=normal, use_orders=true, only_causal_landmarks=false)
Line 74: Line 85:
 * ''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
 * ''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 93:
 * ''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
Language features supported:
 * '''conditional_effects:''' supported
Line 89: Line 98:
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 93: Line 102:
 * ''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
 * ''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
Language features supported:
 * '''conditional_effects:''' We think they are supported, but this is not 100% sure.
Line 105: Line 111:
/* moin code generated by txt2tags 2.6b (http://txt2tags.sf.net) */ /* 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

Language features supported:

  • 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

Language features supported:

  • 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

Language features supported:

  • conditional_effects: supported if all components support them

HPS Orders

Adds reasonable orders and obedient reasonable orders described in the following paper

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

Language features supported:

  • 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

Language features supported:

  • 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

Language features supported:

  • 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)