{ Алгоритм Дейкстры }
Часто нужно уметь вычислять расстояние от некоторой вершины
графа до всех остальных:
поиск кратчайшего географического пути.
поиск гипотезы наименьшего веса (наибольшей вероятности) в задачах вычислительной лингвистики.
поиск слова наименьшего веса, принимаемого конечным автоматом и т.д.
В случае рёбер стоимости 1 это делает алгоритм поиска в ширину, используя очередь.
В случае рёбер произвольной длины это делает алгоритм Дейкстры.
Алгоритм:
присвоить всем вершинам метку ∞;
среди нерассмотренных вершин найти вершину j с наименьшей меткой;
для каждой необработанной вершины i: если путь к вершине i через вершину j меньше существующей метки, заменить метку на новое расстояние;
если остались необработанны вершины, перейти к шагу 2;
метка = минимальное расстояние.