2307
Comment:
|
2891
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
#pragma section-numbers 2 | |
Line 7: | Line 8: |
* [[#alt|alternation open list]] * [[#pareto|pareto open list]] * [[#single|standard open list]] * [[#single_buckets|bucket-based open list]] * [[#tiebreaking|tie-breaking open list]] |
<<TableOfContents>> |
Line 15: | Line 11: |
=== Alternation open list === | == Alternation open list == |
Line 18: | Line 14: |
alt(open_list1, open_list2, ..., boost=1000) | alt(open_list1, open_list2, ..., boost=0) |
Line 25: | Line 21: |
''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) |
|
Line 26: | Line 36: |
=== Pareto open list === | == Pareto open list == |
Line 39: | Line 49: |
=== Standard open list === | == Standard open list == |
Line 51: | Line 61: |
=== Bucket-based open list === | == Bucket-based open list == |
Line 62: | Line 72: |
=== Tie-breaking open list === | == Tie-breaking open list == |
Back to the HomePage.
Open lists
Contents
1. Alternation open list
alt(open_list1, open_list2, ..., boost=0)
Alternates between several open lists.
open_list1, open_list2, ... (comma-separated list of OpenLists): 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 technical report "The More, the Merrier: Combining Heuristic Estimators for Satisficing Planning (Extended Version)" (Department of Computer Science at Freiburg University, No. 258, 2010)
2. Pareto open list
pareto(evaluator1, evaluator2, ..., pref_only=false, state_uniform_selection=false)
Selects one of the Pareto-optimal (regarding the sub-evaluators) entry for removal.
evaluator1, evaluator2, ... (comma-separated list of ScalarEvaluators): 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.
3. 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
4. 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
5. Tie-breaking open list
tiebreaking(evaluator1, evaluator2, ..., pref_only=false, unsafe_pruning=true)
evaluator1, evaluator2, ... (comma-separated list of ScalarEvaluators): 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