Sbornik_ispr
.pdf
|
|
2 |
|
|
|
|
16 |
|
21 |
18 |
|
|
6 |
3 |
|
|
|
||
|
|
8 |
20 |
|
|
15 |
4 |
1 |
|
|
|
|
12 |
10 |
|
|
|
||
|
|
17 |
|
|
|
|
5 |
вариант 11
|
|
|
3 |
|
|
|
|
|
21 |
|
|
|
|
|
|
|
|
19 |
20 |
|
|
|
|
|
|
|
|
|
2 |
10 |
|
|
5 |
4 |
|
|
|
|
|||
|
|
|
1 |
16 |
|
|
|
|
|
|
|
|
|
|
|
13 |
|
27 |
10 |
|
|
|
|
|
|||
|
|
|
|
6 |
|
|
|
|
|
|
вариант 13 |
|
|
|
|
|
6 |
|
|
|
|
|
21 |
|
|
15 |
|
|
|
|
2 |
7 |
|
|
|
|
1 |
11 |
18 |
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
20 |
|
|
|
14 |
|
|
|
|
|
|
|
|
16 |
|
4 |
|
|
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
вариант 15 |
|
|
|
|
|
2 |
|
|
|
|
|
7 |
|
|
21 |
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
1 |
|
10 |
15 |
|
|
|
|
|
|
|
|
||
|
|
|
|
6 |
|
|
|
9 |
|
|
|
|
8 |
|
|
|
|
|
12 |
|
|
|
|
|
|
|
|
|
|
|
17 |
|
|
|
|
5 |
|
|
20 |
|
4 |
|
6 |
|
|
|
21 |
22 |
|
3 |
|
|
|
|
||
1 |
15 |
2 |
|
|
|
10 |
|
||
|
|
|
|
|
|
|
17 |
|
20 |
|
|
|
|
|
15 |
|
|
|
|
|
|
12 |
|
|
|
5 |
|
4 |
|
|
|
|
|
|
|
вариант 12 |
|
||
|
2 |
|
|
|
17 |
9 |
10 |
|
|
|
|
|
|
|
1 |
|
6 |
|
3 |
|
|
|
||
|
|
16 |
|
|
15 |
|
|
|
8 |
21 |
|
|
|
|
|
20 |
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
5 |
|
|
|
|
вариант 14 |
|
||
|
|
2 |
|
|
|
|
|
|
16 |
|
1 |
|
11 |
|
|
|
|
|
3 |
|
|
|
6 |
20 |
|
|
15 |
|
|
|
8 |
|
7 |
|
|
|
|
||
|
|
|
|
13 |
|
5 |
|
|
|
|
|
|
18 |
4 |
|
вариант 16 |
|
||
|
2 |
|
|
|
|
9 |
|
13 |
|
|
|
|
|
|
|
|
18 |
|
3 |
1 |
5 |
6 |
7 |
|
6 |
|
|
|
9 |
|
|
|
|
|
5 |
|
|
17 |
4 |
|
|
|
|
|
|
вариант 17 |
вариант 18 |
|
|||
2 |
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
12 |
17 |
|
|
|
|
|
|
|
|
3 |
21 |
4 |
|
20 |
|
|
|
|
|
||||
5 |
9 |
|
|
20 |
|
10 |
|
1 |
|
|
|
1 |
|
|
|
8 |
16 |
8 |
13 |
5 |
16 |
3 |
|
|
|
|
|
|
|||
10 |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
18 |
6 |
|
15 |
4 |
10 |
|
6 |
|
|
||
|
|
|
|
|
|||
|
|
вариант 19 |
вариант 20 |
|
Рис.5.3. Структуры графов для вариантов с 11 по 20.
51
Тема 6
Алгоритм Форда и Фалкерсона поиска максимального потока в сети
1. Цель работы
Изучить и практически освоить алгоритм Форда и Фалкерсона поиска
максимального потока.
2.Задание
1.Изучить алгоритм Форда и Фалкерсона.
2.Используя алгоритм Форда и Фалкерсона, найти максимальный поток от вершины s к вершине t.
3.Теоретическая часть
Задача о максимальном потоке состоит в поиске способа пересылки максимального количества единиц потока из источника в сток при условии отсутствия превышения пропускных способностей ребер исходного графа.
Процедуру работы алгоритма рассмотрим на примере.
Пусть задан ориентированный граф, представленный на рис.6.1.
Пропускная способность указана на каждой ребре, например, в числе каналов.
Пусть каждое сообщение от источника в сток занимает по одному каналу на каждом из ребер, составляющих путь.
|
a |
Vab=4 |
|
b |
|
|
|
|
|
|
Vsa=2 |
|
|
Vbt=2 |
|
|
|
|
|
S |
Vsb=3 |
|
Vat=3 |
|
|
|
|
||
|
|
|
|
|
|
Vsc=3 |
Vbc=1 |
Vct=2 |
|
|
|
t |
||
|
|
|
||
|
|
|
|
|
|
c |
|
|
|
Рис. 6.1. Схема исходного ориентированного графа
52
Требуется найти максимальный поток П из источника s в сток t,
выраженный в числе каналов.
Используется процедура окрашивания ребер и вершин.
Будем считать, что перед началом работы алгоритма во всех ребрах поток является нулевым.
Итерация 1.
Шаг 1. Окрашивается вершина s, которой присваивается № 1.
Просматриваются неокрашенные ребра, инцидентные вершине s.
Могут быть окрашены ребро s-a и вершина a. Вершине а присваивается
№ 2.
Далее окрашиваются ребро s-b и вершина b. Вершине b присваивается №
3. Окрашиваются ребро s - c и вершина c. Вершине c присваивается № 4.
Шаг 2. Поскольку № 2 получила вершина а, то необходимо просмотреть неокрашенные ребра, инцидентные этой вершине. В результате такого просмотра окрашиваются ребра a-t и вершина t. Вершина t является стоком. По
пути s-a-t может быть пропущен поток, равный Пsat = min { vs-a, va-t } = min{ 2, 3 }= 2.
Шаг 3. Уменьшаем пропускную способность ребер s-a и a-t на две
единицы. После первой итерации схема графа показана на рис. 6.2.
|
a |
4 |
b |
|
|
|
|
|
0 |
|
2 |
|
|
|
|
s |
3 |
|
1 |
|
1 |
||
|
|
|
|
|
3 |
|
П=2 |
|
|
2 |
t |
|
c |
|
|
53
Рис. 6.2 . Схема графа после итерации 1 Имеющаяся нумерация вершин и окраска ребер и вершин снимается,
кроме ребра s-a, на котором vs-a = 0. Реализуется вторая итерация.
Итерация 2.
Шаг 1. Окрашивается вершина s, которой присваивается №1. Просмотр неокрашенных ребер, инцидентных вершине s, приводит к окрашиванию: ребра s-b и вершины b -№2, ребра s-c и вершины с-№3.
Шаг 2. Просматриваются неокрашенные ребра, инцидентные вершине b.
Такое ребро одно b-t и вершина t. По пути s-b-t может быть пропущен поток,
равный
П = min {v s-b, v b-t} = min {3,2} = 2.
Шаг 3. Уменьшается пропускная способность ребер s-b и b-t на две единицы.
После итерации 2 схема графа показана на рис. 6.3.
|
|
a |
4 |
b |
|
|
|
|
|
|
0 |
1 |
|
0 |
|
|
|
||
S |
|
|
1 |
1 |
|
|
|
|
|
|
3 |
|
|
П=2+2=4 |
|
|
|
2 |
t |
c
Рис. 6.3. Схема графа после итерации 2.
Имеющаяся нумерация вершин и окраска ребер, кроме ребра b-t, снимается и выполняется третья итерация.
54
Итерация 3.
Шаг 1. Окрашивается вершина s - №1. Просмотр неокрашенных ребер, инцидентных s, приводит к окрашиванию:
ребра s-b и вершины b - №2; ребра s-c и вершины с - №3.
Шаг 2. Просмотр неокрашенных ребер, инцидентных вершине b, приводит к окрашиванию: ребра b-c и вершины с - №4.
Просмотр неокрашенных ребер, инцидентных вершине с, приводит к окрашиванию ребра c–t и вершины t. По пути s–b-c –t может быть пропущен поток, равный
П = min {v s – b , v b-c, vc – t }= min { 1, 1, 2 } = 1.
Уменьшается пропускная способность ребер s – b , b - c и c – t на единицу.
После итерации 3 схема графа показана на рис. 6.4.
|
|
aa |
4 |
b |
|
|
|
|
|
|
0 |
0 |
|
0 |
|
|
|
||
s |
|
|
0 |
1 |
|
|
|
||
|
|
|
|
|
|
3 |
|
|
П=4+1=5 |
|
|
|
|
|
|
|
|
1 |
t |
|
|
c |
|
|
Рис. 6.4. Схема графа после итерации 3
55
Имеющаяся нумерация вершин и окраска ребер, кроме ребер s – b и b - c,
на которых число каналов равно нулю, снимается и выполняется четвертая итерации.
Итерация 4.
Шаг 1. Окрашиваются вершина s - №1, неокрашенное инцидентное ребро
s - с и вершина с - №2.
Шаг 2. Просмотр неокрашенных ребер, инцидентных вершине c,
приводит к окрашиванию ребра с – t и вершины t. По пути s-с-t может быть пропущен поток П = min { vs – с , vc – t }= min { 3, 1 } = 1.
Шаг 3. Уменьшается пропускная способность ребер s – с, c – t на 1.
После итерации 4 схема графа приведена на рис. 6.5.
|
|
a |
4 |
b |
|
|
|
|
|
|
0 |
0 |
|
0 |
|
|
|
||
S |
|
|
0 |
1 |
|
|
|
||
|
|
|
|
|
|
2 |
|
|
П=5+1=6 |
|
|
|
0 |
t |
|
|
c |
|
|
Рис. 6.5. Схема графа после итерации 4
56
Дальнейшее увеличение сформированного потока невозможно. Работа
алгоритма закончена.
Процесс нахождения максимального потока можно представить в виде
таблицы итераций (таблица 6.1).
Таблица итераций 6.1
Ребро s-a s-b s-c a-b a-t b-c b-t c-t По- |
Путь |
Вид графа |
ток |
потока |
|
Число |
2 |
3 |
3 |
4 |
3 |
1 |
2 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
каналов |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Поток |
2 |
|
|
|
2 |
|
|
2 |
s-a-t |
|
a |
4 |
|
b |
|
|
|
|
|
|
на |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
итера- |
|
|
|
|
|
|
|
|
|
0 |
3 |
|
|
|
|
2 |
|
|
|
|
ции 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|||
|
|
|
|
|
|
|
|
|
s |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
2 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
c |
|
|
2 |
|
|
t |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
Число |
0 |
3 |
3 |
4 |
1 |
1 |
2 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
каналов |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Поток |
|
2 |
|
|
|
|
2 |
2 |
s-b-t |
|
|
|
|
|
|
|
|
|
|
|
на |
|
|
|
|
|
|
|
|
|
|
a |
|
|
|
b |
|
|
|
|
|
итера- |
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ции 2 |
|
|
|
|
|
|
|
|
|
0 |
1 |
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
s |
|
1 |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
2+2=4 |
|
|||
|
|
|
|
|
|
|
|
|
|
|
c |
|
|
2 |
|
|
t |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Число |
0 |
1 |
3 |
4 |
1 |
1 |
0 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
каналов |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Поток |
|
1 |
|
|
|
1 |
|
1 1 |
s-b-c-t |
|
a |
|
|
4 |
|
|
b |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
на |
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
итера- |
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
ции 3 |
|
|
|
|
|
|
|
|
|
s |
|
|
|
|
|
0 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
1 |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
4+1=5 |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c |
|
|
|
1 |
|
|
t |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Число |
0 |
0 |
3 |
4 |
1 |
0 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
каналов |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Поток |
|
|
1 |
|
|
|
|
1 |
1 |
s-c-t |
|
a |
|
4 b |
|
на |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
итера- |
|
|
|
|
|
|
|
|
|
|
0 |
0 |
|
|
0 |
ции 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
s |
|
0 |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
5+1=6 |
|
|
|
|
|
|
|
|
|
|
|
|
с |
|
0 |
t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Число |
0 |
0 |
2 |
4 |
1 |
0 |
0 |
0 |
|
|
|
|
|
|
|
каналов |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Макси- |
|
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|
мальн. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
поток |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4. Варианты заданий
Исходные данные по двадцати вариантам представлены в таблице 6.2.
Вариант может выбираться, например, по двум последним цифрам номера зачетной книжки.
5. Содержание отчета.
1.Описание процедуры расчета по итерациям и шагам (при ручном расчете);
текст, структурная схема программы и результаты расчётов (при расчетах на
ПЭВМ).
2. Таблица итераций и величина максимального потока.
Литература
1.Филлипс Д., Гарсиа-Диас А. Методы анализа сетей. – М.: Мир, 1984. 2.Теория сетей связи / Под ред. В.Н.Рогинского . – М., Связь, 1981. 3.Форд Л.Р., Фалкерсон Д.Р. Потоки в сетях. – М. Мир, 1966.
58
59