46# ifndef STATE_SEARCH_H
47# define STATE_SEARCH_H
106template <
typename Domain>
109template <
typename Domain,
typename ObjectivePolicy = Maximize_Objective<
typename Domain::Objective>>
112template <
typename Domain>
115template <
typename Domain>
118template <IDAStarDomain Domain>
121template <AdversarialScore Score>
124template <SearchMove Move, AdversarialScore Score>
127template <SearchMove Move, AdversarialScore Score>
130template <SearchMove Move, AdversarialScore Score>
133template <
typename Solution>
Alpha-Beta pruning over the adversarial-search contract.
Minimal depth-first backtracking engine for implicit state spaces.
Reusable branch-and-bound engine for implicit optimization spaces.
Negamax search for two-player zero-sum turn-based games.
IDA* (Iterative Deepening A*) over implicit state spaces.
Generic memoization / transposition-table support for state search.
Collector that stores trace events in an Aleph list.
Adversarial search engine with Alpha-Beta pruning.
Tracks the best solution seen so far according to a comparator.
Reusable branch-and-bound engine over implicit state spaces.
Recursive depth-first backtracking over an implicit state space.
IDA* engine for implicit state spaces with an admissible heuristic.
Pure Negamax search over an implicit game tree.
Collector that stores accepted solutions in an Aleph list.
Transposition-table container built on top of Aleph hash maps.
Score type accepted by adversarial search engines.
Minimal requirement for search moves.
Concept for callbacks invoked on each accepted solution.
User-facing facade exported by the umbrella search header.
constexpr size_t Unlimited
Alias for Search_Unlimited.
Main namespace for Aleph-w library functions.
auto ida_star_search(Domain domain, typename Domain::State initial_state, ExplorationPolicy policy={}, SearchLimits limits={})
Convenience wrapper for a one-shot IDA* search.
constexpr size_t Search_Unlimited
Sentinel used by SearchLimits to mean "no bound".
SearchStatus
Final state of a search execution.
Divide_Conquer_DP_Result< Cost > divide_and_conquer_partition_dp(const size_t groups, const size_t n, Transition_Cost_Fn transition_cost, const Cost inf=dp_optimization_detail::default_inf< Cost >())
Optimize partition DP using divide-and-conquer optimization.
auto iterative_deepening_alpha_beta_search(Domain domain, typename Domain::State initial_state, Tracer &tracer, ExplorationPolicy policy=Alpha_Beta< Domain >::default_policy(), SearchLimits limits={}, AdversarialIterativeDeepeningOptions< typename Domain::Score > options={})
Iterative deepening over Alpha-Beta with optional aspiration windows.
auto iterative_deepening_negamax_search(Domain domain, typename Domain::State initial_state, ExplorationPolicy policy=Negamax< Domain >::default_policy(), SearchLimits limits={}, AdversarialIterativeDeepeningOptions< typename Domain::Score > options={})
Iterative deepening over Negamax without transposition table.
auto branch_and_bound_search(Domain domain, typename Domain::State initial_state, ExplorationPolicy policy=Branch_And_Bound< Domain, ObjectivePolicy >::default_policy(), SearchLimits limits={}, ObjectivePolicy objective={})
Convenience wrapper for one-shot branch and bound.
auto alpha_beta_search(Domain domain, typename Domain::State initial_state, ExplorationPolicy policy=Alpha_Beta< Domain >::default_policy(), SearchLimits limits={})
Convenience wrapper for one-shot Alpha-Beta search.
AdversarialTraceEventKind
Trace event kinds emitted by adversarial search engines.
MoveOrderingMode
Built-in move-ordering modes supported by the framework.
auto backtracking_search(Domain domain, typename Domain::State initial_state, ExplorationPolicy policy={}, SearchLimits limits={})
Convenience wrapper that runs a one-shot DFS/backtracking search.
auto negamax_search(Domain domain, typename Domain::State initial_state, ExplorationPolicy policy=Negamax< Domain >::default_policy(), SearchLimits limits={})
Convenience wrapper for one-shot Negamax search.
Shared support for configurable successor ordering heuristics.
Common infrastructure for implicit state-space search.
Controls for adversarial iterative deepening.
Aggregate result of adversarial iterative deepening.
Result of one adversarial search execution.
One trace event produced by an adversarial search.
Aspiration-window configuration for iterative deepening.
Exploration controls shared across engines.
Open addressing hash map using linear probing.
Objective policy for maximization problems.
Objective policy for minimization problems.
Snapshot of a complete optimization solution.
Hard bounds applied by the search engine.
Aggregates the outcome of one search execution.
Snapshot of a concrete solution encountered during the traversal.
Counters collected during a search run.