Раздел 2. Основы теории графов
Раздел 2. Основы теории графов
Основные положения
Теорию графов начали разрабатывать для решения некоторых задач о геометрических конфигурациях, состоящих из точек и линий.
Определение графа можно дать как совокупности двух множеств V(точек) и E(линий, дуг), между элементами которых определено отношение инцидентности, причем каждый элемент е Î E инцидентен равно двум элементам v’,v” Î V. Элементы множества V называются вершинамиграфа G , элементы множества Е – его ребрами. Вершины и ребра графа G называют еще его элементами и вместо е Î Е и v ÎV пишут e Î G и v Î G.
В некоторых графах инцидентные ребру вершины неравноправны, они должны, например, рассматриваться в определенном порядке. Тогда каждому из ребер можно приписать направление от первой из инцидентных вершин ко второй. Направленные ребра часто называют дугами, а содержащий их граф – ориентированным. В противном случае
( инцидентные ребру вершины равноправны) граф будем называть неориентированным. Для ориентированного графа
Начало конец
1 2
Дуга: выходит входит
Наглядное представление о графе можно получить, если представить себе некоторое множество точек плоскости Х, называемых вершинами, и множество направленных отрезков U, соединяющих все или некоторые из вершин и называемых дугами. Математически граф G можно определить как пару множеств Х и U. G=(X,U) (1)
На рисунке изображен граф, вершинами которого являются точки a, b, c, d, e, g, h, а дугами - отрезки (a,a), (c,b), (c,d), (c,e), (d,c), (d,d), (e,d), (g,h).
|
Так, для графа, изображенного на рис.2.1 отображение определяется следующим образом:
Гa=a; Гb=Æ; Гc={b,d,e}; Гd={c,d}; Гe=d; Гg=h; Гh=Æ.
Нетрудно заметить, что данное определение графа полностью совпадает с определением отношения на множестве.
Введем некоторые понятия и определения, служащие для описания различных видов графов.
Подграфом GA графа G=(X,Г) называется граф, в который входит лишь часть вершин графа G, образующих множество А, вместе с дугами, соединяющими эти вершины, например, очерченная пунктиром область А на рис.2.1. Математически подграф обозначается следующим образом:
GA=(A,ГA), где АÍХ, ГАХ=(ГХ)ÇА (2.1)
Частичным графом GD по отношению к графу G=(X, Г) называется граф, содержащий только часть дуг графа G, т.е. определяемый условием:
GD=(X, D), где Dx Í ГX (2.2)
Например, пусть G=(X,Г) - карта шоссейных дорог Украины. Тогда карта шоссейных дорог Днепропетровской области представляет собой подграф, а карта главных дорог Украины - это частичный граф.
Другими важными понятиями для графа является понятие пути и контура. Дуга, соединяющая вершины a и b, и направленная от а к b обозначается u=(a,b).
Определения.
Путем в графе G называют такую последовательность дуг m=(u1,...,uk) , в которой конец каждой предыдущей дуги совпадает с началом следующей. Путь m, последовательными вершинами которого являются вершины a,b,...,m, обозначается через m=(a,b,...,m).
Длиной пути m=(u1,...,uk) называют число l(m)=k, равное числу дуг, составляющих путь. Иногда каждой дуге ui приписывают некоторое число l(ui), называемое длинной дуги. Тогда длинна пути определяется как сумма длин дуг, составляющих путь
k
l (m)=S l(ui) (2.3)
I=1
Путь, в котором никакая дуга не встречается дважды, называется простым. Путь, в котором никакая вершина не встречается дважды, называется элементарным.
Контур - это конечный путь m=(x1,...,xk), у которого начальная вершина х1 обязательно совпадает с конечной хk. При этом контур называется элементарным, если все его вершины различны (за исключением начальной и конечной, которые совпадают). Контур единичной длинны, образованный дугой вида (а, а) называется петлей. Так, например, на рис. 1 (e, d, c, b) - путь, а (c, e, d, c) - контур, (d, d) - петля.
Иногда графы удобно представлять в виде некоторых матриц, в честности в виде матриц смежности и инцидентности. Предварительно дадим два определения.
Вершины x и y являются смежными, если они различны и если существует дуга, идущая из x в y.
Дугу u называют инцидентной вершине х, если она заходит в эту вершину или исходит из нее.
Обозначим через х1,...,хn вершины графа, а через u1,...,um его дуги. Введем числа:
ì1, если имеется дуга, соединяющая вершину i с
rij = í вершиной j; (2.4)
î0, если такой дуги нет.
Квадратная матрица R=[rij] порядка (nxn) называется матрицей смежности графа.
Введем числа :
ì +1, если uj исходит из xi
Sij= í -1, если uj заходит в xi (2.5)
î 0, если uj не инцидентна xi
Тогда матрица S=[Sij] порядка (nxm) называется матрицей инцидентностидля дуг графа.
Матрицы инцидентности в описанном виде применимы только к графам без петель. В случае наличия в графе петель эту матрицу следует расчленить на две полу матрицы: положительную и отрицательную.
На рис.2.2 приведен граф без петель, для которого матрицы смежности и инцидентности имеют следующий вид:
Матрица смежности.
i j | |||||||
| |||||||
|
Матрица инцидентности
i j | ||||||||
-1 | -1 | |||||||
-1 | ||||||||
-1 | -1 | |||||||
-1 | -1 | -1 |
Обычно рассматриваемые графы конечны, т.е. конечны множества их элементов
( вершин и ребер). Поэтому конечностьэтих графов не будет специально оговариваться.
Примеры ориентированных графов:
а в с
d e f g к
(кратные ребра)
Рис.2.3 - Примеры ориентированных графов
В приведенных примерах вариант "в" представляет граф с пустым множеством ребер. Граф "е" иллюстрирует недостижимость двух вершин, а "g" – граф с петлей.
Неориентированные графы.
Иногда граф рассматривают без учета ориентации дуг, тогда его называют неориентированным графом. Понятие “дуга”, “путь” и “контур" для неориентированного графа заменяются понятиями “ребро”, “цепь”, “цикл”. Ребро - это отрезок, соединяющий 2 вершины. Цепь - последовательность ребер. Цикл - цепь, у которой начальная и конечная вершины совпадают. Описать неориентированный граф можно путем задания пары множеств (Х,U), где Х - множество вершин; U - множество ребер. Однако более удобным является описание неориентированного графа с помощью матрицы смежности или инцидентности, которые строятся аналогично соответствующим матрицам для ориентированных графов с той разницей, что не делается различия между заходящей в вершину и исходящей из нее дугами. При этом вершины х и y называют смежными, если существует соединяющее их ребро, а само это ребро называется инцидентным вершинам х и у.
Укажем еще несколько определений, служащих для характеристики неориентированных графов.
Степенью вершины х, обозначаемой deg(x) или dx, называют число ребер, инцидентных вершине х. Так для графа на рис.2.4 имеем d1=2, d2=2, d3=3, d4=1, d5=0. Если dx=1, то вершину называют тупиковой; если dx=0 то вершину называют изолированной.
Теорема. Пусть G - неориентированный граф с n вершинами и m ребрами и dj - степень j-й вершины тогда Snj=1 dj=2m.
Доказательство теоремы следует из того, что каждое ребро добавляет 1-цу к степени каждой из 2-х вершин, которые оно соединяет, т.е. добавляет 2 к сумме степеней уже имеющихся вершин.
Следствие. В каждом графе число вершин нечетной степени четно.
Для неориентированного графа понятия “подграф” и “частичный граф” аналогичны соответствующим понятиям для ориентированного графа.
С понятием неориентированного графа связана важная характеристика, называемая связностью графа. Говорят, что граф связен, если любые две его вершины можно соединить цепью. Если граф G не связен, то его можно разбить на такие подграфы Gi, что все вершины в каждом подграфе связны, а вершины из различных подграфов не связны. Такие подграфы Gi называют компонентами связности графа G. Если из графа (рис.2.4) исключить изолированную вершину 5, то полученный граф будет связным. Граф на рис.2.5 не связен и имеет две компоненты связности.
Его можно превратить в связный, добавив ребро (мост), соединяющее вершины 3 и 5 (штриховая линия). Удаление моста превращает связной граф в несвязный.
Для того чтобы определить связность ориентированного графа не нужно обращать внимание на ориентацию дуг. Граф, изображенный на рис.1 является не связным.
Рис.2.5- Несвязный граф.
Рис.2.6 - Граф в форме дерева |
Однако его подграф, состоящий из вершин b,c,d,e является связным. Для ориентированного графа существует понятие сильной связности. Граф сильно связан, если для любых 2-х вершин (х и у, х¹у) существует путь, идущий из х в у. Важный частный случай неориентированного графа - дерево. (рис.2.6) Деревом называют конечный связный неориентированный граф, не имеющий циклов. Если дано множество вершин a,b,c,..., то дерево можно построить следующим образом. Одной из вершин например а, примем за начальную и назовем его корнем дерева. Из этой вершины проводим ребра в близлежащие вершины b, c, d,... из них проводим рёбра в соседние с ними вершины c, f, g, h,... и т.д. Т.о. дерево можно построить последовательно добавляя рёбра в его вершинах. Это даёт возможность установить связь между числом вершин и числом рёбер дерева. Простейшее дерево состоит из 2-х вершин, соединённых ребром. Каждый раз когда мы добавляем ещё одно ребро, в конце его прибавляется так же и вершина. Следовательно, дерево с n вершинами имеет n-1 рёбер.
Изоморфизм графов.
Один и тот же граф геометрически можно изобразить различными способами. Так на рис. 2.7 приведены три изображения одного и того же графа. Такие графы называются изоморфными.
1
1 2
2
1 4 3 4
4 3
2 3
Рис.2.7 - Пример изоморфных графов
Произвольный граф G имеет как минимум один автоморфизм - тождественное преобразование VG ® VG, при котором e(v) = v для произвольной вершины v. Очевидно, что если j - автоморфизм графа G, то й обратная подстановка j-1 также является автоморфизмом. Если подстановки j і f обе суть автоморфизмы, те и их произведение jf - автоморфизм.
Характеристики графов.
Решение многих технических задач методами теории графов сводится к определению тех или иных характеристик графов, хотя технические приложения теории графов рассматривать в настоящей книге невозможно, знакомство с важнейшими характеристиками графов может оказаться полезным при изучении других дисциплин.
Цикломатическое число. Пусть G - неориентированный граф, имеющий n вершин, m рёбер и r компонент связности. Цикломатическим числом графа G называют число n(G)=m-n+r.
Это число имеет интересный физический смысл. Оно равно наибольшему числу независимых циклов в графе. При расчёте электрических цепей цикломатическим числом можно пользоваться для определения числа независимых контуров.
Хроматическое число. Пусть р- натуральное число. Граф G называют р-хроматическим, если его вершины можно раскрасить р различными цветами так, чтобы никакие две смежные вершины не были раскрашены одинаково. Наименьшее число р, при котором граф является р-хроматическим, называют хроматическим числом графа и обозначают y(G).
Если y(G)=2, то граф называют называют бихроматическим. Необходимым и достаточным условием того, чтобы граф был бихроматическим, является отсутствие в нём циклов нечётной длины. Хроматическое число играет важную при решении задачи наиболее экономического использования ячеек памяти при программировании. Однако его определение, за исключением случая бихроматического графа, представляет собой довольно трудную задачу, требующую нередко применения электронных вычислительных машин.
Пусть G – связный неориентированный граф, V и V – любые две его вершины. Тогда существует связывающая их простая цепь. М (L1,L2,…,Lq). Если количество ребер q этой цепи не минимальное из возможных , то существует цепь M( L1,L2,…,Lq) , связывающая U и U и имеющая меньшее число ребер. Т.о. существует связывающая U и U цепь М с минимальным количеством ребер р. Минимальная длина простой цепи с началом U и концом U называется расстояние d (U U) между этими вершинами.
Расстояние d(U’ U”) удовлетворяет аксиомам метрики.
1) d(U’ U”) >0 при цепи d(U’ U”) = 0 если U’= U”
2) d(U’ U”) = d (U’ U”)
3) Справедливо неравенство треугольника d(U’ U”)+d(U’ U”) >d(U’ U”).
Диаметр графа
d(G) = max d (U’ U”); U’, U” Î G (2.6)
Пусть V – произвольная вершина графа G. Максимальным удалением в графе G от вершины U называется величина (U) = max d(U U’) U’ G
Вершина U называется центром графа, если максимальное удаление от нее принимает минимальное значение
P (G) = min p (U’), U’ Î G (2.7)
Максимальное удаление р (G) от центра называется радиусом графа.
Центр не обязательно должен быть единственным.
Например в полном неориентированном графе, в котором любые две различные вершины U’ U” V соединены ребром, радиус равен 1 и любая вершина U V является центром.
Связный граф- все его вершины связаны между собой.
Расчет сетевого графика
Граф, некоторые вершины которого выделенные, называется сетью. Выделенные вершины называются полюсами сети. Например, дерево с корнем можно рассматривать, как однополюсную сеть. Изоморфизмом сетей называется изоморфное отображение их графов, при котором полюса обязательно переходят в полюса (иногда налагается условие, чтобы определенные полюса переходили в определенные).
Вершины, отличные от полюсов, называются внутренними вершинами сети. Ребро, инцидентное хотя бы одному полюсу, называется полюсным ребром. Прочие ребра называются внутренними.
Рассмотрим использование положений теории графов при построении сети сложного комплекса работ или операций.
Всякий намеченный комплекс работ, необходимых для достижения некоторой цели, называют проектом. Да, можно говорить о строительстве нового дома, модернизации оборудования, создании нового устройства. При этом сроки выполнения всего проекта заданные и известные продолжительности отдельных работ или операций, которые входят в состав проекта. Каждая такая операция начинается некоторым событием и заканчивается событием. Обычно исходным событием есть начало операции (роботы), а конечной по отношению к данной операции событием есть окончание этой операции, и возможно, начало новой.
Рассмотрим основные расчетные параметры сетевого графика и формулы для их расчета. Обозначим:
t p - ранний срок наступления события;
t n - поздний срок наступления события ;
t i j - время операций ;
i - номер предшествующего события ;
j - номер последующего события ;
R п - полный резерв времени операции ( i , j ) ;
R - резерв времени события ;
t p o - ранний срок окончания операции ( i , j ) ;
t п о - поздний срок окончания операции ( i , j ) ;
Основные временные параметры сетевого графика с детерминированным временем выполнения операций рассчитываются по следующим формулам :
1) ранний срок наступления события j
æ t i p + t i j , если к событию j подходит одна
t j p = í операция (2.9)
è max {t i p + t i j}, если к событию j подходит
{i} несколько операций;
2) поздний срок наступления события j
æ t j п - t i j если от события j отходит одна
t i п = í операция ; (2.10)
è min {t j п - t i j}, если от события j отходит
{j} несколько операций
3) резерв времени события
R = t n - t p ; (2.11)
4) ранний срок окончания операции ( i , j )
t p о = t p + t i j , при t p o = 0 (2.12)
5) поздний срок окончания операции ( i , j )
t n о = t n (2.13)
6) полный резерв времени операции ( i , j )
R n = Tn - Tp - t i j ; (2.14)
где R n - максимальное время, на которое можно отсрочить или увеличить продолжительность работы ( i , j ), не изменяя директивного или раннего срока наступления завершающего события; R п принимают минимальные значения для операций, лежащих на критическом пути; эти минимальные значения равны нулю, если директивный срок наступления завершающего события не задан или превышает начало выполнения операций на время, равное продолжительности критического пути.
Критический путь сетевого графика Lкр - это последовательность операций, продолжительность которых составляет минимальное время выполнения всего комплекса операций. Продолжительность критического пути называют критическим временем Tkp. Критический путь Lkp определяется как последовательностью операций с наименьшим полным резервом.
Расчет t p o и t p ведется от начала сетевого графика к концу, а расчет t n и t n о - от конца к началу. При этом для конечного события t p = t n .
При расчете временных параметров сетевых графиков с детерминированным временем выполнения операций не учитываются случайные изменения продолжительности операций, которые могутоказывать существенное влияния на срок завершения всего комплекса операций.
Пример. В таблице записаны работы ( i , j ) и время их выполнения tij ;
i , j | 1, 2 | 1, 3 | 2, 3 | 2, 5 | 3, 4 | 3, 6 | 4, 5 | 4, 6 | 4, 7 | 5, 7 | 6,7 |
tij |
Начертить сетевой график и найти параметры сетевого графика по событиям и работам.
РЕШЕНИЕ По данным работам i, j строим сетевой график. Событий всего 7, значит рисуем 7 вершин. Надо так расположить вершины, чтобы работы i , j не пересекались.
27
2 4 5 2
2 1 29 10
3
2 12 39
7 0
0 15 39
1 0 5 4 2 5
0 17 8
7 8
8 8
3 0 23 31
8 6 0
t p 31
N R
t n
Рис. 2.10 - Сетевой график
Находим параметры по событиям.
1) Ранний срок наступления события i, tp ( i ).Это максимальный путь от начального события до i - го события:
tp( 1 ) = 0; tp( 2 ) = t1,2 = 2
В третье событие входят 2 работы : (2,3) и (1,3), значит
tp(3)=max{tp(2) + t2,3 ; tp(1) + t1,3}=max{2+5, 8}= 8
В четвертое событие входит одна работа (3,4)
tp(4) = tp(3)+t3,4 = 8+7=15
В пятое событие входят 2 работы : (2,5) и (4,5), значит
tp(5)=max{tp(2) + t2,5 ; tp() + t4,5}=max{2+4, 15+12}= 27
В шестое событие входят две работы : (4,6) и (3,6), значит
tp(6)=max{tp(4) + t2,5 ; tp(3) + t3,6}=max{15+4, 8+23}= 31
В седьмое событие входят три работы : (5,7); (4,7); (6,8) значит
tp(7)=max{tp(5) + t5,7 ; tp(4) + t4,7; tp(6) + t6,7}=
max{5+5, 27+10,31+8}= 39
2) Поздний срок наступления события i, tn ( i ) — это разность между продолжительностью максимального пути lmax и пути наибольшей продолжительности от данного события i до конечного события.
Рассчитывается tn ( i ) по обратной схеме tp ( i ). Значит, расчет начинаем от конечного события, ориентируемся на выходящие работы, берем минимум разности.
Для конечного события
tn(7) = tp(7)=39
Из шестого события выходит одна работа : (6,7)
tn(6) = tn(7) - t6,7 = 39 - 8 = 31
Из пятого события выходит одна работа : (5,7)
tn(5) = tn(7) - t5,7 = 39 - 10 = 29
Из четвертого события выходит 3 работы : (4,5);(4,6);(4,7)
tn(4) = min{ tn(5) - t4,5 ; tn(6) - t4,6 ; tn(7) - t4,7 }=
min{29 - 12; 31 - 4; 39 - 5}= 17
Из третьего события выходит 2 работы : (3,4);(3,6)
tn(3)=min{tn(4) - t3,4 ; tn(6) - t3,6}=min{17 - 7;31 - 23}= 8
Из второго события выходит 2 работы : (2,5);(2,3)
tn(2)=min{tn(5) - t2,5 ; tn(3) - t1,3}=min{8 - 5;29 - 4}= 3
Из начального события выходит 2 работы : (1,2);(1,3)
tn(1)=min{tn(2) - t1,2 ; tn(3) - t1,3}=min{3 - 2;8 - 8}= 0
Для начального события должно выполняться условие:
tp( 1 ) = tn ( 1 ) = 0 .
3) Находим резерв времени по событиям:
R( i ) = tn( i ) - tp( i ).
R(1) = 0; R(2) = 3-2 =1; R(3) = 8-8 = 0;
R(4) = 17-15 = 2; R(5) = 29-27 = 2; R(6) = 31-31 = 0;
R(7) = 39-39 = 0.
4) Критический путь проходит по событиям с нулевым резервом времени R( i ) = 0, т.е. 1, 3, 6, 7, (выделено на графе). Длина критического пути Lкр — это самый длинный путь от начального события до конечного :
Lкр = tp(7) = 39.
Рассчитаем необходимые параметры по работам.
5) Ранний срок окончания работы ( i , j ) :
tp.o( i , j )=tp( i ) + ti,j
tp.o(1,2)=tp(1) + t1,2 = 0+2 = 2;
tp.o(1,3)=tp(1) + t1,3 = 0+8 = 8;
tp.o(2,3)=tp(2) + t2,3 = 2+5 = 7;
tp.o(2,5)=tp(2) + t2,5 = 2+4 = 6;
tp.o(3,4)=tp(3) + t3,4 = 8+7 = 15;
tp.o(3,6)=tp(3) + t3,6 = 8+23 = 31;
tp.o(4,5)=tp(4) + t4,5 = 15+12 = 27;
tp.o(4,6)=tp(4) + t4,6 = 15+4 = 19;
tp.o(4,7)=tp(4) + t4,7 = 15+5 = 20;
tp.o(5,7)=tp(5) + t5,7 = 27+10 = 37;
tp.o(6,7)=tp(6) + t6,7 = 31+8 = 39;
6) Поздний срок наступления окончания работы ( i , j ):
tn.o (1,2) = tn(2) = 3; tn.o (2,3) = tn(3) = 8;
tn.o (1,3) = tn(3) = 8; tn.o (2,5) = tn(5) = 29;
tn.o (3,4) = tn(4) = 17; tn.o (4,5) = tn(5) = 29;
tn.o (3,6) = tn(6) = 31; tn.o (4,6) = tn(6) = 31;
tn.o (5,7) = tn(7) = 39; tn.o (4,7) = tn(7) = 39.
tn.o (6,7) = tn(7) = 39;
7) Полный резерв времени работы i , j — это время, на которое можно увеличить продолжительность данной работы, не изменяя при этом продолжительность критического пути Lкр.
Rn( i , j ) = tn ( j ) - tp( i ) - - ti,j;
Rn(1,2) = tn (2) - tp(1) - t1,2 = 3-0-2 = 1;
Rn(1,3) = tn (3) - tp(1) - t1,3 = 8-0-8 = 0;
Rn(2,3) = tn (3) - tp(2) - t2,3 = 8-2-5 = 1;
Rn(2,5) = tn (5) - tp(2) - t2,5 = 8-2-4 = 2;
Rn(3,4) = tn (4) - tp(3) - t3,4 = 17-8-7 = 2;
Rn(3,6) = tn (6) - tp(3) - t3,6 = 31-8-23 = 0;
Rn(4,5) = tn (5) - tp(4) - t4,5 = 29-15-12 = 2;
Rn(4,6) = tn (6) - tp(4) - t4,6 = 31-15-4 = 12;
Rn(5,7) = tn (7) - tp(5) - t5,7 = 39-27-10 = 2;
Rn(6,7) = tn (7) - tp(6) - t6,7 = 39-31-8 = 0;
Работа (4,7) имеет большой резерв времени (12), значит можно с этой работы снять на данном этапе ресурсы и перебросить их на работы лежащие на критическом пути. Аналогично, работы (2,5),(3,4),(4,5),(5,7) имеют резерв времени равный 2 . Работу (2,3) считаем под критической, а работы с нулевым резервом времени — критические. На рисунке критический путь отмечен жирной линией.
2.8. Оптимизация на сетях.
Пусть S - произвольная, частично ориентированная сеть, каждому ребру u которой приписанное неотъемлемое число c(u) - пропускная способность. Потокомв сети S называется пара (f, w), где w - некоторая ориентация всех неориентированных ребер сети, а f(u) -заданная на множестве всех ребер функция с не отрицательными значениями, которые не превосходят пропускных способностей, и такая, что в каждой внутренней вершине a выполняется закон Кірхгофа, соответственно которой сумма значений потока по ребрам, которые входит в вершину, равно сумме потоков по ребрам, которые выходит с вершины . Иными словами, для f(u) выполняются условия:
0 £ f(u) £ c(u) для всех вершин сети;
R(a) = 0 для всех внутренних вершин, где
а G(a) (соответственно G'(a)) - множество всех ребер, которое выходят из a (соответственно входящих в a) при ориентации w.
Поскольку сумма значений R(a) по всем вершинах сети, включая полюса, равно нулю (каждое ребро есть исходным для одной вершины и входным для другой), то R(as) = - R(bs). Значение R = R(as) называется величиной потока.
Рассмотрим задачу определения максимального значения Rmax потока через сеть S при заданных значениях пропускных способностей. Ответ может быть получен в терминах сечений сети.
Сечениемсети называется множество ребер, при удалении которых сеть становится несвязной, причем полюса попадают в разные компоненты связности. В сети на рис.2.11 примерами сечений есть {d, e, f}, {b, c, e, g, h}, {d, g, h, i}.
7 a d h 2
aS 2 c 4 e 3 g bS
3 b 4 i
1
f
Рис. 2.11 - Задача максимального потока
Сечение называется простым, если при удалении какого-нибудь его ребра, оно перестает быть сечением. Да, сечения {d, e, f} и {b, c, e, g, h} есть простыми, а сечение {d, g, h, i} не является таким. По-видимому, что для каждого ребра простого сечения можно указать цепь, что проходить через это ребро, но не проходит через иные ребра данного сечения.
Если в связной сети выполняется простое сечение, то сеть распадается ровно на две части: левую часть, что содержит aS, и правую часть, что содержит bS. Каждое ребро простого сечения связывает вершины с разных частей. Будем называть ребро сечения прямым, если оно в сети не ориентированное или ориентирован слева по правой сторону, и обратным в противном случае. Будет ориентированное ребро прямым или обратным, зависит от выбора сечения. Так, в примере ребро е в сечениях {d, e, f} и {b, c, e, g, h} - обратное, а в сечении {a, c, e, g, i}- прямое.
Каждому простому сечению W припишем пропускную способность c(W), равную сумме пропускных способностей всех его прямых ребер. В примере на рис.2.11 сечение {d, e, f} имеет пропускную состоятельность 5+1=6, а сечение {b, c, e, g, h} - 3+2+3+2=10.
Теорема о максимальной пропускной состоятельность сети сформулированная Фордом и Фалкерсоном в таком виде: Максимальный размер потока Rmax через сеть S равно минимальной с пропускных способностей cmin ее простых сечений. Доказательство этой теоремы приведено в [2]. Эта теорема положена в основу задачи определения максимальной пропускной состоятельности сети.
I
b t
I
Обозначено: I - ресурсы не использованы
R - ресурсы использованы полностью
IR - ресурсы использованы частично
1. Выбираем какой - то один из произвольных потоков.
p1 = min {f(s, b), f(b, t)} = min {6.2; 8} = 6.2;
I
c e