SlideShare a Scribd company logo
1 of 46
Download to read offline
Основы теории графов 
осень 2013 
Александр Дайняк 
www.dainiak.com
Что такое граф? 
• Неформально, граф — набор объектов и связей между парами 
этих объектов 
Bob 
Alice 
John
Что такое граф? 
• Формально, 
граф — это пара множеств 푉, 퐸 , 
где 퐸 — это множество пар элементов 푉 
• Например, 
V = 퐴푙푖푐푒, 퐵표푏, 퐽표ℎ푛 
E = 퐵표푏, 퐴푙푖푐푒 , 퐽표ℎ푛, 퐴푙푖푐푒 , 퐴푙푖푐푒, 퐽표ℎ푛 
• Элементы множеств 푉 и 퐸 называют вершинами и рёбрами графа 
соответственно 
• Если пары в 퐸 упорядоченные, то говорят об ориентированном 
графе (орграфе), а элементы 퐸 называют дугами
Немного терминологии 
• Множества вершин и рёбер графа 퐺 обозначаются 푉 퐺 и 퐸 퐺 
соответственно 
• Обозначаем 퐺 ≔ 푉 퐺 и 퐺 ≔ 퐸 퐺 
• Ребро, соединяющее вершины 푢 и 푣, обозначается через 푢푣 
• Если 푢, 푣 ∈ 푉 퐺 и 푢푣 ∈ 퐸 퐺 , то вершины 푢 и 푣 называются 
смежными (в графе 퐺) 
• Вершина, принадлежащая ребру, называется концом этого ребра. 
При этом говорят, что данная вершина и ребро инцидентны друг 
другу
Какие бывают графы 
• Если во множестве 퐸 есть повторяющиеся пары, то говорят о 
мультиграфе, а сами эти пары называют кратными 
рёбрами/дугами 
• Если в 퐸 есть пары, оба элемента которых совпадают, то говорят о 
псевдографе, а сами эти пары называют петлями 
граф орграф мультиграф псевдограф
Графы и их представления 
• Следует чётко различать сам граф (абстрактный объект, пара 
множеств) и его представление (например, изображение на 
плоскости). Графы существуют вне зависимости от их 
изображений. Например, граф 
1,2,3,4 , 1,2 , 1,3 , 1,4 , 2,3 , 2,4 , 3,4 
можно по-разному «изобразить»:
Графы и их представления 
• И наоборот, два разных графа могут «структурно» представлять 
собой одно и то же: графы 
1,2,3,4 , 1,2 , 1,3 , 1,4 , 2,3 , 2,4 , 3,4 
и 
퐴, 퐵, 퐶, 퐷 , 퐴, 퐵 , 퐶, 퐷 , 퐴, 퐶 , 퐵, 퐷 , 퐷, 퐴 , 퐵, 퐷 
имеют идентичную структуру: четыре вершины, каждые две из 
которых смежны
Изоморфизм графов 
• Графы, которые неотличимы со структурной точки зрения, 
называются изоморфными 
• Формально, графы 퐺′ и 퐺′′ изоморфны, если существует пара 
биекций 
휙: 푉 퐺′ ↔ 푉 퐺′′ 
휓: 퐸 퐺′ ↔ 퐸 퐺′′ 
такая, что для любого ребра 푢푣 ∈ 퐸 퐺′ 
휓 푢푣 = 휙 푢 휙 푣 
• Сама биекция 휙 называется изоморфизмом между 퐺′ и 퐺′′
Изоморфизм графов 
• Иначе говоря, 퐺′ и 퐺′′ изоморфны, если их вершины можно 
«занумеровать» так, что вершины с одинаковыми «номерами» 
либо смежны и в 퐺′, и в 퐺′′, либо несмежны в обоих этих графах 
• Пример: 
• 푉 퐺′ = 1,2,3 , 퐸 퐺′ = 1,2 , 1,3 
• 푉 퐺′′ = 푥, 푦, 푧 , 퐸 퐺′′ = 푦, 푧 , 푧, 푥 
• Изоморфизм: 1 ↔ 푧, 2 ↔ 푥, 3 ↔ 푦
Изоморфизм графов 
• Поскольку изоморфные графы с точки зрения структуры 
идентичны, мы часто будем считать их одним и тем же графом 
• Любая характеристика графа (числовая или качественная), 
зависящая лишь от структуры графа (т.е. равная у любой пары 
изоморфных графов), называется инвариантом графа 
• Пример: количества вершин и рёбер графа являются 
инвариантами
Изоморфизм графов 
Если требуется определить, являются ли два данных графа 
изоморфными, то 
• для доказательства неизоморфности графов надо указать 
инвариант, значение которого различается у этих графов 
• для доказательства изоморфности нужно указать, какая вершина 
первого графа соответствует какой вершине второго
Подграфы 
• Пусть 퐺 = 푉, 퐸 и 퐺′ = 푉′ , 퐸′ — графы. 
• 퐺′ является подграфом графа 퐺, если 푉′ ⊆ 푉 и 퐸′ ⊆ 퐸 
• 퐺′ — остовный подграф, если 푉′ = 푉 
• 퐺′ — порождённый подграф графа 퐺, если с каждой парой 
вершин он содержит и все инцидентные им рёбра: 
∀푢, 푣 푢푣 ∈ 퐸 и 푢, 푣 ∈ 푉′ ⇒ 푢푣 ∈ 퐸′ 
граф подграф 
(не являющийся 
порождённым) 
порождённый 
подграф 
остовный 
подграф
Удаление/добавление 
вершин и рёбер 
Пусть 퐺 = 푉, 퐸 . 
• Для множества 푉′ ⊆ 푉 через 퐺 − 푉′ обозначаем подграф графа 퐺, 
порождённый множеством 푉 ∖ 푉′ 
• Для множества 퐸′ ⊆ 퐸 через 퐺 − 퐸′ обозначаем граф 푉, 퐸 ∖ 퐸′ 
• Если 퐺′ — подграф 퐺, то через 퐺 − 퐺′ обозначаем граф 
퐺 − 푉 퐺′ 
• Если 푒 — пара вершин графа 퐺, то 퐺 + 푒 обозначает граф 
푉, 퐸 ∪ 푒
Соседи. Степени вершин 
• Любая вершина, смежная с вершиной 푣, называется соседом 푣 
• Множество соседей 푣 обозначают 푁 푣 
• Для множества вершин 퐴 считаем 푁 퐴 = 푣∈퐴 푁 푣 ∖ A 
• Степень вершины — это количество рёбер, инцидентных этой 
вершине (в простом графе это равно 푁 푣 ) 
• Степень вершины 푣 обозначается 푑 푣 или deg 푣
Степени вершин 
В ориентированном графе: 
• Число входящих в 푣 дуг обозначается через 푑− 푣 , называется 
полустепенью захода 
• Число выходящих из 푣 дуг обозначается через 푑+ 푣 , называется 
полустепенью исхода 
При этом 
푑 푣 = 푑− 푣 + 푑+ 푣
Степени вершин 
• Степень вершины — это количество инцидентных ей рёбер 
• Вершина степени 0 — изолированная 
• Вершина степени 1 — висячая или лист 
• Вершина степени 2 — проходная
Инварианты, основанные на степенях 
вершин графа 
• Максимальная степень вершины в графе 퐺: 
Δ 퐺 = max 
푣∈푉 퐺 
푑 푣 
• Минимальная степень вершины в графе 퐺: 
훿 퐺 = min 
푣∈푉 퐺 
푑 푣 
• Средняя степень вершин в графе 퐺: 
푑 퐺 = 
1 
퐺 
⋅ 
푣∈푉 퐺 
푑 푣
Теорема «о рукопожатиях» 
• В любом графе сумма степеней всех вершин равна удвоенному 
количеству рёбер: 
푣∈푉 퐺 
푑 푣 = 2 ⋅ 퐺
Маршруты 
• Маршрут — последовательность вершин и рёбер графа (начало 
и конец — в вершинах), 
в которой последовательные элементы инцидентны друг другу 
Пример маршрута: 
푣1 푒1푣2 푒2푣3푒2푣2푒3푣4 푒4푣5 푒5푣6 
푣1 
푣2 
푣3 
푣4 
푣5 
푣6 
푒1 
푒2 
푒3 
푒4 푒5
Пути, цепи и циклы 
• Цикл — это замкнутый маршрут (т.е. начало совпадает с концом) 
без повторяющихся рёбер 
• Простой цикл — это цикл без повторяющихся вершин 
• Путь — это незамкнутый маршрут без повторений рёбер 
• Цепь — путь без повторяющихся вершин 
• Длина цикла/цепи — это количество рёбер
Связность 
• Связный граф — это граф, в котором между любыми двумя 
вершинами существует путь 
• Компонента связности графа — это его максимальный связный 
подграф 
связный граф 
несвязный граф 
компоненты 
связности
Связность 
• Мост — это ребро, удаление которого приводит к графу с 
бо́льшим числом компонент связности 
• Точка сочленения — вершина, удаление которой приводит к 
графу с бо́льшим числом компонент связности 
мост
Расстояния в графе 
• Расстояние между парой вершин 푢, 푣 — это длина кратчайшей 
цепи, соединяющей эти вершины. Обозначение: 푑 푢, 푣 
• Диаметр графа — это максимальное из расстояний между 
парами вершин. Обозначение: 
diam 퐺 = max 
푢,푣 
푑 푢, 푣 
푑 퐺 = 푑 푢, 푣 = 3 푣 
푢
Полные и пустые графы 
• Полный граф на 푛 вершинах 퐾푛 — это граф, в котором есть все 
возможные рёбра (сколько?) 
퐾4 퐾5 
• Пустой граф — в котором нет ни одного ребра
Независимые множества и клики 
• Клика в графе — это полный подграф 
• Независимое множество — это подмножество вершин, 
порождающее пустой подграф
Независимые множества и клики 
• Число независимости 훼 퐺 — это размер максимального 
независимого множества 
• Кликовое число 휔 퐺 — это максимальный размер клики в графе
Двудольные графы 
• Двудольный граф — это граф, вершины которого можно разбить 
на два независимых множества 
• Полный двудольный граф 퐾푚,푛 — это двудольный граф со всеми 
возможными рёбрами между долями (푚 и 푛 — мощности долей) 
퐾3,3
Потоки в сетях 
• Сеть — это орграф, каждой дуге 푒 которого приписано некоторое 
число 푐 푒 ≥ 0 (пропускная способность), и выделены две 
вершины: источник 푠 и сток 푡 
• Из 푠 в 푡 по дугам орграфа транспортируется некоторый «продукт» 
• Задача: указать, по какой дуге сколько 
единиц продукта пустить 
푠 
푡 
2 
5 
2 
3 1 
1 
3 
2 
8 
5 
6
Потоки в сетях 
Поток в сети — это функция 푓, которая каждой дуге 푒 орграфа 
ставит в соответствие некоторое число 푓 푒 , такое, что выполнены 
условия: 
• 0 ≤ 푓 푒 ≤ 푐 푒 для любого 푒 (считаем 푐 푒 = 0 при 푒 ∉ 퐸) 
• 푒 входит в 푣 푓 푒 = 푒 выходит из 푣 푓 푒 
для любой вершины 푣, не являющейся источником и стоком 
Задача: подобрать 푓, так, чтобы максимизировать величину 
потока: 
푒 выходит из 푠 
푓 푒 = 
푒 входит в 푡 
푓 푒 → max
Потоки в сетях 
• Пример потока в сети: 
푠 
푡 
2 
4 
0 
2 1 
1 
2 
2 
3 
5 
5 
푠 
푡 
2 
5 
2 
3 1 
1 
3 
2 
8 
5 
6
Верхние границы величины потока 
• Величина потока не может быть больше суммарной пропускной 
способности дуг, выходящих из источника: 
푓max ≤ 
푒 выходит из 푠 
푐 푒 
• Величина потока не может быть больше суммарной пропускной 
способности дуг, входящих в сток: 
푓max ≤ 
푒 входит в 푡 
푐 푒
Верхние границы величины потока 
• Ни одна из указанных оценок не точна: 
푠 
• Но их можно обобщить, получив точную… 
푡 
2 
4 
0 
2 1 
1 
2 
2 
3 
5 
5 
푠 
푡 
2 
5 
2 
3 1 
1 
3 
2 
8 
5 
6
Верхние границы величины потока 
• Разрез в сети — это разбиение вершин сети на две части: 푉 = 푆 ⊔ 
푇, где 푆 ∋ 푠 и 푇 ∋ 푡 
• Пропускная способность разреза — это сумма пропускных 
способностей дуг, ведущих из 푆 в 푇: 
푠 
푡 
2 
5 
2 
3 1 
1 
3 
2 
8 
5 
6 
푆 
푇 
푒 ведёт из 푆 в 푇 
푐 푒
Верхние границы величины потока 
• Итак, величина любого потока не больше пропускной 
способности любого разреза, а значит и 
푓max ≤ 푐min, 
где 푐min — пропускная способность минимального разреза в сети
Теорема Форда—Фалкерсона 
Теорема. Имеет место равенство 
푓max = 푐min, 
то есть всегда можно указать поток в сети, достигающий верхней 
границы.
Алгоритм Форда—Фалкерсона 
Алгоритм Форда—Фалкерсона строит максимальный поток в сети с 
помощью последовательных улучшений: 
• Начинаем с произвольного потока 
• Пока можно улучшить — улучшаем 
• Если нельзя улучшить — останавливаемся
Алгоритм Форда—Фалкерсона 
• Начинаем с произвольного потока 
С помощью поиска в ширину по сети можно проверить, существует 
ли в ней ненулевой поток: 
푠 
푡 
2 
5 
2 
3 1 
1 
3 
2 
8 
5 
6 
푠 
푡 
1 
1 1
Алгоритм Форда—Фалкерсона 
• Пока поток можно улучшить — улучшаем 
Пусть в сети уже построен некоторый поток. Для этой сети и этого 
потока строим остаточную сеть: 
푠 
푡 
2 
5 
2 
3 1 
1 
3 
2 
8 
5 
6 
푠 
푡 
1 
5 
2 
2 1 
1 
3 
2 
8 
5 
6 
푠 
푡 
1 
1 1 
1 
1
Алгоритм Форда—Фалкерсона 
Пусть в сети уже построен некоторый поток. Для этой сети и этого 
потока строим остаточную сеть. Если в исходной сети 
пропускная способность дуги 푒 была 푐0 , и по этой дуге шёл поток 
푓0 , то в остаточной сети считаем 
푐 푒 = 푐0 − 푓0 
и добавляем вспомогательную дугу 푒′ в обратном направлении, 
считая при этом 
푐 푒′ = 푓0
Алгоритм Форда—Фалкерсона 
Теперь пытаемся найти какой-нибудь ненулевой поток в 
остаточной сети. Если он есть, значит поток в исходной сети можно 
увеличить: 
푠 
푡 
1 
5 
2 
2 1 
1 
3 
2 
8 
5 
6 
1 
1 
푠 
푡 
1 
1 
1 
1 
1 
1
Алгоритм Форда—Фалкерсона 
Теперь пытаемся найти какой-нибудь ненулевой поток в 
остаточной сети. Если он есть, значит поток в исходной сети можно 
увеличить: 
푠 
푡 
1 
1 
1 
1 
1 
1 
푠 
푡 
1 
1 1 푠 
푡 
2 
2 1 
1 
1 
1 
1
Алгоритм Форда—Фалкерсона 
Если в остаточной сети не оказалось ненулевого потока, то это в 
ней нельзя дойти от 푠 до 푡 по дугам с положительными 
пропускными способностями. 
푠 
푡 
2 
4 
0 
2 1 
1 
2 
2 
3 
5 
5 
푠 
푡 
2 
5 
2 
3 1 
1 
3 
2 
8 
5 
6 
푠 
푡 
2 
1 
2 
1 1 
1 
1 
2 
5 
5 
1 
2 
5 
3 
2
Алгоритм Форда—Фалкерсона 
Если в остаточной сети не оказалось ненулевого потока, то это в 
ней нельзя дойти от 푠 до 푡 по дугам с положительными 
пропускными способностями. Беря в качестве 푆 вершины, до 
которых можно дойти по ненулевым дугам из 푠, а в качестве 푇 все 
остальные вершины, получаем разрез. Его пропускная способность 
равна величине потока, по которому строилась остаточная сеть. 
푠 
푡 
2 
1 
2 
1 1 
1 
1 
2 
5 
5 
1 
2 
5 
3 
2
Алгоритм Форда—Фалкерсона 
Замечание. Проводить «обратные» дуги при построении 
остаточной сети важно, иначе максимальность получаемого потока 
не гарантируется. 
5 5 
5 
2 
2 
2 
2 2 
2 
2 
3 
?
Алгоритм Форда—Фалкерсона 
Замечание. Проводить «обратные» дуги при построении 
остаточной сети важно, иначе максимальность получаемого потока 
не гарантируется. 
5 5 
5 
2 
2 
2 
2 2 
2 
2 
3 
2
Теорема Форда—Фалкерсона 
• Если все пропускные способности в сети целочисленные, то и 
построенный алгоритмом Форда—Фалкерсона поток оказывается 
целочисленным (то есть 푓 푒 ∈ ℤ для каждой дуги 푒). 
• Если все пропускные способности в сети — рациональные дроби, 
то, домножив их на наименьшее общее кратное знаменателей, 
можно перейти к целым числам. 
• Если пропускные способности в сети иррациональные, то не 
гарантируется, что алгоритм Форда—Фалкерсона 
завершится.

