Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практикум по ИО

.pdf
Скачиваний:
163
Добавлен:
05.02.2016
Размер:
1.6 Mб
Скачать

Здесь минимум берется по единственной переменной x2 , которая мо% жет изменяться, согласно (3.7.10), в пределах

0 x2 d2 + y3 или 0 x2 2 + y3

(7.1.17)

где верхняя граница зависит от параметра состояния ξ = y3 , который, со% гласно (3.7.8), принимает значения на отрезке

0 y3 d3 , т. е. 0 y3 4 ,

а аргумент y2 в последнем слагаемом справа в соотношении (7.1.16) свя% зан с x2 и y3 балансовым уравнением

x2 + y2 d2 = y3 ,

 

откуда следует, что

 

y2 = y3 +d2 x2 = y3 +2 − x2 .

(7.1.18)

Придавая параметру состояния различные значения от 0 до 4, будем последовательно вычислять Ω2(x2,ξ) , а затем определять F2(ξ) и x2 (ξ).

Положим, например, ξ = y3 =2 . Тогда, согласно (7.1.17),

0 x2 4 ,

т. е. переменная x2 может принимать значения 0, 1, 2, 3, 4, а каждому значению x2 отвечает определенное значение y2 , вычисляемое по фор% муле (7.1.18):

y2 =4 −x2 .

Последовательно вычисляем:

если x =0 , то

y =4 −0 =4 ,

Ω

(0, 2) =02 +5 0 +2 +3 2 +F (4)=8 +56=64 ,

 

2

2

2

1

 

 

x =1,

y =4 −1 =3,

Ω

(1, 2) =12 +5 1+2 +3 2 +F (3)=14 +41=55 ,

 

2

2

2

1

 

 

x =2 ,

y =4 −2 =2,

Ω

(2, 2) =22 +5 2 +2 +3 2 +F (2)=22 +28=50

,

2

2

2

1

 

 

x =3 ,

y =4 −3 =1,

Ω

(3, 2) =32 +5 3 +2 +3 2 +F (1)=32 +17=

 

,

49

2

2

2

1

 

 

 

 

x =4 ,

y =4 −4 =0 ,

Ω

(4, 2) =42 +5 4 +2 +3 2 +F (0)=44 +8=52 .

 

2

2

2

1

 

 

Наименьшее из полученных значений Ω2 — это F2 (2), т. е.

F2(ξ = y3

=2) = min Ω2(x2, 2) = min{64, 55, 50, 49, 52} =49 ,

 

x2

причем минимум достигается при значении x2 , равном

x2 (ξ= y3 =2) =3 .

Аналогично для значения параметра ξ = y3 =3 , проведя необходимые вычисления, найдем

F (ξ = y =3) =63,

x

(ξ = y =3) =3 .

2

3

2

3

81

Процесс табулирования функции F2(ξ = y3 ) приведен в табл. 7.1.2, а ре% зультаты табулирования сведены в табл. 7.1.3.

Переходим к следующему этапу. Полагаем k = 3 и табулируем функ% цию F3 (ξ = y4 ) :

F3 (ξ = y4 ) = min{ax32 +bx3 +c +h3y4 + F2(y3 )}.

x3

Вычисляем значение функции состояния только для одного значения ар% гумента ξ = y4 =0 , так как не хотим оставлять продукцию в запас в конце ис% следуемого периода. Процесс вычислений приведен в табл. 7.1.4. Получаем

F3 (ξ = y4 ) = min Ω3 (x3, 0) = min{80, 71, 65, 62, 62} =62,

x3

причем минимум достигается при двух значениях переменной x3 , равных

x

(ξ = y =0) =3

или

x

(ξ= y =0) =4 .

3

4

 

3

4

Таким образом, мы получили не только минимальные общие затраты на производство и хранение продукции, но и последнюю компоненту оп% тимального решения. Она равна x3 =3 или x3 =4 .

