SlideShare a Scribd company logo
1 of 32
Download to read offline
Хакасский государственный университет им. Н.Ф. Катанова

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

   Лекция: Графы: кратчайшие пути и
            максимальные потоки.

       Николай Гребенщиков, www.grebenshikov.ru
Задача поиска кратчайшего пути




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

Дан граф 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
Задача поиска кратчайшего пути


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


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




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

Пусть 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
Отрицательные ребра и циклы




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




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




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




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

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




                                                         9
На семинар


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


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


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




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

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




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

 (0)
dij = wij

 (k)        (k)   (k−1)      (k−1)
dij = min(dij , dik       + dkj      ), k ≥ 1


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




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




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

T (G) =?




                                    14
На семинар


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




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




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

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




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


FordFulkersonMethod(G, s, t)
1   Задаем значение потока f равным 0
2   while существует увеличивающи путь p
3        do увеличиваем поток f вдоль пути p
4   return f




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

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

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

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

Gf (V, Ef ), Ef = (u, v) ∈ V × V : cf (u, v) > 0




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




                  21
Для заданных транспортной сети 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
Разрез транспортной сети - разбиение множества V = S       T,
что s ∈ S, а t ∈ T

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

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




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

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

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


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


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


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

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




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




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




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

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




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

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

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




                                       29
На семинар


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


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


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


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



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


 • 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

More Related Content

What's hot

Лекция 9: Графы. Поиск кратчайшего пути в графе
Лекция 9: Графы. Поиск кратчайшего пути в графеЛекция 9: Графы. Поиск кратчайшего пути в графе
Лекция 9: Графы. Поиск кратчайшего пути в графеMikhail Kurnosov
 
Лекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графовЛекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графовMikhail Kurnosov
 
Лекция 8. Графы. Обходы графов
Лекция 8. Графы. Обходы графовЛекция 8. Графы. Обходы графов
Лекция 8. Графы. Обходы графовMikhail Kurnosov
 
Лекция 9: Графы. Кратчайшие пути в графах
Лекция 9: Графы. Кратчайшие пути в графахЛекция 9: Графы. Кратчайшие пути в графах
Лекция 9: Графы. Кратчайшие пути в графахMikhail Kurnosov
 
Opredelennyj integral
Opredelennyj integralOpredelennyj integral
Opredelennyj integralDimon4
 
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...Nikolay Grebenshikov
 
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахromovpa
 
ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6Andrey Danilchenko
 
Лекция 10. Графы. Остовные деревья минимальной стоимости
Лекция 10. Графы. Остовные деревья минимальной стоимостиЛекция 10. Графы. Остовные деревья минимальной стоимости
Лекция 10. Графы. Остовные деревья минимальной стоимостиMikhail Kurnosov
 
Use of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signatureUse of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signatureAndrei Poliakov
 
20081123 structuralcomplexitytheory lecture11-12
20081123 structuralcomplexitytheory lecture11-1220081123 structuralcomplexitytheory lecture11-12
20081123 structuralcomplexitytheory lecture11-12Computer Science Club
 
20110313 systems of_typed_lambda_calculi_moskvin_lecture06
20110313 systems of_typed_lambda_calculi_moskvin_lecture0620110313 systems of_typed_lambda_calculi_moskvin_lecture06
20110313 systems of_typed_lambda_calculi_moskvin_lecture06Computer Science Club
 
Защита информации семинар №7
Защита информации семинар №7Защита информации семинар №7
Защита информации семинар №7Alexander Kolybelnikov
 
Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовTheoretical mechanics department
 
О-символика
О-символикаО-символика
О-символикаDEVTYPE
 
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL ModelsTMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL ModelsIosif Itkin
 

What's hot (20)

Лекция 9: Графы. Поиск кратчайшего пути в графе
Лекция 9: Графы. Поиск кратчайшего пути в графеЛекция 9: Графы. Поиск кратчайшего пути в графе
Лекция 9: Графы. Поиск кратчайшего пути в графе
 
Лекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графовЛекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графов
 
Лекция 8. Графы. Обходы графов
Лекция 8. Графы. Обходы графовЛекция 8. Графы. Обходы графов
Лекция 8. Графы. Обходы графов
 
Лекция 9: Графы. Кратчайшие пути в графах
Лекция 9: Графы. Кратчайшие пути в графахЛекция 9: Графы. Кратчайшие пути в графах
Лекция 9: Графы. Кратчайшие пути в графах
 
Opredelennyj integral
Opredelennyj integralOpredelennyj integral
Opredelennyj integral
 
Funkciya y cos_ee_svojstva_i_grafik
Funkciya y cos_ee_svojstva_i_grafikFunkciya y cos_ee_svojstva_i_grafik
Funkciya y cos_ee_svojstva_i_grafik
 
