
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Факультет инфокоммуникационных Сетей и систем (иксс)
кафедра программной инженерии и вычислительной техники (пиивт)
Лабораторная работа №5.
«Поиск кратчайшего пути на графах»
Дисциплина: «Алгоритмы и Структуры Данных»
Выполнили: Студент группы ИКПИ-92 Козлов Никита
Тюришев Матвей
Принял: к.т.н., доцент кафедры ПИиВТ
Дагаев А.В.
Алгоритм Флойда-Уоршелла
Алгоритм Флойда-Уоршелла – алгоритм нахождения минимального расстояния между всеми парами вершин в графе. Представляет из себя очень ёмкий и компактный алгоритм с тремя циклами, чем весьма прост в своей реализации. Суть заключена в последовательном переборе всех возможных маршрутов и выборе тех, что являются самыми короткими. В связи с подобной простотой алгоритма, его затраты на выполнение высоки.
Пример работы
Дан взвешенный неориентированный граф:
До начала работы алгоритма единственные известные расстояния – те, что являются рёбрами. То есть, известны такие расстояния, как: 1-2 : 5 1-5 : 3 1-3 : 7 2-5 : 1 3-4 : 4 4-5 : 2 Всего шагов будет 5 – по количеству вершин в графе.
На первом шаге алгоритма рассматриваются пути, проходящие через первую вершину графа. То есть, известны такие расстояния, как: 3-1-2: 12 3-1-5: 10
На втором шаге рассматриваются пути, проходящие через вторую вершину графа либо через вторую и предыдущие. То есть, известны такие расстояния, как: 3-1-2-5: 13 1-2-5: 6
На третьем шаге рассматриваются пути, проходящие через третью вершину графа либо через третью и предыдущие. То есть, известны такие расстояния, как: 1-3-4: 11 2-1-3-4: 16 5-1-3-4: 14 5-2-1-3-4: 17
На четвертом шаге рассматриваются пути, проходящие через четвертую вершину графа либо через четвертую и предыдущие. То есть, известны такие расстояния, как: 3-4-5: 4 1-3-4-5: 13 2-1-3-4-5: 18
На пятом шаге рассматриваются пути, проходящие через пятую вершину графа либо через пятую и предыдущие. То есть, известны такие расстояния, как: 1-5-4: 5 1-5-2: 4 1-2-5-4: 8 1-5-4-3: 9 1-2-5-4-3: 12 1-3-4-5-2: 14 2-5-4: 3 2-5-4-3: 7 2-5-1-3: 11 3-1-5-4: 12 3-1-2-5-4: 15
В конечном итоге найдены все возможные расстояния в графе, среди которых минимальные: 1-5-2 : 4 1-3 : 7 1-5-4: 5 1-5 : 3 2-5-4-3 : 7 2-5-4 : 3 2-5 : 1 3-4 : 4 3-4-5 : 6 4-5 : 2 Из этих расстояний составляется матрица минимальных расстояний графа, которая представлена Рис.2. Всего затрачено на выполнение 5 шагов.
-
\
1
2
3
4
5
1
0
4
7
5
3
2
4
0
7
3
1
3
7
7
0
4
6
4
5
3
4
0
2
5
3
1
6
2
0