2719
Comment: updated syntax
|
← Revision 7 as of 2023-07-28 10:15:12 ⇥
0
This page has long been replaced by Doc/OpenList. It wasn't detected as orphaned because it referenced itself.
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
#pragma section-numbers 2 Back to the HomePage. = Open lists = <<TableOfContents>> <<Anchor(alt)>> == Alternation open list == {{{ alt(openlists, boost=0) }}} Alternates between several open lists. * `openlists` (list of [[OpenList]]s): open lists * `boost` (int): boost value for sub-open-lists that are restricted to preferred operator nodes ''Preferred operators:'' Preferred operators are only taken from sub-open-lists that do not consider the evaluated state a dead end. ''Dead ends:'' A state is considered a dead end if either all alternated open lists agree that it is a dead end or at least one reliable open list considers is a dead end. A state is never inserted into a sub-open-list that considers it a dead end. Note: The treatment of dead ends is different from the one described in the [[http://tr.informatik.uni-freiburg.de/reports/report258/report00258.ps.gz|technical report]] "The More, the Merrier: Combining Heuristic Estimators for Satisficing Planning (Extended Version)" (Department of Computer Science at Freiburg University, No. 258, 2010) <<Anchor(pareto)>> == Pareto open list == {{{ pareto(evals, pref_only=false, state_uniform_selection=false) }}} Selects one of the Pareto-optimal (regarding the sub-evaluators) entry for removal. * `evals` (list of [[ScalarEvaluator]]s): scalar evaluators * `pref_only` (bool): insert only nodes generated by preferred operators * `state_uniform_selection` (bool): When removing an entry, we select a non-dominated bucket and return its oldest entry. If this option is false, we select uniformly from the non-dominated buckets; if the option is true, we weight the buckets with the number of entries. <<Anchor(single)>> == Standard open list == {{{ single(evaluator, pref_only=false) }}} Standard open list that uses a single evaluator. * `evaluator` (ScalarEvaluator): scalar evaluator * `pref_only` (bool): insert only nodes generated by preferred operators <<Anchor(single_buckets)>> == Bucket-based open list == {{{ single_buckets(evaluator, pref_only=false) }}} Bucket-based open list implementation that uses a single evaluator. * `evaluator` (ScalarEvaluator): scalar evaluator * `pref_only` (bool): insert only nodes generated by preferred operators <<Anchor(tiebreaking)>> == Tie-breaking open list == {{{ tiebreaking(evals, pref_only=false, unsafe_pruning=true) }}} * `evals` (list of [[ScalarEvaluator]]s): scalar evaluators * `pref_only` (bool): insert only nodes generated by preferred operators * `unsafe_pruning` (bool): allow unsafe pruning when the main evaluator regards a state a dead end |