Метод конечных разностей
Метод конечных разностейМетод конечных разностей
Метод конечных разностей
 
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
 
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системах
 
ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6
 
Лекция 10. Графы. Остовные деревья минимальной стоимости
Лекция 10. Графы. Остовные деревья минимальной стоимостиЛекция 10. Графы. Остовные деревья минимальной стоимости
Лекция 10. Графы. Остовные деревья минимальной стоимости
 
Use of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signatureUse of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signature
 
20081123 structuralcomplexitytheory lecture11-12
20081123 structuralcomplexitytheory lecture11-1220081123 structuralcomplexitytheory lecture11-12
20081123 structuralcomplexitytheory lecture11-12
 
20110313 systems of_typed_lambda_calculi_moskvin_lecture06
20110313 systems of_typed_lambda_calculi_moskvin_lecture0620110313 systems of_typed_lambda_calculi_moskvin_lecture06
20110313 systems of_typed_lambda_calculi_moskvin_lecture06
 
Защита информации семинар №7
Защита информации семинар №7Защита информации семинар №7
Защита информации семинар №7
 
Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементов
 
О-символика
О-символикаО-символика
О-символика
 
Integral1
Integral1Integral1
Integral1
 
графы
графыграфы
графы
 
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL ModelsTMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
 

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

20091129 algorithmsfornphardproblems kulikov_lecture10
20091129 algorithmsfornphardproblems kulikov_lecture1020091129 algorithmsfornphardproblems kulikov_lecture10
20091129 algorithmsfornphardproblems kulikov_lecture10Computer Science Club
 
20101021 proof complexity_hirsch_lecture05
20101021 proof complexity_hirsch_lecture0520101021 proof complexity_hirsch_lecture05
20101021 proof complexity_hirsch_lecture05Computer Science Club
 
20080316 efficientalgorithms kulikov_lecture18
20080316 efficientalgorithms kulikov_lecture1820080316 efficientalgorithms kulikov_lecture18
20080316 efficientalgorithms kulikov_lecture18Computer Science Club
 
20080928 structuralcomplexitytheory lecture01-02
20080928 structuralcomplexitytheory lecture01-0220080928 structuralcomplexitytheory lecture01-02
20080928 structuralcomplexitytheory lecture01-02Computer Science Club
 
практика 14
практика 14практика 14
практика 14student_kai
 
20081116 structuralcomplexitytheory lecture09-10
20081116 structuralcomplexitytheory lecture09-1020081116 structuralcomplexitytheory lecture09-10
20081116 structuralcomplexitytheory lecture09-10Computer Science Club
 
Лекция 16 Вычислительная геометрия
Лекция 16 Вычислительная геометрияЛекция 16 Вычислительная геометрия
Лекция 16 Вычислительная геометрияsimple_people
 
зависимость между песочной группой графа и его матроидом
зависимость между песочной группой графа и его матроидомзависимость между песочной группой графа и его матроидом
зависимость между песочной группой графа и его матроидомИван Иванов
 
20080323 efficientalgorithms kulikov_lecture19
20080323 efficientalgorithms kulikov_lecture1920080323 efficientalgorithms kulikov_lecture19
20080323 efficientalgorithms kulikov_lecture19Computer Science Club
 
20081026 structuralcomplexitytheory lecture05-06
20081026 structuralcomplexitytheory lecture05-0620081026 structuralcomplexitytheory lecture05-06
20081026 structuralcomplexitytheory lecture05-06Computer Science Club
 
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и кодыГригорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и кодыYandex
 
Математическое дополнение
Математическое дополнениеМатематическое дополнение
Математическое дополнениеBigVilly
 
20081012 structuralcomplexitytheory lecture03-04
20081012 structuralcomplexitytheory lecture03-0420081012 structuralcomplexitytheory lecture03-04
20081012 structuralcomplexitytheory lecture03-04Computer Science Club
 
тема 8 4 Перемещения при изгибе
тема 8 4  Перемещения при изгибетема 8 4  Перемещения при изгибе
тема 8 4 Перемещения при изгибеАркадий Захаров
 
Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии" Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии" Technosphere1
 
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture0220110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture02Computer Science Club
 
20110224 systems of_typed_lambda_calculi_moskvin_lecture03
20110224 systems of_typed_lambda_calculi_moskvin_lecture0320110224 systems of_typed_lambda_calculi_moskvin_lecture03
20110224 systems of_typed_lambda_calculi_moskvin_lecture03Computer Science Club
 

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

20091129 algorithmsfornphardproblems kulikov_lecture10
20091129 algorithmsfornphardproblems kulikov_lecture1020091129 algorithmsfornphardproblems kulikov_lecture10
20091129 algorithmsfornphardproblems kulikov_lecture10
 
