Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки данных"
1. Хакасский государственный университет им. Н.Ф. Катанова
Структуры и алгоритмы обработки данных
Лекция: Графы: кратчайшие пути и
максимальные потоки.
Николай Гребенщиков, www.grebenshikov.ru
3. Задача поиска кратчайшего пути
Дан граф G = (V, E) с весовой функцией w : E → R.
Вес пути p = v0, v1, . . . , vk равен суммарному весу входящих
k
в него ребер. w(p) = w(vi−1, vi)
i=1
Вес кратчайшего пути из вершины u в вершину v опреде-
ляется соотношением:
p
min w(p) : u → v , если имеется путь отu к v
δ(u, v) =
∞, в противном случае
Кратчайший путь из вершины u в вершину v - это любой
путь p, что w(p) = δ(u, v)
2
5. Свойство кратчайщего пути
Пусть p = v1, v2, . . . , vk - кратчайший путь из вершины
v1 к вершине vk в заданном взвешенном ориентированном
графе G = (V, E) с весовой функцией w : E → R, а pij =
vi, vi+1, . . . , vj - частичный путь пути p, который проходит
из вершины vi к вершине vj для произвольных i и j (1 ≤ i ≤
j ≤ k). Тогда pij - кратчайший путь из вершины vi к
вершине vi.
4
10. Анализ алгоритма Дейкстры для очереди с прорететами
в виде кучи
T (G) = Θ(V ) + Θ(V logV ) + Θ(V (logV + deg()logV )) = Θ((V +
E)logV )
9
11. На семинар
• Алгоритм Беллмана-Форда
• Поиск кратчайших путей из одной вершины в ориентиро-
ванных ациклических графах
• Разностные ограничения и кратчайшие пути
10
12. Поиск путей из всех пар вершин: Алгоритм Флойда-
Вашалла
(k)
dij - кратчайший путь из вершины i в j, в котором все внут-
ренние точки пути выбраны из множества {1, 2, . . . , k}
11
13. Алгоритм Флойда-Вашалла
(0)
dij = wij
(k) (k) (k−1) (k−1)
dij = min(dij , dik + dkj ), k ≥ 1
Результирующая матрица: d(n)
12
16. На семинар
• Алгоритм Джонсона для разреженных графов
15
17. Транспортная сеть - ориентированный граф, в котором
каждое ребро имеет неотрицательную пропускную спо-
собность c(u, v) > 0 Транспортная сеть имеет две специаль-
ных вершины источник s и сток t. Если (u, v) ∈ E ⇒ c(u, v) =
/
0.
Поток в графе - есть функция f : V × V → R, обладающая
следующими свойствами
• Ограничение пропускной способности: f (u, v) ≤ c(u, v)
• Антисимметричность: f (u, v) = −f (v, u)
• Сохранение потока: для всех u ∈ V − s, t ⇒ f (u, v) = 0
v∈V
16
19. Величина потока f опеределяется как |f | = sumv∈V f (s, v)
Задача о максимальном потоке: дана некоторая транс-
портная сеть, и необходимо найти поток максимальной ве-
личины.
18
21. Остаточные сети
Остаточная пропускная способность:
cf (u, v) = c(u, v) − f (u, v)
Остаточная сеть есть граф
Gf (V, Ef ), Ef = (u, v) ∈ V × V : cf (u, v) > 0
20
23. Для заданных транспортной сети G = (V, E) и потока f уве-
личивающим путем p является путь из s в t в остаточной
сети Gf
Пропускная способность пути: cf (p) = min cf (u, v) : (u, v) ∈ p
Увеличивающий поток:
cf (p),
если(u, v) ∈ p,
fp(u, v) =
−cf (p), если(v, u) ∈ p,
0, в противном случае
22
24. Разрез транспортной сети - разбиение множества V = S T,
что s ∈ S, а t ∈ T
Пропускная способность разреза - c(S, T ) = 12 + 14 = 26
Чистый поток - f (S, T ) = 12 + (−4) + 11 = 19
23
25. Минимальный разрез - разрез с минимальной пропускной
способностью.
Торема о максимальном потоке и минимальном разрезе
Следующие утверждения эквивалентны:
• f - максимальный поток в G
• Остаточная сеть Gf не содержит увеличивающих путей.
• |f | = c(S, T ) для некоторого разреза (S, T ) сети G.
24
31. На семинар
• Алгоритм Эдмондса-Карпа
• Поиск максимального паросочетаня в двудольном графе
• Алгоритм проталкивания предпотока
• Алгоритм “поднять и в начало”
30
32. Список литературы
• David M. Mount, The Lecture notes: Design and Analysis
of Computer Algorithms. [Электронный ресурс] / Dept. of
Computer Science, University of Maryland, 2004. - Режим
доступа: http://www.cs.umd.edu/ mount/451/Lects/451lects.pdf
. - сс.49-55, 118-125
• Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгорит-
мы: построение и анализ, 2-е издание. - М. : Издатель-
ский дом “Вильямс”, 2007. сс.663-794.
31