
Graf
.docxПетербургский государственный университет путей сообщения
Императора Александра 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}.
Для найденных смежных меток определяем новую метку.
dmax(Х2)=min{dold(Х2), d(u) + w(u, X2)}=min{∞, 0 + 6}=6
dmax(X4)=min{dold(X4), d(u) + w(u, X4)}=min{∞, 0 + 9}=9
dmax(Х5)=min{dold(Х5), 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}.
Для найденных смежных меток определяем новую метку.
dmax(Х3)=min{dold(Х3), 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}.
Для найденных смежных меток определяем новую метку.
dmax(Х4)=min{dold(Х4), d(u) + w(u, X4)}=min{∞, 0 + 2}=2
dmax(X5)=min{dold(X5), d(u) + w(u, X5)}=min{3, 2 + 4}=3
dmax(Х6)=min{dold(Х6), 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.
Результат приведён на рисунке: