1 / 23

Транспортные сети

Компьютерная дискретная математика. Транспортные сети. Лекция 15 Н.В. Белоус. Факультет компьютерных наук Кафедра ПО ЭВМ, ХНУРЭ. ХНУРЭ, кафедра ПО ЭВМ, Тел . 7021-446, e-mail: belous@kture.Kharkov.ua. Основные определения. !. !. !. !.

lowri
Download Presentation

Транспортные сети

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Компьютерная дискретная математика Транспортные сети Лекция 15 Н.В. Белоус Факультеткомпьютерных наук Кафедра ПО ЭВМ, ХНУРЭ ХНУРЭ, кафедра ПО ЭВМ, Тел. 7021-446, e-mail: belous@kture.Kharkov.ua

  2. Основные определения ! ! ! ! Сеть – это связный ориентированный граф без петель, в котором: 1. Имеется только одна вершина (узел), в которую не заходит ни одна дуга, называемая входом (истоком)x0 2. Имеется только одна, вершина (узел), из которой не выходит ни одна дуга, называемая выходом (стоком)z 3. Каждой дуге u присвоена числовая характеристика C(u)0, которая называется пропускной способностью дуги u

  3. Пример транспортной сети 6 x1 x2 4 2 3 9 14 z 11 x0 5 12 7 x4 x3 3 x0 – вход сети z – выход сети xi (i0)– промежуточные вершины.

  4. Поток сети ! множество дуг, входящих в вершину х множество дуг, выходящих из вершины х поток в транспортной сети Потоком на транспортной сети называется функция (u), заданная на множестве дуг сети, которое удовлетворяет свойствам: 1) 2) .

  5. Основные определения ! ! ! ! Дугаuназывается насыщенной, если поток (u)=C(u) Дуга uназывается свободной если (u)=0 Дуга u называется занятой, если (u)>0 Поток в сети называется полным, если любой путь, идущий от входа к выходу сети содержит хотя бы одну насыщенную дугу.

  6. Какая дуга? 6/1 x1 x2 4/3 2/2 3/0 9/1 14/1 z 11/1 x0 5/2 12/0 7/0 x4 x3 1/1

  7. Разрез транспортной сети совокупность вершин сети такая, что а . совокупность вершин сети такая, что а . множества дуг, входящих в вершины множества А множества дуг, выходящих из вершин множества А Разрезом называется множество дуг, соединяющих вершины множества и .

  8. Пример x1 x2 z x0 x4 x3 {(x0,x3), (x1,x3), (x1,z), (x2,z)} {(x3,x4)}

  9. Задача о наибольшем потоке в сети При заданной конфигурации и указанных пропускных способностях дуг определить максимальный поток, который можно пропустить через сеть и его распределение по дугам

  10. Теорема Форда-Фалкерсона Если в транспортной сети для некоторого разреза Vи величины потокаz имеет место C(A)=z, то V обладает минимальной пропускной способностью в сети, а z является максимальным для данной сети.

  11. Пример 3/0 x1 x2 2/2 1/1 2/1 1/1 1/1 z x0 5/2 6/3 x4 x3 3/3

  12. Алгоритм Форда-Фалкерсона Алгоритм в основном включает 2 этапа: 1.Нахождение полного потока. 2.Нахождение максимального потока, с помощью передачи меток.

  13. 1.Нахождение полного потока Поочередно рассмотрим все пути между х0и z и для каждой дуги выбранного пути найдем разность между пропускной способностью дуги и потоком, проходящим по дуге. Увеличим поток таким образом, чтобы путь, ведущий из х0в z содержал хотя бы одну насыщенную дугу. Для каждой дуги выбранного пути прибавляем к числителю минимальную полученную разность ∆. Выбираем следующий путь. Повторяем эти действия до тех пор, пока не получим полный поток в сети.

  14. 2.Нахождение максимального потока, с помощью передачи меток Увеличение потока z сети состоит в разметке вершин индексами, указывающими путь, по которому возможно изменение потока. Если разметка достигает вершины z, то поток можно увеличить по пути, соответствующему полученной разметке. Увеличение потока возможно до тех пор, пока в результате разметки вершина zполучает метки.

  15. 2.Нахождение максимального потока, с помощью передачи меток 0 +i -i у– непомеченная Шаг 1. Помечаем вершину х0индексом Шаг 2. Если xi уже имеет пометку, то: Метка приписывается всем непомеченным вершинам, которые связаны с xi ненасыщенной дугой, ведущей из xiк данной вершине. Метку получают все вершиныy, удовлетворяющие условиям: y– непомеченная Метку получают все непомеченные вершины, связанные занятой дугой, идущей из данной вершины в вершину xi . Метку получают все вершиныy, удовлетворяющие условиям:

  16. 2.Нахождение максимального потока, с помощью передачи меток (продолжение) если если направление дуги u и направление потока в сети совпадают если дуга u и направление потока противоположны Шаг 3. Если в результате такой разметки окажется помеченная вершина z, то переходим к пункту 4. В противном случае, поток, полученный на предыдущем цикле, был максимальным. Шаг 4. Строим путь  от х0 к z, все вершины которого соответствуют номерам меток предыдущих вершин с точностью до знака. Построение пути  начинается от вершины z. Поток во всех дугах пути изменяется по следующим правилам:

  17. Пример нахождения максимального потока и минимального разреза сети Для заданной транспортной сети найдем максимальный поток и минимальный разрез при помощи алгоритма Форда-Фалкерсона x1 7/6 10/7 2/1 1/0 5/2 7/6 x0 x2 x4 z 11/9 3/0 3/2 16/11 Величина начального потока в сети: x3 Находим путь, по которому возможно увеличение потока x1 7/7 7/6 10/8 10/7 2/1 1/1 1/0 5/2 7/6 x0 x2 x4 z Вычисляем ∆ 11/9 ∆=1 3/0 3/2 Увеличиваем поток 16/11 Величина потока в сети: x3

  18. Продолжение примера x1 7/7 10/8 2/1 1/1 5/2 7/6 x0 x2 x4 Величина потока в сети: z 11/9 3/0 3/2 16/11 x3 Находим путь, по которому возможно увеличение потока x1 7/7 10/8 10/9 2/1 2/2 1/1 5/2 7/6 x0 x2 x4 z Вычисляем ∆ ∆=1 3/0 11/9 11/10 3/2 Увеличиваем поток 16/12 16/11 Величина потока в сети: x3

  19. Продолжение примера x1 7/7 10/9 2/2 1/1 5/2 Величина потока в сети: 7/6 x0 x2 x4 z 3/0 11/10 3/2 16/12 x3 Находим путь, по которому возможно увеличение потока x1 7/7 10/9 2/2 1/1 5/3 5/2 7/6 x0 x2 x4 z Вычисляем ∆ ∆=1 3/0 11/11 11/10 3/2 Увеличиваем поток 16/13 16/12 Величина потока в сети: x3

  20. Продолжение примера x1 7/7 10/9 2/2 1/1 5/3 Величина потока в сети: 7/6 x0 x2 x4 z 3/0 11/11 3/2 16/13 x3 Находим путь, по которому возможно увеличение потока x1 7/7 10/9 2/2 1/1 5/3 7/6 x0 x2 x4 z Вычисляем ∆ ∆=1 3/0 11/11 3/3 3/2 Увеличиваем поток 16/14 16/13 Величина потока в сети: x3

  21. Продолжение примера Расставляем метки +0 x1 7/7 10/9 2/2 0 -2 +3 +0 5/3 1/1 5/4 7/6 7/5 x0 x2 x4 z 11/11 3/0 3/1 3/3 16/14 16/15 +4 x3 Строим путь  от х0 к z Полученный путь: Изменяем поток во всех дугах пути Вычисляем ∆ ∆=1

  22. Продолжение примера Расставляем метки +0 x1 7/7 10/9 2/2 0 -2 +3 +0 5/4 1/1 5/5 7/5 7/4 x0 x2 x4 z 11/11 3/1 3/2 3/3 16/15 16/16 +4 x3 Строим путь  от х0 к z Полученный путь: Изменяем поток во всех дугах пути Вычисляем ∆ ∆=1

  23. Продолжение примера Множество : Повторяем процесс расстановки меток до тех пор, пока вершина z получает метку. Если она не получила метку, то поток, который получили на предыдущем шаге, максимальный. +0 x1 7/7 10/9 2/2 0 -2 +3 +0 1/1 5/5 7/6 x0 x2 x4 z 11/11 3/2 3/3 16/16 +4 x3 Множество вершинразреза: x1 +0 7/7 10/9 2/2 0 1/1 5/5 7/6 x0 x2 x4 z Разрез образуют дуги: 3/2 11/11 (x1,x4),(x1,x2),(x0,x2),(x0,x3) 3/3 Пропускная способность разреза 16/16 x3 Величинамаксимального потока сети равна величине минимального разреза

More Related