Skip to content

LandmarkFactory

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.

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.