Jump to content

Проблема максимального потока

Сеть потоков для решения проблемы: каждый человек (ri) готов взять кошку (wi1) и/или собаку (wi2). Однако каждое домашнее животное (пи) отдает предпочтение только определенной части людей. Найдите любое совпадение домашних животных с людьми, при котором максимальное количество домашних животных будет усыновлено одним из предпочитаемых им людей.
Сеть потоков для решения проблемы: каждый человек (r i ) готов взять кошку (wi 1 ) и/или собаку (wi 2 ). Однако каждое домашнее животное (pi ) отдает предпочтение только определенной части людей. Найдите любое совпадение домашних животных с людьми, при котором максимальное количество домашних животных будет усыновлено одним из предпочитаемых им людей.

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

Задачу максимального потока можно рассматривать как частный случай более сложных задач сетевого потока, таких как задача циркуляции . Максимальное значение st-потока (т. е. потока от источника s к стоку t) равно минимальной пропускной способности st-отреза (т. е. отреза, отделяющего s от t) в сети, как указано в минимальном потоке max-flow. теорема о разрезе .

Проблема максимального потока была впервые сформулирована в 1954 году Т.Э. Харрисом и Ф.С. Россом как упрощенная модель советского железнодорожного потока. [1] [2] [3]

В 1955 году Лестер Р. Форд-младший и Делберт Р. Фулкерсон создали первый известный алгоритм — алгоритм Форда-Фалкерсона . [4] [5] В своей статье 1955 г. [4] Форд и Фулкерсон писали, что проблема Харриса и Росса формулируется следующим образом (см. [1] п. 5):

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

В своей книге «Потоки в сети » [5] в 1962 году Форд и Фулкерсон писали:

Она была поставлена ​​перед авторами весной 1955 года Т.Э. Харрисом, который совместно с генералом Ф.С. Россом (в отставке) сформулировал упрощенную модель железнодорожного движения и определил эту конкретную проблему как центральную, предложенную модель [11].

где [11] относится к секретному отчету «Основы метода оценки пропускной способности железнодорожных сетей» 1955 года. Харриса и Росса [3] (видеть [1] п. 5).

С годами были обнаружены различные улучшенные решения проблемы максимального потока, в частности, алгоритм кратчайшего увеличивающего пути Эдмондса и Карпа и независимо Диница; алгоритм блокирующего потока Диница; алгоритм push - Голдберга Тарьяна и ; relabel и алгоритм потока двоичной блокировки Голдберга и Рао. Алгоритмы Шермана [6] и Келнер, Ли, Ореккья и Сидфорд, [7] [8] соответственно, найти приблизительно оптимальный максимальный поток, но работать только на неориентированных графах.

В 2013 году Джеймс Б. Орлин опубликовал статью, описывающую алгоритм. [9]

В 2022 году Ли Чен, Расмус Кинг, Ян П. Лю, Ричард Пэн, Максимилиан Пробст Гутенберг и Сушант Сачдева опубликовали алгоритм почти линейного времени, работающий в для задачи о потоке с минимальной стоимостью , частным случаем которой является задача о максимальном потоке. [10] [11] Для задачи о кратчайшем пути с одним источником (SSSP) с отрицательными весами также был описан еще один частный случай задачи о потоке с минимальной стоимостью, алгоритм которого работает почти за линейное время. [12] [13] Оба алгоритма были признаны лучшими докладами на Симпозиуме по основам компьютерных наук 2022 года . [14] [15]

Определение

[ редактировать ]
Сеть потоков с источником s и стоком t . Цифры рядом с краями — это емкости.

Сначала установим некоторые обозначения:

  • Позволять быть сетью с являясь источником и стоком соответственно.
  • Если есть функция на ребрах тогда его значение на обозначается или

Определение. ребра Пропускная способность — это максимальный объем потока, который может пройти через ребро. Формально это карта

Определение. Поток это карта который удовлетворяет следующему:

  • Ограничение мощности . Поток ребра не может превышать его пропускную способность, другими словами: для всех
  • Сохранение потоков. Сумма потоков, входящих в узел, должна равняться сумме потоков, выходящих из этого узла, за исключением источника и приемника. Или:

Замечание . Потоки кососимметричны: для всех

