Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5865-1.pdf
Скачиваний:
3
Добавлен:
05.02.2023
Размер:
775.19 Кб
Скачать

89

переходят в соответствующую вершину vj. Делают пометки вершин и идут далее в направлении вершины z. Если путь, на котором будут отмечены все пройденные вершины, приведёт в вершину z, то это говорит о том, что найден один из путей, наиболее близкий к насыщению. Нужно довести поток по нему до насыщения, увеличивая тем самым поток на графе. Значение, на которое можно увеличить поток, находится как минимальное d из множества отмеченных значений в пройденных по данному пути вершинах. Для выяснения вопроса, является ли полученный таким образом поток максимальным или нет, необходимо просмотреть все другие возможные пути, ведущие от x0 к z . Для этого необходимо возвратиться в x0 и повторить описанные выше действия, но идти следует по еще не помеченным вершинам. В результате выполнения этих действий можно столкнуться с двумя вариантами: ¾ 1) пройденный путь снова приводит от x0 к z , т. е. удается найти ненасыщенные пути и, значит, можно увеличить потоки на их дугах; 2) придя в некоторую вершину, обнаружить, что все смежные с ней вершины помечены и, следовательно, больше путей, ведущих к z нет. Это указывает на то, что на сети G получен максимальный поток.

Согласно теореме Форда и Фалкерсона значение полученного максимального потока можно вычислить, выделив дуги разреза R(G) с минимальной пропускной способностью и просуммировав их пропускные способности.

10.5. ПРИМЕР РЕШЕНИЯ ЗАДАЧИ О МАКСИМАЛЬНОМ ПОТОКЕ С ПОМОЩЬЮ АЛГОРИТМА ФОРДА-ФАЛКЕРСОНА

Пусть задана сеть G =(X,U) (рисунок 10.1) , на дугах u ij которой в скобках обозначены значения пропускных способностей дуг ¾ ij ).

 

 

 

 

 

90

 

 

 

 

 

1

(10)

3

 

 

 

 

 

 

 

 

 

(12)

 

(8)

(22)

(10)

(11)

 

 

 

 

 

 

 

s

(14)

 

5

(12)

6

(10)

 

 

 

 

t

 

 

 

 

 

 

(18)

 

 

 

(12)

 

 

(

 

(12)

 

 

 

 

 

 

(17)

 

 

 

 

 

 

 

 

 

 

 

( 9)

 

 

 

 

 

2

4

 

 

 

 

 

 

 

 

Рисунок .10.1.

1. Зададим на сети нулевой поток (на всех дугах величина потока jij равна 0). Нулевой поток ¾ это начальный допустимый поток на сети.

Значение потока на каждой дуге u ij будем указывать за скобками пропускной способности дуги: ¾ ij ) jij . Значение потока, равное «0» не указываем.

2. Выбираем на сети (произвольно) путь, ведущий из вершины s в вершину t:

s ®1®5®6®t .

 

 

 

(10)

3

 

 

 

 

 

 

 

 

(12)

(8)

(22)

(10)

(11)

 

 

 

 

 

 

s

(14)

5

(12)

6

(10)

 

 

 

t

 

 

 

 

 

(18)

 

 

(12)

 

 

 

(12)

 

 

 

 

 

 

(17)

 

 

 

 

( 9)

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

( 11)

 

 

 

 

 

 

 

Рисунок 10.2.

 

 

 

3. Вычисляем

значения {dij = с ij

- jij

} на каждой дуге пути

s ®1®5®6®t и выбираем минимальное из них.

min dij = 8 (так как jij =0

91

на всех дугах данного пути). На величину min δij =8 увеличиваем поток на каждой дуге пути s →1→5→6→t . Дуга (1,5) становится «насыщенной», так как поток на ней стал равен с 1,,5 .

 

 

1

(10)

3

 

 

 

 

 

 

(12)8

(8) 8

(22)

(10)

(11)

 

 

 

s

(14)

5

(12)8

6

(10)8

 

 

 

(18)

 

 

(12)

t

 

 

(12)

 

 

 

 

 

(17)

 

 

 

( 9)

 

 

 

2

4

 

 

 

 

 

 

 

( 11)

 

 

 

Рисунок 10.3

4. Выбираем следующий путь, ведущий из (рисунок 10.4) и для него вычисляем значение min δij как это делалось в п.3). min δij = 4.

