Domains

headers of the layer astar

astar/Domain.h

Header file for the 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.

Class

Description

OperatorOf

The operator that generated a state, kept in a message [see OperatorDomain]; an empty type, with op always no_op, when D is not an OperatorDomain, so that a message with [[no_unique_address]] on it does not grow

OperatorOf< D >

astar/SlidingTile.h

Header file for the class template SlidingTile, which implements the Domain concept [see Domain.h] for the sliding-tile puzzles with the Manhattan distance heuristic, and for the class Word128, the unsigned integer of 128 bits in which the boards of more than 16 cells are packed.

Class

Description

SlidingTile

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

Word128

An unsigned integer of 128 bits, as two words of 64

astar/PatternDatabase.h

Header file for the pattern databases of the sliding-tile puzzles, i.e., the heuristics that store the exact distances of an abstraction of the puzzle.

Class

Description

PDBOptions

The options of the construction of an AdditivePDB

TilePattern

A pattern of the sliding-tile puzzle and the ranking of its placements

ByteEntries

The entries of a pattern table, one byte each: the distance itself

NibbleEntries

The entries of a pattern table, 4 bits each: the excess over Manhattan

Mod3Entries

The entries of a pattern table, the distance modulo 3, five in a byte

ParityBitEntries

The entries of a pattern table, the second bit of the distance, eight in a byte

MinNibbleEntries

The entries of a pattern table, the least excess of each group of ranks

SparseEntries

The entries of a pattern table whose excess is nonzero, by rank

PatternTable

The distances of a pattern of the sliding-tile puzzle, encoded by Enc

AdditivePDB

The additive heuristic of disjoint pattern tables

SlidingTilePDB

The sliding-tile puzzle with an additive pattern database heuristic

astar/Grid.h

Header file for the class GridMap, a map of cells with a cost of traversal, for the class template GridAdjacency, the free cells next to a cell of a GridMap, and for the class template Grid, which implements the Domain concept [see Domain.h] for pathfinding on a GridMap with 4 or 8 moves.

Class

Description

Grid

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

GridMap

A rectangular map of cells, each with a cost of traversal

astar/ExplicitGraph.h

Header file for the class template ExplicitAdjacency, the arcs of a weighted graph given one by one, and for the class template ExplicitGraph, which implements the Domain concept [see Domain.h] for such a graph, with a heuristic given node by node, such as the map of Romania of Russell and Norvig.

Class

Description

ExplicitGraph

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

astar/SlowDomain.h

Header file for the class template SlowDomain, a Domain [see Domain.h] whose expansions are made artificially slow, to compare the searches when the expansion dominates their cost.

Class

Description

SlowDomain

A Domain whose expansions cost a given amount of extra work

astar/SequenceScore.h

Header file for the class template SequenceScore, which implements the Domain concept [see Domain.h] for the sliding-tile puzzle with the sequence score heuristic of Nilsson, an inadmissible heuristic.

Class

Description

SequenceScore

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

astar/Romania.h

Header file for the class Romania, the road map of Romania of figure 3.2 of Russell and Norvig, “Artificial Intelligence: A Modern Approach” (3rd edition, 2010), as an ExplicitGraph [see ExplicitGraph.h].

Class

Description

Romania

A trip on the road map of Romania

astar/NQueens.h

Header file for the class NQueens, which implements the Domain concept [see Domain.h] for the n-queens problem in the incremental formulation of section 3.2.1 of Russell and Norvig, “Artificial Intelligence: A Modern Approach” (3rd edition, 2010).

Class

Description

NQueens

The n-queens problem, with at most 32 queens

astar/VacuumWorld.h

Header file for the class VacuumWorld, which implements the Domain concept [see Domain.h] for the vacuum world of section 3.2.1 of Russell and Norvig, “Artificial Intelligence: A Modern Approach” (3rd edition, 2010), on a row of n cells instead of 2.

Class

Description

VacuumWorld

The vacuum world on a row of at most 32 cells

astar/MissionariesCannibals.h

Header file for the class MissionariesCannibals, which implements the Domain concept [see Domain.h] for the missionaries and cannibals problem of exercise 3.9 of Russell and Norvig, “Artificial Intelligence: A Modern Approach” (3rd edition, 2010), with m missionaries, c cannibals and a boat of b seats.

Class

Description

MissionariesCannibals

The missionaries and cannibals problem

astar/WaterJugs.h

Header file for the class WaterJugs, which implements the Domain concept [see Domain.h] for the water jugs problem of exercise 3.6(d) of Russell and Norvig, “Artificial Intelligence: A Modern Approach” (3rd edition, 2010), which is the PourProblem of aima-python (github.com/aimacode/aima-python).

Class

Description

WaterJugs

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

astar/TravelingSalesman.h

Header file for the class TravelingSalesman, which implements the Domain concept [see Domain.h] for the traveling salesperson problem with the minimum spanning tree heuristic of exercise 3.30 of Russell and Norvig, “Artificial Intelligence: A Modern Approach” (3rd edition, 2010).

Class

Description

TravelingSalesman

The traveling salesperson problem on at most 32 cities