давно
Мастер-Эксперт
17387
18345
27.06.2021, 06:15
общий
это ответ
Здравствуйте, rebzua!
Исходный граф показан в первом прикреплённом файле.
Определим кратчайшие маршруты из вершины 1 в вершины 2, 3, 4, 5, 6, 7. Присвоим вершине 1 метку, равную 0, а остальным вершинам -- равные бесконечности (inf) (второй прикреплённый файл).
Выберем такую вершину W (сейчас это вершина 1), которая имеет минимальную метку, и рассмотрим все вершины, в которые из вершины W можно попасть напрямую, минуя промежуточные вершины. Каждой из рассмотренных вершин присвоим метку, равную сумме метки W и длины пути из вершины W в рассмотренную вершину, но только в том случае, если полученная сумма меньше предыдущего значения метки. В противном случае оставляем метку прежней (третий прикреплённый файл).
Рассмотрев все вершины, в которые есть прямой путь из W, последнюю отметим как посещённую и выберем из ещё не посещённых вершин такую, которая имеет минимальное значение метки. Эта вершина будет следующей вершиной W. В данном случае это вершина 3. Рассмотрим все вершины, в которые есть есть прямые пути из вершины 3 и которые ешё не помечены как посещённые. Снова определяем сумму метки W и веса ребра из W в текущую вершину и если эта сумма меньше предыдущей метки, то заменяем эту метку на полученную сумму (четвёртый прикреплённый файл).
Отмечаем вершину 3 как посещённую и переходим к вершине 2, которая имеет минимальную метку среди непосещённых вершин. Из вершины 2 есть прямой путь только в вершину 5. Метку этой вершины изменяем на 17 (пятый прикреплённый файл).
Переходя к вершине 4, проделываем аналогичные операции. При этом метка вершины 6, в которую есть прямой путь из вершины 4, останется прежней (шестой прикреплённый файл).
Результат перехода к вершине 6 представлен в седьмом прикреплённом файле, к вершине 5 -- в восьмом прикреплённом файле.
В девятом прикреплённом файле показан конечный результат выполнения всех действий. То есть кратчайший путь из вершины 1 в вершину 2 равен 11, в вершину 3 -- 8, в вершину 4 -- 13, в вершину 5 -- 17, в вершину 6 -- 15, в вершину 7 -- 23.
Прикрепленные файлы:
201215 1.png
201215 2.png
201215 3.png
201215 4.png
201215 5.png
201215 6.png
201215 7.png
201215 8.png
201215 9.png
Об авторе:
Facta loquuntur.