More Related Content

What's hot

Основы теории графов 10: экстремальная теория графов
Основы теории графов 10: экстремальная теория графовОсновы теории графов 10: экстремальная теория графов
Основы теории графов 10: экстремальная теория графовAlex Dainiak
 
Основы теории графов 04: метрики на деревьях
Основы теории графов 04: метрики на деревьяхОсновы теории графов 04: метрики на деревьях
Основы теории графов 04: метрики на деревьяхAlex Dainiak
 
Графовая модель канала связи. Шенноновская ёмкость
Графовая модель канала связи. Шенноновская ёмкостьГрафовая модель канала связи. Шенноновская ёмкость
Графовая модель канала связи. Шенноновская ёмкостьAlex Dainiak
 
Разбор задач модуля "Теория графов ll"
Разбор задач модуля "Теория графов ll"Разбор задач модуля "Теория графов ll"
Разбор задач модуля "Теория графов ll"DEVTYPE
 
Квадратичная математика
Квадратичная математикаКвадратичная математика
Квадратичная математикаDEVTYPE
 
6. Теория графов ll
6. Теория графов ll6. Теория графов ll
6. Теория графов llDEVTYPE
 
Математическая индукция
Математическая индукцияМатематическая индукция
Математическая индукцияDEVTYPE
 