Рассмотрим случай, когда на последнем этапе планируется выпускать три единицы продукции:

x3 =3.

Остальные компоненты оптимального решения найдем по обычным правилам метода динамического программирования. Чтобы найти пред% последнюю компоненту, учтем, что

x3 + y3 d3 = y4 или 3 + y3 −4 =0,

откуда

y3 =1.

Из табл. 7.1.3 значений x2 (ξ) находим

x2 = x2 (ξ = y3 =1) =2.

Аналогично, продолжая двигаться в обратном направлении и учиты% вая, что

x2 + y2 d2 = y3 или 2 + y2 −2 =1,

получаем

y2 =1;

из табл. 7.1.2 значений x1 (ξ) находим

x1 = x1 (ξ = y2 =1) =2.

82

n

ξ = yk+1

 

dk +yk+1

 

 

yk =yk+1+dk xk

0 yk+1 dj

0 xk

xk

j=k+1

 

 

 

 

 

 

 

 

0 y3 d3

ξ = y3

0 x2

 

d2 +y3

x2

y2=y3 +d2 x2

0 y3 4

ξ = y3

0 x2

2 +y3

x2

y2 =y3 +2 −x2

 

y3 =0

 

 

 

x2

=0

y2

=2 −0 =2

 

0 x2

2

x2

=1

y2

=2 −1 =1

 

 

 

 

 

x2

=2

y2

=2 −2 =0

 

 

 

 

 

x2 =0

y2 =3 −0 =3

 

y3 =1

0

x2

3

x2 =1

y2 =3 −1 =2

 

x2 =2

y2 =3 −2 =1

 

 

 

 

 

 

 

 

 

 

x2 =3

y2 =3 −3 =0

 

y3 =2

 

 

 

 

 

 

 

 

x2 =0

y2 =5 −0 =5

 

 

 

 

 

x2 =1

y2 =5 −1 = 4

 

y3 =3

0

x2

5

x2 =2

y2 =5 −2 =3

 

x2 =3

y2 =5 −3 =2

 

 

 

 

 

 

 

 

 

 

x2 = 4

y2 =5 −4 =1

 

 

 

 

 

x2 =5

y2 =5 −5 =0

 

 

 

 

 

x2 =0

y2 =6 −0 =6

 

 

 

 

 

x2 =1

y2 =6 −1 =5

 

 

 

 

 

x2 =2

y2 =6 −2 = 4

 

y3 = 4

0 x2

6

x2 =3

y2 =6 −3 =3

 

 

 

 

 

x2 = 4

y2 =6 −4 =2

 

 

 

 

 

x2 =5

y2 =6 −5 =1

 

 

 

 

 

x2 =6

y2 =6 −6 =0

 

 

 

 

 

 

 

 

 

Т а б л и ц а 7.1.2

Ωk (xk ,yk+1) = ϕk (xk ) +hk yk+1 +Fk−1(yk )

Ω2 (x2,y3 ) = ax22 +bx2 +c +h2y3 +F1(y2 )

Ω2 (x2,y3 ) = x22 +5x2 +2 +3y3 +F1(y2 )

Ω2 (0,0) =02 +5 0 +2 +3 0 +F1(2) = 2 +28 = 30 Ω2 (1,0) =12 +5 1+2 +3 0 +F1(1) = 8 +17 = 25 Ω2 (2,0) =22 +5 2 +2 +3 0 +F1(0) =16 +8 = 24 Ω2 (0,1) =02 +5 0 +2 +3 1+F1(3) = 5 +41 = 46 Ω2 (1,1) =12 +5 1+2 +3 1+F1(2) =11+28 = 39 Ω2 (2,1) =22 +5 2 +2 +3 1+F1(1) =19 +17 = 36 Ω2 (3,1) =32 +5 3 +2 +3 1+F1(0) = 29 +8 = 37

