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

Concept for a map tracking the best bound seen per visited state. More...

#include <state_search_common.H>

Concept definition

template<typename Map, typename Key, typename Objective>
concept Aleph::VisitedBoundMap = requires(Map &map, const Key &key, const Objective &obj) {
map.insert(key, obj);
map.remove(key);
{ map.search(key) == nullptr } -> std::convertible_to<bool>;
map.search(key)->second = obj;
}
Concept for a map tracking the best bound seen per visited state.
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.

Detailed Description

Concept for a map tracking the best bound seen per visited state.

Compatible with Aleph::SearchStorageMap. The engine uses search(key) to probe for an existing bound and insert(key, bound) to record one. Updating an existing entry is done by mutating the value through the pointer returned by search.

Engines may use remove(key) to roll back the visited map if an exception occurs during exploration of a newly inserted state.

Template Parameters
MapContainer type.
KeyState key type.
ObjectiveGoal metric type.

Definition at line 163 of file state_search_common.H.