Разбор задач пятого модуля
Разбор задач пятого модуляРазбор задач пятого модуля
Разбор задач пятого модуляDEVTYPE
 
Элементы дискретной математики для программистов
Элементы дискретной математики для программистовЭлементы дискретной математики для программистов
Элементы дискретной математики для программистовDEVTYPE
 
Основы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задачОсновы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задачDEVTYPE
 
Визуализация графов: теорема Татта о барицентрической укладке
Визуализация графов: теорема Татта о барицентрической укладкеВизуализация графов: теорема Татта о барицентрической укладке
Визуализация графов: теорема Татта о барицентрической укладкеAlex Dainiak
 
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицы
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицыДиаграммы Юнга, плоские разбиения и знакочередующиеся матрицы
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицыDEVTYPE
 
Теорема Рамсея, оценки чисел Рамсея
Теорема Рамсея, оценки чисел РамсеяТеорема Рамсея, оценки чисел Рамсея
Теорема Рамсея, оценки чисел РамсеяAlex Dainiak
 
Основы теории графов - I
Основы теории графов - IОсновы теории графов - I
Основы теории графов - IDEVTYPE
 
Коды Адамара. Каскадные коды Форни.
Коды Адамара. Каскадные коды Форни.Коды Адамара. Каскадные коды Форни.
Коды Адамара. Каскадные коды Форни.Alex Dainiak
 
функция
функцияфункция
функцияmara2101
 

What's hot (17)

Основы теории графов 10: экстремальная теория графов
Основы теории графов 10: экстремальная теория графовОсновы теории графов 10: экстремальная теория графов
Основы теории графов 10: экстремальная теория графов
 
Основы теории графов 04: метрики на деревьях
Основы теории графов 04: метрики на деревьяхОсновы теории графов 04: метрики на деревьях
Основы теории графов 04: метрики на деревьях
 
Графовая модель канала связи. Шенноновская ёмкость
Графовая модель канала связи. Шенноновская ёмкостьГрафовая модель канала связи. Шенноновская ёмкость
Графовая модель канала связи. Шенноновская ёмкость
 
Разбор задач модуля "Теория графов ll"
Разбор задач модуля "Теория графов ll"Разбор задач модуля "Теория графов ll"
Разбор задач модуля "Теория графов ll"
 
Квадратичная математика
Квадратичная математикаКвадратичная математика
Квадратичная математика
 
6. Теория графов ll
6. Теория графов ll6. Теория графов ll
6. Теория графов ll
 
Математическая индукция
Математическая индукцияМатематическая индукция
Математическая индукция
 
Разбор задач пятого модуля
Разбор задач пятого модуляРазбор задач пятого модуля
Разбор задач пятого модуля
 
Элементы дискретной математики для программистов
Элементы дискретной математики для программистовЭлементы дискретной математики для программистов
Элементы дискретной математики для программистов
 
Основы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задачОсновы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задач
 
Визуализация графов: теорема Татта о барицентрической укладке
Визуализация графов: теорема Татта о барицентрической укладкеВизуализация графов: теорема Татта о барицентрической укладке
Визуализация графов: теорема Татта о барицентрической укладке
 
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицы
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицыДиаграммы Юнга, плоские разбиения и знакочередующиеся матрицы
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицы
 
Теорема Рамсея, оценки чисел Рамсея
Теорема Рамсея, оценки чисел РамсеяТеорема Рамсея, оценки чисел Рамсея
Теорема Рамсея, оценки чисел Рамсея
 
Основы теории графов - I
Основы теории графов - IОсновы теории графов - I
Основы теории графов - I
 
лекция 10
лекция 10лекция 10
лекция 10
 
Коды Адамара. Каскадные коды Форни.
Коды Адамара. Каскадные коды Форни.Коды Адамара. Каскадные коды Форни.
Коды Адамара. Каскадные коды Форни.
 
функция
функцияфункция
функция
 

Viewers also liked

Свойства биномиальных коэффициентов, формула включений-исключений, неравенств...
Свойства биномиальных коэффициентов, формула включений-исключений, неравенств...Свойства биномиальных коэффициентов, формула включений-исключений, неравенств...
Свойства биномиальных коэффициентов, формула включений-исключений, неравенств...Alex Dainiak
 
Гиперграфы. Покрытия. Жадный алгоритм.
Гиперграфы. Покрытия. Жадный алгоритм.Гиперграфы. Покрытия. Жадный алгоритм.
Гиперграфы. Покрытия. Жадный алгоритм.Alex Dainiak
 
Основные определения теории графов. Деревья.
Основные определения теории графов. Деревья.Основные определения теории графов. Деревья.
Основные определения теории графов. Деревья.Alex Dainiak
 
Эйлеровы и гамильтоновы циклы. Теорема Турана.
Эйлеровы и гамильтоновы циклы. Теорема Турана.Эйлеровы и гамильтоновы циклы. Теорема Турана.
Эйлеровы и гамильтоновы циклы. Теорема Турана.Alex Dainiak
 
Группы. Теоремы Кэли, Лагранжа, Силова.
Группы. Теоремы Кэли, Лагранжа, Силова.Группы. Теоремы Кэли, Лагранжа, Силова.
Группы. Теоремы Кэли, Лагранжа, Силова.Alex Dainiak
 
Обращение Мёбиуса. Разбиения чисел на слагаемые.
Обращение Мёбиуса. Разбиения чисел на слагаемые.Обращение Мёбиуса. Разбиения чисел на слагаемые.
Обращение Мёбиуса. Разбиения чисел на слагаемые.Alex Dainiak
 
Асимптотики комбинаторных чисел
Асимптотики комбинаторных чиселАсимптотики комбинаторных чисел
Асимптотики комбинаторных чиселAlex Dainiak
 
Раскраски и укладки графов
Раскраски и укладки графовРаскраски и укладки графов
Раскраски и укладки графовAlex Dainiak
 
Автоморфизмы графов. Перечисление графов.
Автоморфизмы графов. Перечисление графов.Автоморфизмы графов. Перечисление графов.
Автоморфизмы графов. Перечисление графов.Alex Dainiak
 
Теорема о 5 красках. Теорема Холла.
Теорема о 5 красках. Теорема Холла.Теорема о 5 красках. Теорема Холла.
Теорема о 5 красках. Теорема Холла.Alex Dainiak
 

Viewers also liked (10)

Свойства биномиальных коэффициентов, формула включений-исключений, неравенств...
Свойства биномиальных коэффициентов, формула включений-исключений, неравенств...Свойства биномиальных коэффициентов, формула включений-исключений, неравенств...
Свойства биномиальных коэффициентов, формула включений-исключений, неравенств...
 
Гиперграфы. Покрытия. Жадный алгоритм.
Гиперграфы. Покрытия. Жадный алгоритм.Гиперграфы. Покрытия. Жадный алгоритм.
Гиперграфы. Покрытия. Жадный алгоритм.
 
Основные определения теории графов. Деревья.
Основные определения теории графов. Деревья.Основные определения теории графов. Деревья.
Основные определения теории графов. Деревья.
 