Ω2 (0,3) =02 +5 0 +2 +3 3 +F1(5) =11+73 = 84 Ω2 (1,3) =12 +5 1+2 +3 3 +F1(4) =17 +56 =73 Ω2 (2,3) =22 +5 2 +2 +3 3 +F1(3) = 25 +41 = 66 Ω2 (3,3) =32 +5 3 +2 +3 3 +F1(2) = 35 +28 = 63 Ω2 (4,3) = 42 +5 4 +2 +3 3 +F1(1) = 47 +17 = 64 Ω2 (5,3) =52 +5 5 +2 +3 3 +F1(0) =61+8 =69 Ω2 (0,4) =02 +5 0 +2 +3 4 +F1(6) =14 +92 =106 Ω2 (1,4) =12 +5 1+2 +3 4 +F1(5) = 20 +73 = 93 Ω2 (2,4) =22 +5 2 +2 +3 4 +F1(4) =28 +56 = 84 Ω2 (3,4) =32 +5 3 +2 +3 4 +F1(3) = 38 +41 =79 Ω2 (4,4) = 42 +5 4 +2 +3 4 +F1(2) = 50 +28 = 78 Ω2 (5,4) =52 +5 5 +2 +3 4 +F1(1) =64 +17 = 81 Ω2 (6,4) =62 +5 6 +2 +3 4 +F1(0) = 80 +8 =88

83

84

Т а б л и ц а 7.1.3

ξ = y3

0

1

2

3

4

 

 

 

 

 

 

F2 (ξ = y3 )

24

36

49

63

78

x

(ξ = y )

2

2

3

3

4

2

3

 

 

 

 

 

Т а б л и ц а 7.1.4

n

ξ = yk+1

 

 

 

 

 

yk = yk+1 +dk xk

 

 

Ωk (xk ,yk+1) = ϕk (xk ) +hkyk+1 +Fk−1(yk )

0 yk+1 dj

0 xk

dk + yk+1

xk

 

 

j=k+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 y 0

ξ = y

0 x d + y

x

y = y +d x

 

 

Ω

(x ,y ) = ax2

+bx +c +h y +F (y )

4

4

3

3

4

 

3

3

4

3

3

 

 

3

3

4

3

3

3

4

2

3

y =0

ξ = y

0 x 4

x

y = y +d x

 

 

Ω

(x ,y ) = ax2

+bx +c +h y +F (y )

4

4

 

3

 

 

3

3

4

3

3

 

 

3

3

4

3

3

3

4

2

3

 

 

 

 

 

x =0

y3

=4 −0 =4

 

Ω3 (0,0) =02 +5 0 +2 +3 0 + F2(4) =2 +78 =80

 

 

 

 

 

3

=1

y3

=4 −1 =3

 

Ω3 (1,0) =12 +5 1+2 +3 0 +F2(3) =8 +63 =71

 

 

 

 

 

x

 

 

y4 =0

0

x3

4

3

=2

 

=4 −2 =3

 

Ω

 

(2,0) =22 +5 2 +2 +3 0 + F

 

=16 +49 =65

 

x3

y3

 

3

(2)

 

 

 

 

 

x3 =3

y =4 −3 =1

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

Ω3

 

2

+5 3

+2 +3 0 + F2(1)

=26 +36 = 62

 

 

 

 

 

x3 =4

3

 

 

 

(3,0) =3

 

 

 

 

 

y =4 −4 =0

 

Ω3

 

2

+5 4

+2 +3 0 + F2(0)

=38 +24 = 62

 

 

 

 

 

 

 

3

 

 

 

(4,0) =4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Т а б л и ц а 7.1.5

Самопроверка результатов

Этап

Январь

Февраль

Март

Итого за 3 месяца

Имеем продукции к началу месяца, шт.

y1 =2

y2 =1

y3 =1

 

y1

=2

Производим в течение месяца, шт.

x1 =2

x2 =2

x3

=3

x1

+x2

+x3 =7

 

 

d2 =2

 

 

 

 

Отпускаем заказчикам, шт.

d1 =3

