Нахождение кратчайших длин путей в графе. Алгоритм Флойда. Сформулировать алгоритм, инвариант цикла, доказать корректность алгоритма. Нахождение кратчайших путей с помощью алгоритма Флойда.
Алгоритм
Флойда:
Цикл
по u принадлежащим V
Цикл
по v принадлежащим V (по соседям u)
D(u, v) = A(u, v) (A - матрица весов ребер;
A(u, v) - длина ребра)
B(u, v) = u
КЦ
Цикл
по w принадлежащим V
Цикл
по u принадлежащим V
Цикл по v принадлежащим V
Если D(u, v) > D(u, w) + D(w, v):
D(u,
v) = D(u, w) + D(w, v)
B(u,
v) = w
КЕ
КЦ
КЦ
КЦ
Инвариант:
После k
шагов внешнего цикла пометки D(u,
v)
показывают кратчайшее расстояние между
(u,
v)
по всем путям, у которых промежуточными
могут быть вершины только от 1-ой до
k-ой.
Поток на графе. Дивергенция потока. Теорема Остроградского-Гаусса в применении к графам.
Транспортные
сети (s-t сети). Теорема о минимальном
разрезе и максимальном потоке. Алгоритм
Форда-Фалкерсона построения максимального
потока в задаче с целыми (рациональными)
пропускными способностями.
Теорема
о максимальном потоке и минимальном
разрезе: величина максимального потока
в сети равна величине минимального
разреза.