Differences between revisions 1 and 5 (spanning 4 versions)
Revision 1 as of 2014-01-27 10:59:03
Size: 2717
Editor: XmlRpcBot
Comment:
Revision 5 as of 2015-09-10 15:22:40
Size: 2459
Editor: XmlRpcBot
Comment:
Deletions are marked like this. Additions are marked like this.
Line 11: Line 11:
 * ''sublists'' (list of [[Doc/OpenList|OpenList]]): sub 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.
 * ''sublists'' (list of [[Doc/OpenList|OpenList]]): open lists between which this one alternates
 * ''boost'' (int): boost value for contained open lists that are restricted to preferred successors
== Epsilon-greedy open list ==
Chooses an entry uniformly randomly with probability 'epsilon', otherwise it returns the minimum entry.
{{{
epsilon_greedy(eval, pref_only=false, epsilon=0.2)
}}}
Line 15: Line 19:
'''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 it a dead end. A state is never inserted into a sub-open-list that considers it a dead end.
Line 17: Line 20:
'''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 [[Doc/Heuristic|Heuristic]] Estimators for Satisficing Planning (Extended Version)" (Department of Computer Science at Freiburg University, No. 258, 2010)
 * ''eval'' ([[Doc/ScalarEvaluator|ScalarEvaluator]]): scalar evaluator
 * ''pref_only'' (bool): insert only nodes generated by preferred operators
 * ''epsilon'' (double [0.0, 1.0]): probability for choosing the next entry randomly
Line 28: Line 32:
 * ''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.   * ''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.
Line 39: Line 43:
Bucket-based open list implementation that uses a single evaluator Bucket-based open list implementation that uses a single evaluator. Ties are broken in FIFO order.

Alternation open list

alternates between several open lists.

alt(sublists, boost=0)
  • sublists (list of OpenList): open lists between which this one alternates

  • boost (int): boost value for contained open lists that are restricted to preferred successors

Epsilon-greedy open list

Chooses an entry uniformly randomly with probability 'epsilon', otherwise it returns the minimum entry.

epsilon_greedy(eval, pref_only=false, epsilon=0.2)
  • eval (ScalarEvaluator): scalar evaluator

  • pref_only (bool): insert only nodes generated by preferred operators

  • epsilon (double [0.0, 1.0]): probability for choosing the next entry randomly

Pareto open list

Selects one of the Pareto-optimal (regarding the sub-evaluators) entries for removal.

pareto(evals, pref_only=false, state_uniform_selection=false)
  • evals (list of ScalarEvaluator): 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.

Standard open list

Standard open list that uses a single evaluator

single(eval, pref_only=false)
  • eval (ScalarEvaluator): scalar evaluator

  • pref_only (bool): insert only nodes generated by preferred operators

Bucket-based open list

Bucket-based open list implementation that uses a single evaluator. Ties are broken in FIFO order.

single_buckets(eval, pref_only=false)
  • eval (ScalarEvaluator): scalar evaluator

  • pref_only (bool): insert only nodes generated by preferred operators

Tie-breaking open list

tiebreaking(evals, pref_only=false, unsafe_pruning=true)
  • evals (list of ScalarEvaluator): 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

FastDownward: Doc/OpenList (last edited 2024-01-11 22:26:38 by XmlRpcBot)