d3

= 4

d1

+d2 +d3 =9

 

 

y3 =1

 

 

 

 

Остаток к концу месяца (храним в течение текущего месяца), шт.

y2 =1

y4

=0

 

Затраты на производство, руб.

ϕ(x1) =16

ϕ(x2 ) =16

ϕ(x3 ) =26

ϕ(х1) + ϕ(х2) + ϕ(х3) = 58

Затраты на хранение, руб.

h1y2 =1

h2y3 =3

 

0

h1y2 +h2y3 = 4

 

 

 

 

 

 

 

 

Итак, оптимальный план производства имеет вид

x1 =2, x2 =2, x3 =3 ,

а минимальные общие затраты составляют 62 единицы.

Полезна с а м о п р о в е р к а полученного результата. Для этого по ис% ходным данным и найденному плану производства заполняем табл. 7.1.5 и убеждаемся, что заявки потребителей на каждом этапе выполняются

y1 + x1 d1,

y2 + x2

d2,

y3 + x3 d3,

2 + 2 3,

1+2

2,

1 + 3 4,

и что суммарный объем производства и имевшегося к началу первого этапа запаса продукции равен суммарной потребности

y1 + x1 + x2 + x3 = d1 +d2 +d3, 2 + 2 + 2 + 3 = 3 +2 +4,

причем это достигается при наименьших возможных затратах на произ% водство и хранение продукции:

ϕ(x1) +ϕ(x2) +ϕ(x3 ) +h1y2 +h2y3 = F3 (y4 =0), 16 + 16 + 26 + 1 + 4 = 62.

Студенту рекомендуется найти другой вариант оптимальной производ% ственной программы, когда на последнем этапе предполагается произве% сти четыре единицы продукции, и выполнить самопроверку.

7.2. З а д а н и е п р а к т и к у м а

Рассматривается трехэтапная система управления запасами с дискрет% ной продукцией и динамическим детерминированным спросом.

Заявки потребителей на продукцию составляют на этапе j равен dj еди% ниц (j = 1, 2, 3).

К началу первого этапа на складе имеется только y1 единицы продукции. Затраты на хранение единицы продукции на этапе j равны hj.

Затраты на производство xj единиц продукции на j%м этапе определяются функцией ϕj (xj ) = ax2j +bxj +c, j =1, 2, 3.

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

Для этого необходимо составить математическую модель динамиче% ской задачи управления производством и запасами и решить ее мето% дом динамического программирования, обосновывая каждый шаг вы% числительного процесса.

Исходные данные приведены для каждого варианта в табл. 7.2.1.

85

Т а б л и ц а 7.2.1

№ вар.

 

 

Исходные данные

 

 

 

d

d

d

a

b

c

h

h

h

y

1

 

1

2

3

 

 

 

1

2

3

 

1

5

6

7

2

3

4

4

3

2

2

2

3

2

3

1

2

2

4

3

2

3

3

5

2

3

2

2

2

4

5

6

4

4

2

3

3

2

3

4

3

2

2

2

5

3

2

3

1

3

2

4

3

2

1

6

3

2

4

5

1

0

3

3

3

2

7

3

2

4

8

1

1

1

0

1

0

8

6

2

4

3

4

3

2

1

3

1

9

5

4

3

4

4

4

5

0

4

2

10

7

3

4

2

1

3

2

5

7

4

11

3

3

4

2

3

4

2

3

1

3

12

3

2

3

2

2

1

2

3

4

3

13

1

2

3

2

3

1

1

2

3

1

14

2

3

2

5

1

1

3

2

1

2

15

4

2

2

1

1

2

6

4

1

0

16

7

0

4

3

4

0

3

3

3

2

17

2

2

2

1

1

5

1

2

4

2

18

5

1

2

2

0

6

2

1

1

4

19

3

1

2

4

1

2

6

3

5

0

20

6

0

3

1

3

3

5

3

1

4

21

4

5

2

3

