Добавил:
Студент, если у тебя есть завалявшиеся работы, то не стесняйся, загрузи их на СтудентФайлс! Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Graf

.docx
Скачиваний:
22
Добавлен:
09.12.2021
Размер:
151.93 Кб
Скачать

Петербургский государственный университет путей сообщения

Императора Александра I

Кафедра «Математика и моделирование»

Расчётно-графическая работа №1

«Построение кратчайших и максимальных путей в ориентированной сети»

Выполнил студент Баранов Д.А,

Факультет: АИТ

Группа: АР-709

Номер зачётной книжки: 01-709-02

Проверил: Боровских Ю.Б.

Санкт-Петербург

2018

Задание.

Изобразить в виде рисунков ориентированные сети , заданные весовой матрицей . Построить для сети кратчайший путь от узла до узла с помощью алгоритма Дейкстры и максимальный путь.

А)Поиск кратчайшего пути от узла до узла для сети G1.

Изображаем эту есть в виде графика.

Узлы в сети будут представлены в виде кружков, в которые будем вписывать получаемые в результате работы алгоритма метки.

Так как в заданной сети веса не отрицательны ‚то для нахождения кратчайшего пути от узла до узла воспользуемся алгоритмом Дейкстры (алгоритм расстановки меток), состоящим из двух этапов.

9

Этап 1. Нахождение кратчайшего пути.

Шаг 1. Присвоение начальных значений.

Полагаем для начального узла )=0* и считаем эту метку постоянной.

Для остальных узлов полагаем )= )= )= )= ) И считаем эти метки временными.t

Обозначаем текущий узел как u := S.

Результаты приведены на рисунке:

1-ая итерация

Шаг 2. Изменение меток

По строке матрицы W, для текущей вершины u=Х1 находим смежные вершины (вершины, непосредственно следующие за вершиной u): Г+ (u)={X2, Х4, X5}.

Для найденных смежных меток определяем новую метку.

dmax2)=min{dold2), d(u) + w(u, X2)}=min{∞, 0 + 6}=6

dmax(X4)=min{dold(X4), d(u) + w(u, X4)}=min{∞, 0 + 9}=9

dmax5)=min{dold5), d(u) + w(u, X5)}=min{∞, 0 + 10}=10

Шаг 3. Превращение метки в постоянную.

Из всех вершин с временными метками выбираем вершину с наименьшим значением метки:

min{d(X2), d(Х4), d(X5)}=min{6, ∞, 9, 10}==6*

Превращаем эту метку в постоянную d(X2).

Шаг 4. Проверка на завершение этапа 1.

Найденная в предыдущем этапе вершина не совпала с конечной вершиной :Х2≠t‚ то этап 1 не закончен и необходимо выполнить следующую итерацию с шага 2‚приняв u=X2.

Результат на рисунке:

2-ая итерация

Шаг 2. Изменение меток

По строке матрицы W, для текущей вершины u=Х2 находим смежные вершины: Г+ (u)={X3}.

Для найденных смежных меток определяем новую метку.

dmax3)=min{dold3), d(u) + w(u, X3)}=min{∞, 6 + 7}=13

Шаг 3. Превращение метки в постоянную.

Из всех вершин с временными метками выбираем вершину с наименьшим значением метки:

min{d(X3)}, min{13}==13*

Превращаем эту метку в постоянную d(X3).

Шаг 4. Проверка на завершение этапа 1.

Найденная в предыдущем этапе вершина не совпала с конечной вершиной :Х3≠t‚ то этап 1 не закончен и необходимо выполнить следующую итерацию с шага 2‚приняв u=X3.

Результат на рисунке:

3-ая итерация

Шаг 2. Изменение меток

По строке матрицы W, для текущей вершины u=Х3 находим смежные вершины: Г+ (u)={X4, Х5, X6}.

Для найденных смежных меток определяем новую метку.

dmax4)=min{dold4), d(u) + w(u, X4)}=min{∞, 0 + 2}=2

dmax(X5)=min{dold(X5), d(u) + w(u, X5)}=min{3, 2 + 4}=3

dmax6)=min{dold6), d(u) + w(u, X6)}=min{2, 3 + 6}=2

Шаг 3. Превращение метки в постоянную.

Из всех вершин с временными метками выбираем вершину с наименьшим значением метки:

min{d(X4), d(Х5), d(X6)}=min{2, 3, 2}==2*

Превращаем эту метку в постоянную d(X4).

Шаг 4. Проверка на завершение этапа 1.

Найденная в предыдущем этапе вершина совпала с конечной вершиной Х4=t, то этап 1 закончен. Принимаем u=X6.

Длина кратчайшего пути от узла S в узел t равна 2.

Таким образом, получили: dХ1=0‚ dХ2=6‚ dХ3=13‚ dХ4=2‚ dХ5=3‚ dХ6=2.

Результат на рисунке:

Переходим к этапу 2.

Этап 2. Построение кратчайшего пути.

1-ая итерация

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

По строке матрицы W для текущей вершины u=Х4 находим вершины непосредственно предшествующие вершине u: P(u)= {X1, X2, X3}.

Из найденных вершин находим ту, для которой выполняется d(u) = d( ) + w( u):

Для X1

d(X1)+w(X1, u)=0+10=10

Для Х2

d(X2)+w(X2, u)=6+7=13

Для Х3

d(X3)+w(X3, u)=0+2=2

Так как выполняется условие d(u)= d(X3)+w(X3, u)=2, то вершина X3 включается в искомый путь.

Шаг 6. Проверка на завершение этапа 2.

Найденная в предыдущем этапе вершина не совпала с начальной вершиной: Х3≠Х1, то этап 2 не закончен и необходимо выполнить следующую итерацию с шага 5‚прнняв u=X3.

2-ая итерация

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

По строке матрицы W для текущей вершины u=Х3 находим вершины непосредственно предшествующие вершине u: P(u)= {X2, X1}.

Из найденных вершин находим ту, для которой выполняется d(u) = d( ) + w( u):

Для X1

d(X1)+w(X1, u)=0+9=9

Для Х2

d(X2)+w(X2, u)=6+7=13

Так как выполняется условие d(u)= d(X1)+w(X1, u)=9, то вершина X1 включается в искомый путь.

Шаг 6. Проверка на завершение этапа 2.

Найденная в предыдущем этапе вершина совпала с начальной вершиной Х1, то этап 2 закончен.

Найден кратчайший путь. M={(Х1,Х3) - (Х3, Х6)}.

Длина кратчайшего пути d={X1, Х6}=20.

Результат приведён на рисунке:

Соседние файлы в предмете Прикладная математика