Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Потоки в сетях.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
475.6 Кб
Скачать
  1. П рактическая часть

Задача 1. На сети сформировать максимальный по величине поток, направленный из истока в сток . Выписать ребра, образующие на сети разрез минимальной пропускной способности.

Решение. Этап 1.

Шаг 1.

Построим на сети некоторый поток, величину которого по каждой дуге будем записывать без скобок:

путь : , значит, по этому пути пропускаем поток в 2 единицы;

путь : , значит, по этому пути пропускаем поток в 3 единицы;

путь : , значит, по этому пути пропускаем поток в 1 единицу.

Шаг 2. Путь содержит насыщенную дугу . Больше нельзя добавить потока по этому пути. Пути , и содержат насыщенные дуги.

Но путь имеет две дуги, которые еще ненасыщенные.

Шаг 3. Увеличиваем поток по найденному пути: . Значит, на этом пути поток увеличиваем на 1 единицу, и тем самым дуга стала насыщенной.

Шаг 4. Таким образом, получаем насыщенный поток, поскольку каждый рассмотренный путь содержит хотя бы одну насыщенную дугу.

Э тап 2.

Выясним, является ли построенный поток максимальным по величине. Строим сеть, на которой отметим все вершины и ненасыщенные дуги. На этой сети разность пропускных способностей дуги и проходящего по ней потока обозначим числом в квадратных скобках.

Шаг 5, 6. Вершину пометить . На шаге 6 предусматривается пометка вершин, смежных с вершиной I, соединенных ненасыщенными дугами. Но на построенной сети таких вершин нет.

В результате вершина S оказалась непомеченной.

Этап 3. Шаг 8. Так как вершина S непомеченная, то поток, сформированный на сети, получился максимальным.

Строим разрез на сети. Разбиваем множество вершин на два подмножества: A и B. Так как только одна вершина оказалась помеченной, то множество A состоит из одной вершины I, а остальные образуют множество B:

.

Проводим разрез , который состоит из дуг и :

.

Определяем величину максимального потока :

(ед.) 

З адача 2 . На заданной сети в скобках указаны пропускные способности дуг. Требуется сформировать на сети максимальный поток, направленный из истока в сток , и выписать ребра, образующие на сети разрез минимальной пропускной способности.

Решение. Этап 1.

Сформируем на сети какой-либо начальный поток. Рассмотрим путь . Поскольку , по этому пути пропускаем поток в 2 единицы. На сети значение потока обозначим числами без скобок. По пути пропускаем поток в 4 единицы, так как . По пути пропускаем поток в 3 единицы, так как . Таким образом, начальный поток имеет вид:

,

,

.

Начальный поток изображен на рисунке.

(2)

k

p

2

(7)

(6)

(2)

2

2

(4)

(5)

I

S

(6)

4

c

d

4

4

(3)

3

(3)

(5)

(1)

(1)

(2)

3

a

3

b

(6)

К аждый из рассмотренных путей содержит насыщенную дугу, поэтому эти пути насыщенные. На сети есть еще пути, которые содержат ненасыщенные дуги, а именно: , и . Для первого пути дополнительно увеличим поток на 2 единицы, так как . Второй и третий пути содержат одну и ту же дугу с минимальной для них оставшейся разностью . Поэтому для увеличения потока на 1 единицу выберем, например, путь .

Теперь каждый из этих путей содержит насыщенную дугу, следовательно, полученный поток – насыщенный.

Выясним, является ли построенный поток максимальным. Изобразим сеть, на которой отметим все вершины и ненасыщенные дуги. На этой сети разность пропускной способности дуги и проходящего по ней потока обозначим числом в квадратных скобках. Пропускную способность дуги, по которой поток не проходит, оставим в круглых скобках.

Видим, что на сети исток I и сток S связаны дугами. Значит, можно добавить какое-то количество потока по ненасыщенным дугам, при этом придется перераспределить поток.

Э тап 2.

На построенной сети помечаем вершины. Вершину пометим . Смежную ей вершину помечаем , так как эти вершины соединяет ненасыщенная дуга . Вершину помечаем , так как вершины и соединяет ненасыщенная дуга . Вершину помечаем , так как вершины и соединяет непустая дуга . Вершины и помечаем , так как они соединены с вершиной ненасыщенными дугами и . Вершина смежная вершине , и эти вершины соединены ненасыщенной дугой , поэтому вершину помечаем . Вершина смежная вершине , и эти вершины соединены ненасыщенной дугой , поэтому вершину помечаем .

Вершина оказалась помеченной. Значит, существует последовательность помеченных вершин от к : . В этой последовательности каждая последующая вершина помечена буквой предыдущей вершины. Перераспределим поток на этом пути. Определим число : . Увеличиваем на 1 единицу поток на дугах, имеющих направление от к : , , , . Уменьшаем на 1 единицу поток на дугах, имеющих обратное направление: . Получаем следующую сеть с новым сформированным потоком, который изображен на рисунке.

Проверим, будет ли построенный поток максимальным. Изобразим сеть, на которой отметим все вершины и ненасыщенные дуги, как сделали выше.

Вновь помечаем вершины. Вершину пометим . Смежную ей вершину помечаем , так как эти вершины соединяет ненасыщенная дуга . Все остальные вершины, в том числе и вершина , остаются непомеченными. Значит, поток на сети максимальный.

Этап 3.

Как видно на последней сети исток и сток не связны дугами. Значит, поток, изображенный на предпоследней сети, является максимальным.

Строим разрез на сети. Разбиваем множество вершин на два подмножества: A и B. Помеченные вершины образуют множество , непомеченные – множество .

Проводим разрез , который состоит из дуг , , , :

.

Определяем величину максимального потока :

(ед.)