3

3

4

0

5

2

22

4

5

1

5

0

2

4

7

0

4

23

5

3

1

2

4

3

5

4

3

1

24

6

2

1

4

0

5

3

4

1

5

25

3

2

1

4

5

0

5

4

0

2

26

7

6

0

1

0

5

4

5

3

4

27

5

5

2

1

0

1

3

4

4

4

28

4

5

2

5

0

4

4

4

4

4

29

6

5

1

4

1

1

3

7

0

3

30

4

3

3

4

3

2

1

3

2

3

31

6

5

1

2

4

1

4

4

4

4

32

3

0

4

4

4

4

1

3

4

3

33

5

0

3

6

0

4

1

1

1

2

34

4

6

2

6

0

4

4

4

4

4

35

6

5

2

2

3

1

4

4

4

3

86

UXi

8. ОПТИМИЗАЦИОННЫЕ ЗАДАЧИ НА ГРАФАХ

8.1. К р а т к и е т е о р е т и ч е с к и е с в е д е н и я и у к а з а н и я к в ы п о л н е н и ю з а д а н и й

Широкое распространение в задачах управления получили модели в виде графов благодаря дополнительным возможностям, которые появля% ются при геометрическом подходе к описанию и трактовке процессов управления. Среди графовых моделей особую роль играют потоковые мо% дели, часто называемые транспортными сетями только из%за того, что первоначально они возникли при решении транспортной задачи. К транс% портным сетям сводятся многие практические задачи управления, на% пример, задача об оптимальном назначении, о складе, о поставщике, о спросе и предложении, о кратчайшем пути, об оптимальном использова% нии дорог, об оптимальном по стоимости (или по времени) сетевом графи% ке инвестиционного проекта и другие.

Графом называется пара объектов, состоящая из м н о ж е с т в а т о % ч е к и м н о ж е с т в а о т р е з к о в, соединяющих некоторые из этих точек (может быть, все). Упомянутые точки называются вершинами гра5 фа. Если отрезки, соединяющие вершины графа, имеют направления, то граф называется ориентированным, а сами отрезки — дугами. Если же отрезки не имеют направления, то граф называется неориентирован5 ным, и в этом случае говорят, что вершины графа соединены ребрами. Смешанным называется граф, в котором содержатся как ориентирован% ные, так и неориентированные отрезки. Ориентированный граф часто на% зывают сетью.

Обозначим вершины графа X1, X2,…, Xn , а дугу, соединяющую верши% ну Xi c Xj в направлении от Xi к Xj uij . Граф Γ , образованный мно% жеством вершин X и множеством дуг U , обозначают Γ(X, U) .

Например, план города можно рассматривать как смешанный граф, в ко% тором дуги и ребра представляют улицы, а вершины — перекрестки, при этом улица с односторонним движением изображается дугой, а с двусто% ронним — отрезком без ориентации.

Две дуги графа (два ребра) называются смежными, если они различны и имеют общую вершину. Две вершины графа называются смежными, если существует дуга (ребро), соединяющая их.

Говорят, что дуга исходит из вершины Xi , если Xi является ее нача% лом. Дуга заходит в вершину Xj , если Xj является ее концом. Такую дугу мы обозначим через uij .

Говорят, что в графе данная дуга инцидентна данной вершине, если эта вершина является началом или концом данной дуги.

Обозначим UX+i множество дуг, исходящих их данной вершины Xi , а

— множество дуг, входящих в Xi . Их объединение есть множество дуг UXi , инцидентных данной вершине.

87

UXi = UX+i UXi .

Путь в ориентированном графе — это последовательность дуг, в кото% рой конец предыдущей дуги совпадает с началом следующей. Обозначим

μ ={Xi1 , Xi2 ,, Xik }

путь, последовательность вершин которого Xi1 , Xi2 ,…, Xik .

