Revision 14 as of 2019-03-02 21:34:34

Clear message

Alternation open list

alternates between several open lists.

alt(sublists, boost=0)

Epsilon-greedy open list

Chooses an entry uniformly randomly with probability 'epsilon', otherwise it returns the minimum entry. The algorithm is based on

epsilon_greedy(eval, pref_only=false, epsilon=0.2, random_seed=-1)

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, random_seed=-1)

Best-first open list

Open list that uses a single evaluator and FIFO tiebreaking.

single(eval, pref_only=false)

Implementation Notes: Elements with the same evaluator value are stored in double-ended queues, called "buckets". The open list stores a map from evaluator values to buckets. Pushing and popping from a bucket runs in constant time. Therefore, inserting and removing an entry from the open list takes time O(log(n)), where n is the number of buckets.

Tie-breaking open list

tiebreaking(evals, pref_only=false, unsafe_pruning=true)

Type-based open list

Uses multiple evaluators to assign entries to buckets. All entries in a bucket have the same evaluator values. When retrieving an entry, a bucket is chosen uniformly at random and one of the contained entries is selected uniformly randomly. The algorithm is based on

type_based(evaluators, random_seed=-1)