Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Графы ИО.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
401.99 Кб
Скачать

5. Нахождение кратчайшего маршрута между вершинами графа

Транспортная схема с фиксированным направлением движения по ней слева направо, для которой кратчайший маршрут был найден методом динамического программирования, представляет связный орграф без контуров и петель. Для такой транспортной схемы метод динамического программирования может быть реализован непосредственно на орграфе.

Алгоритм решения задачи о кратчайшем маршруте на графе транспортной схемы методом динамического программирования

  1. Представить заданную транспортную схему возможного движения между пунктами в направлении от пункта А к пункту В как орграф: вершины графа – населенные пункты на транспортной схеме, дуги – дороги между этими пунктами.

  1. Выполнить упорядочение вершин орграфа согласно алгоритму Фалкерсона, отметить вершины, соответствующие пунктам А и В.

  1. Обозначить вершины орграфа кружками, разделенными пополам горизонтальными диаметрами. В верхнем полукруге записать номер вершины (номер пункта на транспортной схеме), в нижнем полукруге в процессе решения задачи предстоит проставлять минимальную длину маршрута между соответствующим пунктом и начальным пунктом А.

  1. Указать над дугами орграфа их вес, равный расстоянию между соответствующими пунктами транспортной схемы.

  1. Записать в нижнем полукруге пункта А число 0.

  1. Перейти к следующей группе вершин упорядоченного орграфа. В каждой вершине, смежной вершине А, записать расстояние до пункта А и пометить соответствующие дуги, входящие в эти вершины, как возможные составляющие части искомого кратчайшего маршрута.

  1. Для каждой вершины хj следующей группы упорядоченного орграфа определить длину кратчайшего маршрута до пункта А: найти сумму числа в нижнем полукруге предшествующей для хj смежной вершине и веса дуги, соединяющей эту вершину с хj; если таких вершин несколько найти минимальное значение этих сумм и вписать это значение в нижний полукруг вершины хj, пометить дугу, определившую полученное минимальное значение.

  1. Если вершина хj соответствует конечному пункту маршрута В, то закончить заполнение вершин орграфа, иначе вернуться к п.7 алгоритма.

  1. От вершины орграфа, соответствующей пункту В, вернуться по отмеченным дугам к пункту А; путь в орграфе по этим дугам от А к В и будет искомым кратчайшим маршрутом между этими пунктами, длина которого записана в нижнем полукруге вершины пункта В.

  1. Записать ответ: указать совокупную последовательность пунктов на кратчайшем маршруте от А до В и длину этого маршрута F*min.

Пример. По приведенной совокупности населенных пунктов и протяженности (в километрах) связывающих их дорог, по которым можно доехать из пункта А (вершина 1) до пункта В (вершина 8) определить кратчайший маршрут между этими пунктами.

П осле упорядочения вершин орграфа, определения минимальной длины пути от этих вершин до пункта А в процессе следования от группы к группе вершин упорядоченного орграфа слева направо и отметки дуг, участвующих в формировании соответствующих минимальных путей, получаем следующий орграф:

Приведем примеры расчета минимальной длины пути от вершин орграфа до пункта А.

Так, для вершины (3) смежными предшествующими вершинами являются (1), (2), (4). Следовательно, минимальная длина пути между вершинами (1) и (3) равна min{0 + 14; 10 + 3; 9 + 6} = min{14; 13; 15}= 13.

Для вершины (8) смежными предшествующими вершинами являются (3), (5), (4), (7), (6). Следовательно, минимальная длина пути между вершинами (1) и (8) равна min{13 + 10; 15 + 8; 9 + 16; 14 + 8; 8 + 15} = min{23; 23; 25; 22; 23} = 22.

Т.о., кратчайший маршрут между пунктами А и В имеет длину 22 км. Следуя справа налево по орграфу, получаем последовательность отмеченных дуг, составляющих этот маршрут: (8) → (7) → (4) → (1), или в обратном порядке от А до В: (1) → (4) → (7) → (8).

Ответ: длина кратчайшего маршрута от пункта А до пункта В равна 22 км, последовательность пунктов на этом маршруте А → (4) → (7) → В. #

Более общим алгоритмом определения кратчайшего маршрута является алгоритм Дейкстры. Этот алгоритм не требует предварительного упорядочения вершин и применим как к неориентированным графам, так и орграфам, в которых могут быть циклы/контуры.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]