Состоит в нахождении связанных между собой дорог на транспортной сети, которые в совокупности имеют минимальную длину от исходного пункта до пункта назначения.
Алгоритм для сетей без циклов
Обозначим: – расстояние на сети между смежными узлами; – кратчайшее расстояние между узлами и . Считаем, что кратчайшее расстояние до первого узла сети равно нулю, . При построении используется идея рекурсивных вычислений. Для того чтобы найти кратчайшее расстояние до некоторого узла, необходимо найти кратчайшие расстояния до узлов непосредственно предшествующих этому узлу. Поэтому можно записать:
, (9.1)
где – кратчайшее расстояние до предыдущего узла, непосредственно предшествующего узлу ; – расстояние между текущим узлом и предыдущим узлом .
Отсюда получаем, что кратчайшее расстояние до узла можно вычислить лишь после того, как определено кратчайшее расстояние до каждого предыдущего узла , соединенного дугой с узлом .
Процедура построения кратчайшего пути завершается, когда будет найдено , где n число узлов в сети.
Пример 9.2
Найти кратчайший путь из вершины 1 в вершину 7 для сети (рис. 10.11).
Решение. Полагаем . Узлам 2 и 3 непосредственно предшествует только узел 1, следовательно,
, .
Далее в соответствии с общей формулой (9.1), последовательно находим (в скобках указаны вершины, которые соответствуют кратчайшему пути, для того чтобы можно было восстановить этот путь):
(из 1);
(из 2);
(из 3);
(из 5).
Таким образом, маршрут минимальной длины (на рис. 10.11 выделен жирными дугами): . Протяженность этого маршрута равна 13.