|
PBeFS
Parallel Best-First Search
|
Header file for the class template IDAStar, the iterative-deepening A* of Korf (1985), which finds an optimal path with a memory linear in its length: a depth-first search bounded by \( f = g + h \), repeated with the bound raised each time to the least \( f \) that exceeded it. More...
#include <algorithm>#include <cstddef>#include <cstdint>#include <utility>#include <vector>#include "PBeFS/astar/Domain.h"#include "PBeFS/astar/Node.h"#include "PBeFS/core/SearchUtils.h"#include "PBeFS/astar/Solution.h"Go to the source code of this file.
Classes | |
| class | IDAStar< D > |
| the iterative-deepening A* search of a Domain More... | |
Namespaces | |
| namespace | PBeFS_di_unipi_it |
| namespace for the Parallel Best-First Search library | |
Functions | |
| template<Domain D> | |
| Solution< state_t< D >, cost_t< D > > | idastar (const D &domain, const SearchOptions &options={}) |
| searches a Domain with IDA* | |
Header file for the class template IDAStar, the iterative-deepening A* of Korf (1985), which finds an optimal path with a memory linear in its length: a depth-first search bounded by \( f = g + h \), repeated with the bound raised each time to the least \( f \) that exceeded it.
With the notation of the page "Best-first search and A*" of the documentation, and \( h \) admissible:
The parent is skipped by its operator in an OperatorDomain [see Domain.h], and otherwise by comparing the successor with the state two places back on the path; no other duplicate is detected, so that the search fits the domains whose graph has few short cycles, such as the sliding-tile puzzles, where IDA* with a pattern database is the method of Korf and Felner (2002) for the 24-puzzle. The costs must be positive on every cycle, or an iteration may not end; and when no goal is reachable the search proves it only on an acyclic graph, since on one with cycles the bound grows without end, unless the node limit stops it.