|
PBeFS
Parallel Best-First Search
|
Header file for the work distribution functions of hash-based parallel A*: each one maps a state to its owner among p workers [see section 6 of Fukunaga et al., 2017, and Jinnai and Fukunaga, JAIR 2017]. More...
#include <concepts>#include <cstddef>#include <cstdint>#include <random>#include <string>#include <utility>#include <vector>#include "PBeFS/astar/Domain.h"#include "ADS/dictionary/RandomHashing.h"Go to the source code of this file.
Classes | |
| class | ZobristDistribution< D > |
| HDA*[Z]: Zobrist hashing of the features of the state. More... | |
| class | AbstractZobristDistribution< D > |
| HDA*[Z,Afeature]: Zobrist hashing of the abstract features (AZHDA*). More... | |
| class | AbstractStateDistribution< D > |
| HDA*[Z,Astate]: the abstract state of the Domain, hashed (AHDA*). More... | |
| class | PerfectHashDistribution< D > |
| HDA*[P]: the perfect hash of the Domain modulo p. More... | |
| class | StateHashDistribution< D > |
| the hash of the closed list, remixed with a seed More... | |
| class | RandomDistribution< D > |
| a random worker for each generated state More... | |
Namespaces | |
| namespace | PBeFS_di_unipi_it |
| namespace for the Parallel Best-First Search library | |
Concepts | |
| concept | PBeFS_di_unipi_it::IncrementalDistribution |
| a distribution whose owners follow the moves | |
Functions | |
| unsigned | reduce (std::uint64_t h, unsigned p) noexcept |
| the worker in \( \{ 0 , \ldots , p - 1 \} \) of a 64-bit hash value | |
| unsigned | key_owner (std::uint32_t k, unsigned p) noexcept |
| the worker in \( \{ 0 , \ldots , p - 1 \} \) of a 32-bit key | |
| template<Domain D, class X> | |
| std::uint32_t | distribution_key (const X &x, const state_t< D > &s) |
| the key of s for x, 0 if X is not an IncrementalDistribution | |
| template<Domain D, class X> | |
| auto | successor_owners (const X &x, const state_t< D > &s, std::uint32_t k, unsigned p) |
| the owner among p workers and the key of each successor of s | |
Header file for the work distribution functions of hash-based parallel A*: each one maps a state to its owner among p workers [see section 6 of Fukunaga et al., 2017, and Jinnai and Fukunaga, JAIR 2017].
A distribution is a class with a method owner( s , p ) returning the worker in \( \{ 0 , \ldots , p - 1 \} \) that owns the state \( s \). In the notation of Jinnai and Fukunaga, HDA*[ hash , abstraction ]: