Differences between revisions 2 and 7 (spanning 5 versions)
Revision 2 as of 2010-08-02 15:10:10
Size: 2307
Editor: GabiRoeger
Comment:
Revision 7 as of 2023-07-28 10:15:12
Size: 0
Editor: MalteHelmert
Comment: 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:
Back to the HomePage.



= Open lists =

 * [[#alt|alternation open list]]
 * [[#pareto|pareto open list]]
 * [[#single|standard open list]]
 * [[#single_buckets|bucket-based open list]]
 * [[#tiebreaking|tie-breaking open list]]


<<Anchor(alt)>>
=== Alternation open list ===

{{{
alt(open_list1, open_list2, ..., boost=1000)
}}}

Alternates between several open lists.
 * `open_list1, open_list2, ...` (comma-separated list of [[OpenList]]s): open lists
 * `boost` (int): boost value for sub-open-lists that are restricted to preferred operator nodes

<<Anchor(pareto)>>
=== 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 [[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(evaluator1, evaluator2, ..., pref_only=false,
            unsafe_pruning=true)
}}}

 * `evaluator1, evaluator2, ...` (comma-separated 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