
Транспортные сети и задание по алгоритму Флойда / Модуль5_полный поток
.doc5. Транспортные сети. Схемы потоков данных
5.1. Основные определения. Поток в транспортной сети
Транспортной сетью называется орграф D = (V, X) (V={v1,…,vn} – множество вершин, Х – множество дуг), для которого выполняются условия:
-
существует одна и только одна вершина v1, называемая источником, такая, что D – 1(v1) = , т.е. ни одна дуга не заходит в v1;
-
существует одна и только одна вершина vn, называемая стоком, такая, что D(vn) = , т.е. из vn не исходит ни одной дуги;
-
каждой дуге xX поставлено в соответствие целое число с(x)0, называемое пропускной способностью дуги.
Вершины в транспортной сети, отличные от источника и стока, называются промежуточными.
Пример.
Рассмотрим транспортную сеть:
Рис. 5.1. Транспортная сеть D(V, X).
здесь v1 – источник, v4 – сток, v2, v3 – промежуточные вершины. В скобках при дугах указаны их пропускные способности.
Функция
,
определенная на множестве Х дуг
транспортной сети D
и принимающая целочисленные значения,
называется допустимым потоком (или
просто потоком) в транспортной
сети D, если:
-
для любой дуги xX величина
, называемая потоком по дуге х, удовлетворяет условию
;
-
для любой промежуточной вершины v выполняется равенство:
, (5.1)
т.е. сумма потоков по дугам, заходящим в v, равна сумме потоков по дугам, исходящим из v.
Пример.
Для
транспортной сети из предыдущего примера
(рис. 5.1) определим один из допустимых
потоков:
Рис. 5.2. Допустимый поток в транспортной сети D(V, X).
При каждой дуге указана величина потока по ней.
Для промежуточной вершины v2 получаем:
сумма дуг, заходящих в v2:
,
сумма дуг, исходящих из v2:
.
Равенство (5.1) выполняется:
.
Аналогично для промежуточной вершины v3:
сумма дуг, заходящих в v3:
,
сумма дуг, исходящих из v3:
.
Равенство (5.1) выполняется:
.
Утверждение 5.1. Для любого допустимого
потока
в транспортной сети D
выполняется равенство:
. (5.2)
Доказательство.
Используя равенство (5.1.), запишем
(5.3)
Для каждой дуги
,
где
,
величина
входит в левую часть равенства (5.3) лишь
один раз и со знаком «+». Аналогично для
каждой дуги
,
где
величина
входит в левую часть равенства (5.3) лишь
один раз и со знаком «–».
С другой стороны, для каждой дуги
,
где
,
величина
входит в левую часть равенства (5.3) лишь
один раз и со знаком «+» (при
)
и один раз со знаком «–» (при
),
что в сумме дает нулевой вклад в левую
часть равенства (5.3).
Доказательство завершено.
Величиной потока
в транспортной сети D
называется величина
,
равная сумме потоков по всем дугам,
заходящим в vn,
или, что то же самое в силу утверждения,
– величина, равная сумме потоков по
всем дугам, исходящим из v1,
т.е.
.
Пусть
– допустимый поток в транспортной сети
D. Дуга
называется насыщенной, если поток
по ней равен ее пропускной способности,
т.е. если
.
Поток
называется полным, если любой путь
в D из v1
в vn
содержит, по крайней мере, одну насыщенную
дугу.
Поток
называется максимальным, если его
величина
принимает максимальное значение по
сравнению с другими допустимыми потоками
в транспортной сети D.
Из этого следует, что максимальный поток
обязательно является полным. Иначе в D
существует некоторая простая цепь
из v1 в vn,
не содержащая насыщенных дуг. Тогда
можно увеличить как минимум на единицу
потоки по всем дугам цепи ,
вследствие чего увеличится как минимум
на единицу и
,
что противоречит условию максимального
потока. Обратное неверно, т.е. существуют
полные потоки, которые не являются
максимальными.
5.2. Алгоритм нахождения полного потока в транспортной сети
Рассмотрим один из алгоритмов построения полного потока в транспортной сети D.
1. Полагаем
,
т.е. начинаем с нулевого потока. Полагаем
.
2. Удаляем из орграфа
все дуги, являющиеся насыщенными при
потоке
в транспортной сети D.
Полученный орграф снова обозначаем
через
.
3. Ищем в
простой путь
из v1 в vn.
Если такого пути нет, то
– искомый полный поток в транспортной
сети D. В противном
случае переходим к пункту 4.
4. Увеличиваем поток
по каждой дуге x из
на одинаковую величину
.
В качестве а выбираем такое
целочисленное значение, чтобы, по крайней
мере, одна дуга из
оказалась насыщенной, а потоки по
остальным дугам из
не должны превышать их пропускных
способностей. При этом величина потока
также увеличивается на а, а сам поток
в транспортной сети D
остается допустимым. После этого
переходим к пункту 2.
Пример.
Дана транспортная сеть D(V, X) (рис. 5.3). Построить полный поток.
Рис. 5.3. Транспортная сеть.
Полагаем
=D,
,
т.е. начинаем с нулевого потока (см. рис.
5.4).
Рис. 5.4. Орграф
,
,
,
1=v1v2v4v6.
Насыщенные дуги отсутствуют. Выделим
в
простой путь 1=v1v2v4v6
и увеличим потоки по дугам на а1
= 3 до насыщения дуги (v2,
v4) (рис. 5.5)
Рис. 5.5. Поток
,
.
В результате получим
,
,
содержащий одну насыщенную дугу. Пометим
её знаком «~» и удалим из орграфа
.
Оставшийся граф снова обозначим через
(рис. 5.6)
Рис. 5.6. Орграф
,
2=v1v2v3v4v6.
Рис. 5.7. Поток
,
.
Рис. 5.8. Орграф
,
3=v1v3v5v6.
Рис. 5.9. Поток
,
.
Рис. 5.10. Орграф
,
4=v1v2v5v6.
Рис. 5.11. Поток
,
.
Рис. 5.12. Орграф
,
5.
В полученном графе
не существует пути из v1
в v6, следовательно,
поток
является полным (см. рис. 5.11).
5.3. Орграф приращений
Для транспортной сети D
и допустимого потока
введем орграф приращений I(D,
). Множество
вершин этого орграфа совпадает со
множеством вершин транспортной сети.
Каждой дуге x = (v,
w)X
транспортной сети D
в орграфе приращений соответствуют две
дуги: x = (v,
w) – дуга, совпадающая
по направлению с дугой транспортной
сети, и
=
(w, v)
– дуга, противоположная по направлению
дуге транспортной сети. Припишем этим
дугам орграфа приращений I(D,
) длину l:
(5.4)
(5.5)
В этом случае орграф приращений является нагруженным. При этом видно, что длина любого пути из v1 в vn в орграфе I(D, ) равна либо 0, либо .
Пусть – некоторый
простой путь в орграфе I(D,
). Будем говорить,
что путь проходит
через дугу x = (v,
w)X,
если либо x, либо
содержится в .
При этом, если в
содержится x, то
считаем, что направления
и х совпадают, если в
содержится
,
то считаем, что направления
и х противоположны.
Пример.
Построим орграф приращений для
транспортной сети D
и потока
из предыдущего примера
Рис. 5.13. Орграф приращений I(D, 4).