Теорема Форда — Фалкерсона

Перейти к навигацииПерейти к поиску

Теорема Форда — Фалкерсо́на — теорема о максимальном потоке в графе, тесно связанная с теоремой Менгера.

Звучит так: величина максимального потока в графе путей равна величине пропускной способности его минимального разреза.

Достаточность: любой поток между вершинами t и s меньше или равен величине любого сечения. Пусть дан некоторый поток и некоторое сечение. Величина данного потока складывается из величин «грузов», перевозимых по всем возможным путям из вершины t в s. Каждый такой путь обязан иметь общее ребро с данным сечением. Так как по каждому ребру сечения суммарно нельзя перевести «груза» больше, чем его пропускная способность, поэтому сумма всех грузов меньше или равна сумме всех пропускных способностей рёбер данного сечения. Утверждение доказано.

Отсюда следует, что любой поток меньше или равен величине минимального сечения, а значит и максимальный поток меньше или равен величине минимального сечения.

На этой теореме основан алгоритм Форда — Фалкерсона поиска максимального потока в графе, он же является доказательством необходимости данной теоремы, то есть оно является конструктивным.

Другое доказательство (через усиление)

Усилим теорему Форда — Фалкерсона следующим образом. Будем доказывать для сети с потоком f равносильность сразу трёх следующих фактов:

1° Поток f максимальный

2° Пропускная способность минимального разреза равна величине потока f

3° В графе нет дополняющего пути


1° → 3°. Предположив обратное, получим противоречие, описанное в информации по дополняющем пути в транспортном графе.

3° → 2°. Очевидно, что величина потока f не превышает пропускной способности минимального разреза . Пусть . Тогда рассмотрим разрез, где во множестве будут все вершины, кроме . Тогда его пропускная способность не меньше пропускной способности минимального разреза, что, в свою очередь, больше величины потока f. Значит, существует направление из в , что . Теперь возьмём все такие и перенесём их в . Рассмотрев получившийся разрез, заметим, что его пропускная способность тоже больше величины потока. Снова увеличиваем множество и делаем так до тех пор, пока в множестве не останется только вершина . Она же будет первой вершиной в пути, который мы создаём. Теперь смотрим какую пару мы выбрали прошлым ходом. Пусть это пара . Тогда к пути добавляем вершину . Далее смотрим в паре с какой вершиной была на первом месте вершина . Пусть это . Тогда далее к пути добавляем вершину . Делаем так до тех пор, пока не дойдём до вершины . Однако по построению этот путь является остаточным, что противоречит предположению.

2° → 1°. Как уже говорилось, очевидно, что величина любого потока не превышает пропускной способности минимального разреза, а величина нашего потока равна. Тогда величина потока не меньше величины любого другого потока в нашей сети, то есть поток максимальный.

Это доказательство хорошо тем, что не использует сложный алгоритм нахождения максимального потока в произвольной транспортной сети.

Пример

Сеть с 2 минимальными разрезами

Справа дана сеть с 6 вершинами , и суммарный поток от истока к стоку равен 5. Этот поток является максимальным для данной сети.

В данной сети возможны 2 минимальных разреза:

РазрезПоток

Литература

  • Новиков Ф. А. Дискретная математика для программистов. — 3-е. — СПб.: Питер, 2009. — С. 277—279. — 384 с. — ISBN 978-5-91180-759-7.

Ссылки