Определение. Величина потока – это количество потока, проходящего от источника к стоку. Формально для потока это дается:

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

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

Алгоритмы

[ редактировать ]

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

Метод Год Сложность Описание
Линейное программирование Ограничения, задаваемые определением юридического потока . См. линейную программу здесь.
Алгоритм Форда – Фулкерсона 1955 Пока существует открытый путь через остаточный граф, отправьте минимум остаточных мощностей по этому пути.
Алгоритм Эдмондса – Карпа 1970 Специализация Форда-Фалкерсона, поиск дополнительных путей с помощью поиска в ширину .
Алгоритм Динича 1970 На каждом этапе алгоритм строит многоуровневый граф с поиском в ширину по остаточному графу . Максимальный поток в многоуровневом графе можно рассчитать в время, а максимальное количество фаз . В сетях с единичной пропускной способностью алгоритм Динича завершается время.
Алгоритм MKM (Малхотра, Кумар, Махешвари) [16] 1978 Модификация алгоритма Динича с другим подходом к построению блокирующих потоков. Обратитесь к оригинальной статье .
Алгоритм Динича с динамическими деревьями 1983 Структура данных динамических деревьев ускоряет вычисление максимального потока в многоуровневом графе. .
Общий алгоритм push-relabel [17] 1986 Алгоритм push relabel поддерживает предпоток, т.е. функцию потока с возможностью превышения вершин. Алгоритм работает, пока в графе есть вершина с положительным эксцессом, т.е. активная вершина. Операция push увеличивает поток на остаточном ребре, а функция высоты вершин контролирует, через какие остаточные ребра можно проталкивать поток. Функция высоты изменяется в результате операции перемаркировки. Правильные определения этих операций гарантируют, что результирующая функция потока будет максимальным потоком.
Алгоритм push-relabel с FIFO правилом выбора вершин [17] 1988 Вариант алгоритма push-relabel, который всегда выбирает самую последнюю активную вершину и выполняет операции push, пока избыток положителен и существуют допустимые остаточные ребра из этой вершины.
Алгоритм push-relabel с на максимальном расстоянии правилом выбора вершин [18] 1988 Вариант алгоритма push-relabel, который всегда выбирает самую удаленную вершину из или (т.е. вершина самой высокой метки), но в остальном действует как алгоритм FIFO.
Алгоритм push-relabel с динамическими деревьями [17] 1988 Алгоритм строит деревья ограниченного размера на остаточном графе относительно функции высоты. Эти деревья обеспечивают многоуровневые операции перемещения, т. е. перемещение по всему пути насыщения, а не по одному ребру.
Алгоритм KRT (Кинг, Рао, Тарьян) [19] 1994
Алгоритм двоичного потока блокировки [20] 1998
Алгоритм Джеймса Б. Орлина + KRT (Кинг, Рао, Тарьян) [9] 2013 Алгоритм Орлина решает максимальный поток в время для в то время как KRT решает эту проблему в для .
Алгоритм Катурии-Лю-Сидфорда [21] 2020 Методы внутренних точек и усиление границ с использованием -норм течет. Основан на более раннем алгоритме Madry, который достиг времени выполнения. . [22]
Алгоритм BLNPSSSW/BLLSSSW [23]

[24]

