1. Метод присвоения меток
Задача состоит в том, чтобы найти кратчайший путь на графе от какой-то выделенной вершины до любой другой вершины.
Пример. Узел 7 — склад, остальные узлы — строительные площадки компании. Показатели на дугах — расстояния в километрах.
![]() |
|
Решение.





Самостоятельно. Компания грузовых перевозок осуществляет услуги по перевозке грузов между Воронежем (В) и райцентрами. Если компания получает заказ на обслуживание, она как можно быстрее посылает грузовик в райцентр, из которого поступил заказ. Так как существенны быстрое обслуживание и минимальные транспортные затраты, большое значение приобретает то, что грузовик проследует из Воронежа в соответствующий райцентр по наиболее короткому маршруту. Сеть, представленная на рисунке, отображает сеть дорог. Расстояния указаны в километрах.

Найти кратчайшие маршруты от Воронежа до всех 10 райцентров. Какова длина кратчайшего пути от Воронежа до райцентра 10? Какова длина кратчайшего пути от Воронежа до райцентра 8? Проходит ли кратчайший путь от Воронежа до райцентра 9 через райцентр 6?
2. Кратчайший путь между двумя пунктами
Как кратчайшим путем попасть из одной вершины графа в другую? В терминах управления цепями поставок: как кратчайшим путем (и, следовательно, с наименьшим расходом топлива и времени, наиболее дешево) попасть из пункта А в пункт Б? Для решения этой задачи каждой дуге ориентированного графа должно быть сопоставлено число - время движения по этой дуге от начальной вершины до конечной.
Обозначения:
xi - исходный узел;
хn - узел назначения;
dij - расстояние на сети между смежными узлами хi и хj.
Uj - кратчайшее расстояние от узла хi до узла хj. U1=0.
Алгоритм нахождения кратчайшего пути состоит в последовательном нахождении значений Uj для каждого узла от исходного узла до узла назначения. Значение Uj для каждого узла рассчитывается по формуле:
Uj = min{ Ui + dij }
Процедура заканчивается, когда получено значение Un для узла назначения.
Кратчайший маршрут от исходного узла до узла назначения определяется, начиная с узла назначения, путем прохождения узлов в обратном направлении по дугам, на которых реализовались минимальные значения расстояний на каждом шаге.
Пример. Определить кратчайшее расстояние между узлами x1 и х7.

U1=0;
U2 = U1 + d12 = 0 + 2 = 2;
U3= U1 + d13 = 0 + 4 = 4;
U4= min{ U1 + d14, U2+d24, U3+d34} = min{0 + 10,2 + 11,4 + 3} = 7;
U5= min{ U2 + d25, U4 + d45 } = min{2 + 5, 7 + 8} = 7;
U6 = min{ U3 + d36, U4+d46 } = min{4+ 1, 7 + 7} = 5;
U7 = min{ U5 + d57, U6+d61 } = min{7 + 6, 5 + 9} = 13.
Самостоятельно.
1. Определить кратчайшее расстояние между пунктами 1 и 4.

2. На рисунке изображена транспортная сеть между населенными пунктами. Найдите кратчайшие маршруты между пунктами:
1) x1 и х8;
2) х1 и х6;
3) х4 и х8
4) x2 и х6;

3. На рисунке изображена транспортная сеть между городами. Найдите кратчайшие
маршруты между городами А и В.









