32
Хакасский государственный университет им. Н.Ф. Катанова Структуры и алгоритмы обработки данных Лекция: Графы: кратчайшие пути и максимальные потоки. Николай Гребенщиков, www.grebenshikov.ru

Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Embed Size (px)

Citation preview

Page 1: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Хакасский государственный университет им. Н.Ф. Катанова

Структуры и алгоритмы обработки данных

Лекция: Графы: кратчайшие пути и

максимальные потоки.

Николай Гребенщиков, www.grebenshikov.ru

Page 2: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Задача поиска кратчайшего пути

1

Page 3: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Задача поиска кратчайшего пути

Дан граф G = (V,E) с весовой функцией w : E → R.

Вес пути p = 〈v0, v1, . . . , vk〉 равен суммарному весу входящих

в него ребер. w(p) =k∑i=1

w(vi−1, vi)

Вес кратчайшего пути из вершины u в вершину v опреде-ляется соотношением:

δ(u, v) =

min{w(p) : u

p→ v}, если имеется путь отu к v

∞, в противном случае

Кратчайший путь из вершины u в вершину v - это любойпуть p, что w(p) = δ(u, v)

2

Page 4: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Задача поиска кратчайшего пути

• из заданной вершины во все остальные

• между всеми парами вершин

3

Page 5: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Свойство кратчайщего пути

Пусть 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

Page 6: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Отрицательные ребра и циклы

5

Page 7: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Релаксация (ослабление)

6

Page 8: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Поиск путей из заданной вершины: Алгоритм Дейкстры(Dijkstra)

7

Page 9: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Алгоритм Дейкстры

8

Page 10: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Анализ алгоритма Дейкстры для очереди с прорететамив виде кучи

T (G) = Θ(V ) + Θ(V logV ) + Θ(V (logV + deg()logV )) = Θ((V +

E)logV )

9

Page 11: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

На семинар

• Алгоритм Беллмана-Форда

• Поиск кратчайших путей из одной вершины в ориентиро-ванных ациклических графах

• Разностные ограничения и кратчайшие пути

10

Page 12: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Поиск путей из всех пар вершин: Алгоритм Флойда-Вашалла

d(k)ij - кратчайший путь из вершины i в j, в котором все внут-ренние точки пути выбраны из множества {1,2, . . . , k}

11

Page 13: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Алгоритм Флойда-Вашалла

d(0)ij = wij

d(k)ij = min(d(k)

ij , d(k−1)ik + d

(k−1)kj ), k ≥ 1

Результирующая матрица: d(n)

12

Page 14: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Алгоритм Флойда-Варшалла

13

Page 15: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Анализ: алгоритма Флойда-Варшалла

T (G) =?

14

Page 16: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

На семинар

• Алгоритм Джонсона для разреженных графов

15

Page 17: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Транспортная сеть - ориентированный граф, в которомкаждое ребро имеет неотрицательную пропускную спо-собность 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⇒∑v∈V

f(u, v) = 0

16

Page 18: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Потоки

17

Page 19: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Величина потока f опеределяется как |f | = sumv∈V f(s, v)

Задача о максимальном потоке: дана некоторая транс-портная сеть, и необходимо найти поток максимальной ве-личины.

18

Page 20: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Метод Форда-Фалкерсона

FordFulkersonMethod(G, s, t)

1 Задаем значение потока f равным 0

2 while существует увеличивающи путь p3 do увеличиваем поток f вдоль пути p

4 return f

19

Page 21: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Остаточные сети

Остаточная пропускная способность:

cf(u, v) = c(u, v)− f(u, v)

Остаточная сеть есть граф

Gf(V,Ef), Ef ={

(u, v) ∈ V × V : cf(u, v) > 0}

20

Page 22: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Остаточные сети

21

Page 23: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Для заданных транспортной сети G = (V,E) и потока f уве-личивающим путем p является путь из s в t в остаточнойсети Gf

Пропускная способность пути: cf(p) = min{cf(u, v) : (u, v) ∈ p

}Увеличивающий поток:

fp(u, v) =

cf(p), если(u, v) ∈ p,−cf(p), если(v, u) ∈ p,0, в противном случае

22

Page 24: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Разрез транспортной сети - разбиение множества V = S⋃T ,

что s ∈ S, а t ∈ T

Пропускная способность разреза - c(S, T ) = 12 + 14 = 26

Чистый поток - f(S, T ) = 12 + (−4) + 11 = 19

23

Page 25: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Минимальный разрез - разрез с минимальной пропускнойспособностью.

Торема о максимальном потоке и минимальном разрезе

Следующие утверждения эквивалентны:

• f - максимальный поток в G

• Остаточная сеть Gf не содержит увеличивающих путей.

• |f | = c(S, T ) для некоторого разреза (S, T ) сети G.

24

Page 26: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Алгоритм Форда-Фалкерсона

25

Page 27: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Алгоритм Форда-Фалкерсона

26

Page 28: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Алгоритм Форда-Фалкерсона

27

Page 29: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Анализ алгоритма Форда-Фалкерсона

T (G) = Θ(E) +O(Ef∗) = O(Ef∗)

28

Page 30: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Анализ алгоритма Форда-Фалкерсона

T (G) = Θ(E) + Θ(E|f∗|) = Θ(E|f∗|)

Плохой случай:

29

Page 31: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

На семинар

• Алгоритм Эдмондса-Карпа

• Поиск максимального паросочетаня в двудольном графе

• Алгоритм проталкивания предпотока

• Алгоритм “поднять и в начало”

30

Page 32: Лекция №14. Графы: кратчайшие пути и максимальные потоки. Предмет "Структуры и алгоритмы обработки

Список литературы

• David M. Mount, The Lecture notes: Design and Analysisof Computer Algorithms. [Электронный ресурс] / Dept. ofComputer Science, University of Maryland, 2004. - Режимдоступа: http://www.cs.umd.edu/ mount/451/Lects/451lects.pdf. - сс.49-55, 118-125

• Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгорит-мы: построение и анализ, 2-е издание. - М. : Издатель-ский дом “Вильямс”, 2007. сс.663-794.

31