Первый слайд презентации: 10.03.2025 г. Практическое занятие № 14. Тема: Потоки в сетях. Алгоритм Форда-Фалкерсона
Слайд 2: Основные понятия
Транспортной сетью называется пара Т=( G, C), где взвешенный орграф, удовлетворяющий следующим условиям: а ) нет петель; б ) существует только одна вершина, не имеющая ни одного прообраза - это исток; в ) существует только одна вершина, не имеющая ни одного образа - это сток. С - функция пропускных способностей дуг, которая является положительной вещественной функцией, определенной на множестве дуг графа, т. е. каждой дуге v графа поставлено в соответствие положительное число С(v), называемое пропускной способностью дуги V.
Слайд 3: Основные понятия
Вершина, не имеющая ни одного прообраза называется входом сети или источником и обычно обозначается V0, а вершина, не имеющая ни одного образа называется выходом сети или стоком и обозначается U0. В транспортной сети существует один исток и один сток. Потоком в транспортной сети Т называется неотрицательная вещественная функция, определенная на множестве дуг, удовлетворяющая условиям: 1 ) ограниченности: поток по любой дуге сети не превосходит пропускной способности этой дуги; 2 ) сохранения: суммарный поток, заходящий в любую вершину сети (кроме истока и стока) равен суммарному потоку, выходящему из этой вершины.
Слайд 4: Основные понятия
Дуга сети называется насыщенной, если поток по этой дуге равен пропускной способности этой дуги. Поток по пути называется полным, если хотя бы одна дуга пути насыщена. Поток в сети - это функция, определенная на множестве дуг. Величиной потока называется сумма значений этой функции по всем выходным дугам сети (выходные дуги сети - это дуги, инцидентные стоку). Понятия потока и величины потока в сети часто путают, однако между ними существует различие: поток - это функция, а величина потока - число. Разрезом сети называется множество, которому принадлежит исток, и не принадлежит сток. Т.е. разрез это минимальное (в смысле отношения включения) множество дуг, удаление которых “разрывает ” все пути, соединяющие исток и сток.
Слайд 5: Основные понятия
Пропускной способностью разреза называется число, равное сумме пропускных способностей дуг этого разреза. Разрез называется минимальным, если имеет наименьшую пропускную способность
Слайд 6: Теорема Форда- Фалкерсона
В любой транспортной сети величина любого максимального потока равна пропускной способности любого минимального разреза.
Слайд 8: Алгоритм Форда- Фалкерсона
1. Пронумеровать все вершины сети произвольным образом, кроме истока и стока.
Слайд 9: Алгоритм Форда- Фалкерсона
2. Задать некоторый начальный поток в сети (например, нулевой).
Слайд 10: Алгоритм Форда- Фалкерсона
3. Вершинам сети присвоить целочисленные метки, а дугам - знаки “+” и “-” по следующим правилам: a ) вершине-истоку присвоить метку 0.
Слайд 11: Алгоритм Форда- Фалкерсона
b) находим непомеченную вершину W, смежную помеченной вершине V. Если поток по соединяющей вершины V-W дуге меньше пропускной способности этой дуги, то происходит помечивание, иначе переходим к рассмотрению следующей вершины. Если вершина W является образом помеченной вершины V, то происходит прямое помечивание : вершина W получает метку, равную номеру вершины V, соединяющая вершины V-W дуга получает метку “ + ” и мы переходим к рассмотрению следующей вершины. Если вершина W не имеет ни одного помеченного прообраза, то происходит обратное помечивание : вершина W получает метку, равную номеру вершины V (являющейся в данном случае её образом), соединяющая вершины W-V дуга получает метку “ - ” и мы переходим к рассмотрению следующей вершины. Процесс помечивания продолжается до тех пор, пока все удовлетворяющие этим условиям вершины не получат метку.
Слайд 12: Алгоритм Форда- Фалкерсона
Прямое помечивание : Пусть w – непомеченная, а v – помеченная вершины. Тогда вершине w ∈ Г ( v ), такой что φ ( v, w ) < c (v, w) присвоить метку, равную номеру вершины v, а дуге ( v, w ) знак “ + ”
Слайд 13: Алгоритм Форда- Фалкерсона
Обратное помечивание : вершине w ∈ Г-(v ), такой что φ (v, w) > 0, присвоить метку, равную номеру вершины v, а дуге ( w, v ) – знак “ - ”. Таких вершин на этом шаге не найдено.
Слайд 14: Алгоритм Форда- Фалкерсона
4. Если в результате процедуры помечивания вершина-сток метки не получила, то текущий поток - максимальный, задача решена. В противном случае, перейти к пункту 5. Вершина №6 (сток) получила метку. Значит, максимальный поток еще не найден. Продолжаем решение.
Слайд 15: Алгоритм Форда- Фалкерсона
5. Рассмотреть последовательность вершин L = ( U0,..., v0), метка каждой из которых равна номеру следующей за ней вершины, и множество дуг М, соединяющих соседние вершины из L. Рассмотрим последовательность вершин λ -( v6,v,…,vi,v1 ), каждая из которых имеет метку, равную номеру следующей вершины и последовательность дуг μ, соединяющих соседние вершины из λ : λ -( v6,v,…,vi,v1 ).
Слайд 16: Алгоритм Форда- Фалкерсона
Построить новый поток по схеме: Если дуга принадлежит множеству М и имеет знак “ + ”, то новый поток по этой дуге = старый поток по этой дуге + К Если дуга принадлежит множеству М и имеет знак “ - ”, то новый поток по этой дуге = старый поток по этой дуге – К Если дуга не принадлежит множеству М, то новый поток по дуге = старый поток по этой дуге.
Слайд 18: Схема нахождения К
К = min { К1 ; К2 }, где Для нахождения К1 рассматриваются все дуги, принадлежащие множеству М и имеющие знак “ + ” и для каждой такой дуги вычисляется разность между пропускной способностью дуги и потоком по этой дуге. Затем из этих значений разностей выбирается минимальное значение и присваивается К1. Для нахождения К2 рассматриваются все дуги, принадлежащие множеству М и имеющие знак “ - ”. Затем из этих дуг выбирается дуга с минимальным потоком и значение потока по этой дуге присваивается К2. Перейти к п. 3.
Слайд 19: Алгоритм Форда- Фалкерсона
Вершине №1 (истоку) присвоить метку “ 0 ”. Прямое помечивание.
Слайд 20: Алгоритм Форда- Фалкерсона
Обратное помечивание – соответствующих вершин не найдено. Вершина №6 (сток) получила метку. Значит, максимальный поток еще не найден. Продолжаем решение.