Back to the HomePage.
Re-using predefined heuristics
Often a heuristic instance should be used for several purposes. The most prevalent use case is a heuristic that is used for both the heuristic estimates and for its preferred operators.
In this case, one should predefine the heuristic using the search option --heuristic (see PlannerUsage#search).
Predefining a heuristic
name (string): a name that should denote the heuristic
heuristic (HeuristicSpecification): the heuristic
If the FF heuristic should be used (for its estimates or its preferred operators) and we want to use preferred operators of the landmark count heuristic, we can exploit synergy effects by predefining the heuristics:
hlm,hff=lm_ff_syn(lm, admissible=false, optimal=false, cost_type=0)
Preferred operators for the landmark count heuristic are determined by constructing a relaxed plan to the next landmark and regarding its operators as preferred. Since the FF heuristic also generates a relaxed plan (to the goal) one can directly re-use this plan to extract the preferred operators for the landmark count heuristic.
hlm (string): a name that should denote the landmark count heuristic
hff (string): a name that should denote the FF heuristic
lm: the set of landmarks to use for this heuristic. The set of landmarks can be specified here, or predefined (see LandmarksDefinition).
admissible (bool): get admissible estimates from landmark count heuristic (using cost partitioning)
optimal (bool): use optimal (LP-based) cost sharing for landmark count heuristic (only makes sense with admissible=true)
cost_type (int): action cost adjustment for the landmark count heuristic (see HeuristicSpecification#common) - only applies when admissible=true
See also the note on the landmark count heuristic.