Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
search_move_ordering.H File Reference

Shared support for configurable successor ordering heuristics. More...

#include <concepts>
#include <cstddef>
#include <optional>
#include <utility>
#include <tpl_array.H>
#include <tpl_hash.H>
#include <tpl_sort_utils.H>
Include dependency graph for search_move_ordering.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Aleph::MoveOrderingStats
 Statistics collected by engines that reorder successor batches. More...
 
struct  Aleph::RankedMove< Move, Priority >
 One move plus the metadata used by ordering comparators. More...
 
class  Aleph::Killer_Move_Table< Move, false >
 Specialized killer table for moves without equality support (no-op). More...
 
class  Aleph::Killer_Move_Table< Move, true >
 Killer heuristic table for equality-comparable moves. More...
 
struct  Aleph::Null_History_Heuristic_Table
 Null history heuristic hook used when a domain has no move key. More...
 
class  Aleph::History_Heuristic_Table< Key, HashMapTable, Cmp >
 Sparse history heuristic table over Aleph hash maps. More...
 

Namespaces

namespace  Aleph
 Main namespace for Aleph-w library functions.
 

Enumerations

enum class  Aleph::MoveOrderingMode { Aleph::Domain , Aleph::Estimated_Score , Aleph::Estimated_Bound }
 Built-in move-ordering modes supported by the framework. More...
 

Functions

template<typename Move , typename Priority , typename BetterPriority >
void Aleph::sort_ranked_moves (Array< RankedMove< Move, Priority > > &moves, BetterPriority better_priority, const bool prefer_killer, const bool prefer_history)
 Sort one materialized move batch using priority and optional hooks.
 

Detailed Description

Shared support for configurable successor ordering heuristics.

This module keeps move ordering intentionally lightweight:

  • a small enum describing the ordering mode requested by the user,
  • per-run ordering statistics,
  • optional killer/history heuristic tables,
  • helpers to sort materialized successor batches with Aleph sort utilities.

Search engines remain responsible for deciding when ordering is meaningful and how priorities are computed (for example, shallow evaluation in Alpha-Beta vs optimistic bounds in branch and bound).

Author
Leandro Rabindranath León

Definition in file search_move_ordering.H.