Эйлеровы и гамильтоновы циклы. Теорема Турана.
Эйлеровы и гамильтоновы циклы. Теорема Турана.Эйлеровы и гамильтоновы циклы. Теорема Турана.
Эйлеровы и гамильтоновы циклы. Теорема Турана.
 
Группы. Теоремы Кэли, Лагранжа, Силова.
Группы. Теоремы Кэли, Лагранжа, Силова.Группы. Теоремы Кэли, Лагранжа, Силова.
Группы. Теоремы Кэли, Лагранжа, Силова.
 
Обращение Мёбиуса. Разбиения чисел на слагаемые.
Обращение Мёбиуса. Разбиения чисел на слагаемые.Обращение Мёбиуса. Разбиения чисел на слагаемые.
Обращение Мёбиуса. Разбиения чисел на слагаемые.
 
Асимптотики комбинаторных чисел
Асимптотики комбинаторных чиселАсимптотики комбинаторных чисел
Асимптотики комбинаторных чисел
 
Раскраски и укладки графов
Раскраски и укладки графовРаскраски и укладки графов
Раскраски и укладки графов
 
Автоморфизмы графов. Перечисление графов.
Автоморфизмы графов. Перечисление графов.Автоморфизмы графов. Перечисление графов.
Автоморфизмы графов. Перечисление графов.
 
Теорема о 5 красках. Теорема Холла.
Теорема о 5 красках. Теорема Холла.Теорема о 5 красках. Теорема Холла.
Теорема о 5 красках. Теорема Холла.
 

Similar to Основы теории графов 01: напоминание определений, теорема Форда—Фалкерсона

20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02Computer Science Club
 
графы дженжеруха
графы дженжерухаграфы дженжеруха
графы дженжерухаGala Timofeeva
 
Графические информационные модели
Графические информационные моделиГрафические информационные модели
Графические информационные моделиAndrey Dolinin
 
шпаргалка
шпаргалкашпаргалка
шпаргалкаolgolubko
 
строковые величины
строковые величиныстроковые величины
строковые величиныmetodkopilka
 
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—ШпильманаЗадача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—ШпильманаAlex Dainiak
 

Similar to Основы теории графов 01: напоминание определений, теорема Форда—Фалкерсона (9)

20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
 
графы дженжеруха
графы дженжерухаграфы дженжеруха
графы дженжеруха
 
Графические информационные модели
Графические информационные моделиГрафические информационные модели
Графические информационные модели
 
9893
98939893
9893
 
лекция 6
лекция 6лекция 6
лекция 6
 
шпаргалка
шпаргалкашпаргалка
шпаргалка
 
строковые величины
строковые величиныстроковые величины
строковые величины
 
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—ШпильманаЗадача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
 
geometry.pdf
geometry.pdfgeometry.pdf
geometry.pdf
 

More from Alex Dainiak

Конспект лекций по теории кодирования
Конспект лекций по теории кодированияКонспект лекций по теории кодирования
Конспект лекций по теории кодированияAlex Dainiak
 
Приложения теории кодирования
Приложения теории кодированияПриложения теории кодирования
Приложения теории кодированияAlex Dainiak
 
Циклические коды БЧХ, Хемминга. Восстановление синхронизации
Циклические коды БЧХ, Хемминга. Восстановление синхронизацииЦиклические коды БЧХ, Хемминга. Восстановление синхронизации
Циклические коды БЧХ, Хемминга. Восстановление синхронизацииAlex Dainiak
 
Циклические коды. Граница БЧХ
Циклические коды. Граница БЧХЦиклические коды. Граница БЧХ
Циклические коды. Граница БЧХAlex Dainiak
 
Коды на основе многочленов и алгоритмы их декодирования
Коды на основе многочленов и алгоритмы их декодированияКоды на основе многочленов и алгоритмы их декодирования
Коды на основе многочленов и алгоритмы их декодированияAlex Dainiak
 
Линейные коды
Линейные кодыЛинейные коды
Линейные кодыAlex Dainiak
 
Границы Плоткина и Элайеса—Бассалыго
Границы Плоткина и Элайеса—БассалыгоГраницы Плоткина и Элайеса—Бассалыго
Границы Плоткина и Элайеса—БассалыгоAlex Dainiak
 
Коды, исправляющие ошибки. Простейшие границы. Коды Варшамова—Тененгольца.
Коды, исправляющие ошибки. Простейшие границы. Коды Варшамова—Тененгольца.Коды, исправляющие ошибки. Простейшие границы. Коды Варшамова—Тененгольца.
Коды, исправляющие ошибки. Простейшие границы. Коды Варшамова—Тененгольца.Alex Dainiak
 
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.Alex Dainiak
 
Визуализация графов: left-right алгоритм распознавания планарности
Визуализация графов: left-right алгоритм распознавания планарностиВизуализация графов: left-right алгоритм распознавания планарности
Визуализация графов: left-right алгоритм распознавания планарностиAlex Dainiak
 
Визуализация графов: укладки деревьев
Визуализация графов: укладки деревьевВизуализация графов: укладки деревьев
Визуализация графов: укладки деревьевAlex Dainiak
 
Визуализация графов: история
Визуализация графов: историяВизуализация графов: история
Визуализация графов: историяAlex Dainiak
 
Визуализация графов: нижние оценки и NP-трудность
Визуализация графов: нижние оценки и NP-трудностьВизуализация графов: нижние оценки и NP-трудность
Визуализация графов: нижние оценки и NP-трудностьAlex Dainiak
 
Размерность Вапника—Червоненкиса
Размерность Вапника—ЧервоненкисаРазмерность Вапника—Червоненкиса
Размерность Вапника—ЧервоненкисаAlex Dainiak
 
Теорема Алона о нулях и её применения
Теорема Алона о нулях и её примененияТеорема Алона о нулях и её применения
Теорема Алона о нулях и её примененияAlex Dainiak
 
Частично-упорядоченные множества, булеан, теоремы о разложении на цепи и анти...
Частично-упорядоченные множества, булеан, теоремы о разложении на цепи и анти...Частично-упорядоченные множества, булеан, теоремы о разложении на цепи и анти...
Частично-упорядоченные множества, булеан, теоремы о разложении на цепи и анти...Alex Dainiak
 

More from Alex Dainiak (16)

Конспект лекций по теории кодирования
Конспект лекций по теории кодированияКонспект лекций по теории кодирования
Конспект лекций по теории кодирования
 
