110 s.node = (
m.to == 1) ? 0 : (
m.to == 2) ? 1 : s.node;
113 template <
typename Visitor>
173 s.node = (
m.to == 1) ? 0 : 1;
176 template <
typename Visitor>
188 return s.node == 2 ? 0 : 100;
209 std::cout <<
"=== Scenario A: unreachable goal ===\n";
210 std::cout <<
"Found solution : " << (result.found_solution() ?
"yes" :
"no") <<
"\n";
211 std::cout <<
"Status : " << (result.exhausted() ?
"Exhausted" :
"other") <<
"\n";
212 std::cout <<
"States visited : " << result.stats.visited_states <<
"\n";
213 std::cout <<
"IDA* iterations: " << result.iterations.size() <<
"\n";
224 std::cout <<
"=== Scenario B: inadmissible heuristic ===\n";
225 std::cout <<
"Found solution : " << (result.found_solution() ?
"yes" :
"no") <<
"\n";
226 std::cout <<
"Total cost : " << result.total_cost <<
"\n";
227 std::cout <<
"Note: optimal cost is 2; inadmissible h may or may not match it.\n";
IDA* (Iterative Deepening A*) over implicit state spaces.
IDA* engine for implicit state spaces with an admissible heuristic.
Distance heuristic(const State &s) const noexcept
void apply(State &s, const Move &m) const noexcept
bool is_goal(const State &s) const noexcept
void undo(State &s, const Move &m) const noexcept
State_Key state_key(const State &s) const noexcept
bool for_each_successor(const State &s, Visitor visit) const
Distance cost(const State &, const Move &m) const noexcept
State_Key state_key(const State &s) const noexcept
void apply(State &s, const Move &m) const noexcept
void undo(State &s, const Move &m) const noexcept
bool for_each_successor(const State &s, Visitor visit) const
Distance heuristic(const State &) const noexcept
Distance cost(const State &, const Move &m) const noexcept
bool is_goal(const State &s) const noexcept
Main namespace for Aleph-w library functions.
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.
FooMap m(5, fst_unit_pair_hash, snd_unit_pair_hash)