Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::ida_star_detail Namespace Reference

Classes

struct  DFSResult
 Outcome of one recursive DFS step inside IDA*. More...
 

Functions

template<typename Distance >
constexpr Distance distance_unreachable () noexcept
 Sentinel value representing an unreachable or pruned f-cost.
 
template<IDAStarDomain Domain, typename Solution , typename OnSolution >
requires SearchSolutionVisitor<OnSolution, Solution>
DFSResult< typename Domain::Distance > dfs (Domain &domain, typename Domain::State &state, SearchPath< typename Domain::Move > &path, const typename Domain::Distance g, const typename Domain::Distance threshold, const size_t depth, IDAStarResult< Solution, typename Domain::Distance > &result, OnSolution &on_solution)
 Core recursive DFS used by IDA* for a single threshold pass.
 

Function Documentation

◆ dfs()

template<IDAStarDomain Domain, typename Solution , typename OnSolution >
requires SearchSolutionVisitor<OnSolution, Solution>
DFSResult< typename Domain::Distance > Aleph::ida_star_detail::dfs ( Domain domain,
typename Domain::State &  state,
SearchPath< typename Domain::Move > &  path,
const typename Domain::Distance  g,
const typename Domain::Distance  threshold,
const size_t  depth,
IDAStarResult< Solution, typename Domain::Distance > &  result,
OnSolution on_solution 
)

◆ distance_unreachable()

template<typename Distance >
constexpr Distance Aleph::ida_star_detail::distance_unreachable ( )
constexprnoexcept

Sentinel value representing an unreachable or pruned f-cost.

For floating-point Distance types returns infinity(), which is well above any finite heuristic value and compares correctly with admissible heuristics that may themselves return infinity(). For integer types, where infinity() is not defined, returns max() instead.

Template Parameters
DistanceNumeric cost type from the domain.

Definition at line 126 of file State_Search_IDA_Star.H.