20101021 proof complexity_hirsch_lecture05
20101021 proof complexity_hirsch_lecture0520101021 proof complexity_hirsch_lecture05
20101021 proof complexity_hirsch_lecture05
 
лекция 14
лекция 14лекция 14
лекция 14
 
20080316 efficientalgorithms kulikov_lecture18
20080316 efficientalgorithms kulikov_lecture1820080316 efficientalgorithms kulikov_lecture18
20080316 efficientalgorithms kulikov_lecture18
 
20080928 structuralcomplexitytheory lecture01-02
20080928 structuralcomplexitytheory lecture01-0220080928 structuralcomplexitytheory lecture01-02
20080928 structuralcomplexitytheory lecture01-02
 
практика 14
практика 14практика 14
практика 14
 
20081116 structuralcomplexitytheory lecture09-10
20081116 structuralcomplexitytheory lecture09-1020081116 structuralcomplexitytheory lecture09-10
20081116 structuralcomplexitytheory lecture09-10
 
Лекция 16 Вычислительная геометрия
Лекция 16 Вычислительная геометрияЛекция 16 Вычислительная геометрия
Лекция 16 Вычислительная геометрия
 
зависимость между песочной группой графа и его матроидом
зависимость между песочной группой графа и его матроидомзависимость между песочной группой графа и его матроидом
зависимость между песочной группой графа и его матроидом
 
fiz-mat
fiz-matfiz-mat
fiz-mat
 
20080323 efficientalgorithms kulikov_lecture19
20080323 efficientalgorithms kulikov_lecture1920080323 efficientalgorithms kulikov_lecture19
20080323 efficientalgorithms kulikov_lecture19
 
20081026 structuralcomplexitytheory lecture05-06
20081026 structuralcomplexitytheory lecture05-0620081026 structuralcomplexitytheory lecture05-06
20081026 structuralcomplexitytheory lecture05-06
 
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и кодыГригорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
Григорий Анатольевич Кабатянский - Конечные алгебры, геометрии и коды
 
Математическое дополнение
Математическое дополнениеМатематическое дополнение
Математическое дополнение
 
20081012 structuralcomplexitytheory lecture03-04
20081012 structuralcomplexitytheory lecture03-0420081012 structuralcomplexitytheory lecture03-04
20081012 structuralcomplexitytheory lecture03-04
 
тема 8 4 Перемещения при изгибе
тема 8 4  Перемещения при изгибетема 8 4  Перемещения при изгибе
тема 8 4 Перемещения при изгибе
 
Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии" Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии"
 
Get Ft
Get FtGet Ft
Get Ft
 
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture0220110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
 
20110224 systems of_typed_lambda_calculi_moskvin_lecture03
20110224 systems of_typed_lambda_calculi_moskvin_lecture0320110224 systems of_typed_lambda_calculi_moskvin_lecture03
20110224 systems of_typed_lambda_calculi_moskvin_lecture03
 

More from Nikolay Grebenshikov

Программирование: от сложного к простому
Программирование: от сложного к простомуПрограммирование: от сложного к простому
Программирование: от сложного к простомуNikolay Grebenshikov
 
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"Nikolay Grebenshikov
 
Лекция №11. Работа с внешней памятью (файлами). Предмет "Структуры и алгоритм...
Лекция №11. Работа с внешней памятью (файлами). Предмет "Структуры и алгоритм...Лекция №11. Работа с внешней памятью (файлами). Предмет "Структуры и алгоритм...
Лекция №11. Работа с внешней памятью (файлами). Предмет "Структуры и алгоритм...Nikolay Grebenshikov
 
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...Nikolay Grebenshikov
 
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...Nikolay Grebenshikov
 
Лекция №8. Поиск. Хэширование. Предмет "Структуры и алгоритмы обработки данных"
Лекция №8. Поиск. Хэширование. Предмет "Структуры и алгоритмы обработки данных"Лекция №8. Поиск. Хэширование. Предмет "Структуры и алгоритмы обработки данных"
Лекция №8. Поиск. Хэширование. Предмет "Структуры и алгоритмы обработки данных"Nikolay Grebenshikov
 
Лекция №5. Линейные структуры данных. Предмет "Структуры и алгоритмы обработк...
Лекция №5. Линейные структуры данных. Предмет "Структуры и алгоритмы обработк...Лекция №5. Линейные структуры данных. Предмет "Структуры и алгоритмы обработк...
Лекция №5. Линейные структуры данных. Предмет "Структуры и алгоритмы обработк...Nikolay Grebenshikov
 
Лекция №4. Асимтотическая нотация. Предмет "Структуры и алгоритмы обработки д...
Лекция №4. Асимтотическая нотация. Предмет "Структуры и алгоритмы обработки д...Лекция №4. Асимтотическая нотация. Предмет "Структуры и алгоритмы обработки д...
Лекция №4. Асимтотическая нотация. Предмет "Структуры и алгоритмы обработки д...Nikolay Grebenshikov
 
