![]()
и, следовательно, φ не является потоком, минимальным по стоимости. Значит, если φ минимизирует стоимость, то λ(Z)≥0 для любого контура Z
Для доказательства обратного предположим, что λ (Z)≥0 для каждого контура Z, но φ не является потоком, минимальным по стоимости (мы должны прийти к противоречию). Пусть φ'— поток, минимальный по стоимости, имеющий величину k. Тогда мы можем записать
![]()
где σi — согласованные потоки по контурам Z1, Z2,..., Zm в графе
I(N, φ). Функция расстояния λ, соответствующая I(N, φ), удовлетворяет (по предположению) условию
![]()
и, следовательно,
![]()
Обозначим теперь через λ1 функцию расстояния, соответствующую графу I(N, φ+σ1).Очевидно, что λ(а) и λ1(a) совпадают на дугах, которые не входят в контур Z1, так как их потоки не изменились. Для дуг контура Z, которые входят в сеть N имеем λ (а)=∞ или λ1(a) = λ (а) в зависимости от того, является ли дуга а насыщенной в данный момент или нет. Аналогично, для дуг а' контура Z1 (которые обратны дугам сети N) имеем λ (а′)=∞ или λ1(a′) = λ (а′) в зависимости от того, является ли дуга а «холостой» или нет Единственные дуги в графе приращении, для которых λ1< λ. это дуги, противоположные дугам Z1 (дуга а, если а′
Z1, и дуга а', если a
Z1). Но так как все σ1 согласованы, такие дуги не могут появиться ни в одном из оставшихся контуров Zі, и их новые длины не имеют значения при последующем рассуждении. С учетом полученных выше соотношений между λ1 и λ имеем
и, таким образом,![]()
![]()
Повторяя этот процесс т раз, получаем, что
![]()
но так как![]()
это противоречит предположению, что
![]()
Теорема доказана.
Упражнение 12. Доказать, что если φ — допустимый поток с минимальной стоимостью в сети N. то в сети N существует, по крайней мере, еще одни допустимый поток φ ' с минимальной стоимостью тогда и только тогда, когда γу(С)=0 для некоторого контура в графе І(N, φ).
Алгоритм нахождения допустимого потока, минимизирующего стоимость и имеющего любую величину от 0 до М, в транспортной сети формально представляется точно так же, как и алгоритм максимального потока в разделе 6.7, с той лишь разницей, что здесь соответствующая функция длины λ определяется через приращения стоимости потока на дугах.

