Node

Declared in astar/Node.h; the same struct on the site of Doxygen.

template<class State, class Cost>
struct Node

a node of the search graph

There is one canonical Node per generated state. The field closed tells whether the Node is in CLOSED, i.e., it has been expanded with its current g; a Node reached again through a cheaper path is moved back to OPEN by clearing it [see line 11 of Algorithm 1 of Fukunaga et al., 2017], while expanded stays set, so that the re-expansions can be counted. The field op is used by the OperatorDomain only, and key by a distribution whose owners follow the moves [see IncrementalDistribution] only; with a state of one or two words both fit in the padding.

Public Functions

inline Cost f(void) const noexcept

the estimate \( f = g + h \) of the cost of a solution through the Node

Public Members

State state

the state

Cost g

the cost of the best path found from the root

Cost h

the heuristic estimate of the cost to a goal

Node *parent

the predecessor on that path (nullptr at the root)

bool closed

true if expanded with the current g

bool expanded

true if ever expanded

std::uint8_t op = no_op

the operator that generated the state

std::uint32_t key = 0

the key of the state for its owner