s в t: s →1→3→t (аналогично тому,

 

 

1

(10)

3

 

 

 

 

 

 

 

 

(12)8

(8) 8

(22)

(10)

(11)

 

 

 

 

 

s

(14)

5

(12)8

6

(10)8

 

 

 

t

 

(18)

 

 

(12)

 

 

 

(12)

 

 

 

 

 

 

(17)

 

 

 

 

( 9)

 

 

 

 

2

4

 

 

 

 

 

 

 

 

 

( 11)

 

 

 

 

Рисунок 10.4

Увеличиваем величину потока на каждой дуге пути s →1→3→t на 4. Отмечаем насыщенную дугу (s,1) (рисунок 10.5).

92

 

 

1

(10)4

3

 

 

 

 

 

 

 

 

(12)

(8) 8

(22)

(10)

 

(11)4

 

12

 

 

s

(14)

5

(12)8

6

(10)8

 

 

 

t

 

(18)

 

 

(12)

 

 

 

(12)

 

 

 

 

 

 

 

(17)

 

 

 

( 9)

 

 

 

 

2

4

 

 

 

 

 

 

 

Рисунок 10.5.

5. Выбираем

следующий

путь,

ведущий из

s в

t: s 56t

(рисунок 10.6).

 

 

 

 

 

 

 

 

 

 

1

(10)4

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

(12)

(8) 8

(22)

(10)

(11)4

 

 

 

 

12

 

 

 

 

s

(14)

5

(12)8

6

 

(10)8

 

 

 

 

(18)

 

t

 

 

 

 

 

(12)

 

 

 

 

 

(12)

 

 

 

 

 

 

 

(17)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( 9)

 

 

 

 

 

 

 

2

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 10.6.

 

 

 

 

 

Увеличиваем величину потока на каждой дуге

 

пути

s 56t на

2 , что отражено на рисунке 10.7. Насыщенная дуга (6,t).

 

 

1

(10)4

3

 

 

 

 

 

(12)12

(22)

(10)

(11)4

 

(8) 8

 

s

(14)2

(12)10

 

(10)10

 

5

6

 

(18)

 

(12)

t

 

(12)

 

 

 

 

(17)

 

 

( 9)

 

 

2

4

 

 

 

 

6. Дальнейшие аналогичные

Рисунок 10.7.

93

действия, связанные с увеличением потока на сети, отражены на рисунках 10.8 – 10.16. Все оставшиеся вычисления и выкладки предлагается провести самостоятельно в качестве упражнения.

Для однозначности, отметим лишь последовательность рассматриваемых путей: s →5→3→t (рисунки 10.8 –10.10); s →2→6→4→t (рисунки 10.11 –10.12); s →2→4→t (рисунки 10.13 –10.16).

 

1

 

(10)4

3

 

 

 

 

 

 

 

 

 

 

(12)12

 

(22)

(10)

 

(11)4

 

 

(8) 8

 

 

 

 

s

(14)2

 

(12)10

 

(10)10

 

 

5

 

6

t

 

(18)

 

 

(12)

 

 

 

 

(12)

 

 

 

 

 

 

 

 

(17)

 

 

 

 

( 9)

 

 

 

 

2

 

4

 

 

 

 

 

 

 

 

 

 

 

Рисунок 10.8.

 

 

 

 

 

 

1

(10)4

 

3

 

 

 

 

 

 

 

 

 

(12)

 

 

 

 

(11) 11

 

 

12

(8) 8

(22)7

 

(10)

 

 

 

 

 

s

(14)9

5

(12)10

 

6

(10)10

 

 

 

 

t

 

(18)

 

 

 

(12)

 

 

 

(12)

 

 

 

 

 

 

 

 

(17)

 

 

 

 

( 9)

 

 

 

 

 

2

 

4

 

 

 

 

 

 

 

 

 

 

 

Рисунок 10.9.

 

 

 

 

 

 

1

(10)4

 

3

 

 

 

 

 

 

 

 

 

(12)12

 

(22)7

(10)

(11)11

 

 

(8) 8

 

 

s

(14)9

5

(12)10

6

(10)10

 

 

 

t

 

(18)

 

 

(12)

 

 

 

(12)

 

 

 

 

 

 

 

(17)

 

 

 

 

(10)( 9)

 

4

 

 

2

1

4

 

3

 

 

 

 

 

 

 

 

(12)12

 

(22)7

(10)

(11)11

 

 

(8) 8

 

 

s

(14)9

5

(12)10

6

(10)10

 

 

(18)

t

 

 

 

 

(12)

 

 

 

(12)

 

 

 

 

 

 

 

(17)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

( 9)

 

4

 

 

 

 

 

 

 

 

 

Рисунок 10.11.

(12)12

s (14)9

(18)12

 

(12)12

s

(14)9

(18)12

94

1

(10)4

 

(8) 8

(22)7

5

10

 

(12)

( (12)12 2 ( 9)

Рисунок 10.12.

1

(10)4

 

(8) 8

(22)7

5

10

 

(12)

( (12)12

2( 9)

Рисунок 10.13.

 

 

1

(10)4

 

 

 

 

(12)12

(8) 8

(22)7

s

 

(14)9

5

10

 

 

 

(12)

(18)12

 

(12)12

(

 

 

 

 

2

( 9)

 

 

3

 

(10)

(11)11

 

6

(10)10

(12)12

t

 

(17)12

4

3

 

(10)

(11)11

 

6

(10)10

(12)12

t

 

(17)12

4

3

 

 

(10)

(11)11

 

 

 

6

(10)10

t

 

 

(12)12

 

 

(17)12

4

Рисунок 10.14.

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