2020 Методы внутренних точек и динамическое сопровождение электрических потоков с помощью детандерных разложений.
Алгоритм Гао-Лю-Пэна [25] 2021 Алгоритм Гао, Лю и Пэна вращается вокруг динамического поддержания увеличивающихся электрических потоков, лежащих в основе алгоритма, основанного на методе внутренней точки, из [Mądry JACM '16]. Это влечет за собой разработку структур данных, которые в ограниченных условиях возвращают ребра с большой электрической энергией на графе, подвергающемся обновлению сопротивления.
Алгоритм Чена, Кинга, Лю, Пэна, Гутенберга и Сачдевы [10] 2022

Точная сложность в статье четко не указана, но, по-видимому,

Алгоритм Чена, Кинга, Лю, Пэна, Гутенберга и Сачдевы решает поток с максимальным потоком и потоком с минимальной стоимостью почти за линейное время, строя поток через последовательность приблизительные ненаправленные циклы минимального соотношения, каждый из которых рассчитывается и обрабатывается в амортизированных время с использованием динамической структуры данных.

Дополнительные алгоритмы см. в Goldberg & Tarjan (1988) .

Теорема об интегральном потоке

[ редактировать ]

Теорема об интегральном потоке утверждает, что

Если каждое ребро потоковой сети имеет целую пропускную способность, то существует целый максимальный поток.

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

Приложение

[ редактировать ]

Проблема максимального расхода с несколькими источниками и несколькими стоками

[ редактировать ]
Рис. 4.1.1. Преобразование задачи о максимальном расходе с несколькими источниками и множеством стоков в задачу о максимальном расходе с одним источником и одним стоком

Учитывая сеть с набором исходников и набор раковин вместо одного источника и одного стока мы должны найти максимальный поток через . Мы можем преобразовать задачу с несколькими источниками и множеством приемников в задачу о максимальном потоке, добавив консолидированный источник, соединяющийся с каждой вершиной в и объединенный сток, соединенный каждой вершиной в (также известный как суперисточник и суперприемник ) с бесконечной пропускной способностью на каждом ребре (см. рис. 4.1.1.).

Двустороннее сопоставление максимальной мощности

[ редактировать ]
Рис. 4.3.1. Преобразование задачи о максимальном двудольном сопоставлении в задачу о максимальном потоке

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

  1. содержит ребра в направленный из к .
  2. для каждого и для каждого .
  3. для каждого (См. рис. 4.3.1).

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

Минимальное покрытие пути в ориентированном ациклическом графе

[ редактировать ]

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

  1. .

Тогда можно показать, что имеет соответствие размера тогда и только тогда, когда имеет покрытие пути, не пересекающееся по вершинам содержащий края и пути, где это количество вершин в . Следовательно, задачу можно решить, найдя паросочетание максимальной мощности в вместо.

Предположим, мы нашли соответствие из , и построил покрытие от этого. Интуитивно, если две вершины сопоставляются в , то край содержится в . Очевидно, что число ребер в является . Чтобы увидеть это является вершинно-непересекающимся, учтите следующее:

  1. Каждая вершина в может быть несовпадающим в , и в этом случае не остается ребер, выходящих в ; или его можно совместить , и в этом случае останется ровно одно ребро в . В любом случае из любой вершины выходит не более одного ребра. в .
  2. Аналогично для каждой вершины в – если оно совпадает, в в ; в противном случае не имеет входящих ребер в .

Таким образом, ни одна вершина не имеет двух входящих или двух исходящих ребер. , что означает все пути в вершинно непересекающиеся.

Чтобы показать, что обложка имеет размер , мы начинаем с пустой оболочки и постепенно строим ее. Чтобы добавить вершину к обложке, мы можем либо добавить его к существующему пути, либо создать новый путь нулевой длины, начинающийся с этой вершины. Первый случай применим всякий раз, когда либо и некоторый путь в обложке начинается с , или и некоторый путь заканчивается в . Последний случай всегда применим. В первом случае общее количество ребер в покрытии увеличивается на 1, а количество путей остается прежним; в последнем случае количество путей увеличивается, а количество ребер остается прежним. Теперь ясно, что, охватив все вершин, сумма числа путей и ребер в покрытии равна . Следовательно, если число ребер в покрытии равно , количество путей .

Максимальный поток с вершинными мощностями

[ редактировать ]
Рис. 4.4.1. Преобразование задачи о максимальном потоке с ограничением пропускной способности вершин в исходную задачу о максимальном потоке путем разделения узлов

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

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

Максимальное количество путей от s до t

[ редактировать ]

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

1. Пути должны быть непересекающимися по ребрам. Эту задачу можно преобразовать в задачу о максимальном потоке, построив сеть от , с и являясь источником и стоком соответственно, и присваивая каждому ребру пропускную способность . В этой сети максимальный поток равен если есть пути, не пересекающиеся по ребрам.

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

3. Помимо того, что пути не пересекаются по ребрам и/или вершинам, пути также имеют ограничение на длину: мы учитываем только пути, длина которых точно равна , или самое большее . Большинство вариантов этой задачи NP-полны, за исключением малых значений . [26]

Проблема закрытия

[ редактировать ]

Замыкание из ориентированного графа — это набор вершин C которого ни одно ребро не выходит C. , из Задача замыкания — это задача поиска замыкания максимального или минимального веса в ориентированном графе, взвешенном по вершинам. Ее можно решить за полиномиальное время, используя редукцию к задаче о максимальном расходе.

Реальные приложения

[ редактировать ]

Выбывание в бейсболе

[ редактировать ]
Построение сетевого потока для задачи исключения бейсбола

В в бейсболе задаче на выбывание n в лиге соревнуются команд. На определенном этапе сезона лиги w i — количество побед, r i — количество игр, которые осталось сыграть команде i, а r ij — количество игр, оставшихся против команды j . Команда выбывает, если у нее нет шансов завершить сезон на первом месте. Задача задачи на выбывание в бейсболе состоит в том, чтобы определить, какие команды выбывают в каждый момент сезона. Шварц [27] предложил метод, который сводит эту проблему к максимальному сетевому потоку. В этом методе создается сеть, чтобы определить, ли команда k выбывает .

Пусть G = ( V , E ) — сеть, в которой s , t V являются источником и стоком соответственно. Добавляется игровой узел ij , который представляет количество игр между этими двумя командами. Мы также добавляем командный узел для каждой команды и соединяем каждый игровой узел { i , j } с i < j с V и соединяем каждый из них из s ребром с емкостью r ij – которая представляет количество игр между этими двумя команды. Мы также добавляем по одному командному узлу для каждой команды и соединяем каждый игровой узел { i , j } с двумя командными узлами i и j , чтобы гарантировать победу одного из них. На этих ребрах нет необходимости ограничивать величину потока. , ребра создаются от узла команды i до узла-приемника t и емкость wk rk + rk Наконец wi i устанавливается так, чтобы команда выиграла больше, wk чем + не . , Пусть S — множество всех команд, участвующих в лиге, и пусть

.

В этом методе утверждается, что команда k не исключается тогда и только тогда, когда значение потока размера r ( S − { k }) существует в сети G . В упомянутой статье доказано, что данное значение расхода является максимальным значением расхода от s до t .

Расписание авиакомпаний

[ редактировать ]

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

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

Пусть G = ( V , E ) — сеть с s , t V в качестве узлов источника и приемника. Для источника и пункта назначения каждого рейса i добавляются два узла к V : узел s i в качестве источника и узел d i в качестве узла назначения рейса i . также добавляются следующие ребра К E :

  1. Ребро с емкостью [0, 1] между s и каждым s i .
  2. Ребро с емкостью [0, 1] между каждым d i и t .
  3. Ребро с емкостью [1, 1] между каждой парой s i и d i .
  4. Ребро с пропускной способностью [0, 1] между каждым d i и s j , если источник s j достижим за разумное время и стоимость из пункта назначения полета i .
  5. Ребро с пропускной способностью [0, ] между s и t .

В упомянутом методе утверждается и доказывается, что нахождение значения потока k в G между s и t равно нахождению допустимого расписания для набора полетов F с не более чем k экипажами. [28]

Другой вариант составления расписания авиакомпаний — найти минимально необходимое количество экипажей для выполнения всех рейсов. Чтобы найти ответ на эту проблему, создается двудольный граф G' = ( A B , E ) где каждый рейс имеет копию в наборе A и наборе B. , Если тот же самолет может выполнить рейс после полета i , i A соединяется с j B. j Сопоставление в G' порождает расписание для F , и, очевидно, максимальное двустороннее сопоставление в этом графе дает расписание авиакомпании с минимальным количеством экипажей. [28] Как упоминалось в разделе «Приложения» этой статьи, двустороннее сопоставление максимальной мощности является применением задачи максимального потока.

Проблема обращения и спроса

[ редактировать ]

Есть несколько фабрик, производящих товары, и несколько деревень, куда товары нужно доставлять. Они соединены сетью дорог, каждая из которых имеет пропускную способность c для максимального количества товаров, которые могут пройти по ней. Проблема состоит в том, чтобы выяснить, существует ли тираж, удовлетворяющий спрос.Эту задачу можно преобразовать в задачу о максимальном потоке.

  1. Добавьте исходный узел s и добавьте ребра из него к каждому узлу фабрики мощностью с pi , где pi производительность фабрики fi fi .
  2. Добавьте узел-приемник t из всех деревень vi в t где с пропускной способностью d i, d i уровень спроса в деревне vi и добавьте ребра .

Пусть G = ( V , E ) будет этой новой сетью. Существует обращение, удовлетворяющее спрос тогда и только тогда, когда:

Максимальное значение расхода ( G ) .

Если существует циркуляция, рассмотрение решения о максимальном потоке даст ответ о том, сколько товаров необходимо отправить по конкретной дороге для удовлетворения спроса.

Задачу можно расширить, добавив нижнюю оценку потока на некоторых ребрах. [29]

Сегментация изображений

[ редактировать ]
Исходное изображение размером 8х8.
Сеть построена из растрового изображения. Исток слева, сток справа. Чем темнее край, тем больше его емкость. a i имеет высокий уровень, когда пиксель зеленый, b i, когда пиксель не зеленый. Все штрафы pij одинаковы. [30]

В своей книге Кляйнберг и Тардос представляют алгоритм сегментации изображения. [31] Они представляют алгоритм поиска фона и переднего плана в изображении. Точнее, алгоритм принимает растровое изображение в качестве входных данных, моделируемых следующим образом: a i ≥ 0 — это вероятность того, что пиксель i принадлежит переднему плану, b i ≥ 0 — вероятность того, что пиксель i принадлежит фону, а p ij — это штраф, если два соседних пикселя i и j располагаются один на переднем плане, а другой на заднем. Цель состоит в том, чтобы найти раздел ( A , B ) набора пикселей, который максимизирует следующее количество

,

Действительно, для пикселей в A (считающихся передним планом) мы получаем a i ; для всех пикселей в B (считающихся фоном) мы получаем b i . На границе между двумя соседними пикселями i и j мы теряем p ij . Это эквивалентно минимизации количества

потому что

Минимальный разрез, отображаемый в сети (треугольники VS круги).

Теперь мы создадим сеть, узлами которой являются пиксель, а также источник и приемник, см. рисунок справа. Мы соединяем источник с пикселем i ребром веса a i . Мы соединяем пиксель i со стоком ребром веса b i . Мы соединяем пиксель i пикселем j с весом pij с . Теперь осталось вычислить минимальный разрез в этой сети (или, что то же самое, максимальный поток). На последнем рисунке показан минимальный разрез.

Расширения

[ редактировать ]

1. В потоке с минимальной стоимостью каждое ребро ( u ,v) имеет коэффициент стоимости auv задаче о помимо пропускной способности . Если поток через ребро равен f uv , то общая стоимость равна a uv f uv . Требуется найти поток заданной величины d с наименьшей стоимостью. В большинстве вариантов коэффициенты затрат могут быть как положительными, так и отрицательными. Для решения этой задачи существуют различные алгоритмы с полиномиальным временем.

2. Проблема максимального потока может быть дополнена дизъюнктивными ограничениями : отрицательное дизъюнктивное ограничение говорит, что определенная пара ребер не может одновременно иметь ненулевой поток; положительные дизъюнктивные ограничения говорят, что в некоторой паре ребер хотя бы одно должно иметь ненулевой поток. При отрицательных ограничениях проблема становится сильно NP-трудной даже для простых сетей. При положительных ограничениях задача является полиномиальной, если разрешены дробные потоки, но может быть сильно NP-трудной, если потоки должны быть целыми. [32]

  1. ^ Jump up to: а б с Шрийвер, А. (2002). «К истории транспорта и проблемам максимального расхода». Математическое программирование . 91 (3): 437–445. CiteSeerX   10.1.1.23.5134 . дои : 10.1007/s101070100259 . S2CID   10210675 .
  2. ^ Гасс, Сол И.; Асад, Арджанг А. (2005). «Математические, алгоритмические и профессиональные разработки в области исследования операций с 1951 по 1956 год». Аннотированная хронология исследования операций . Международная серия по исследованию операций и науке управления. Том. 75. С. 79–110. дои : 10.1007/0-387-25837-X_5 . ISBN  978-1-4020-8116-3 .
  3. ^ Jump up to: а б Харрис, TE ; Росс, Ф.С. (1955). «Основы метода оценки пропускной способности железнодорожных сетей» (PDF) . Меморандум об исследовании . Архивировано из оригинала (PDF) 8 января 2014 года.
  4. ^ Jump up to: а б Форд, LR ; Фулкерсон, Д.Р. (1956). «Максимальный поток через сеть» . Канадский математический журнал . 8 : 399–404. дои : 10.4153/CJM-1956-045-5 .
  5. ^ Jump up to: а б Форд, Л.Р., младший; Фулкерсон, Д.Р., Потоки в сетях , Издательство Принстонского университета (1962).
  6. ^ Шерман, Иона (2013). «Почти максимальные расходы за почти линейное время». Материалы 54-го ежегодного симпозиума IEEE по основам информатики . стр. 263–269. arXiv : 1304.2077 . дои : 10.1109/FOCS.2013.36 . ISBN  978-0-7695-5135-7 . S2CID   14681906 .
  7. ^ Келнер, Дж. А.; Ли, Ю.Т.; Ореккья, Л.; Сидфорд, А. (2014). «Алгоритм почти линейного времени для приближенного максимального потока в неориентированных графах и его многопродуктовые обобщения» (PDF) . Материалы двадцать пятого ежегодного симпозиума ACM-SIAM по дискретным алгоритмам . п. 217. arXiv : 1304.2338 . дои : 10.1137/1.9781611973402.16 . ISBN  978-1-61197-338-9 . S2CID   10733914 . Архивировано из оригинала (PDF) 3 марта 2016 года.
  8. ^ Найт, Хелен (7 января 2014 г.). «Новый алгоритм может значительно упростить решение проблемы «максимального расхода» . Новости МТИ . Проверено 8 января 2014 г.
  9. ^ Jump up to: а б Орлин, Джеймс Б. (2013). «Макс. течет за время O (нм) или лучше». Материалы сорок пятого ежегодного симпозиума ACM по теории вычислений . стр. 765–774. CiteSeerX   10.1.1.259.5759 . дои : 10.1145/2488608.2488705 . ISBN  9781450320290 . S2CID   207205207 .
  10. ^ Jump up to: а б Чен, Л.; Кинг, Р.; Лю, Ю.П.; Гутенберг, член парламента; Сачдева, С. (2022). «Максимальный поток и поток с минимальной стоимостью в почти линейное время». arXiv : 2203.00671 [ cs.DS ].
  11. ^ Кларрайх, Эрика (8 июня 2022 г.). «Исследователи создали «абсурдно быстрый» алгоритм сетевого потока» . Журнал Кванта . Проверено 8 июня 2022 г.
  12. ^ Бернштейн, Аарон; Нанонгкай, Данупон; Вульф-Нильсен, Кристиан (30 октября 2022 г.). «Кратчайшие пути с одним источником с отрицательным весом за почти линейное время». arXiv : 2203.03456 [ cs.DS ].
  13. ^ Брубейкер, Бен (18 января 2023 г.). «Наконец, быстрый алгоритм поиска кратчайших путей на отрицательных графах» . Журнал Кванта . Проверено 25 января 2023 г.
  14. ^ «ФОКС 2022» . focs2022.eecs.berkeley.edu . Проверено 25 января 2023 г.
  15. ^ Сантош, Нагаракатте. «Награда FOCS 2022 за лучшую статью за статью профессора Аарона Бернштейна» . www.cs.rutgers.edu . Проверено 25 января 2023 г.
  16. ^ Малхотра, В.М.; Кумар, М. Прамод; Махешвари, С.Н. (1978). «Ан Алгоритм поиска максимальных потоков в сетях» (PDF) . Information Processing Letters . 7 (6): 277–278. doi : 10.1016/0020-0190(78)90016-9 .
  17. ^ Jump up to: а б с Гольдберг, А.В. ; Тарьян, Р.Э. (1988). «Новый подход к проблеме максимального потока» . Журнал АКМ . 35 (4): 921. дои : 10.1145/48014.61051 . S2CID   52152408 .
  18. ^ Чериян, Дж.; Махешвари, С.Н. (1988). «Анализ алгоритмов предварительной загрузки для максимального потока в сети». Основы программных технологий и теоретической информатики . Конспекты лекций по информатике. Том. 338. С. 30–48. дои : 10.1007/3-540-50517-2_69 . ISBN  978-3-540-50517-4 . ISSN   0302-9743 .
  19. ^ Кинг, В.; Рао, С.; Тарьян, Р. (1994). «Более быстрый детерминированный алгоритм максимального потока». Журнал алгоритмов . 17 (3): 447–474. дои : 10.1006/jagm.1994.1044 . S2CID   15493 .
  20. ^ Гольдберг, А.В. ; Рао, С. (1998). «За барьером разложения потока» . Журнал АКМ . 45 (5): 783. дои : 10.1145/290179.290181 . S2CID   96030 .
  21. ^ Катурия, Т.; Лю, Ю.П.; Сидфорд, А. (16–19 ноября). Максимальная производительность установки, прибл. Время . Дарем, Северная Каролина, США: IEEE. стр. 119–130.
  22. ^ Мадри, Александр (9–11 октября 2016 г.). Вычисление максимального расхода с увеличением электрических потоков . Нью-Брансуик, Нью-Джерси: IEEE. стр. 593–602.
  23. ^ Бранд, Дж. В.Д.; Ли, Ю.Т.; Нанонгкай, Д.; Пэн, Р.; Саранурак, Т.; Сидфорд, А.; Песня, З.; Ван, Д. (16–19 ноября 2020 г.). Двудольное сопоставление за почти линейное время на умеренно плотных графах . Дарем, Северная Каролина, США: IEEE. стр. 919–930.
  24. ^ Бранд, Дж. В.Д.; Ли, Ю.Т.; Лю, Ю.П.; Саранурак, Т.; Сидфорд, А; Песня, З.; Ван, Д. (2021). «Минимальные потоки затрат, MDP и ℓ1-регрессия в почти линейном времени для плотных экземпляров». arXiv : 2101.05719 [ cs.DS ].
  25. ^ Гао, Ю.; Лю, Ю.П.; Пэн, Р. (2021). «Полностью динамические электрические потоки: разреженный максимальный поток быстрее, чем Гольдберг-Рао». arXiv : 2101.07233 [ cs.DS ].
  26. ^ Итай, А.; Перл, Ю.; Шилоах, Ю. (1982). «Сложность поиска максимальных непересекающихся путей с ограничениями по длине». Сети . 12 (3): 277–286. дои : 10.1002/net.3230120306 . ISSN   1097-0037 .
  27. ^ Шварц, Б.Л. (1966). «Возможные победители в частично завершенных турнирах». Обзор СИАМ . 8 (3): 302–308. Бибкод : 1966SIAMR...8..302S . дои : 10.1137/1008062 . JSTOR   2028206 .
  28. ^ Jump up to: а б Томас Х. Кормен , Чарльз Э. Лейзерсон , Рональд Л. Ривест и Клиффорд Стейн (2001). «26. Максимальный расход». Введение в алгоритмы, второе издание . MIT Press и McGraw-Hill. стр. 643–668. ISBN  978-0-262-03293-3 . {{cite book}}: CS1 maint: несколько имен: список авторов ( ссылка )
  29. ^ Карл Кингсфорд. «Расширения максимального расхода: циркуляции с потребностями» (PDF) .
  30. ^ «Проект imagesegmentationwithmaxflow, содержащий исходный код для создания этих иллюстраций» . ГитЛаб . Архивировано из оригинала 22 декабря 2019 года . Проверено 22 декабря 2019 г.
  31. ^ «Проектирование алгоритмов» . pearson.com . Проверено 21 декабря 2019 г.
  32. ^ Шауэр, Иоахим; Пферши, Ульрих (1 июля 2013 г.). «Задача о максимальном потоке с дизъюнктивными ограничениями». Журнал комбинаторной оптимизации . 26 (1): 109–119. CiteSeerX   10.1.1.414.4496 . дои : 10.1007/s10878-011-9438-7 . ISSN   1382-6905 . S2CID   6598669 .

Дальнейшее чтение

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 28db38b37122ee3dd9896254e8b7a744__1704902340
URL1:https://arc.ask3.ru/arc/aa/28/44/28db38b37122ee3dd9896254e8b7a744.html
Заголовок, (Title) документа по адресу, URL1:
Maximum flow problem - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)