Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_na_voprosy_iz_biletov_po_diskretke_Chast....doc
Скачиваний:
46
Добавлен:
21.12.2018
Размер:
2.65 Mб
Скачать

45.Транспортные сети. Поток в сети. Полный и максимальный поток. Алгоритмы нахождения полного и максимального потока.

Транспортной сетью называется ориентированный граф G без петель, для которого выполняются условия:

1)существует одна и только одна вершина х0 такая что: Г-1(х0)= - вход в сеть(исток)

2)существует одна и только одна и только одна вершина хn такая что Г(хn)= выход

3)каждой дуге <x,y> поставлено в соответствие число C<x,y>≥0, пропускная способность дуги

Функцию φ(x,y) определенная на множестве дуг n транспортной сети G=<Г,х> называется потоком транспортной сети если:

φ(x,y)-целое число

; х≠х0, х≠хn

φ(x,y)≤ C<x,y> , <x,y>Г

то говорят что задан поток транспортной сети.

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

Алгоритм нахождения полного потока

Пусть G=<Г,х> транспортная сеть φ(x,y)-поток величину которого хотим изменить до полного.

проверяем полны ли пути; если да то конец; нет шаг №2

ищем путь M из х0→хn все дуги которого насышены

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

Переходим к шагу 1.

На 1-ом шаге за поток можно взять нулевой поток.

Алгоритм перестройки полного потока до максимального.

помечаем вершину х0 символом +

если хi помеченная вершина, то помечаем символом (+i) ,все непомеченные вершины хj Г(хi) для которых дуги <xi, xj > ненасыщенны помечаем символом –i, все непомеченные вершины хj Гх-1(хi) для которых φ(xj,xi)˃0 (пометку ведем в произвольном порядке)

если таким образом удалось пометить вершину хn, то это означает что существует цепь М из х0→хn, по которой можно изменить величину потока.

Изменим поток положив:

φ/(x,y)= φ(x,y)+1 если дуга <x,y>∈ цепи М и ее ориентация совпадает с направлением движением цепи М от входа к выходу.

φ/(x,y)= φ(x,y)-1 если дуга <x,y>∈ цепи М и ее ориентация противоположна направлению движения цепи.

φ/(x,y)= φ(x,y) если дуга <x,y>∉ цепи М тогда φ/(x,y) новый поток что φ/xn= φxn+1; применяем алгоритм до тех пор пока возможно если некоторый поток уже невозможно увеличить, изложенным методом, то мы нашли максимальный поток.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]