Рис. 6.11.
Работа такого алгоритма показана на рис. 6.11 для очень небольшой сети. После изучения этого примера читателю рекомендуется в целях более глубокого ознакомления с процедурой применить ее для более сложной сети.
В верхней части рис. 6.11 показана структура сети и указаны стоимости потоков на дугах и их пропускные способности. Слева показана необходимая последовательность графов приращений. Числа на дугах соответствуют их длинам, дуги с бесконечными длинами опущены, дуги, входящие в кратчайший путь от источника к стоку, выделены жирными линиями. В правой части рис. 6.11 изображена последовательность потоков минимальной стоимости в порядке возрастания их величины. Эти потоки получены с помощью последовательного добавления потоков по цепям, соответствующим кратчайшим путям в графе приращений. Числа на дугах обозначают потоки, которые по ним пропущены. В общем случае, найдено четыре потока по цепям, которые имеют величины 5, 2, 3 и 1 соответственно. Конечный поток величины 11, очевидно, является максимальным, так как обе дуги, идущие к стоку, уже насыщены.
Заметим, что первый граф приращений I(N, φ0) структурно идентичен с исходной сетью (здесь φ0— поток, тождественно равный нулю во всех дугах). Это объясняется тем, что в данный момент еще нет насыщенных дуг и не существует положительных потоков, которые потенциально можно было бы аннулировать. Во всех последующих графах приращений некоторые прямые дуги (изображаемые сплошными линиями), которые являются насыщенными, отсутствуют. Кроме того, в них имеются некоторые обращенные дуги (пунктир), соответствующие дугам, имеющим положительный поток, который может быть исключен без нарушения допустимости за счет использования дуги в обратном направлении.
Простота приведенного примера позволяет визуально найти кратчайшие пути в каждом графе приращений.
В более сложных случаях для нахождения каждого кратчайшего пути необходимо использовать систематические методы, так как выбор некратчайшего пути даст в результате поток, стоимость которого не минимальна. В этом случае его нельзя использовать в качестве начальной точки при определении следующего приращения потока.
Заметим, что последний поток по цепи действительно требует использования обращенной дуги графа приращений I(N, φ0). Таким образом, оптимальный поток величины 11 использует эту дугу менее интенсивно, чем оптимальный поток величины 10. В рассмотренном примере каждый последовательный граф приращений имеет только один кратчайший путь. Однако это не всегда так. Когда имеются несколько кратчайших путей, любой из них можно использовать в качестве базиса для нахождения следующего потока по цепи.
Упражнение 13. Возвращаясь к предыдущему примеру, начните с потока φ3 величины 3, полученного приписыванием трех единиц потока трем нижним дугам и нулевого потока остальным. Постройте соответствующий граф приращений I(N, φ) и убедитесь, что он содержит, по крайней мере, один контур отрицательной длины (теория показывает, что это действительно так, потому что φ3 не является потоком величины 3 минимальной стоимости.)
Важно отметить, что хотя мы обошлись без построения потоков величины 1, 2, 3, 4, 6, 8 и 9 в рассмотренном выше примере, такие потоки минимальной стоимости можно получить с помощью интерполяции. Например, для получения потока минимальной стоимости величины 8 мы должны добавить к потоку φ7 одну единицу потока по цепи, которая использовалась для построения φ10.
Упражнение 14. На рис. 9.8, а ориентируйте все дуги слева направо. Пусть числа, приписанные каждой дуге, представляют единичные стоимость потока н пропускную способность дуги α(а)=0, т. е. сеть является транспортной. Используя описанный метод, найдите последовательность потоков минимальной стоимости, последний из которых имеет максимальную величину.
6.10. Некоторые специальные задачи о потоках
В качестве первого примера задач, которые сводятся к задачам о потоках, рассмотрим так называемую транспортную задачу, которой посвящено много работ в литературе по исследованию операций.
Пусть S1,..., Sm и Т1, ..., Тп — множества пунктов отправления и пунктов получения соответственно, между которыми должен быть распределен некоторый однородный товар. Каждый пункт отправления Sі имеет ограниченный склад Aі и каждый пункт получения Tj — определенную потребность Bj (спрос). Известна стоимость перевозки единицы товара из Si в Тj, равная Uij. В простейшем случае на объемы перевозок из Si в Tj не наложено никаких ограничений (конечно, они не должны нарушать ограничений, накладываемых складами Ai и спросом Bj). Задача состоит в отыскании плана перевозок от пунктов отправления к пунктам потребления, имеющего минимальную стоимость, при условиях, что спрос должен быть удовлетворен (но избытков быть не должно) и объем перевозок от данного пункта отправления не должен превышать объемы его склада.
Эту задачу можно рассматривать как задачу нахождения максимального потока, имеющего минимальную стоимость в сети, изображенной на рис. 6.12. (Упорядоченная пара чисел (х, у), приписанная каждой дуге, представляет пропускную способность дуги (х) и единичную стоимость перевозок (у)).

Рис. 6.12
Если перевозки из некоторых пунктов Si в некоторые пункты Тj не разрешаются, то соответствующие дуги в сети просто опускаются. Если имеются ограничения на количество товара, перевозимого из некоторых Si в некоторые Tj. то соответствующим дугам приписывается конечная пропускная способность. В этом случае, конечно, может оказаться, что спрос в пунктах потребления не будет удовлетворен полностью. Однако решая задачу о потоке, мы получим план, позволяющий перевезти максимально возможное количество товара при минимальной стоимости.
Если m = п, а А и В соответствуют работникам и видам работ соответственно, то та же самая модель применима для решения задачи о назначениях, в которой требуется назначить m работников для выполнения m работ так, чтобы оптимально использовались их возможности. (В этом случае под Uij следует понимать меру полезности при назначении i-гo работника на j-ую работу.) Величины Ai и Bj полагаются равными единице; поэтому каждый работник должен быть назначен максимум на одну работу, каждая работа должна быть выполнена только одним работником. Если какие-то работники не могут делать некоторых работ, то соответствующие дуги опускаются. Такое ограничение может привести к тому, что не все работы будут выполняться. (В этой задаче пропускные способности дуг можно отбросить, приписывая каждый дуге большие постоянные величины, и после этого производить минимизацию.)
|
Из за большого объема этот материал размещен на нескольких страницах:
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 |


