Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Презентации лекций / Презентация лекции 14 ДМ 20

.pdf
Скачиваний:
1
Добавлен:
12.01.2024
Размер:
831.55 Кб
Скачать

Тема 14 «Задача о максимальном

потоке в сети»

«Дискретная математика» Олейник Татьяна Анатольевна

кафедра ВМ-1

План лекции

1.Постановка задачи о максимальном потоке в сети

2.Алгоритм Форда-Фалкерсона

2

План лекции

1.Постановка задачи о максимальном потоке в сети

2.Алгоритм Форда-Фалкерсона

1

2

3

 

 

1

 

 

2

 

 

Орграф = ( ,)

: → [ ;+∞)

 

 

-источник

-сток

взвешенныйориентированныйграф (сеть),в которомвыделеныдвевершиныисточник исток

ρ( ) – вес=пропускнаяспособностьдуги

 

1)

для

 

: → [ ;∞)

ограничениепо пропускной способности

потоквсети

 

 

 

2)

+ =

− для ≠ ,

= ( ,,)

 

сохранениепотока ввершинах

 

( −) =

( )

 

 

 

 

( +) =

( )

 

 

-

+

 

,( )

 

 

 

 

3,2

 

 

 

2,1

 

1,1

 

 

 

4,2

 

 

 

 

 

4

3,2

2,1

 

2,1

 

 

 

1,1

4,2

 

 

 

=

= ( , , ) -сеть, − поток

– величина потока

 

 

 

 

 

 

3,3,

2,2

3,3

2,1

 

 

 

 

 

2,1

2,2

 

 

 

 

 

 

 

1,1

1,1

 

4,2

4,3

 

 

 

 

 

 

 

 

 

 

 

 

 

=4

 

=

1

2

3;0,5 2;0,5

2,0

 

 

1,1

4,1

 

 

 

= ,

Практическилюбой сетиможно определитьбесконечно

 

 

многопотоков.Их сравниваютпо величине.

Задачаомаксимальномпотоке:

 

 

 

 

 

Потокнаибольшей

 

Максимальный

Взаданнойсети найти

 

величины

 

 

поток

 

 

 

 

 

 

 

потокмаксимальнойвеличины

 

 

 

-максимальный,еслидля

 

 

Вкаждойсетисуществуетмаксимальныйпоток

Задачунельзярешитьметодомперебора 5

 

План лекции

1.Постановка задачи о максимальном потоке в сети

2.Алгоритм Форда-Фалкерсона

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

, …,

–вершины

 

 

,…, –дуги

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

Неориентированнаяпростая

 

 

 

 

 

Любые двасоседнихэлемента инцидентны,

 

 

цепь(простаяполуцепь)

 

 

 

 

 

 

 

всевершины и дуги разные

 

 

 

 

 

 

 

 

Полуцепь:

 

 

 

 

 

 

 

Обратныедуги полуцепи

 

 

 

 

 

 

 

 

 

 

 

 

= ( ) –остаточнаяпропускнаяспособность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

обратнойдуги

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

прямыедуги полуцепи

 

 

 

 

 

 

 

 

 

 

 

 

 

=

− ( ) –остаточнаяпропускнаяспособность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

прямой дуги

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= min( ) -

 

 

 

3,2

 

4,2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

остаточнаяпропускнаяспособностьполуцепи

2,0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= ( ,,) -сеть,

− поток

 

 

 

 

 

 

 

 

 

 

 

4,1

 

 

 

 

 

 

 

 

1,1

(

)

 

 

 

 

 

 

 

 

 

 

 

 

 

: >

 

 

 

 

–дополняющаяцепькпотоку

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

: → →

-дополняющая

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

: → → → –недополняющая

 

 

 

 

 

 

 

 

 

 

 

: → →

- недополняющая

7

-йшаг

Полагаем = .

-йшаг

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пустьпосетитечетпоток .

 

 

Ищемдляэтогопотокадополняющуюцепьиз в.

 

Еслитакойцепинет,то

-максимальныйпоток.

 

 

 

 

 

 

Еслидополняющаяцепьесть,тодаемейимя и

 

определяемна функцию последующемуправилу:

 

 

 

 

 

 

 

+

,если

− прямая дуга цепи

 

=

 

 

 

,если

− обратнаядуга цепи

 

 

 

 

 

 

 

 

,если

 

 

 

 

 

 

 

 

 

 

 

 

Построеннаяфункция

-поток.

 

 

 

Величинаэтогопотока

 

=

+ ( ).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

Пример:

 

 

 

3

 

7

 

 

 

 

2

 

 

2

 

 

3

 

6

8

 

 

 

 

 

 

1

1

3

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Найти в сети максимальный поток

8

1

2

 

,

 

 

Пара

 

 

 

 

 

 

 

 

 

 

( , )-

 

 

 

 

 

 

 

 

 

 

множеств

 

 

 

 

 

 

 

 

 

 

=

 

 

разрез

( , )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

∩ =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

→ =

= ( ,)

,

 

→ =

= ( ,) ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

 

 

 

=

( ,,) -сеть,

( , ) − разрез

 

 

 

 

 

 

 

 

 

 

– пропускная способность разреза

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

2

 

 

 

 

 

 

 

3

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= , ,

 

= ,

 

 

 

 

 

 

 

 

 

2

 

 

 

2

 

 

=

, ,

 

= ,

 

 

 

 

 

 

 

 

 

 

 

=5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

→ =7

1

 

 

 

 

 

1

4

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В любой сети существуетнесколькоразрезов.

 

 

 

Задача:

 

 

Их сравнивают по пропускнойспособности.

 

 

 

 

 

 

 

 

 

Взаданнойсети найти

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

минимальныйразрез.

Разрезнаименьшей

 

 

Минимальный

 

 

 

 

Решение:

 

 

 

 

 

 

 

 

пропускной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

способности

 

 

 

 

 

разрез

 

 

 

Вмножество включаем ивсе

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вершины,длякоторыхсуществуют

( , )-минимальный,еслидля ,

 

 

 

дополняющиецепииз в;

 

(

→ ) ≤ →

 

 

 

 

 

= \

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

10