WikiDer > Поточная сеть
В теория графов, а проточная сеть (также известный как транспортная сеть) это ориентированный граф где каждое ребро имеет вместимость и каждое ребро получает поток. Количество потока на кромке не может превышать пропускную способность кромки. Часто в исследование операцийориентированный граф называется сеть, вершины называются узлы а ребра называются дуги. Поток должен удовлетворять ограничению, согласно которому объем потока в узел равен количеству потока из него, если только это не источник, имеющий только исходящий поток, или тонуть, который имеет только входящий поток. Сеть может использоваться для моделирования трафика в компьютерной сети, циркуляции с потребностями, жидкостей в трубах, токов в электрической цепи или чего-либо подобного, в котором что-то перемещается через сеть узлов.
Определение
А сеть это график г = (V, E), где V набор вершин и E это набор VРебер - подмножество V × V - вместе с неотрицательным функция c: V × V → ℝ∞, называется вместимость функция. Не теряя общий смысл, можно считать, что если (ты, v) ∈ E тогда (v, ты) также является членом E, поскольку если (v, ты) ∉ E тогда мы можем добавить (v, ты) к E а затем установите c(v, ты) = 0.
Если два узла в г выделяются, источник s и раковина т, тогда (г, c, s, т) называется проточная сеть.[1]
Потоки
Существуют различные понятия функции потока, которые можно определить в потоковом графе. Функции потока моделируют чистый поток единиц между парами узлов и полезны при задании таких вопросов, как каково максимальное количество единиц, которое может быть передано из узла источника s в узел приемника t? Простейший пример функции потока известен как псевдопоток.
- А псевдопоток это функция ж : V × V → ℝ который удовлетворяет следующим двум ограничениям для всех узлов ты и v:
- Косая симметрия: Кодировать только чистый поток единиц между парой узлов ты и v (увидеть интуиция ниже), то есть: ж (ты, v) = −ж (v, ты).
- Ограничение емкости: Поток дуги не может превышать ее мощность, то есть: ж (ты, v) ≤ c(ты, v).
Учитывая псевдопоток ж в сети потоков часто бывает полезно учитывать чистый поток, входящий в данный узел v, то есть сумма потоков, входящих v. В избыток функция Иксж : V → ℝ определяется Иксж (ты) = ∑v ∈ V ж (v, ты). Узел ты как говорят активный если Иксж (ты) > 0, неполноценный если Иксж (ты) < 0 или сохранение если Иксж (ты) = 0.
Эти окончательные определения приводят к двум усилениям определения псевдопотока:
- А предварительный поток это псевдопоток, который для всех v ∈ V \{s}, удовлетворяет дополнительному ограничению:
- Недефицитные потоки: Чистый поток входящий узел v неотрицательно, за исключением источника, который «производит» поток. Это: Иксж (v) ≥ 0 для всех v ∈ V \{s}.
- А возможный поток, или просто течь, является псевдопотоком, который для всех v ∈ V \{s, т}, удовлетворяет дополнительному ограничению:
- Сохранение потока: Чистый поток входящий узел v равен 0, за исключением источника, который «производит» поток, и стока, который «потребляет» поток. Это: Иксж (v) = 0 для всех v ∈ V \{s, т}.
В ценность допустимого потока ж, обозначенный | ж |, - чистый поток в раковину т проточной сети. Это, | ж | = Иксж (т).
Интуиция
В контексте анализа потока есть интерес только в рассмотрении того, как единицы передаются между узлами в целостном смысле. Другими словами, нет необходимости различать несколько дуг между парой узлов:
- Учитывая любые два узла ты и v, если есть две дуги из ты к v с мощностями 5 и 3 соответственно, это эквивалентно рассмотрению только одной дуги между ты и v с емкостью 8 - полезно знать только то, что 8 единицы могут быть переданы из ты к v, а не как их можно передать.
- Опять же, учитывая два узла ты и v, если есть поток 5 единиц от ты к v, и еще один поток 3 единиц от v к ты, это эквивалентно чистому потоку 2 единиц от ты к v, или чистый поток −2 единиц от v к ты (знак указывает направление) - полезно знать, что чистый поток 2 единицы будут течь между ты и v, и направление, в котором они будут течь, а не то, как достигается этот чистый поток.
По этой причине функция емкости c: V × V → ℝ∞, что не позволяет использовать несколько дуг, начинающихся и заканчивающихся в одних и тех же узлах, достаточно для анализа потока. Аналогично достаточно наложить косая симметрия ограничение на функции потока, чтобы гарантировать, что поток между двумя вершинами кодируется одним числом (для указания величины) и знаком (для указания направления) - зная поток между ты и v вы неявно, через косую симметрию, знаете поток между v и ты. Эти упрощения модели не всегда интуитивно понятны, но они удобны, когда приходит время анализировать потоки.
В ограничение мощности просто гарантирует, что поток на любой одной дуге в сети не может превышать пропускную способность этой дуги.
Понятия, полезные для решения проблем
Остатки
В остаточная емкость дуги относительно псевдопотока ж, обозначенный cж, - разница между мощностью дуги и ее течением. Это, cж (е) = c(е) - ж(е). Отсюда мы можем построить остаточная сеть, обозначенный гж (V, Eж), который моделирует количество имеется в наличии мощность на множестве дуг в г = (V, E). Более формально, учитывая проточную сеть г, остаточная сеть гж имеет набор узлов V, набор дуги Eж = {е ∈ V × V : cж (е) > 0} и функция емкости cж.
Эта концепция используется в Алгоритм Форда – Фулкерсона который вычисляет максимальный поток в проточной сети.
Обратите внимание, что может быть путь из ты к v в остаточной сети, даже если нет пути от ты к v в исходной сети. Поскольку потоки в противоположных направлениях сокращаются, уменьшение поток из v к ты такой же как увеличение поток из ты к v.
Расширение путей
An расширение пути это путь (ты1, ты2, ..., тыk) в остаточной сети, где ты1 = s, тыk = т, и cж (тыя, тыя + 1) > 0. Сеть находится на максимальный поток тогда и только тогда, когда в остаточной сети нет расширяющего пути гж.
Множественные источники и / или поглотители
Иногда при моделировании сети с более чем одним источником сверхисточник вводится в граф.[2] Он состоит из вершины, соединенной с каждым из источников ребрами бесконечной емкости, чтобы действовать как глобальный источник. Аналогичная конструкция для раковин называется надувательство.[3]
пример
Слева вы видите проточную сеть с обозначенным источником s, тонуть т, и четыре дополнительных узла. Расход и емкость обозначены . Обратите внимание, как сеть поддерживает асимметрию, ограничения пропускной способности и сохранение потока. Общий объем потока от s к т равно 5, что легко увидеть из того факта, что полный исходящий поток из s равно 5, что также является входящим потоком в т. Мы знаем, что ни в одном из других узлов поток не появляется и не исчезает.
Ниже вы видите остаточную сеть для данного потока. Обратите внимание на положительную остаточную пропускную способность на некоторых ребрах, где исходная пропускная способность равна нулю, например, для ребра. . Этот поток не максимальный поток. Есть свободные места на дорожках , и , которые затем являются дополнительными путями. Остаточная емкость первого пути равна .[нужна цитата] Обратите внимание, что пока существует некоторый путь с положительной остаточной пропускной способностью, поток не будет максимальным. Остаточная пропускная способность для некоторого пути - это минимальная остаточная пропускная способность всех ребер в этом пути.
Приложения
Представьте себе ряд водопроводных труб, соединенных в сеть. Каждая труба имеет определенный диаметр, поэтому она может поддерживать поток только определенного количества воды. Везде, где встречаются трубы, общее количество воды, поступающей в это соединение, должно быть равно количеству выходящей воды, иначе у нас быстро закончится вода, или у нас будет скопление воды. У нас есть вход для воды, который является источником, и выход - раковина. Тогда поток будет одним из возможных способов попадания воды из источника в сток, чтобы общее количество воды, выходящей из выпускного отверстия, было постоянным. Интуитивно понятно, что общий поток в сети - это скорость, с которой вода выходит из выпускного отверстия.
Потоки могут относиться к людям или материалам через транспортные сети или к электричеству через электрическое распределение системы. Для любой такой физической сети поток, входящий в любой промежуточный узел, должен быть равен потоку, выходящему из этого узла. Это ограничение сохранения эквивалентно Действующий закон Кирхгофа.
Поточные сети также находят применение в экология: проточные сети возникают естественным образом при рассмотрении потока питательных веществ и энергии между различными организмами в пищевой сети. Математические проблемы, связанные с такими сетями, сильно отличаются от тех, которые возникают в сетях с жидкостями или потоками трафика. Область сетевого анализа экосистемы, разработанная Роберт Уланович и другие, предполагает использование концепций из теория информации и термодинамика изучить эволюцию этих сетей с течением времени.
Классификация проблем с потоком
Самая простая и наиболее распространенная проблема использования потоковых сетей - найти то, что называется максимальный поток, который обеспечивает максимально возможный общий поток от источника до стока на заданном графике. Есть много других проблем, которые могут быть решены с использованием алгоритмов максимального потока, если они надлежащим образом смоделированы как потоковые сети, такие как двудольное соответствие, то проблема назначения и транспортная проблема. Проблемы максимального расхода могут быть эффективно решены с помощью алгоритм переназначения на передний план. В теорема о максимальном потоке и минимальном отсечении утверждает, что нахождение максимального сетевого потока эквивалентно нахождению резать минимальной емкости, которая разделяет источник и приемник, где разрез - это разделение вершин таким образом, что источник находится в одном разделе, а сток - в другом.
Изобретатель (и) | Год | Время сложность (с участием п узлы и м дуги) |
---|---|---|
Алгоритм диника | 1969 | О(мп2) |
Алгоритм Эдмондса – Карпа | 1972 | О(м2п) |
МПМ (Малхотра, Прамод-Кумар и Махешвари) алгоритм[4] | 1978 | О(п3) |
Джеймс Б. Орлин[5] | 2013 | О(мин) |
В проблема многопродуктового потока, у вас есть несколько источников и приемников, а также различные «товары», которые должны течь из заданного источника в заданный приемник. Это могут быть, например, различные товары, которые производятся на разных заводах и должны быть доставлены различным потребителям через такой же транспортная сеть.
В проблема минимальных затрат, каждый край имеет заданную стоимость , а стоимость отправки потока через край . Цель состоит в том, чтобы направить заданное количество потока из источника в сток по минимально возможной цене.
В проблема циркуляции, у вас есть нижняя граница по краям, помимо верхней границы . У каждого ребра также есть своя стоимость. Часто сохранение потока выполняется для все узлы в проблеме циркуляции, и есть соединение от стока обратно к источнику. Таким образом, вы можете задать общий поток с помощью и . Течение циркулирует через сеть, отсюда и название проблемы.
В сеть с прибылью или обобщенная сеть у каждого края есть усиление, действительное число (не ноль) такое, что, если край имеет усиление г, и сумма Икс впадает в край в его хвосте, затем количество gx вытекает из головы.
В проблема локализации источника, алгоритм пытается идентифицировать наиболее вероятный узел источника распространения информации через частично наблюдаемую сеть. Это может быть сделано в линейном времени для деревьев и кубическом времени для произвольных сетей и имеет различные приложения, начиная от отслеживания пользователей мобильных телефонов и заканчивая определением источника вспышек заболеваний.[6]
Смотрите также
- Парадокс Браесса
- Центральность
- Алгоритм Форда – Фулкерсона
- Алгоритм диника
- Flow (компьютерные сети)
- Граф потока (значения)
- Теорема о максимальном расходе и минимальном разрезе
- Ориентированный матроид
- Проблема кратчайшего пути
- Нигде-нулевой поток
использованная литература
- ^ СРЕДНИЙ. Гольдберг, Э. Тардос и Р. Тарьян, Алгоритмы сетевых потоков, Tech. Отчет STAN-CS-89-1252, кафедра CS Стэнфордского университета, 1989 г.
- ^ Эта статья включает материалы общественного достояния отNIST документ:Блэк, Пол Э. "Сверхисточник". Словарь алгоритмов и структур данных.
- ^ Эта статья включает материалы общественного достояния отNIST документ:Блэк, Пол Э. "Суперсонок". Словарь алгоритмов и структур данных.
- ^ Malhotra, V.M .; Кумар, М.Прамодх; Махешвари, С. (1978). "An алгоритм поиска максимальных потоков в сетях » (PDF). Письма об обработке информации. 7 (6): 277–278. Дои:10.1016/0020-0190(78)90016-9.
- ^ Орлин, Дж. Б. (2013). «Максимальный расход за время O (нм) или лучше» (PDF). Материалы симпозиума по теории вычислений 2013 г.: 765–774. Архивировано в
- ^ Pinto, P.C .; Thiran, P .; Веттерли, М. (2012). «Определение источника распространения в крупномасштабных сетях» (PDF). Письма с физическими проверками. 109 (6): 068702. arXiv:1208.2534. Bibcode:2012ПхРвЛ.109ф8702П. Дои:10.1103 / PhysRevLett.109.068702. PMID 23006310. S2CID 14526887.
дальнейшее чтение
- Джордж Т. Хейнеман; Гэри Поллис; Стэнли Селкоу (2008). «Глава 8: Алгоритмы сетевого потока». Об алгоритмах в двух словах. Oreilly Media. С. 226–250. ISBN 978-0-596-51624-6.
- Равиндра К. Ахуджа, Томас Л. Маньянти, и Джеймс Б. Орлин (1993). Сетевые потоки: теория, алгоритмы и приложения. Прентис Холл. ISBN 0-13-617549-X.CS1 maint: несколько имен: список авторов (ссылка на сайт)
- Боллобаш, Бела (1979). Теория графов: вводный курс. Гейдельберг: Springer-Verlag. ISBN 3-540-90399-2.
- Чартран, Гэри & Оллерманн, Ортруд Р. (1993). Прикладная и алгоритмическая теория графов. Нью-Йорк: Макгроу-Хилл. ISBN 0-07-557101-3.CS1 maint: несколько имен: список авторов (ссылка на сайт)
- Эвен, Шимон (1979). Графические алгоритмы. Роквилл, Мэриленд: Computer Science Press. ISBN 0-914894-21-8.
- Гиббонс, Алан (1985). Алгоритмическая теория графов. Кембридж: Издательство Кембриджского университета. ISBN 0-521-28881-9.
- Томас Х. Кормен, Чарльз Э. Лейзерсон, Рональд Л. Ривест, и Клиффорд Штайн (2001) [1990]. "26". Введение в алгоритмы (2-е изд.). MIT Press и McGraw-Hill. С. 696–697. ISBN 0-262-03293-7.CS1 maint: несколько имен: список авторов (ссылка на сайт)
внешние ссылки
Викискладе есть медиафайлы по теме Поточные сети. |
- Проблема максимального расхода
- Реальные экземпляры графа
- Библиотека Lemon C ++ с несколькими алгоритмами обращения с максимальным потоком и минимальной стоимостью
- QuickGraph, графические структуры данных и алгоритмы для .Net