5 #include <boost/optional.hpp> 22 template <Automaton Aut>
41 unsigned depth = std::numeric_limits<unsigned>::max())
46 ,
ws_{aut->weightset().get()}
void set_depth(unsigned depth)
state_t get_state() const
state_t get_parent() const
weight_t get_weight() const
If there is no weight in the node then its weight is the weightset's maximum.
typename detail::state_t_of_impl< base_t< ValueSet > >::type state_t_of
void set_weight(weight_t weight)
value_impl< detail::weight_tag > weight
typename detail::weightset_t_of_impl< base_t< ValueSet > >::type weightset_t_of
state_t_of< automaton_t > state_t
typename detail::weight_t_of_impl< base_t< ValueSet > >::type weight_t_of
unsigned get_depth() const
boost::optional< weight_t > weight_
bool operator<(const dijkstra_node &other) const
Compare weights, used to order nodes in the shortest path heap.
void set_parent(state_t parent)
Dijkstra Node implementation.
const weightset_t_of< automaton_t > * weightset_ptr
We have 2 alternatives to raw pointer:
weight_t_of< automaton_t > weight_t
dijkstra_node(const automaton_t &aut, state_t state, boost::optional< weight_t > weight, state_t parent, unsigned depth=std::numeric_limits< unsigned >::max())