Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::IncrementalEvaluator Concept Reference

Concept for adversarial-search domains that can estimate a child score without modifying state (incremental evaluator for Alpha_Beta Estimated_Score move ordering). More...

#include <state_search_common.H>

Concept definition

template<typename Domain>
requires(Domain &domain,
const typename Domain::State &state,
const typename Domain::Move &move) {
{ domain.evaluate_after(state, move) }
-> std::convertible_to<typename Domain::Score>;
}
Concept for adversarial-search domains that can estimate a child score without modifying state (incre...
@ Domain
Preserve the order emitted by for_each_successor().

Detailed Description

Concept for adversarial-search domains that can estimate a child score without modifying state (incremental evaluator for Alpha_Beta Estimated_Score move ordering).

When a domain satisfies this concept, Aleph::Alpha_Beta and any other engine that supports Estimated_Score move ordering can compute shallow evaluation priorities for move ordering without calling apply()/undo() on each candidate move.

The expression domain.evaluate_after(state, move) must return a value convertible to Domain::Score and must represent a cheap heuristic estimate of the score of the child state obtained by applying move, without altering state.

Template Parameters
DomainAdversarial game domain type.

Definition at line 216 of file state_search_common.H.