<<
>>

4. Задачи о максимальном потоке

Рассмотрим сеть из (n + 1) вершины. Пусть каждой дуге поставлено в соответствие число Су, называемое пропускной способностью дуги (i; j).

Потоком х в сети называется совокупность чисел {xij}, где xij - поток по дуге (i; j), удовлетворяющих условиям 0 i, j = 0,n, Z х^ = Z хш , i Ф 0, n.

Величиной потока x называется

jk

F(x) = Z x0i = Z Xin .

ii

Задача о максимальном потоке заключается в определении потока максимальной величины .

Разрезом W в сети называется любое множество вершин, обязательно содержащее выход и не содержащее вход. Пропускной способностью C(W) разреза W называется сумма пропускных способностей дуг, заходящих в разрез.

Известно [5, 7, 19], что величина любого потока не превышает пропускной способности любого разреза (теорема Форда- Фалкерсона).

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

Алгоритм 7 (алгоритм Форда-Фалкерсона). Применение алгоритма проиллюстрируем примером сети, приведенной на рисунке 3, в которой пропускные способности всех дуг равны единице.

Шаг 0. Берем произвольный поток (например, поток xo1 = x12 = x25 = 1). Помечаем начальную вершину индексом «0».

Обозначим Z - множество помеченных вершин.

Общий шаг. Первое действие. Помечаем вершину j индексом +i, если, во-первых, существует дуга (i; j), и, во-вторых, i е Z, j ? Z, xij < Cij.

Если в результате этого типа пометок мы пометили выход, то поток можно увеличить хотя бы на единицу (если cij - целые числа). Двигаясь обратно, можно найти путь, поток по которому можно увеличить. Однако, как видно из примера, этого недостаточно для нахождения максимального потока.

Рис. 3. Поиск максимального потока

Рис. 3. Поиск максимального потока

Второе действие. Помечаем вершину i индексом -j, если, во- первых, существует дуга (j; i), и, во-вторых, j е Z, i ? Z, xij- > 0 (легко видеть, что пометки первого типа увеличивают поток по дуге, а пометки второго типа - уменьшают).

Если в результате этого типа пометок мы пометили выход, то поток можно увеличить. Двигаясь обратно, можно найти цепь, в которой каждая вершина помечена номером предыдущей (знак пометки не важен).

Рассмотрим цепь / = (0; 3; 2; 1; 4; 5), приведенную на рисун-ке 3. Полученные в результате второго действия потоки обозначены жирным шрифтом.

Критерий остановки алгоритма следующий [7, 8]: если, применяя пометки обоих типов, вершину n пометить не удалось, то полученный поток имеет максимальную величину.

<< | >>
Источник: В.Н. Бурков, Д.А. Новиков. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ. 2001

Еще по теме 4. Задачи о максимальном потоке:

  1. Задача о максимальном потоке
  2. 3.4.3. Алгоритм построения максимального потока в транспортной сети
  3. Задача о потоке минимальной стоимости
  4. Путь максимальной эффективности.
  5. Максимальный гуманизм
  6. Вероятный максимальный убыток
  7. Максимально возможный фонд времени
  8. 1.4.3. Максимальная сила и божественная благость
  9. 5.3. Формирование максимальных по объему подмножеств оптимальных последовательностей
  10. Вероятный максимальный убыток
  11. Максимально возможный фонд рабочего времени
  12. Планирование загрузки оборудования с учетом максимальной производительности станков
  13. 10.4. Определение максимальной влагоёмкости бурых и каменных углей, антрацитов
  14. Максимальная анонимность.
  15. Коэффициент использования максимально возможного фонда рабочего времени
  16. 26. Принцип максимальной дифференциации
  17. Путь максимальной эффективности с учетом штрафов.
  18. Потоки Эрланга.