Лекция №7. Поиск. Деревья поиска. Предмет "Структуры и алгоритмы обработки да...
Лекция №7. Поиск. Деревья поиска. Предмет "Структуры и алгоритмы обработки да...Лекция №7. Поиск. Деревья поиска. Предмет "Структуры и алгоритмы обработки да...
Лекция №7. Поиск. Деревья поиска. Предмет "Структуры и алгоритмы обработки да...Nikolay Grebenshikov
 
Лекция №6. Деревья. Предмет "Структуры и алгоритмы обработки данных"
Лекция №6. Деревья. Предмет "Структуры и алгоритмы обработки данных"Лекция №6. Деревья. Предмет "Структуры и алгоритмы обработки данных"
Лекция №6. Деревья. Предмет "Структуры и алгоритмы обработки данных"Nikolay Grebenshikov
 
Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"
Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"
Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"Nikolay Grebenshikov
 
Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...
Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...
Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...Nikolay Grebenshikov
 
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"Nikolay Grebenshikov
 

More from Nikolay Grebenshikov (13)

Программирование: от сложного к простому
Программирование: от сложного к простомуПрограммирование: от сложного к простому
Программирование: от сложного к простому
 
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
 
Лекция №11. Работа с внешней памятью (файлами). Предмет "Структуры и алгоритм...
Лекция №11. Работа с внешней памятью (файлами). Предмет "Структуры и алгоритм...Лекция №11. Работа с внешней памятью (файлами). Предмет "Структуры и алгоритм...
Лекция №11. Работа с внешней памятью (файлами). Предмет "Структуры и алгоритм...
 
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...
Лекция №10. Сортировка. Часть №2. Предмет "Структуры и алгоритмы обработки да...
 
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
 
Лекция №8. Поиск. Хэширование. Предмет "Структуры и алгоритмы обработки данных"
Лекция №8. Поиск. Хэширование. Предмет "Структуры и алгоритмы обработки данных"Лекция №8. Поиск. Хэширование. Предмет "Структуры и алгоритмы обработки данных"
Лекция №8. Поиск. Хэширование. Предмет "Структуры и алгоритмы обработки данных"
 
Лекция №5. Линейные структуры данных. Предмет "Структуры и алгоритмы обработк...
Лекция №5. Линейные структуры данных. Предмет "Структуры и алгоритмы обработк...Лекция №5. Линейные структуры данных. Предмет "Структуры и алгоритмы обработк...
Лекция №5. Линейные структуры данных. Предмет "Структуры и алгоритмы обработк...
 
Лекция №4. Асимтотическая нотация. Предмет "Структуры и алгоритмы обработки д...
Лекция №4. Асимтотическая нотация. Предмет "Структуры и алгоритмы обработки д...Лекция №4. Асимтотическая нотация. Предмет "Структуры и алгоритмы обработки д...
Лекция №4. Асимтотическая нотация. Предмет "Структуры и алгоритмы обработки д...
 
Лекция №7. Поиск. Деревья поиска. Предмет "Структуры и алгоритмы обработки да...
Лекция №7. Поиск. Деревья поиска. Предмет "Структуры и алгоритмы обработки да...Лекция №7. Поиск. Деревья поиска. Предмет "Структуры и алгоритмы обработки да...
Лекция №7. Поиск. Деревья поиска. Предмет "Структуры и алгоритмы обработки да...
 
Лекция №6. Деревья. Предмет "Структуры и алгоритмы обработки данных"
Лекция №6. Деревья. Предмет "Структуры и алгоритмы обработки данных"Лекция №6. Деревья. Предмет "Структуры и алгоритмы обработки данных"
Лекция №6. Деревья. Предмет "Структуры и алгоритмы обработки данных"
 
Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"
Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"
Лекция №3. Анализ алгоритмов. Предмет "Структуры и алгоритмы обработки данных"
 
Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...
Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...
Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...
 
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
Лекция №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
  • 4. Задача поиска кратчайшего пути • из заданной вершины во все остальные • между всеми парами вершин 3
  • 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
  • 8. Поиск путей из заданной вершины: Алгоритм Дейкстры (Dijkstra) 7
  • 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
  • 20. Метод Форда-Фалкерсона FordFulkersonMethod(G, s, t) 1 Задаем значение потока f равным 0 2 while существует увеличивающи путь p 3 do увеличиваем поток f вдоль пути p 4 return f 19
  • 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
  • 30. Анализ алгоритма Форда-Фалкерсона T (G) = Θ(E) + Θ(E|f ∗|) = Θ(E|f ∗|) Плохой случай: 29
  • 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