PBeFS
Parallel Best-First Search
Loading...
Searching...
No Matches
SlowDomain< D > Class Template Reference

a Domain whose expansions cost a given amount of extra work More...

#include <PBeFS/astar/SlowDomain.h>

Public Types

using state_type = state_t< D >
 the state type
using cost_type = cost_t< D >
 the cost type

Public Member Functions

 SlowDomain (const D &d, unsigned long work)
 constructor, taking the Domain (which must outlive this) and the work
state_type initial_state (void) const
bool is_goal (const state_type &s) const
std::uint64_t hash (const state_type &s) const
cost_type heuristic (const state_type &s) const
template<class F>
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>
requires OperatorDomain< D >
void for_each_successor (const state_type &s, cost_type h, std::uint8_t op, F &&f) const
std::size_t num_features (void) const
template<class F>
requires FeatureDomain< D >
void for_each_feature (const state_type &s, F &&f) const
std::size_t num_abstract_features (void) const
std::size_t abstract_feature (std::size_t i) const
std::uint64_t abstract_state (const state_type &s) const
std::uint64_t perfect_hash (const state_type &s) const
std::size_t num_nblocks (void) const
std::size_t nblock (const state_type &s) const
template<class F>
requires NBlockDomain< D >
void for_each_nblock_successor (std::size_t b, F &&f) const
cost_type pairwise_heuristic (const state_type &s, const state_type &t) const

Detailed Description

template<class D>
class PBeFS_di_unipi_it::SlowDomain< D >

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.

Member Typedef Documentation

◆ cost_type

template<class D>
using cost_type = cost_t< D >

the cost type

◆ state_type

template<class D>
using state_type = state_t< D >

the state type

Constructor & Destructor Documentation

◆ SlowDomain()

template<class D>
SlowDomain ( const D & d,
unsigned long work )
inline

constructor, taking the Domain (which must outlive this) and the work

Member Function Documentation

◆ abstract_feature()

template<class D>
std::size_t abstract_feature ( std::size_t i) const
inlinenodiscard

◆ abstract_state()

template<class D>
std::uint64_t abstract_state ( const state_type & s) const
inlinenodiscard

◆ for_each_feature()

template<class D>
template<class F>
requires FeatureDomain< D >
void for_each_feature ( const state_type & s,
F && f ) const
inline

◆ for_each_nblock_successor()

template<class D>
template<class F>
requires NBlockDomain< D >
void for_each_nblock_successor ( std::size_t b,
F && f ) const
inline

◆ for_each_successor() [1/2]

template<class D>
template<class F>
void for_each_successor ( const state_type & s,
cost_type h,
F && f ) const
inline

the successors of D, after work iterations of busy work

◆ for_each_successor() [2/2]

template<class D>
template<class F>
requires OperatorDomain< D >
void for_each_successor ( const state_type & s,
cost_type h,
std::uint8_t op,
F && f ) const
inline

◆ hash()

template<class D>
std::uint64_t hash ( const state_type & s) const
inlinenodiscard

◆ heuristic()

template<class D>
cost_type heuristic ( const state_type & s) const
inlinenodiscard

◆ initial_state()

template<class D>
state_type initial_state ( void ) const
inlinenodiscard

◆ is_goal()

template<class D>
bool is_goal ( const state_type & s) const
inlinenodiscard

◆ nblock()

template<class D>
std::size_t nblock ( const state_type & s) const
inlinenodiscard

◆ num_abstract_features()

template<class D>
std::size_t num_abstract_features ( void ) const
inlinenodiscard

◆ num_features()

template<class D>
std::size_t num_features ( void ) const
inlinenodiscard

◆ num_nblocks()

template<class D>
std::size_t num_nblocks ( void ) const
inlinenodiscard

◆ pairwise_heuristic()

template<class D>
cost_type pairwise_heuristic ( const state_type & s,
const state_type & t ) const
inlinenodiscard

◆ perfect_hash()

template<class D>
std::uint64_t perfect_hash ( const state_type & s) const
inlinenodiscard

The documentation for this class was generated from the following file: