SearchStats

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

struct SearchStats

the counters of a search

The vectors have one entry per worker, a single one for a sequential search. The field sent counts the nodes handed to another worker, so that the communication overhead of Jinnai and Fukunaga (JAIR 2017) is \( \mathrm{CO} = \mathrm{sent} / \mathrm{generated} \), and the load balance is \( \mathrm{LB} = \max_i E_i / ( \frac{1}{p} \sum_i E_i ) \), \( E_i \) being the expansions of the worker \( i \) in expanded_by.

Public Functions

double load_balance(void) const

the load balance \( \mathrm{LB} \), the largest over the mean of the expansions per worker (1 is a perfect balance)

double communication_overhead(void) const

the communication overhead \( \mathrm{CO} \), the nodes sent to another worker over the nodes generated

Public Members

std::uint64_t expanded = 0

expansions, re-expansions included

std::uint64_t reexpanded = 0

expansions of a node already expanded

std::uint64_t generated = 0

successors generated

std::uint64_t duplicates = 0

generated states already known with a \( g \) not larger

std::uint64_t sent = 0

nodes sent to another worker

std::uint64_t messages = 0

batches of nodes sent

std::uint64_t stored = 0

distinct nodes stored at the end

double seconds = 0

wall-clock time of the search

std::vector<std::uint64_t> expanded_by

expansions of each worker

std::vector<std::uint64_t> stored_by

nodes stored by each worker