Алгоритм A* (A Star) ищет кратчайший путь между вершинами, основываясь на стоимости и «весе» рёбер. 1 Он пошагово просматривает все пути, ведущие от начальной вершины в конечную, пока не найдёт минимальный. 2
Алгоритм разделяет все вершины на три категории: 1
На каждом этапе алгоритм оперирует с множеством путей из начальной точки до всех ещё не раскрытых (листовых) вершин графа — множеством частных решений, — которое размещается в очереди с приоритетом. 2 Приоритет пути определяется по значению f(x) = g(x) + h(x). 2
Алгоритм продолжает свою работу до тех пор, пока значение f(x) целевой вершины не окажется меньшим, чем любое значение в очереди, либо пока всё дерево не будет просмотрено. 2 Из множества решений выбирается решение с наименьшей стоимостью. 2
Алгоритм A* завершает свою работу только в том случае, если конечная вершина переносится в категорию «исследованные вершины». 1 В этом случае уже будет весь список исследованных вершин, а на каждой из них будет стоять указатель с кратчайшим путём. 1