|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Exploration controls shared across engines. More...
#include <state_search_common.H>
Public Types | |
| enum class | Strategy { Depth_First , Best_First } |
| Traversal strategy supported by the engine. More... | |
Public Attributes | |
| Strategy | strategy = Strategy::Depth_First |
| Traversal strategy. | |
| MoveOrderingMode | move_ordering = MoveOrderingMode::Domain |
| Successor-ordering mode. | |
| bool | stop_at_first_solution = true |
| Stop when the first goal is found. | |
| bool | use_killer_moves = false |
| Enable experimental killer heuristic where supported. | |
| bool | use_history_heuristic = false |
| Enable experimental history heuristic where supported. | |
Exploration controls shared across engines.
Only depth-first traversal is enabled in this initial phase. The struct is intentionally small so that later phases can extend it without forcing a large hierarchy today.
Definition at line 289 of file state_search_common.H.
Traversal strategy supported by the engine.
Best_First is **only implemented by Aleph::Branch_And_Bound**. Passing Best_First to Aleph::Alpha_Beta raises std::invalid_argument at runtime. When the engine type is known at compile time, the SupportsBestFirst<Engine> concept/trait (see above) can be used in templates or a static_assert to forbid Best_First for unsupported engines. However, since ExplorationPolicy::strategy can be set dynamically at runtime, this restriction cannot be enforced purely at compile time for all call sites; ensure you pass the correct strategy for the engine you are using. | Enumerator | |
|---|---|
| Depth_First | Recursive depth-first traversal (all engines). |
| Best_First | Priority-guided expansion; only supported by Branch_And_Bound. |
Definition at line 303 of file state_search_common.H.
| MoveOrderingMode Aleph::ExplorationPolicy::move_ordering = MoveOrderingMode::Domain |
Successor-ordering mode.
Definition at line 310 of file state_search_common.H.
Referenced by Aleph::Alpha_Beta< Domain >::collect_ordered_moves(), Aleph::Alpha_Beta< Domain >::ordering_active(), Aleph::Branch_And_Bound< Domain, ObjectivePolicy >::ordering_active_for_depth_first(), Aleph::Negamax< Domain >::search_impl(), TEST(), TEST(), TEST(), TEST(), Aleph::Alpha_Beta< Domain >::validate_ordering_configuration(), and Aleph::Branch_And_Bound< Domain, ObjectivePolicy >::validate_ordering_configuration().
Stop when the first goal is found.
Definition at line 311 of file state_search_common.H.
Referenced by Aleph::Branch_And_Bound< Domain, ObjectivePolicy >::default_policy(), Aleph::Negamax< Domain >::default_policy(), main(), Aleph::search_engine_detail::stop_after_solution(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), and TEST().
| Strategy Aleph::ExplorationPolicy::strategy = Strategy::Depth_First |
Traversal strategy.
Definition at line 309 of file state_search_common.H.
Referenced by Aleph::Branch_And_Bound< Domain, ObjectivePolicy >::default_policy(), Aleph::Negamax< Domain >::default_policy(), main(), run_strategy(), Aleph::Depth_First_Backtracking< Domain >::search(), Aleph::Branch_And_Bound< Domain, ObjectivePolicy >::search(), Aleph::IDA_Star_State_Search< Domain >::search(), Aleph::Branch_And_Bound< Domain, ObjectivePolicy >::search(), Aleph::Depth_First_Backtracking< Domain >::search(), Aleph::Negamax< Domain >::search_impl(), Aleph::Alpha_Beta< Domain >::search_impl(), TEST(), TEST(), TEST(), TEST(), and TEST().
Enable experimental history heuristic where supported.
Definition at line 313 of file state_search_common.H.
Referenced by Aleph::Alpha_Beta< Domain >::collect_ordered_moves(), Aleph::Alpha_Beta< Domain >::move_history_score(), Aleph::Alpha_Beta< Domain >::ordering_active(), Aleph::Alpha_Beta< Domain >::record_cutoff_move(), Aleph::Negamax< Domain >::search_impl(), Aleph::Alpha_Beta< Domain >::validate_ordering_configuration(), and Aleph::Branch_And_Bound< Domain, ObjectivePolicy >::validate_ordering_configuration().
Enable experimental killer heuristic where supported.
Definition at line 312 of file state_search_common.H.
Referenced by Aleph::Alpha_Beta< Domain >::collect_ordered_moves(), Aleph::Alpha_Beta< Domain >::ordering_active(), Aleph::Alpha_Beta< Domain >::record_cutoff_move(), Aleph::Negamax< Domain >::search_impl(), Aleph::Alpha_Beta< Domain >::validate_ordering_configuration(), and Aleph::Branch_And_Bound< Domain, ObjectivePolicy >::validate_ordering_configuration().