SlowDomain
Declared in astar/SlowDomain.h; the same class on the site of Doxygen.
-
template<class D>
class SlowDomain a Domain whose expansions cost a given amount of extra work
Wraps the Domain D and adds to each expansion work iterations of the computation \( j = 11 i \bmod 9999943 \), \( i = j \), which keeps a core busy with no memory access, as in the experiment of Jinnai and Fukunaga (JAIR 2017, section 3.1.1) on the effect of slow expansions. It is meant to compare the searches when the expansion dominates, as in planning with an expensive heuristic or in motion planning.
Public Types
Public Functions
-
inline SlowDomain(const D &d, unsigned long work)
constructor, taking the Domain (which must outlive this) and the work
-
inline state_type initial_state(void) const
-
inline bool is_goal(const state_type &s) const
-
inline std::uint64_t hash(const state_type &s) const
-
inline cost_type heuristic(const state_type &s) const
-
template<class F>
inline void for_each_successor(const state_type &s, cost_type h, F &&f) const the successors of D, after work iterations of busy work
-
template<class F>
inline void for_each_successor( - const state_type &s,
- cost_type h,
- std::uint8_t op,
- F &&f
-
inline std::size_t num_features(void) const
-
template<class F>
inline void for_each_feature(const state_type &s, F &&f) const
-
inline std::size_t num_abstract_features(void) const
-
inline std::size_t abstract_feature(std::size_t i) const
-
inline std::uint64_t abstract_state(const state_type &s) const
-
inline std::uint64_t perfect_hash(const state_type &s) const
-
inline std::size_t num_nblocks(void) const
-
inline std::size_t nblock(const state_type &s) const
-
inline cost_type pairwise_heuristic(const state_type &s, const state_type &t) const
-
inline SlowDomain(const D &d, unsigned long work)