Путь, в котором ни одна вершина не встречается дважды, называется элементарным. Путь, в котором ни одна дуга не встречается дважды, на% зывается простым, в противном случае — составным. Конечный путь, у которого конечная вершина совпадает с начальной, называется конту5 ром. Контур, образованный одной дугой, называется петлей.

Ориентированный граф называется симметрическим, если любые две смежные вершины его соединены двумя противоположно ориентирован% ными дугами. Ориентированный граф называется антисимметриче5 ским, если каждая пара смежных вершин соединена только в одном на% правлении и петли отсутствуют.

Для неориентированных графов вводятся понятия, аналогичные поня% тиям пути, контура и др. Меняются только названия: вместо дуги говорим ребро, вместо пути — цепь, вместо контура — цикл и т. д.

Неориентированный граф называется связным, если две любые вер% шины его можно соединить цепью. Конечный связный неориентирован% ный граф, не имеющий циклов, называется деревом. Граф, представляю% щий объединение деревьев, называется лесом.

Рассмотрим задачу о максимальном потоке в сети.

Пусть нам дана некоторая совокупность географических пунктов или железнодорожных станций, связанных между собой автомобильными или железными дорогами. При планировании перевозок часто возникает задача об организации максимального потока грузов (т. е. перевозки мак% симального количества грузов в единицу времени) из одного пункта в другой с учетом того обстоятельства, что пропускная способность каждой дороги ограничена. Сформулируем эту задачу математически.

Каждая совокупность пунктов вместе с соединяющими их дорогами схе% матически может быть изображена в виде некоторой сети, в которой линии соответствуют дорогам, а пересечения — отдельным пунктам или станциям. Поэтому рассмотрим ориентированный граф с (n +1) вершиной X0, X1,

X2,…, Xn , где некоторые упорядоченные пары точек Xi , Xj соединены ду% гами uij , причем каждой такой дуге поставлено в соответствие неотрица% тельное число cij = c(uij ) , называемое ее пропускной способностью.

Зафиксируем какие%нибудь две вершины графа, например, X0 и Xn . По пу% тям μ{X0, Xi , Xj ,…, Xk , Xn } составленным из дуг (X0, Xi ), (Xi , Xj ),…, (Xk , Xn ) сети и не образующих контуров, направляется жидкость, газ или транспорт из точки X0 сети в точку Xn . Назовем X0 входом сети, Xn выходом. Пропуск% ная способность cij дуги (Xi , Xj ) определяет максимальное количество веще%

88

ства, которое может пропустить эта дуга за единицу времени. Если какая%то пара точек Xk , Xl не соединена дугой, то будем считать ckl =0 . Кроме того, бу% дем считать рассматриваемый граф симметрическим, т. е. если в сеть входит дуга (Xi , Xj ) , то в нее входит и симметричная дуга (Xj , Xi ) , причем пропуск% ные способности этих дуг могут быть различными: cij cji .

Потоком zij по дуге (Xi , Xj ) называется количество вещества, прохо%

дящее через эту дугу в единицу времени. Потоком по сети, или просто потоком, назовем совокупность {zij } потоков по всем дугам сети. Будем

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

0 zij

cij ,

i, j =0,1, 2,…, n,

i j ,

(8.1.1)

n−1

n

 

 

 

 

zik zkj

=0,

k =1, 2,…, n −1.

(8.1.2)

j=0

j=1

 

 

 

 

Ограничения (8.1.1) означают, что поток по любой дуге неотрицателен и не превышает пропускной способности дуги.

