Struct alcibiades::stock::SimpleSearch [] [src]

pub struct SimpleSearch<T: Ttable, N: SearchNode> { /* fields omitted */ }

Executes depth-first alpha-beta searches with null move pruning and late move reductions.

The alpha-beta algorithm is an enhancement to the minimax search algorithm. It maintains two values, alpha and beta. They represent the minimum score that the maximizing player is assured of (lower bound) and the maximum score that the minimizing player is assured of (upper bound) respectively.

Null move pruning is a method to reduce the search space by trying a "null" or "passing" move, then seeing if the score of the subtree search is still high enough to cause a beta cutoff. Nodes are saved by reducing the depth of the subtree under the null move.

Late move reductions save search space by reducing the search depth for moves that are ordered closer to the end (likely fail-low nodes).

Important note: SimpleSearch ignores the searchmoves search parameter. It always analyses all legal moves in the root position.

Trait Implementations

impl<T, N> Search for SimpleSearch<T, N> where
    T: Ttable,
    N: SearchNode
[src]

The type of transposition table that the implementation works with. Read more

The type of search node that the implementation works with.

The type of auxiliary data that search progress reports carry.

Spawns a new search thread. Read more

impl<T: Ttable, N: SearchNode> SetOption for SimpleSearch<T, N>
[src]

Returns a list of supported configuration options (name and description). Read more

Updates the internal state to keep up with the new value for a given configuration option. Read more