Приложения теории кодирования
Приложения теории кодированияПриложения теории кодирования
Приложения теории кодирования
 
Циклические коды БЧХ, Хемминга. Восстановление синхронизации
Циклические коды БЧХ, Хемминга. Восстановление синхронизацииЦиклические коды БЧХ, Хемминга. Восстановление синхронизации
Циклические коды БЧХ, Хемминга. Восстановление синхронизации
 
Циклические коды. Граница БЧХ
Циклические коды. Граница БЧХЦиклические коды. Граница БЧХ
Циклические коды. Граница БЧХ
 
Коды на основе многочленов и алгоритмы их декодирования
Коды на основе многочленов и алгоритмы их декодированияКоды на основе многочленов и алгоритмы их декодирования
Коды на основе многочленов и алгоритмы их декодирования
 
Линейные коды
Линейные кодыЛинейные коды
Линейные коды
 
Границы Плоткина и Элайеса—Бассалыго
Границы Плоткина и Элайеса—БассалыгоГраницы Плоткина и Элайеса—Бассалыго
Границы Плоткина и Элайеса—Бассалыго
 
Коды, исправляющие ошибки. Простейшие границы. Коды Варшамова—Тененгольца.
Коды, исправляющие ошибки. Простейшие границы. Коды Варшамова—Тененгольца.Коды, исправляющие ошибки. Простейшие границы. Коды Варшамова—Тененгольца.
Коды, исправляющие ошибки. Простейшие границы. Коды Варшамова—Тененгольца.
 
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.
Алфавитное кодирование. Коды с минимальной избыточностью. Теорема Макмиллана.
 
Визуализация графов: left-right алгоритм распознавания планарности
Визуализация графов: left-right алгоритм распознавания планарностиВизуализация графов: left-right алгоритм распознавания планарности
Визуализация графов: left-right алгоритм распознавания планарности
 
Визуализация графов: укладки деревьев
Визуализация графов: укладки деревьевВизуализация графов: укладки деревьев
Визуализация графов: укладки деревьев
 
Визуализация графов: история
Визуализация графов: историяВизуализация графов: история
Визуализация графов: история
 
Визуализация графов: нижние оценки и NP-трудность
Визуализация графов: нижние оценки и NP-трудностьВизуализация графов: нижние оценки и NP-трудность
Визуализация графов: нижние оценки и NP-трудность
 
Размерность Вапника—Червоненкиса
Размерность Вапника—ЧервоненкисаРазмерность Вапника—Червоненкиса
Размерность Вапника—Червоненкиса
 
Теорема Алона о нулях и её применения
Теорема Алона о нулях и её примененияТеорема Алона о нулях и её применения
Теорема Алона о нулях и её применения
 
Частично-упорядоченные множества, булеан, теоремы о разложении на цепи и анти...
Частично-упорядоченные множества, булеан, теоремы о разложении на цепи и анти...Частично-упорядоченные множества, булеан, теоремы о разложении на цепи и анти...
Частично-упорядоченные множества, булеан, теоремы о разложении на цепи и анти...
 

