Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
φ1, φ2, φ3,..... имеющих величины 1, 2, 3,... В конечном счете мы получим поток φk, имеющий максимальную величину. Согласно теореме 5 это произойдет при k=
, т. е. когда один или несколько разрезов {W, W′} будут насыщены, это означает, что φk (a) =β(а) для каждой дуги a
W→W′ и φk (а)=0 для каждой дуги a
W′→W. Прежде чем описать алгоритм построения такой последовательности допустимых потоков, видоизменим введенный ранее граф приращений. Будем считать, что каждой дуге а
(v, w) в сети N в графе I(N, φ) соответствуют две дуги а и a'
(w, v). Припишем каждой дуге длину, пользуясь следующими соотношениями:

(Заметим, что вместо ∞ мы можем использовать некоторое положительное число. Однако принятое условие позволит в дальнейшем с минимальными изменениями построить алгоритм минимизации стоимости. Таким образом, дуги, которые ранее удалялись из графа I(N, φ), теперь восстанавливаются, но имеют бесконечную длину, и поток φ будет максимальным, если между v1 и vn нет путей нулевой длины.)
Далее, через I будет обозначен граф приращении (структура которого не зависит от φ), а через λk — функция расстояния, связанная с потоком φ k, имеющим величину k.
Алгоритм определения максимального потока:
1. Положим і=0 и возьмем в качестве φ0 поток, тождественно равный нулю по каждой дуге.
2. Пользуясь функцией расстояния λi, определим кратчайшее расстояние между v1 и vn в I. (Это можно сделать, используя метод пометок )
3. Если расстояние, определенное на втором шаге, конечно, то обозначим через С любой простой путь из v1 в vn кратчайшей длины, и пусть σc обозначает соответствующий простой поток по цепи в сети N. Положим φi+1 = φi +σс и повторим шаг 2, заменяя i на i+1.
4. Если кратчайшее расстояние от v1 до vn равно ∞, то φ1 является максимальным потоком, и на этом алгоритм работу заканчивает.
Такая процедура имеет один серьезный недостаток, а именно, величина потока увеличивается на каждом шаге только на единицу. На практике ее можно существенно ускорить. Найдя путь С на шаге 3, можно проверить, сколько единиц потока можно пропустить по этому пути. Другими словами, мы можем определить наибольшее целое t такое, при котором φi +tσс является допустимым потоком. Чтобы определить t, заметим, что для каждой дуги а
(v, w) такой, что λ(а)<∞, к φi(а) можно добавить не более β(а)— φi(а) единиц потока, не нарушая допустимости. Аналогично, если λi(а′)<∞, из φi(а) можно исключить не более φi(а)—α(а) единиц потока.
Целое число t соответствует минимуму по таким приращениям потока в дугах С, и на шаге 3 алгоритма можно определять не φi+1 а
φi+1 = φi +σс.
Упражнение 8. Возьмите сеть рис. 6.8, для которой мы уже не формально получили максимальный поток. Решите задачу формально, пользуясь приведенным выше алгоритмом нахождения максимального потока.
6.8. Максимальные потоки в сетях общего вида с ограниченными пропускными способностями дуг
Если α(а)>0 для одной или более дуг и известен допустимый поток φi, имеющий величину i, то описанный алгоритм можно использовать для получения допустимых потоков с величинами, возрастающими от i до
или убывающими от i до
* (В этом случае шаг 2 надо видоизменить и находить кратчайшее расстояние от vn до v1 в текущем графе приращений.)
Однако, если первоначальный допустимый поток нe известен, то возникают трудности. Очевидно, что в этом случае (при α(а)>0) поток, тождественно равный нулю, не является допустимым.
Для нахождения начального допустимого потока сформулируем вспомогательную задачу на вспомогательной сети N'. Сеть N′= (V′, А') получается из сети N(V, А) следующим образом. Множество вершин V′ состоит из вершин v1, ..., vn множества V и двух добавочных вершин v0 и vn+1 (которые будут соответственно источником и стоком во вспомогательной сети).
Каждой дуге
в множестве А' соответствуют три дуги
![]()
Этим дугам приписываются следующие пропускные способности:

Заметим, что для дуг, у которых α(а)=0, построение дуг а" и а'" является излишним, так как для них α=β= 0. На практике эти дуги опускаются. В теории, однако, удобно считать, что все три дуги а', а" и а"' всегда существуют.
Кроме названных дуг в N′ добавляется еще одна конечная дуга b', имеющая следующие характеристики:
![]()
где К— целое число, большее чем величина любого возможного допустимого потока в первоначальной сети N. На рис. 6.10 приведен пример, иллюстрирующий вспомогательную сеть N' для заданной сети N.

Рис. 6.10.
Замечание. Вспомогательная сеть полностью определяется сетью N и ее функциями ограничений α и β. Если N—сложная сеть, то явное построение N' оказывается в лучшем случае трудным делом. Однако для построения вспомогательной сети и реализации вычислительного алгоритма можно использовать электронные цифровые вычислительные машины.
Упражнение 9. На рис. 6.7 положите α=1 и β = 3 для каждой из вертикальных дуг и постройте вспомогательную сеть, принимая v1 в качестве источника и v5 в качестве стока. Укажите величины α' и β' для каждой дуги сети N'.
Вспомогательная сеть представляет интерес по двум причинам. Во-первых, N' — транспортная сеть, а для нее в предыдущем разделе дан алгоритм нахождения максимального потока. Во-вторых, можно показать, что максимальный поток φ' в сети N' можно легко преобразовать в допустимый поток φ в сети N, если допустимый поток в принципе существует. Отсутствие допустимого потока также легко устанавливается по характеристикам потока φ'.
Допустимый поток φ' из v0 в vn+1 в сети N' называется насыщающим потоком, если φ'(а") =β'(а") для каждой дуги а", идущей из v0. Такой поток (если он существует) с необходимостью является максимальным в N' (почему?). Эквивалентным условием насыщающего потока является равенство φ'(а′")=β'(а'") для каждой дуги, оканчивающейся в vn+1. Если φ'—насыщающий поток в N′, то рассмотрим следующую функцию φ, определенную на дугах сети N: φ (a) =φ'(а') +α(а). Для определенной таким образом φ доказывается следующая
Теорема 6.6. Если φ'—насыщающий поток в сети N' и φ определено так, как показано выше, то φ есть допустимый поток из v1 в vn сети N. Более того, величина φ равна φ'(b').
Упражнение 10. Доказать теорему 6.6. Заметим, что должны быть обоснованы три факта:
![]()
Таким образом, если, максимизируя поток в сети N, мы получим насыщающий поток, то из него легко можно получить допустимый поток φ в сети N, С другой стороны, если максимальный поток в N' не является насыщающим, то, как утверждается теоремой 7, допустимого потока в сети N не существует.
Теорема 6.7. Если φ'— максимальный, но не насыщенный поток в сети N' из v0 в vn+1, то в сети N не существует допустимого потока из v1 в vn.
Доказательство. Обозначим через W множество вершин, отличных от v0, но достижимых из v0 путями конечной длины в графе I(N', φ'). И пусть W′ обозначает вершины, не достижимые из v0 и отличные от vn+1. Так как φ ' — ненасыщающий поток, оба множества W и W′ непусты. Пропускная способность (т. е. сумма верхних границ потока) разреза
→
′, определенного разбиением V′ на
={ v0)
W и
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |


