Differences between revisions 1 and 2
Revision 1 as of 2011-07-06 17:43:35
Size: 14187
Comment: First attempt at auto-generation of moinwiki-formatted documentation. Output of "./downward-1 --help --format moinmoin"
Revision 2 as of 2011-07-27 20:03:13
Size: 19566
Comment: added properties&language features for heuristics
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
= scalar evaluators =
== add ==
= heuristics =
== Additive heuristic ==
Line 10: Line 11:
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type

== blind ==
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
Language features supported:
 * '''action costs: '''supported
 * '''conditional_effects: '''supported
 * '''axioms: '''supported (in the sense that the planner won't complain -- handling of axioms might be very stupid and even render the heuristic unsafe)
Properties:
 * '''admissible: '''no
 * '''consistent: '''no
 * '''safe: '''yes for tasks without axioms
 * '''preferred operators: '''yes

== Blind heuristic ==
Returns cost of cheapest action fornon-goal states, 0 for goal states
Line 17: Line 28:
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type

== cea ==
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
Language features supported:
 * '''action costs: '''supported
 * '''conditional_effects: '''supported
 * '''axioms: '''supported
Properties:
 * '''admissible: '''yes
 * '''consistent: '''yes
 * '''safe: '''yes
 * '''preferred operators: '''no

== Context-enhanced additive heuristic ==
Line 24: Line 45:
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type

== cg ==
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
Language features supported:
 * '''action costs: '''supported
 * '''conditional_effects: '''supported
 * '''axioms: '''supported (in the sense that the planner won't complain -- handling of axioms might be very stupid and even render the heuristic unsafe)
Properties:
 * '''admissible: '''no
 * '''consistent: '''no
 * '''safe: '''no
 * '''preferred operators: '''yes

== Causal graph heuristic ==
Line 31: Line 62:
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type

== ff ==
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
Language features supported:
 * '''action costs: '''supported
 * '''conditional_effects: '''supported
 * '''axioms: '''supported (in the sense that the planner won't complain -- handling of axioms might be very stupid and even render the heuristic unsafe)
Properties:
 * '''admissible: '''no
 * '''consistent: '''no
 * '''safe: '''no
 * '''preferred operators: '''yes

== FF heuristic ==
See also LAMA-FF synergy.
Line 38: Line 79:
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type

== g ==
{{{
g()
}}}


== goalcount ==
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
Language features supported:
 * '''action costs: '''supported
 * '''conditional_effects: '''supported
 * '''axioms: '''supported (in the sense that the planner won't complain -- handling of axioms might be very stupid and even render the heuristic unsafe)
Properties:
 * '''admissible: '''no
 * '''consistent: '''no
 * '''safe: '''yes for tasks without axioms
 * '''preferred operators: '''yes

== Goal count heuristic ==
Line 51: Line 96:
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type

== hm ==
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
Language features supported:
 * '''action costs: '''ignored by design
 * '''conditional_effects: '''supported
 * '''axioms: '''supported
Properties:
 * '''admissible: '''no
 * '''consistent: '''no
 * '''safe: '''yes
 * '''preferred operators: '''no

== h^m heuristic ==
Line 58: Line 113:
 * `m` (int):
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type

== hmax ==
 * `m` (int): subset size
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
Language features supported:
 * '''action costs: '''supported
 * '''conditional_effects: '''ignored
 * '''axioms: '''ignored
Properties:
 * '''admissible: '''yes for tasks without conditionaleffects or axioms
 * '''consistent: '''yes for tasks without conditionaleffects or axioms
 * '''safe: '''yes for tasks without conditionaleffects or axioms
 * '''preferred operators: '''no

== Max heuristic ==
Line 66: Line 131:
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type

== lmcount ==
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
Language features supported:
 * '''action costs: '''supported
 * '''conditional_effects: '''supported
 * '''axioms: '''supported (in the sense that the planner won't complain -- handling of axioms might be very stupid and even render the heuristic unsafe)
Properties:
 * '''admissible: '''yes for tasks without axioms
 * '''consistent: '''yes for tasks without axioms
 * '''safe: '''yes for tasks without axioms
 * '''preferred operators: '''no

== Landmark count heuristic ==
See also Lama-FF synergy
Line 73: Line 148:
 * `lm_graph` (landmarks graph):
 * `admissible` (bool):get admissible estimate
 * `optimal` (bool):optimal cost sharing
 * `pref` (bool):identify preferred operators
 * `alm` (bool):use action landmarks
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type

== lmcut ==
 * `lm_graph` (landmarks graph): the set of landmarks to use for this heuristic.The set of landmarks can be specified here, or predefined.
 * `admissible` (bool): get admissible estimate
 * `optimal` (bool): use optimal cost sharing(only makes sense with admissible=true).You need to build the planner with USE_LP=1to use this.
 * `pref` (bool): identify preferred operators
 * `alm` (bool): use action landmarks
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
Language features supported:
 * '''action costs: '''supported
 * '''conditional_effects: '''supported if admissible=false
 * '''axioms: '''supported if admissible=false (but may behave stupidly and be unsafe
Properties:
 * '''admissible: '''yes if admissible=true and there are neitherconditional effects nor axioms
 * '''consistent: '''no
 * '''safe: '''yes (except maybe on tasks with axioms or when using admissible=true on tasks with conditional effects)
 * '''preferred operators: '''yes (if enabled; see pref_ops option)

== Landmark-cut heuristic ==
Line 85: Line 170:
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type

== mas ==
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
Language features supported:
 * '''action costs: '''supported
 * '''conditional_effects: '''not supported
 * '''axioms: '''not supported
Properties:
 * '''admissible: '''yes
 * '''consistent: '''no
 * '''safe: '''yes
 * '''preferred operators: '''no

== Merge-and-shrink heuristic ==
Note: The numbering of the composition and collapsing options has changed in July 2010. Please adapt them when using old experiment scripts (reduce old value by 1).
Line 92: Line 187:
 * `max_states` (int):maximum abstraction size
 * `max_states_before_merge` (int):maximum abstraction size for factors of synchronized product
 * `count` (int):nr of abstractions to build
 * `merge_strategy` ({MERGE_LINEAR_CG_GOAL_LEVEL, MERGE_LINEAR_CG_GOAL_RANDOM, MERGE_LINEAR_GOAL_CG_LEVEL, MERGE_LINEAR_RANDOM, MERGE_DFP, MERGE_LINEAR_LEVEL, MERGE_LINEAR_REVERSE_LEVEL, MERGE_LEVEL_THEN_INVERSE, MERGE_INVERSE_THEN_LEVEL}):merge strategy
 * `shrink_strategy` ({SHRINK_HIGH_F_LOW_H, SHRINK_LOW_F_LOW_H, SHRINK_HIGH_F_HIGH_H, SHRINK_RANDOM, SHRINK_DFP, SHRINK_BISIMULATION, SHRINK_BISIMULATION_NO_MEMORY_LIMIT, SHRINK_DFP_ENABLE_GREEDY_BISIMULATION, SHRINK_DFP_ENABLE_FURTHER_LABEL_REDUCTION, SHRINK_DFP_ENABLE_GREEDY_THEN_LABEL_REDUCTION, SHRINK_DFP_ENABLE_LABEL_REDUCTION_THEN_GREEDY, SHRINK_DFP_ENABLE_LABEL_REDUCTION_AND_GREEDY_CHOOSE_MAX, SHRINK_GREEDY_BISIMULATION_NO_MEMORY_LIMIT, SHRINK_BISIMULATION_REDUCING_ALL_LABELS_NO_MEMORY_LIMIT, SHRINK_GREEDY_BISIMULATION_REDUCING_ALL_LABELS_NO_MEMORY_LIMIT}):shrink strategy
 * `simplify_labels` (bool):enable label simplification
 * `expensive_statistics` (bool):show statistics on "unique unlabeled edges" (WARNING: these are *very* slow -- check the warning in the output)
 * `merge_mixing_parameter` (double):merge mixing parameter
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type

== max ==
{{{
max(heuristics, cost_type = NORMAL)
}}}

 * `heuristics` (list of heuristic):
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type

== pref ==
{{{
pref()
}}}


== selmax ==
 * `max_states` (int): maximum abstraction size
 * `max_states_before_merge` (int): maximum abstraction size for factors of synchronized product
 * `count` (int): nr of abstractions to build
 * `merge_strategy` ({MERGE_LINEAR_CG_GOAL_LEVEL, MERGE_LINEAR_CG_GOAL_RANDOM, MERGE_LINEAR_GOAL_CG_LEVEL, MERGE_LINEAR_RANDOM, MERGE_DFP, MERGE_LINEAR_LEVEL, MERGE_LINEAR_REVERSE_LEVEL, MERGE_LEVEL_THEN_INVERSE, MERGE_INVERSE_THEN_LEVEL}): merge strategy
 * `shrink_strategy` ({SHRINK_HIGH_F_LOW_H, SHRINK_LOW_F_LOW_H, SHRINK_HIGH_F_HIGH_H, SHRINK_RANDOM, SHRINK_DFP, SHRINK_BISIMULATION, SHRINK_BISIMULATION_NO_MEMORY_LIMIT, SHRINK_DFP_ENABLE_GREEDY_BISIMULATION, SHRINK_DFP_ENABLE_FURTHER_LABEL_REDUCTION, SHRINK_DFP_ENABLE_GREEDY_THEN_LABEL_REDUCTION, SHRINK_DFP_ENABLE_LABEL_REDUCTION_THEN_GREEDY, SHRINK_DFP_ENABLE_LABEL_REDUCTION_AND_GREEDY_CHOOSE_MAX, SHRINK_GREEDY_BISIMULATION_NO_MEMORY_LIMIT, SHRINK_BISIMULATION_REDUCING_ALL_LABELS_NO_MEMORY_LIMIT, SHRINK_GREEDY_BISIMULATION_REDUCING_ALL_LABELS_NO_MEMORY_LIMIT}): shrink strategy
 * `simplify_labels` (bool): enable label simplification
 * `expensive_statistics` (bool): show statistics on "unique unlabeled edges" (WARNING: these are *very* slow -- check the warning in the output)
 * `merge_mixing_parameter` (double): merge mixing parameter
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
Language features supported:
 * '''action costs: '''supported for SHRINK_DFP, SHRINK_BISIMULATION_NO_MEMORY_LIMIT, SHRINK_DFP_ENABLE_GREEDY_BISIMULATION_NO_MEMORY_LIMIT
 * '''conditional_effects: '''not supported
 * '''axioms: '''not supported
Properties:
 * '''admissible: '''yes
 * '''consistent: '''yes
 * '''safe: '''yes
 * '''preferred operators: '''no

== Selective-max heuristic ==
Line 121: Line 212:
 * `heuristics` (list of heuristic):
 * `alpha` (double):
alpha
 * `classifier` ({NB, AODE}):classifier type
 * `conf_threshold` (double):confidence threshold
 * `training_set` (int):minimum size of training set
 * `eval_always` (int):number of heuristics that should always be evaluated
 * `random_sel` (bool):random selection
 * `retime` (bool):
retime heuristics
 * `sample` ({Probe, ProbAStar, PDB}):state space sample type
 * `uniform` (bool):uniform sampling
 * `zero_threshold` (bool):set threshold constant 0
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type

== sum ==
{{{
sum(evals)
}}}

 * `evals` (list of scalar evaluator):

== wei
ght ==
{{{
wei
ght(evals, weight)
}}}

 * `evals` (list of scalar evaluator):
 * `weight` (int):
 * `heuristics` (list of heuristic): heuristics
 * `alpha` (double):
alpha
 * `classifier` ({NB, AODE}): classifier type
 * `conf_threshold` (double): confidence threshold
 * `training_set` (int): minimum size of training set
 * `eval_always` (int): number of heuristics that should always be evaluated
 * `random_sel` (bool): random selection
 * `retime` (bool):
retime heuristics
 * `sample` ({Probe, ProbAStar, PDB}): state space sample type
 * `uniform` (bool): uniform sampling
 * `zero_threshold` (bool): set threshold constant 0
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
Language features supported:
 * '''action costs: '''if supported by all component heuristics
 * '''conditional_effects: '''if supported by all component heuristics
 * '''axioms: '''if supported by all component heuristics
Properties:
 * '''admissible: '''if all component heuristics are admissible
 * '''consistent: '''no
 * '''safe: '''if all component heuristics are safe
 * '''preferred operators: '''no (not yet)
Line 151: Line 236:
Line 156: Line 242:
 * `boost` (int):boost value for preferred operator open lists  * `boost` (int): boost value for preferred operator open lists
Line 159: Line 245:
Line 164: Line 251:
 * `pref_only` (bool):insert only preferred operators
 * `state_uniform_selection` (bool):select uniformly from the candidate *states*
 * `pref_only` (bool): insert only preferred operators
 * `state_uniform_selection` (bool): select uniformly from the candidate *states*
Line 168: Line 255:
Line 173: Line 261:
 * `pref_only` (bool):insert only preferred operators  * `pref_only` (bool): insert only preferred operators
Line 176: Line 264:
Line 181: Line 270:
 * `pref_only` (bool):insert only preferred operators  * `pref_only` (bool): insert only preferred operators
Line 184: Line 273:
Line 189: Line 279:
 * `pref_only` (bool):insert only preferred operators
 * `unsafe_pruning` (bool):allow unsafe pruning when the main evaluator regards a state a dead end
 * `pref_only` (bool): insert only preferred operators
 * `unsafe_pruning` (bool): allow unsafe pruning when the main evaluator regards a state a dead end
Line 194: Line 284:
Line 199: Line 290:
 * `pathmax` (bool):use pathmax correction
 * `mpd` (bool):use multi-path dependence (LM-A*)
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type
 * `bound` (int):bound on plan cost
 * `pathmax` (bool): use pathmax correction
 * `mpd` (bool): use multi-path dependence (LM-A*)
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
 * `bound` (int): bound on plan cost
Line 205: Line 296:
Line 210: Line 302:
 * `reopen_closed` (bool):reopen closed nodes
 * `pathmax` (bool):use pathmax correction
 * `f_eval` (scalar evaluator):set evaluator for jump statistics
 * `preferred` (list of heuristic):use preferred operators of these heuristics
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type
 * `bound` (int):bound on plan cost
 * `reopen_closed` (bool): reopen closed nodes
 * `pathmax` (bool): use pathmax correction
 * `f_eval` (scalar evaluator): set evaluator for jump statistics
 * `preferred` (list of heuristic): use preferred operators of these heuristics
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
 * `bound` (int): bound on plan cost
Line 218: Line 310:
Line 223: Line 316:
 * `preferred` (list of heuristic):use preferred operators of these heuristics
 * `boost` (int):boost value for preferred operator open lists
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type
 * `bound` (int):bound on plan cost
 * `preferred` (list of heuristic): use preferred operators of these heuristics
 * `boost` (int): boost value for preferred operator open lists
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
 * `bound` (int): bound on plan cost
Line 229: Line 322:
Line 234: Line 328:
 * `bfs_use_cost` (bool):use cost for bfs
 * `preferred_usage` ({PRUNE_BY_PREFERRED, RANK_PREFERRED_FIRST}):preferred operator usage
 * `preferred` (list of heuristic):use preferred operators of these heuristics
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type
 * `bound` (int):bound on plan cost
 * `bfs_use_cost` (bool): use cost for bfs
 * `preferred_usage` ({PRUNE_BY_PREFERRED, RANK_PREFERRED_FIRST}): preferred operator usage
 * `preferred` (list of heuristic): use preferred operators of these heuristics
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
 * `bound` (int): bound on plan cost
Line 241: Line 335:
Line 246: Line 341:
 * `pass_bound` (bool):use bound from previous search
 * `repeat_last` (bool):repeat last phase of search
 * `continue_on_fail` (bool):
continue search after no solution found
 * `continue_on_solve` (bool):continue search after solution found
 * `plan_counter` (int):
start enumerating plans with this number
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type
 * `bound` (int):bound on plan cost
 * `pass_bound` (bool): use bound from previous search
 * `repeat_last` (bool): repeat last phase of search
 * `continue_on_fail` (bool):
continue search after no solution found
 * `continue_on_solve` (bool): continue search after solution found
 * `plan_counter` (int):
start enumerating plans with this number
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
 * `bound` (int): bound on plan cost
Line 255: Line 350:
Line 260: Line 356:
 * `reopen_closed` (bool):reopen closed nodes
 * `preferred` (list of heuristic):use preferred operators of these heuristics
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type
 * `bound` (int):bound on plan cost
 * `reopen_closed` (bool): reopen closed nodes
 * `preferred` (list of heuristic): use preferred operators of these heuristics
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
 * `bound` (int): bound on plan cost
Line 266: Line 362:
Line 271: Line 368:
 * `preferred` (list of heuristic):use preferred operators of these heuristics
 * `reopen_closed` (bool):reopen closed nodes
 * `boost` (int):
boost value for preferred operator open lists
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type
 * `bound` (int):bound on plan cost
 * `preferred` (list of heuristic): use preferred operators of these heuristics
 * `reopen_closed` (bool): reopen closed nodes
 * `boost` (int):
boost value for preferred operator open lists
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
 * `bound` (int): bound on plan cost
Line 278: Line 375:
Line 283: Line 381:
 * `preferred` (list of heuristic):use preferred operators of these heuristics
 * `reopen_closed` (bool):reopen closed nodes
 * `boost` (int):boost value for preferred operator open lists
 * `w` (int):heuristic weight
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type
 * `bound` (int):bound on plan cost
 * `preferred` (list of heuristic): use preferred operators of these heuristics
 * `reopen_closed` (bool): reopen closed nodes
 * `boost` (int): boost value for preferred operator open lists
 * `w` (int): heuristic weight
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
 * `bound` (int): bound on plan cost

= scalar evaluators =
== g ==

{{{
g()
}}}


== max ==

{{{
max(heuristics, cost_type = NORMAL)
}}}

 * `heuristics` (list of heuristic):
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

== pref ==

{{{
pref()
}}}


== sum ==

{{{
sum(evals)
}}}

 * `evals` (list of scalar evaluator):

== weight ==

{{{
weight(evals, weight)
}}}

 * `evals` (list of scalar evaluator):
 * `weight` (int):
Line 292: Line 431:
Line 296: Line 436:
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type
 * `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
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
 * `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 305: Line 445:
Line 309: Line 450:
 * `m` (int):m (as in h^m)
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type
 * `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
 * `m` (int): m (as in h^m)
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
 * `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 319: Line 460:
Line 324: Line 466:
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type
 * `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
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
 * `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 333: Line 475:
Line 337: Line 480:
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type
 * `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
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
 * `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 346: Line 489:
Line 350: Line 494:
 * `max_depth` (int):max depth
 * `num_tries` (int):max number of tries
 * `uniform_sampling` (bool):uniform sampling
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type
 * `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
 * `max_depth` (int): max depth
 * `num_tries` (int): max number of tries
 * `uniform_sampling` (bool): uniform sampling
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
 * `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 362: Line 506:
Line 366: Line 511:
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type
 * `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
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type
 * `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 376: Line 521:
Line 381: Line 527:
 * `admissible` (bool):get admissible estimate
 * `optimal` (bool):optimal cost sharing
 * `alm` (bool):use action landmarks
 * `cost_type` ({NORMAL, ONE, PLUSONE}):operator cost adjustment type

Help output finished.
Peak memory: 2436 KB
 * `admissible` (bool): get admissible estimate
 * `optimal` (bool): optimal cost sharing
 * `alm` (bool): use action landmarks
 * `cost_type` ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

Help: Experimental automatically generated documentation.

heuristics

Additive heuristic

add(cost_type = NORMAL)
  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

Language features supported:

  • action costs: supported

  • conditional_effects: supported

  • axioms: supported (in the sense that the planner won't complain -- handling of axioms might be very stupid and even render the heuristic unsafe)

Properties:

  • admissible: no

  • consistent: no

  • safe: yes for tasks without axioms

  • preferred operators: yes

Blind heuristic

Returns cost of cheapest action fornon-goal states, 0 for goal states

blind(cost_type = NORMAL)
  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

Language features supported:

  • action costs: supported

  • conditional_effects: supported

  • axioms: supported

Properties:

  • admissible: yes

  • consistent: yes

  • safe: yes

  • preferred operators: no

Context-enhanced additive heuristic

cea(cost_type = NORMAL)
  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

Language features supported:

  • action costs: supported

  • conditional_effects: supported

  • axioms: supported (in the sense that the planner won't complain -- handling of axioms might be very stupid and even render the heuristic unsafe)

Properties:

  • admissible: no

  • consistent: no

  • safe: no

  • preferred operators: yes

Causal graph heuristic

cg(cost_type = NORMAL)
  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

Language features supported:

  • action costs: supported

  • conditional_effects: supported

  • axioms: supported (in the sense that the planner won't complain -- handling of axioms might be very stupid and even render the heuristic unsafe)

Properties:

  • admissible: no

  • consistent: no

  • safe: no

  • preferred operators: yes

FF heuristic

See also LAMA-FF synergy.

ff(cost_type = NORMAL)
  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

Language features supported:

  • action costs: supported

  • conditional_effects: supported

  • axioms: supported (in the sense that the planner won't complain -- handling of axioms might be very stupid and even render the heuristic unsafe)

Properties:

  • admissible: no

  • consistent: no

  • safe: yes for tasks without axioms

  • preferred operators: yes

Goal count heuristic

goalcount(cost_type = NORMAL)
  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

Language features supported:

  • action costs: ignored by design

  • conditional_effects: supported

  • axioms: supported

Properties:

  • admissible: no

  • consistent: no

  • safe: yes

  • preferred operators: no

h^m heuristic

hm(m = 2, cost_type = NORMAL)
  • m (int): subset size

  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

Language features supported:

  • action costs: supported

  • conditional_effects: ignored

  • axioms: ignored

Properties:

  • admissible: yes for tasks without conditionaleffects or axioms

  • consistent: yes for tasks without conditionaleffects or axioms

  • safe: yes for tasks without conditionaleffects or axioms

  • preferred operators: no

Max heuristic

hmax(cost_type = NORMAL)
  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

Language features supported:

  • action costs: supported

  • conditional_effects: supported

  • axioms: supported (in the sense that the planner won't complain -- handling of axioms might be very stupid and even render the heuristic unsafe)

Properties:

  • admissible: yes for tasks without axioms

  • consistent: yes for tasks without axioms

  • safe: yes for tasks without axioms

  • preferred operators: no

Landmark count heuristic

See also Lama-FF synergy

lmcount(lm_graph, admissible = false, optimal = false, pref = false, alm = true, cost_type = NORMAL)
  • lm_graph (landmarks graph): the set of landmarks to use for this heuristic.The set of landmarks can be specified here, or predefined.

  • admissible (bool): get admissible estimate

  • optimal (bool): use optimal cost sharing(only makes sense with admissible=true).You need to build the planner with USE_LP=1to use this.

  • pref (bool): identify preferred operators

  • alm (bool): use action landmarks

  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

Language features supported:

  • action costs: supported

  • conditional_effects: supported if admissible=false

  • axioms: supported if admissible=false (but may behave stupidly and be unsafe

Properties:

  • admissible: yes if admissible=true and there are neitherconditional effects nor axioms

  • consistent: no

  • safe: yes (except maybe on tasks with axioms or when using admissible=true on tasks with conditional effects)

  • preferred operators: yes (if enabled; see pref_ops option)

Landmark-cut heuristic

lmcut(cost_type = NORMAL)
  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

Language features supported:

  • action costs: supported

  • conditional_effects: not supported

  • axioms: not supported

Properties:

  • admissible: yes

  • consistent: no

  • safe: yes

  • preferred operators: no

Merge-and-shrink heuristic

Note: The numbering of the composition and collapsing options has changed in July 2010. Please adapt them when using old experiment scripts (reduce old value by 1).

mas(max_states = -1, max_states_before_merge = -1, count = 1, merge_strategy = MERGE_LINEAR_CG_GOAL_LEVEL, shrink_strategy = SHRINK_HIGH_F_LOW_H, simplify_labels = true, expensive_statistics = false, merge_mixing_parameter = -1, cost_type = NORMAL)
  • max_states (int): maximum abstraction size

  • max_states_before_merge (int): maximum abstraction size for factors of synchronized product

  • count (int): nr of abstractions to build

  • merge_strategy ({MERGE_LINEAR_CG_GOAL_LEVEL, MERGE_LINEAR_CG_GOAL_RANDOM, MERGE_LINEAR_GOAL_CG_LEVEL, MERGE_LINEAR_RANDOM, MERGE_DFP, MERGE_LINEAR_LEVEL, MERGE_LINEAR_REVERSE_LEVEL, MERGE_LEVEL_THEN_INVERSE, MERGE_INVERSE_THEN_LEVEL}): merge strategy

  • shrink_strategy ({SHRINK_HIGH_F_LOW_H, SHRINK_LOW_F_LOW_H, SHRINK_HIGH_F_HIGH_H, SHRINK_RANDOM, SHRINK_DFP, SHRINK_BISIMULATION, SHRINK_BISIMULATION_NO_MEMORY_LIMIT, SHRINK_DFP_ENABLE_GREEDY_BISIMULATION, SHRINK_DFP_ENABLE_FURTHER_LABEL_REDUCTION, SHRINK_DFP_ENABLE_GREEDY_THEN_LABEL_REDUCTION, SHRINK_DFP_ENABLE_LABEL_REDUCTION_THEN_GREEDY, SHRINK_DFP_ENABLE_LABEL_REDUCTION_AND_GREEDY_CHOOSE_MAX, SHRINK_GREEDY_BISIMULATION_NO_MEMORY_LIMIT, SHRINK_BISIMULATION_REDUCING_ALL_LABELS_NO_MEMORY_LIMIT, SHRINK_GREEDY_BISIMULATION_REDUCING_ALL_LABELS_NO_MEMORY_LIMIT}): shrink strategy

  • simplify_labels (bool): enable label simplification

  • expensive_statistics (bool): show statistics on "unique unlabeled edges" (WARNING: these are *very* slow -- check the warning in the output)

  • merge_mixing_parameter (double): merge mixing parameter

  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

Language features supported:

  • action costs: supported for SHRINK_DFP, SHRINK_BISIMULATION_NO_MEMORY_LIMIT, SHRINK_DFP_ENABLE_GREEDY_BISIMULATION_NO_MEMORY_LIMIT

  • conditional_effects: not supported

  • axioms: not supported

Properties:

  • admissible: yes

  • consistent: yes

  • safe: yes

  • preferred operators: no

Selective-max heuristic

selmax(heuristics, alpha = 1, classifier = NB, conf_threshold = 0.6, training_set = 100, eval_always = 0, random_sel = false, retime = false, sample = Probe, uniform = false, zero_threshold = false, cost_type = NORMAL)
  • heuristics (list of heuristic): heuristics

  • alpha (double): alpha

  • classifier ({NB, AODE}): classifier type

  • conf_threshold (double): confidence threshold

  • training_set (int): minimum size of training set

  • eval_always (int): number of heuristics that should always be evaluated

  • random_sel (bool): random selection

  • retime (bool): retime heuristics

  • sample ({Probe, ProbAStar, PDB}): state space sample type

  • uniform (bool): uniform sampling

  • zero_threshold (bool): set threshold constant 0

  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

Language features supported:

  • action costs: if supported by all component heuristics

  • conditional_effects: if supported by all component heuristics

  • axioms: if supported by all component heuristics

Properties:

  • admissible: if all component heuristics are admissible

  • consistent: no

  • safe: if all component heuristics are safe

  • preferred operators: no (not yet)

openlists

alt

alt(sublists, boost = 0)
  • sublists (list of openlist):

  • boost (int): boost value for preferred operator open lists

pareto

pareto(evals, pref_only = false, state_uniform_selection = false)
  • evals (list of scalar evaluator):

  • pref_only (bool): insert only preferred operators

  • state_uniform_selection (bool): select uniformly from the candidate *states*

single

single(evaluators, pref_only = false)
  • evaluators (list of scalar evaluator):

  • pref_only (bool): insert only preferred operators

single_buckets

single_buckets(evals, pref_only = false)
  • evals (list of scalar evaluator):

  • pref_only (bool): insert only preferred operators

tiebreaking

tiebreaking(evals, pref_only = false, unsafe_pruning = true)
  • evals (list of scalar evaluator):

  • pref_only (bool): insert only preferred operators

  • unsafe_pruning (bool): allow unsafe pruning when the main evaluator regards a state a dead end

search engines

astar

astar(eval, pathmax = false, mpd = false, cost_type = NORMAL, bound = 2147483647)
  • eval (scalar evaluator):

  • pathmax (bool): use pathmax correction

  • mpd (bool): use multi-path dependence (LM-A*)

  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

  • bound (int): bound on plan cost

eager

eager(open, reopen_closed = false, pathmax = false, f_eval = 0, preferred = [], cost_type = NORMAL, bound = 2147483647)
  • open (openlist):

  • reopen_closed (bool): reopen closed nodes

  • pathmax (bool): use pathmax correction

  • f_eval (scalar evaluator): set evaluator for jump statistics

  • preferred (list of heuristic): use preferred operators of these heuristics

  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

  • bound (int): bound on plan cost

eager_greedy

eager_greedy(evals, preferred = [], boost = 0, cost_type = NORMAL, bound = 2147483647)
  • evals (list of scalar evaluator):

  • preferred (list of heuristic): use preferred operators of these heuristics

  • boost (int): boost value for preferred operator open lists

  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

  • bound (int): bound on plan cost

ehc

ehc(h, bfs_use_cost = false, preferred_usage = PRUNE_BY_PREFERRED, preferred = [], cost_type = NORMAL, bound = 2147483647)
  • h (heuristic):

  • bfs_use_cost (bool): use cost for bfs

  • preferred_usage ({PRUNE_BY_PREFERRED, RANK_PREFERRED_FIRST}): preferred operator usage

  • preferred (list of heuristic): use preferred operators of these heuristics

  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

  • bound (int): bound on plan cost

iterated

iterated(engine_configs, pass_bound = true, repeat_last = false, continue_on_fail = false, continue_on_solve = true, plan_counter = 0, cost_type = NORMAL, bound = 2147483647)
  • engine_configs (list of parse tree (this just means the input is parsed at a later point. The real type is probably a search engine.)):

  • pass_bound (bool): use bound from previous search

  • repeat_last (bool): repeat last phase of search

  • continue_on_fail (bool): continue search after no solution found

  • continue_on_solve (bool): continue search after solution found

  • plan_counter (int): start enumerating plans with this number

  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

  • bound (int): bound on plan cost

lazy

lazy(open, reopen_closed = false, preferred = [], cost_type = NORMAL, bound = 2147483647)
  • open (openlist):

  • reopen_closed (bool): reopen closed nodes

  • preferred (list of heuristic): use preferred operators of these heuristics

  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

  • bound (int): bound on plan cost

lazy_greedy

lazy_greedy(evals, preferred = [], reopen_closed = false, boost = 1000, cost_type = NORMAL, bound = 2147483647)
  • evals (list of scalar evaluator):

  • preferred (list of heuristic): use preferred operators of these heuristics

  • reopen_closed (bool): reopen closed nodes

  • boost (int): boost value for preferred operator open lists

  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

  • bound (int): bound on plan cost

lazy_wastar

lazy_wastar(evals, preferred = [], reopen_closed = true, boost = 1000, w = 1, cost_type = NORMAL, bound = 2147483647)
  • evals (list of scalar evaluator):

  • preferred (list of heuristic): use preferred operators of these heuristics

  • reopen_closed (bool): reopen closed nodes

  • boost (int): boost value for preferred operator open lists

  • w (int): heuristic weight

  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

  • bound (int): bound on plan cost

scalar evaluators

g

g()

max

max(heuristics, cost_type = NORMAL)
  • heuristics (list of heuristic):

  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

pref

pref()

sum

sum(evals)
  • evals (list of scalar evaluator):

weight

weight(evals, weight)
  • evals (list of scalar evaluator):

  • weight (int):

landmarks graphs

lm_exhaust

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)
  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

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

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)
  • m (int): m (as in h^m)

  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

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

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_graphs (list of landmarks graph):

  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

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

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)
  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

  • 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_search(max_depth = 10, num_tries = 10, uniform_sampling = false, cost_type = NORMAL, reasonable_orders = false, only_causal_landmarks = false, disjunctive_landmarks = true, conjunctive_landmarks = true, no_orders = false, lm_cost_type = NORMAL)
  • max_depth (int): max depth

  • num_tries (int): max number of tries

  • uniform_sampling (bool): uniform sampling

  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

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

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)
  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type

  • 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

synergys

lm_ff_syn

lm_ff_syn(lm_graph, admissible = false, optimal = false, alm = true, cost_type = NORMAL)
  • lm_graph (landmarks graph):

  • admissible (bool): get admissible estimate

  • optimal (bool): optimal cost sharing

  • alm (bool): use action landmarks

  • cost_type ({NORMAL, ONE, PLUSONE}): operator cost adjustment type