Основы теории графов 01: напоминание определений, теорема Форда—Фалкерсона

  • 1. Основы теории графов осень 2013 Александр Дайняк www.dainiak.com
  • 2. Что такое граф? • Неформально, граф — набор объектов и связей между парами этих объектов Bob Alice John
  • 3. Что такое граф? • Формально, граф — это пара множеств 푉, 퐸 , где 퐸 — это множество пар элементов 푉 • Например, V = 퐴푙푖푐푒, 퐵표푏, 퐽표ℎ푛 E = 퐵표푏, 퐴푙푖푐푒 , 퐽표ℎ푛, 퐴푙푖푐푒 , 퐴푙푖푐푒, 퐽표ℎ푛 • Элементы множеств 푉 и 퐸 называют вершинами и рёбрами графа соответственно • Если пары в 퐸 упорядоченные, то говорят об ориентированном графе (орграфе), а элементы 퐸 называют дугами
  • 4. Немного терминологии • Множества вершин и рёбер графа 퐺 обозначаются 푉 퐺 и 퐸 퐺 соответственно • Обозначаем 퐺 ≔ 푉 퐺 и 퐺 ≔ 퐸 퐺 • Ребро, соединяющее вершины 푢 и 푣, обозначается через 푢푣 • Если 푢, 푣 ∈ 푉 퐺 и 푢푣 ∈ 퐸 퐺 , то вершины 푢 и 푣 называются смежными (в графе 퐺) • Вершина, принадлежащая ребру, называется концом этого ребра. При этом говорят, что данная вершина и ребро инцидентны друг другу
  • 5. Какие бывают графы • Если во множестве 퐸 есть повторяющиеся пары, то говорят о мультиграфе, а сами эти пары называют кратными рёбрами/дугами • Если в 퐸 есть пары, оба элемента которых совпадают, то говорят о псевдографе, а сами эти пары называют петлями граф орграф мультиграф псевдограф
  • 6. Графы и их представления • Следует чётко различать сам граф (абстрактный объект, пара множеств) и его представление (например, изображение на плоскости). Графы существуют вне зависимости от их изображений. Например, граф 1,2,3,4 , 1,2 , 1,3 , 1,4 , 2,3 , 2,4 , 3,4 можно по-разному «изобразить»:
  • 7. Графы и их представления • И наоборот, два разных графа могут «структурно» представлять собой одно и то же: графы 1,2,3,4 , 1,2 , 1,3 , 1,4 , 2,3 , 2,4 , 3,4 и 퐴, 퐵, 퐶, 퐷 , 퐴, 퐵 , 퐶, 퐷 , 퐴, 퐶 , 퐵, 퐷 , 퐷, 퐴 , 퐵, 퐷 имеют идентичную структуру: четыре вершины, каждые две из которых смежны
  • 8. Изоморфизм графов • Графы, которые неотличимы со структурной точки зрения, называются изоморфными • Формально, графы 퐺′ и 퐺′′ изоморфны, если существует пара биекций 휙: 푉 퐺′ ↔ 푉 퐺′′ 휓: 퐸 퐺′ ↔ 퐸 퐺′′ такая, что для любого ребра 푢푣 ∈ 퐸 퐺′ 휓 푢푣 = 휙 푢 휙 푣 • Сама биекция 휙 называется изоморфизмом между 퐺′ и 퐺′′
  • 9. Изоморфизм графов • Иначе говоря, 퐺′ и 퐺′′ изоморфны, если их вершины можно «занумеровать» так, что вершины с одинаковыми «номерами» либо смежны и в 퐺′, и в 퐺′′, либо несмежны в обоих этих графах • Пример: • 푉 퐺′ = 1,2,3 , 퐸 퐺′ = 1,2 , 1,3 • 푉 퐺′′ = 푥, 푦, 푧 , 퐸 퐺′′ = 푦, 푧 , 푧, 푥 • Изоморфизм: 1 ↔ 푧, 2 ↔ 푥, 3 ↔ 푦
  • 10. Изоморфизм графов • Поскольку изоморфные графы с точки зрения структуры идентичны, мы часто будем считать их одним и тем же графом • Любая характеристика графа (числовая или качественная), зависящая лишь от структуры графа (т.е. равная у любой пары изоморфных графов), называется инвариантом графа • Пример: количества вершин и рёбер графа являются инвариантами
  • 11. Изоморфизм графов Если требуется определить, являются ли два данных графа изоморфными, то • для доказательства неизоморфности графов надо указать инвариант, значение которого различается у этих графов • для доказательства изоморфности нужно указать, какая вершина первого графа соответствует какой вершине второго
  • 12. Подграфы • Пусть 퐺 = 푉, 퐸 и 퐺′ = 푉′ , 퐸′ — графы. • 퐺′ является подграфом графа 퐺, если 푉′ ⊆ 푉 и 퐸′ ⊆ 퐸 • 퐺′ — остовный подграф, если 푉′ = 푉 • 퐺′ — порождённый подграф графа 퐺, если с каждой парой вершин он содержит и все инцидентные им рёбра: ∀푢, 푣 푢푣 ∈ 퐸 и 푢, 푣 ∈ 푉′ ⇒ 푢푣 ∈ 퐸′ граф подграф (не являющийся порождённым) порождённый подграф остовный подграф
  • 13. Удаление/добавление вершин и рёбер Пусть 퐺 = 푉, 퐸 . • Для множества 푉′ ⊆ 푉 через 퐺 − 푉′ обозначаем подграф графа 퐺, порождённый множеством 푉 ∖ 푉′ • Для множества 퐸′ ⊆ 퐸 через 퐺 − 퐸′ обозначаем граф 푉, 퐸 ∖ 퐸′ • Если 퐺′ — подграф 퐺, то через 퐺 − 퐺′ обозначаем граф 퐺 − 푉 퐺′ • Если 푒 — пара вершин графа 퐺, то 퐺 + 푒 обозначает граф 푉, 퐸 ∪ 푒
  • 14. Соседи. Степени вершин • Любая вершина, смежная с вершиной 푣, называется соседом 푣 • Множество соседей 푣 обозначают 푁 푣 • Для множества вершин 퐴 считаем 푁 퐴 = 푣∈퐴 푁 푣 ∖ A • Степень вершины — это количество рёбер, инцидентных этой вершине (в простом графе это равно 푁 푣 ) • Степень вершины 푣 обозначается 푑 푣 или deg 푣
  • 15. Степени вершин В ориентированном графе: • Число входящих в 푣 дуг обозначается через 푑− 푣 , называется полустепенью захода • Число выходящих из 푣 дуг обозначается через 푑+ 푣 , называется полустепенью исхода При этом 푑 푣 = 푑− 푣 + 푑+ 푣
  • 16. Степени вершин • Степень вершины — это количество инцидентных ей рёбер • Вершина степени 0 — изолированная • Вершина степени 1 — висячая или лист • Вершина степени 2 — проходная
  • 17. Инварианты, основанные на степенях вершин графа • Максимальная степень вершины в графе 퐺: Δ 퐺 = max 푣∈푉 퐺 푑 푣 • Минимальная степень вершины в графе 퐺: 훿 퐺 = min 푣∈푉 퐺 푑 푣 • Средняя степень вершин в графе 퐺: 푑 퐺 = 1 퐺 ⋅ 푣∈푉 퐺 푑 푣
  • 18. Теорема «о рукопожатиях» • В любом графе сумма степеней всех вершин равна удвоенному количеству рёбер: 푣∈푉 퐺 푑 푣 = 2 ⋅ 퐺
  • 19. Маршруты • Маршрут — последовательность вершин и рёбер графа (начало и конец — в вершинах), в которой последовательные элементы инцидентны друг другу Пример маршрута: 푣1 푒1푣2 푒2푣3푒2푣2푒3푣4 푒4푣5 푒5푣6 푣1 푣2 푣3 푣4 푣5 푣6 푒1 푒2 푒3 푒4 푒5
  • 20. Пути, цепи и циклы • Цикл — это замкнутый маршрут (т.е. начало совпадает с концом) без повторяющихся рёбер • Простой цикл — это цикл без повторяющихся вершин • Путь — это незамкнутый маршрут без повторений рёбер • Цепь — путь без повторяющихся вершин • Длина цикла/цепи — это количество рёбер
  • 21. Связность • Связный граф — это граф, в котором между любыми двумя вершинами существует путь • Компонента связности графа — это его максимальный связный подграф связный граф несвязный граф компоненты связности
  • 22. Связность • Мост — это ребро, удаление которого приводит к графу с бо́льшим числом компонент связности • Точка сочленения — вершина, удаление которой приводит к графу с бо́льшим числом компонент связности мост
  • 23. Расстояния в графе • Расстояние между парой вершин 푢, 푣 — это длина кратчайшей цепи, соединяющей эти вершины. Обозначение: 푑 푢, 푣 • Диаметр графа — это максимальное из расстояний между парами вершин. Обозначение: diam 퐺 = max 푢,푣 푑 푢, 푣 푑 퐺 = 푑 푢, 푣 = 3 푣 푢
  • 24. Полные и пустые графы • Полный граф на 푛 вершинах 퐾푛 — это граф, в котором есть все возможные рёбра (сколько?) 퐾4 퐾5 • Пустой граф — в котором нет ни одного ребра
  • 25. Независимые множества и клики • Клика в графе — это полный подграф • Независимое множество — это подмножество вершин, порождающее пустой подграф
  • 26. Независимые множества и клики • Число независимости 훼 퐺 — это размер максимального независимого множества • Кликовое число 휔 퐺 — это максимальный размер клики в графе
  • 27. Двудольные графы • Двудольный граф — это граф, вершины которого можно разбить на два независимых множества • Полный двудольный граф 퐾푚,푛 — это двудольный граф со всеми возможными рёбрами между долями (푚 и 푛 — мощности долей) 퐾3,3
  • 28. Потоки в сетях • Сеть — это орграф, каждой дуге 푒 которого приписано некоторое число 푐 푒 ≥ 0 (пропускная способность), и выделены две вершины: источник 푠 и сток 푡 • Из 푠 в 푡 по дугам орграфа транспортируется некоторый «продукт» • Задача: указать, по какой дуге сколько единиц продукта пустить 푠 푡 2 5 2 3 1 1 3 2 8 5 6
  • 29. Потоки в сетях Поток в сети — это функция 푓, которая каждой дуге 푒 орграфа ставит в соответствие некоторое число 푓 푒 , такое, что выполнены условия: • 0 ≤ 푓 푒 ≤ 푐 푒 для любого 푒 (считаем 푐 푒 = 0 при 푒 ∉ 퐸) • 푒 входит в 푣 푓 푒 = 푒 выходит из 푣 푓 푒 для любой вершины 푣, не являющейся источником и стоком Задача: подобрать 푓, так, чтобы максимизировать величину потока: 푒 выходит из 푠 푓 푒 = 푒 входит в 푡 푓 푒 → max
  • 30. Потоки в сетях • Пример потока в сети: 푠 푡 2 4 0 2 1 1 2 2 3 5 5 푠 푡 2 5 2 3 1 1 3 2 8 5 6
  • 31. Верхние границы величины потока • Величина потока не может быть больше суммарной пропускной способности дуг, выходящих из источника: 푓max ≤ 푒 выходит из 푠 푐 푒 • Величина потока не может быть больше суммарной пропускной способности дуг, входящих в сток: 푓max ≤ 푒 входит в 푡 푐 푒
  • 32. Верхние границы величины потока • Ни одна из указанных оценок не точна: 푠 • Но их можно обобщить, получив точную… 푡 2 4 0 2 1 1 2 2 3 5 5 푠 푡 2 5 2 3 1 1 3 2 8 5 6
  • 33. Верхние границы величины потока • Разрез в сети — это разбиение вершин сети на две части: 푉 = 푆 ⊔ 푇, где 푆 ∋ 푠 и 푇 ∋ 푡 • Пропускная способность разреза — это сумма пропускных способностей дуг, ведущих из 푆 в 푇: 푠 푡 2 5 2 3 1 1 3 2 8 5 6 푆 푇 푒 ведёт из 푆 в 푇 푐 푒
  • 34. Верхние границы величины потока • Итак, величина любого потока не больше пропускной способности любого разреза, а значит и 푓max ≤ 푐min, где 푐min — пропускная способность минимального разреза в сети
  • 35. Теорема Форда—Фалкерсона Теорема. Имеет место равенство 푓max = 푐min, то есть всегда можно указать поток в сети, достигающий верхней границы.
  • 36. Алгоритм Форда—Фалкерсона Алгоритм Форда—Фалкерсона строит максимальный поток в сети с помощью последовательных улучшений: • Начинаем с произвольного потока • Пока можно улучшить — улучшаем • Если нельзя улучшить — останавливаемся
  • 37. Алгоритм Форда—Фалкерсона • Начинаем с произвольного потока С помощью поиска в ширину по сети можно проверить, существует ли в ней ненулевой поток: 푠 푡 2 5 2 3 1 1 3 2 8 5 6 푠 푡 1 1 1
  • 38. Алгоритм Форда—Фалкерсона • Пока поток можно улучшить — улучшаем Пусть в сети уже построен некоторый поток. Для этой сети и этого потока строим остаточную сеть: 푠 푡 2 5 2 3 1 1 3 2 8 5 6 푠 푡 1 5 2 2 1 1 3 2 8 5 6 푠 푡 1 1 1 1 1
  • 39. Алгоритм Форда—Фалкерсона Пусть в сети уже построен некоторый поток. Для этой сети и этого потока строим остаточную сеть. Если в исходной сети пропускная способность дуги 푒 была 푐0 , и по этой дуге шёл поток 푓0 , то в остаточной сети считаем 푐 푒 = 푐0 − 푓0 и добавляем вспомогательную дугу 푒′ в обратном направлении, считая при этом 푐 푒′ = 푓0
  • 40. Алгоритм Форда—Фалкерсона Теперь пытаемся найти какой-нибудь ненулевой поток в остаточной сети. Если он есть, значит поток в исходной сети можно увеличить: 푠 푡 1 5 2 2 1 1 3 2 8 5 6 1 1 푠 푡 1 1 1 1 1 1
  • 41. Алгоритм Форда—Фалкерсона Теперь пытаемся найти какой-нибудь ненулевой поток в остаточной сети. Если он есть, значит поток в исходной сети можно увеличить: 푠 푡 1 1 1 1 1 1 푠 푡 1 1 1 푠 푡 2 2 1 1 1 1 1
  • 42. Алгоритм Форда—Фалкерсона Если в остаточной сети не оказалось ненулевого потока, то это в ней нельзя дойти от 푠 до 푡 по дугам с положительными пропускными способностями. 푠 푡 2 4 0 2 1 1 2 2 3 5 5 푠 푡 2 5 2 3 1 1 3 2 8 5 6 푠 푡 2 1 2 1 1 1 1 2 5 5 1 2 5 3 2
  • 43. Алгоритм Форда—Фалкерсона Если в остаточной сети не оказалось ненулевого потока, то это в ней нельзя дойти от 푠 до 푡 по дугам с положительными пропускными способностями. Беря в качестве 푆 вершины, до которых можно дойти по ненулевым дугам из 푠, а в качестве 푇 все остальные вершины, получаем разрез. Его пропускная способность равна величине потока, по которому строилась остаточная сеть. 푠 푡 2 1 2 1 1 1 1 2 5 5 1 2 5 3 2
  • 44. Алгоритм Форда—Фалкерсона Замечание. Проводить «обратные» дуги при построении остаточной сети важно, иначе максимальность получаемого потока не гарантируется. 5 5 5 2 2 2 2 2 2 2 3 ?
  • 45. Алгоритм Форда—Фалкерсона Замечание. Проводить «обратные» дуги при построении остаточной сети важно, иначе максимальность получаемого потока не гарантируется. 5 5 5 2 2 2 2 2 2 2 3 2
  • 46. Теорема Форда—Фалкерсона • Если все пропускные способности в сети целочисленные, то и построенный алгоритмом Форда—Фалкерсона поток оказывается целочисленным (то есть 푓 푒 ∈ ℤ для каждой дуги 푒). • Если все пропускные способности в сети — рациональные дроби, то, домножив их на наименьшее общее кратное знаменателей, можно перейти к целым числам. • Если пропускные способности в сети иррациональные, то не гарантируется, что алгоритм Форда—Фалкерсона завершится.