astar

The graph searches of A*, sequential and parallel, with their domains, work distributions and data structures.

Headers of the layer

Header

Description

astar.h

Graph searches of PBeFS save the one that needs MPI, HDAStarMPI.h.

Searches

Header

Description

astar/AStar.h

Sequential A* over a Domain, with the OPEN list Open

astar/IDAStar.h

The iterative-deepening A* search of a Domain

astar/DDDAStar.h

The A* search of a Domain with delayed duplicate detection on the disk

astar/HDAStar.h

Hash Distributed A* on a shared-memory machine.

astar/SPAStar.h

Simple Parallel A*: one OPEN and one CLOSED list shared by the workers.

astar/MQAStar.h

MultiQueue A*: one relaxed OPEN list and one CLOSED list shared by the workers.

astar/SafePBNF.h

Safe Parallel Best-NBlock-First search.

astar/PASE.h

Parallel A* for Slow Expansions.

astar/FarmAStar.h

A master-worker parallel A* on a farm with feedback

astar/HDAStarMPI.h

Hash Distributed A* with one MPI process per worker.

Work distributions

Header

Description

astar/Distribution.h

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].

Domains

Header

Description

astar/Domain.h

Concepts a search problem has to satisfy in order to be searched by the algorithms of the library, and for the few type helpers built upon them.

astar/SlidingTile.h

The sliding-tile puzzle on a board of at most 25 cells

astar/PatternDatabase.h

Pattern databases of the sliding-tile puzzles, i.e., the heuristics that store the exact distances of an abstraction of the puzzle.

astar/Grid.h

Pathfinding on a GridMap with 4 (Moves == 4) or 8 (Moves == 8) moves

astar/ExplicitGraph.h

A weighted graph given explicitly, searched from a source to a target

astar/SlowDomain.h

A Domain whose expansions cost a given amount of extra work

astar/SequenceScore.h

The sliding-tile puzzle with the sequence score heuristic of Nilsson

astar/Romania.h

A trip on the road map of Romania

astar/NQueens.h

The n-queens problem, with at most 32 queens

astar/VacuumWorld.h

The vacuum world on a row of at most 32 cells

astar/MissionariesCannibals.h

The missionaries and cannibals problem

astar/WaterJugs.h

The water jugs problem, with up to 4 jugs of at most 65535 units

astar/TravelingSalesman.h

The traveling salesperson problem on at most 32 cities

Data structures

Header

Description

astar/Node.h

A node of the search graph

astar/NodeTable.h

Class template NodeTable, the closed list of the searches: a map from the generated states to their canonical Node, taken from the set of data structures chosen [see Structures.h].

astar/structures/ads/NodeTable.h

The closed list, on the PointerTable of ADS, on huge pages

astar/structures/ads/ConcurrentClosed.h

The closed list shared by the workers, a lock-free set of the nodes

astar/ConcurrentClosed.h

Class template ConcurrentClosed, the closed list that the workers of SPAStar and MQAStar share, taken from the set of data structures chosen [see Structures.h].

astar/structures/ads/OpenList.h

Priority queues of the OPEN list of the set of data structures of ADS [see Structures.h], HeapOpenList and BucketOpenList, on the DaryHeap and the BucketQueue of ADS; OpenList.h includes it in place of its own, with the same order of the entries but for the ties of f and g.

astar/OpenList.h

Priority queues of the OPEN list, taken from the set of data structures chosen [see Structures.h]: the class templates HeapOpenList, a heap for any cost type, and BucketOpenList, a two-level bucket queue for integer costs, and their entries.

astar/Structures.h

Choice of the set of data structures of A*: the arena of the nodes (NodePool), the closed list (NodeTable), the OPEN lists (HeapOpenList and BucketOpenList) and the adjacency of the explicit graphs and of the grids.

Results

Header

Description

astar/Solution.h

A path from the initial state to a goal, and its cost

Helpers

Header

Description

astar/structures/ads/ExplicitAdjacency.h

The arcs of a weighted graph, on the GraphBuilder and ArrayGraph of ADS

astar/structures/ads/GridAdjacency.h

The moves from a cell of a GridMap and their costs, on the GridGraph of ADS

astar/structures/ads/NodePool.h

The arena of the nodes, on the Arena of ADS, on huge pages

Documentation

Page

Description

Best-first search and A*

The search problem, A* with its invariants and guarantees, and the cost of its operations on the data structures of the library.

Parallel A*

The overheads of a parallel best-first search, and what SPA*, HDA* with its distributions, SafePBNF, PA*SE and the farm guarantee and pay.

Pattern databases

The abstraction of a pattern, the admissibility and the consistency of the additive tables and of the reflection, and the encodings of the entries down to one bit.