|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
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. | |
| 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 | ||
| ) |
Core recursive DFS used by IDA* for a single threshold pass.
Returns found = true immediately when a goal is reached. Otherwise propagates the minimum f-value that exceeded threshold upward so the caller can set the next iteration's threshold.
Definition at line 150 of file State_Search_IDA_Star.H.
References Aleph::Array< T >::append(), Aleph::SearchResult< Solution, Compare >::best_solution, Aleph::BestSolution< Solution, Compare >::consider(), dfs(), Aleph::divide_and_conquer_partition_dp(), Aleph::SearchStats::expanded_states, Aleph::ida_star_detail::DFSResult< Distance >::found, Aleph::SearchStats::generated_successors, h, Aleph::search_engine_detail::is_terminal_state(), Aleph::SearchStats::limit_hits, Aleph::LimitReached, Aleph::SearchResult< Solution, Compare >::limits, Aleph::SearchLimits::max_depth, Aleph::SearchStats::max_depth_reached, Aleph::SearchLimits::max_expansions, Aleph::ida_star_detail::DFSResult< Distance >::next_bound, Aleph::SearchStats::pruned_by_depth, Aleph::SearchStats::pruned_by_domain, Aleph::Array< T >::remove_last(), Aleph::search_engine_detail::should_prune_state(), Aleph::SearchStats::solutions_found, Aleph::SearchResult< Solution, Compare >::stats, Aleph::SearchResult< Solution, Compare >::status, Aleph::StoppedOnSolution, Aleph::SearchStats::terminal_states, Aleph::IDAStarResult< Solution, Distance >::total_cost, and Aleph::SearchStats::visited_states.
Referenced by dfs(), and Aleph::IDA_Star_State_Search< Domain >::search().
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.
| Distance | Numeric cost type from the domain. |
Definition at line 126 of file State_Search_IDA_Star.H.