В уравнениях (8.1.2) уменьшаемая сумма z0k + z1k + + zn−1,k представляет количество вещества, притекающего в вершину Xk по всем входящим в эту вершину дугам (если из Xl в Xk не входит дуга, то zlk =0 ), а вычитаемая сумма zk1 + zk2 + + zkn представляет количество вещества, вытекающего из вершины Xk по всем выходящим из этой вершины дугам (также zkl =0 , ес%

ли нет дуги (Xk , Xl ) .

Таким образом, ограничения (3.8.2) означают, что количество вещества, притекающего в произвольную точку сети (кроме X0 и Xn ), равно количест% ву вещества, вытекающего из этой точки. Поток, удовлетворяющий ограни% чениям (8.1.1) и (8.1.2), будем называть допустимым.

Из ограничений (8.1.2) также следует, что общее количество вещества

n

 

 

z0j , вытекающего из вершины X0 (входа сети), совпадает с общим ко%

j=1

 

 

n−1

 

 

личеством вещества ∑ zin , притекающего в вершину Xn

(выход сети), т. е.

i=0

 

 

n

n−1

 

z0j

= zin = w .

(8.1.3)

j=1

i=0

 

Линейная форма w называется величиной потока в сети.

Таким образом, задача о максимальном потоке в сети представляет со% бой задачу линейного программирования: среди всех решений системы линейных ограничений (8.1.1)—(8.1.2) следует найти такое решение, кото% рое максимизирует линейную форму (8.1.3). Это решение zij называется

максимальным потоком в сети.

Как и любая задача линейного программирования, она может быть ре% шена одним из известных методов линейного программирования. Но в си% лу специфики задачи ее легче решить специальными методами.

89

Введем некоторые дополнительные понятия. Разобьем множество всех вершин сети на два непересекающихся подмножества P и Q так, чтобы X0 P, a Xn Q. Сечением (P,Q) сети назовем совокупность всех дуг (Xi , Xj ) , концы которых принадлежат разным подмножествам. Каждому сечению (P,Q) поставим в соответствие число C(P,Q) — пропускную спо5 собность сечения, — равное сумме пропускных способностей всех дуг се% ти, начинающихся в P и кончающихся в Q, т. е.

C(P,Q) = cij .

Xi P

Xj Q

Любой путь из X0 в Xn обязательно содержит хотя бы одну дугу сече% ния (P,Q) , которая начинается в P и кончается в Q. Но пропускная спо% собность пути не превышает пропускной способности каждой его дуги. Поэтому величина любого потока из X0 в Xn , являющаяся суммарной пропускной способностью всех путей из X0 в Xn , не может превысить пропускной способности любого сечения (P,Q) , т. е. всегда

wC(P,Q) .

Отсюда заключаем, что если удается построить такой поток {zij } , при

котором величина его w окажется равной пропускной способности неко% торого сечения (P ,Q ), т. е. w =C(P ,Q ), то этот поток будет макси%

мальным, а (P ,Q ) — сечением с минимальной пропускной способностью. Введем еще одно понятие. Пусть задан некоторый поток {zij } . Будем го% ворить, что дуга uij с началом в Xi и концом в вершине Xj является на5 сыщенной, если zij = cij , т. е. величина потока по этой дуге равна пропуск%

ной способности дуги. Если же величина потока по дуге меньше пропуск% ной способности дуги zij < cij , то такую дугу называют ненасыщенной.

АЛГОРИТМ ОПРЕДЕЛЕНИЯ МАКСИМАЛЬНОГО ПОТОКА (АЛГОРИТМ ФОРДА

ФАЛКЕРСОНА).

1.Построить какой%нибудь начальный поток {zij0 } .

2.Проверить, можно ли построить путь из X0 в Xn , состоящий только

из ненасыщенных дуг. Если нет, то построенный ранее поток максимален. Если да, то перейти к п. 3.

3. Выделить какой%нибудь путь, ведущий из X0 в Xn по ненасыщенным

дугам, найти минимальную пропускную способность дуг этого пути θ и увеличить поток через каждую дугу этого пути на θ. Построить новый по% ток. Перейти к п. 2.

Алгоритм может остановиться в том случае, если не удается построить путь из X0 в Xn по ненасыщенным дугам. В противном случае алгоритм мо% жет быть продолжен. При этом на каждом шаге образуется по крайней мере одна новая насыщенная дуга. Так как число дуг в сети конечно, то п. 3 может

90