и ограничения на
дуговые потоки
0 ≤ xij ≤ bij, (i, j) ∈ A
Известно неск. полиномиальных алг., трудоемкость кот. O(|V|3).
s−t разрезом
наз. разбиение мн. вершин V на подмн. X и
Пропускная способность s−t разреза
равна
s−t разрез является узким местом сети:
I. Сток
Тогда ∀ дуги (i, j) ∈ E, i ∈ X,
согласно пр. 1 вып. условие xij = bij и, согласно пр. 2, имеет место равенство xji = 0 ⇒
⇒
и
⇒ получен поток, величина кот. =
II. Сток
Тогда из опр. мн. Х ⇒ ∃ увеличивающий s-t путь
s,…,i,i+1,…,t, в кот. все прямые дуги (i, i+1) не насыщены, и ∃
>0 поток по всем обратным дугам пути xi+1,i > 0.
Теорема. Пусть
– min s−t разрезы. Тогда
и
и
также min s−t разрезы.
Теорема. Пусть
– min s−t разрезы, а
полученный в доказательстве теоремы Форда−Фалкерсона. Тогда
– разрез,
В алгоритме ∀ вершина может находиться в 1 из 3 состояний:
не помечена,
помечена,
помечена и просмотрена.
В начале все в. не помечены.
Если нельзя пометить более ни 1 в. и сток остался непомеч., то
– min разрез, и полученный поток max
Если бы не было ограничений на проп. спос. дуг, то для решения задачи достаточно найти кратчайший (по cij) путь из s в t и пропустить по нему поток величины v.
Приведем 2 алгоритма для случая целочисленных bij
Шаг 2. Найти путь из s в t min длины и увеличить на 1 поток по этому пути. Если величина нового потока равна v, то алг. останавливается. В противном сл. перейти на шаг 1.
Шаг 2. Находим путь из s в t min длины, например, {s, 1, 2, t}.
Полагаем xs1 = x12 = x2t =1. Перейдем на Шаг 1.
Шаг 2. Найти цикл <0 стоимости (назовем его отрицательным), где стоимость цикла равна сумме модиф. стоимостей входящих в него дуг. Увеличить поток по <0 циклу на δ =min{bij – xij, xji}, где min берется по всем прямым (i, j) и обрат. (j, i) дугам цикла, и перейти на шаг 2.
Если <0 цикла нет, то найденный поток opt!
(Если в сети ∃ несколько <0 циклов, то увеличить поток по каж. из них.)
Случай b. Обозн. через f 1-ю в., после кот. пути oi и pi начинают различаться, а через l – 1-ю в., после кот. они совпадают. Стоимость потока по участку пути oi от f в l меньше стоимости по участку пути pi от f в l. ⇒ найден <0 цикл: из f в l по пути oi, а из l в f по пути pi. Это противоречие доказывает теорему.
s
t
oi
pi
f
l
pi
oi
s
t
Положим dii=+∞ и применим (*) ∀ j, i и k.
Если ∃ в. i : dii < 0 ⇒ она ∈ <0 циклу. Сам <0 цикл восстанавливается переходя из в. i в смежную в. j, у кот. djj < 0. Из в. j переходим в новую в. k с dkk < 0… пока не вернемся в в. i.
T=O(n3).
i
k
j
Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть