Определение потоковой сети

Потоковая сеть представляет собой ориентированный граф, удовлетворяющий некоторым специальным условиям и обладающий некоторыми дополнительными (по отношению к произ-вольным графам) параметрами. Необходимые понятия и определения теории графов даны в предыдущей главе 6; будем пользоваться введёнными там понятиями без дополнительных разъ-яснений, останавливаясь лишь на новых (ранее не определённых) понятиях и терминах.

При определении сети в базовом простейшем случае рассматривают ориентированные связные графы, обладающие следующими специальными свойствами:

1) существует ровно одна вершина, в которую не входит ни одна дуга (эта вершина называется источником);

2) существует ровно одна вершина, из которой не выходит ни одна дуга (эта вершина называет-ся стоком);

3) ни одна дуга не является петлёй.

Потоковой сетью) называется граф указанного типа, у которого каждой дуге vj(j = 1, 2, ..., m) сопоставлено положительное число сj(j = 1, 2, ..., m), называемое пропускной способнос-тью дуги vj. Пример потоковой сети приведен на рис.1. Пропускные способности проставлены в кружках около дуг.

Определение потоковой сети - student2.ru

Рис.1

Таким образом, потоковая сеть - это ориентированный граф, в котором заданы пропуск-

ные способности дуг. В дальнейшем будем удобно занумеровать вершины графа так, чтобы вершина с минимальным номером (x1) являлась источником, а вершина с максимальным номе-ром (xn) являлась стоком сети. Потоковую сеть будем обозначать через S.

Введем обозначения:

Определение потоковой сети - student2.ru - множество номеров всех дуг, входящих в вершину xi;

Определение потоковой сети - student2.ru - множество номеров всех дуг, выходящих из вершины xi.

Пример 1. В сети, показанной на рис.1:

n = 7, m = 12,

Определение потоковой сети - student2.ru = {1,2},

Определение потоковой сети - student2.ru = {1,3}, Определение потоковой сети - student2.ru = {4,5}, Определение потоковой сети - student2.ru = {2,6}, Определение потоковой сети - student2.ru = {3,7}, Определение потоковой сети - student2.ru = {5}, Определение потоковой сети - student2.ru = {6,8,9,11},

Определение потоковой сети - student2.ru = {4,8}, Определение потоковой сети - student2.ru = {10}, Определение потоковой сети - student2.ru = {7,9}, Определение потоковой сети - student2.ru = {12},

Определение потоковой сети - student2.ru = {10,11,12},

Определение потоковой сети - student2.ru = Определение потоковой сети - student2.ru = Æ (по определению сети, так как у источника нет входящих, а у стока - выходящих дуг);

с1=3, с2=1, с3=2, с4=1, с5=4, с6=3, с7=2, с8=5, с9=1, с10=6, с11=1, с12=3 ■

Потоком в сети называется вектор u = (u1, u2, ..., um)

удовлетворяющий условиям

0 ≤ uj≤ сj(j = 1, 2, ..., m), (1)

Определение потоковой сети - student2.ru (i = 2, 3, ..., n-1). (2)

Компонента ujвектора u = (u1, u2, ..., um) называется потоком по дугеvj (j = 1, 2, ..., m). Таким образом, условие (1) означает, что поток по любой дуге - неотрицательное число, не превос-ходящее пропускной способности этой дуги. Условие (2) означает, что сумма потоков по всем дугам, входящих в вершину, равна сумме потоков по всем дугам, выходящих из этой же верши-ны (кроме источника и стока).

Содержательно поток описывает распределение по дугам сети некоторого продукта, до-ставляемого из источника в сток. При этом поток ujпо дуге vj- это количество продукта, пере-даваемого по данной дуге от её начала к её концу. Условие (1) выражает ограничение на поток по каждой дуге: нельзя передать больше, чем эта дуга может пропустить. Условие (2) выражает закон сохранения: сколько продукта поступило в промежуточную вершину, столько же оттуда отправлено далее.

ВеличинойР(u) потока u называется сумма потоков во всех дугах, выходящих из источ-ника, т.е. общее количество передаваемого по сети продукта.

Пример 2. Для иллюстрации введённых понятий рассмотрим сеть, показанную на рис. 2.

Векторы

u1 = (2, 0, 1, 1, 1, 0, 0, 2, 0);

u2 = (0, 1, 0, 0, 0, 1, 1, 1, 0);

u3 = (1, 0, 1, 0, 0, 1, 0, 0, 1);

u4 = (2, 1, 1, 1, 1, 1, 0, 2, 1)

являются различными потоками в этой сети (проверьте это!). Легко видеть, что

Р(u1) = 2, Р(u2) = 1, Р(u3) = 2, Р(u4) = 3

Интересно изобразить эти четыре потока графически, сопоставив каждой единице потока по дуге пунктирную линию вдоль этой же дуги. Такое представление дается на рис.3.

Определение потоковой сети - student2.ru

Рис.2 ■

Определение потоковой сети - student2.ru

Рис.3

Задание 1. Установить, является ли указанный вектор потоком в сети, изображённой на рис.2. В случае положительного ответа представить данный поток графически, как сделано в примере 2 (см. рис.3).

u1 = (0, 0, 0, 0, 0, 0, 0, 0, 0);

u2 = (1, 0, 1, 0, 1, 0, 0, 1, 0);

u3 = (0, 1, 0, 0, 1, 0, 0, 1, 0);

u4 = (0, 1, 0, 0, 0, 1, 0, 0, 1);

u5 = (1, 1, 0, 1, 1, 0, 0, 2, 0);

u6 = (1, 2, 0, 1, 1, 1, 0, 2, 1);

u7 = (3, 0, 1, 2, 0, 1, 0, 2, 1);

u8 = (0, 2, 0, 0, 2, 0, 0, 2, 0);

u9 = (1, 2, 0, 1, 1, 1, 0, 2, 1);

u10 = (1, 1, 1, 0, 2, 0, 0, 2, 0) ■

Наши рекомендации