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

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

Постановка задачи

Рассмотреть задачу о максимальном потоке в сети. Решить конкретную задачу на сети с 8-9 вершинами.

Исходные данные

Определить максимальный поток в сети, изображенной на Рисунке 6 из вершиныx0в вершинуx8, где числа на дугах, снабженные стрелками, означают пропускные способности этих дуг в указанных направлениях.

Рисунок 6

Решение

Составим матрицу пропускных способностей дуг данной сети и представим сеть в матричной форме (см. Таблицу 1).

Таблица 1

xj

xi

x0

x1

x2

x3

x4

x5

x6

x7

x0

2

4

2-

x1

1

5

x2

3

x3

+

5

1

6-

x4

2

5

x5

4

1

3

x6

2

8

x7

+

5

2

В качестве начального возьмем нулевой поток z0ij= 0. Найдем какой-нибудь путь, идущий изx0вx7по ненасыщенным дугам. Для этого в нулевой строке таблицы выберем какой-нибудь элементcij, отличный от нуля, напримерc03. Из вершиныx0можно перейти вx3. Для наглядности дугу (x0,x3) проведем прямо в нулевой строке таблицы из нулевого столбца в 3-й. Теперь мы находимся в вершинеx3. Чтобы зафиксировать это, сместимся по пятому столбцу до строки с тем же 3-м номером. В 3-й строке имеется 3 ненулевых элемента соответственно в 4-м, 5-м и 7-м столбцах. Это означает, что изx3можно перейти или вx4, вx5или вx7. Пойдем в стокx7. Этот переход изображен стрелкой в 3-й строке с началом в 3-м столбце и концом в 7-м. Таким образом, по таблице пропускных способностей дуг сети мы нашли путь, ведущий по ненасыщенным дугам из источника в сток:

1= [x0,x3,x7].

Теперь по таблице надо узнать пропускную способность 1найденного пути и уменьшить пропускные способности всех дуг этого пути на1, а симметричных им дуг – увеличить на1. Для этого отмечаем знаком «-» числа в тех клетках, где находятся концы дуг, а числа в клетках, симметричных указанным относительно главной диагонали, отмечаем знаком «+». Пропускная способность найденного пути, очевидно, равна наименьшему среди чисел, отмеченных знаком «-» (Таблица 1).

1= 2

Из всех чисел, отмеченных знаком «-», вычитаем наименьшую пропускную способность 1. Получаем Таблицу 2. Это – сеть с измененными пропускными способностями дуг.

Таблица 2

xj

xi

x0

x1

x2

x3

x4

x5

x6

x7

x0

2

4-

x1

1

5

x2

+

3-

x3

2

5

1

4

x4

2+

5-

x5

4

1

3

x6

2

8

x7

2

5+

2

Ищем новый путь, идущий из источника в сток по ненасыщенным дугам и процедуру повторяем. Получаем путь 2и пропускную способность2:

2= [x0,x2,x4,x7]

2= 3

Далее

Таблица 3

xj

xi

x0

x1

x2

x3

x4

x5

x6

x7

x0

2-

1

x1

+

1

5-

x2

3

x3

2

5

1

4

x4

5

2

x5

4+

1

3-

x6

2+

8-

x7

2

8

2+

3 = [x0, x1, x5, x6, x7]

3 = 2

Таблица4

xj

xi

x0

x1

x2

x3

x4

x5

x6

x7

x0

1

x1

2

1

3

x2

3

x3

2

5

1

4

x4

5

2

x5

6

1

1

x6

4

6

x7

2

8

4

Из Таблицы 4 видно, что не существует ни одного пути из источника в сток. (Из x0можно перейти только вx2, а оттуда – обратно вx0). Следовательно, увеличить поток нельзя.

Для определения величины полученного максимального потока вычитаем из элементов Таблицы 1 соответствующие элементы Таблицы 4. Записывая только положительные из найденных разностей, получаем Таблицу 5, указывающую максимальный поток в заданной сети с величиной

w* =z37+z47+z67=1+2+3= 7

Таблица 5

xj

xi

x0

x1

x2

x3

x4

x5

x6

x7

x0

2

3

2

x1

2

x2

3

x3

2

x4

3

x5

2

x6

2

x7

Соседние файлы в папке Прикладная математика. Множество вариантов курсовы