Struct alcibiades::stock::StdSearchExecutor
[−]
[src]
pub struct StdSearchExecutor<T: HashTable, N: SearchNode> { /* fields omitted */ }
Implements the SearchExecutor
trait.
Executes 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: StdSearchExecutor
ignores the searchmoves
search parameter. It always analyses all legal moves in the root
position.
Trait Implementations
impl<T, N> SearchExecutor for StdSearchExecutor<T, N> where T: HashTable + 'static,
N: SearchNode + 'static
[src]
N: SearchNode + 'static
type HashTable = T
The type of transposition (hash) table that the implementation works with. Read more
type SearchNode = N
The type of search node that the implementation works with.
type ReportData = ()
The type of auxiliary data that search progress reports carry.
fn new(tt: Arc<T>) -> StdSearchExecutor<T, N>
Creates a new instance.
fn start_search(&mut self, params: SearchParams<N>, _: Option<&RemainingTime>)
Starts a new search. Read more
fn try_recv_report(&mut self)
-> Result<SearchReport<Self::ReportData>, TryRecvError>
-> Result<SearchReport<Self::ReportData>, TryRecvError>
Attempts to return a search progress report without blocking.
fn wait_report(&self, duration: Duration)
Waits until a search progress report is available, timing out after a specified duration or earlier. Read more
fn terminate_search(&mut self)
Requests the termination of the current search. Read more
impl<T: HashTable, N: SearchNode> SetOption for StdSearchExecutor<T, N>
[src]
fn options() -> Vec<(String, OptionDescription)>
Returns a list of supported configuration options (name and description). Read more
fn set_option(name: &str, value: &str)
Sets a new value for a given configuration option. Read more