Лучшие вопросы
Таймлайн
Чат
Перспективы

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

Из Википедии, свободной энциклопедии

Задача о максимальном потоке
Remove ads

В теории оптимизации и теории графов, задача о максимальном потоке заключается в нахождении такого потока по транспортной сети, что сумма потоков из истока, или, что то же самое, сумма потоков в сток максимальна.

Thumb
Максимальный поток в транспортной сети. Числа обозначают потоки и пропускные способности.

Задача о максимальном потоке является частным случаем более трудных задач, как например задача о циркуляции.

Remove ads

История

Суммиров вкратце
Перспектива

После вступления США во Вторую мировую войну в 1941 году математик Джордж Бернард Данциг поступил на работу в отдел статистического управления Военно-воздушных сил США в Вашингтоне. С 1941 по 1946 годы он возглавлял подразделение анализа боевых действий (Combat Analysis Branch), где работал над различными математическими проблемами.[1][2] Впоследствии c использованием работы Данцига задача о максимальном потоке была впервые решена в ходе подготовки воздушного моста во время блокады Западного Берлина, происходившей в 1948—1949 году.[3][4][5]

В 1951 году Джордж Данциг впервые сформулировал задачу в общем виде.[6]

В 1955 году, Лестер Форд и Делберт Фалкерсон (англ. Delbert Ray Fulkerson) впервые построили алгоритм, специально предназначенный для решения этой задачи. Их алгоритм получил название алгоритм Форда-Фалкерсона.[7][8]

В дальнейшем решение задачи много раз улучшалось.

В 2010 году исследователи Джонатан Кёлнер (Jonathan Kelner) и Александер Мондры (Aleksander Mądry) из МТИ вместе со своими коллегами Дэниелем Спилменом из Йельского университета и Тэном Шанхуа из Южно-Калифорнийского университета продемонстрировали очередное улучшение алгоритма, впервые за 10 лет.[3][9][10]

Remove ads

Определение

Суммиров вкратце
Перспектива

Дана транспортная сеть с источником , стоком и пропускными способностями .

Величиной потока (value of flow) называется сумма потоков из источника . В статье «Транспортная сеть» доказано, что она равна сумме потоков в сток .

Задача о максимальном потоке заключается в нахождении такого потока, где величина потока максимальна.

Remove ads

Решения

Суммиров вкратце
Перспектива

Следующая таблица перечисляет некоторые алгоритмы решения задачи.

Подробнее Зависит от алгоритма поиска увеличивающего пути. Требует ...

Для более подробного списка, см. и Список алгоритмов нахождения максимального потока.

Remove ads

Теорема о целом потоке

Если пропускные способности целые, максимальная величина потока тоже целая.

Теорема следует, например, из теоремы Форда—Фалкерсона.

Обобщения, сводящиеся к исходной задаче

Суммиров вкратце
Перспектива

Некоторые обобщения задачи о максимальном потоке легко сводятся к исходной задаче.

Произвольное число источников и/или стоков

Если источников больше одного, добавляем новую вершину S, которую делаем единственным источником. Добавляем рёбра с бесконечной пропускной способностью от S к каждому из старых источников.

Аналогично, если стоков больше одного, добавляем новую вершину T, которую делаем единственным стоком. Добавляем рёбра с бесконечной пропускной способностью от каждого из старых стоков к T.

Неориентированные рёбра

Каждое неориентированное ребро (u, v) заменяем на пару ориентированных рёбер (u, v) и (v, u).

Ограничение пропускной способности вершин

Каждую вершину v с ограниченной пропускной способностью расщепляем на две вершины vin и vout. Все рёбра, до расщепления входящие в v, теперь входят в vin. Все рёбра, до расщепления исходящие из v, теперь исходят из vout. Добавляем ребро (vin,vout) с пропускной способностью .

Ограничение пропускной способности рёбер снизу

В данном варианте постановки задачи значение потока каждого ребра дополнительно ограничено снизу функцией . Таким образом величина потока для любого ребра не может превысить его пропускную способность, но и не может быть меньше заданного минимума, т.е. . Для решения задачи необходимо преобразовать исходную транспортную сеть в транспортную сеть следующим образом:

  1. Добавь новые источник и сток .
  2. Для каждого ребра :
    1. Создай две новые вершины и .
    2. Установи и .
    3. Установи .
    4. Установи и .
  3. Установи .

В определён поток, удовлетворяющий условию об ограничении пропускной способности ребёр снизу, тогда и только тогда, когда в определен максимальный поток, в котором все рёбра вида и "насыщены". Благодаря такому построению алгоритм нахождения потока, ограниченного снизу будет следующим:

  1. Из построй .
  2. Найди поток графа , предпочитая рёбра вида и .
  3. Если , где - поток графа , в котором опущена пропускная способность рёбер снизу, то решения не существует.
  4. Иначе вычисли поток из потока , т.е. .

Ограничение пропускной способности рёбер снизу с альтернативой

Такой вариант задачи идентичен предыдущему с той разницей, что значение потока для каждого ребра может быть также равно , т.е. или . Несмотря на незначительное изменение условия, не существует полиноминального решения данной проблемы, если классы P и NP не равны. В качестве доказательства утверждения можно привести полиноминальную редукцию к проблеме Exact-3-SAT.

Remove ads

См. также

Примечания

Литература

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads