Главная Бухгалтерия в кармане Учет расходов Экономия на кадровиках Налог на прибыль Как увеличить активы Основные средства
Главная ->  Гамильтоновы циклы 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 [ 104 ] 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141

Шаг 6. Если z = s, то стереть все пометки и вернуться к шагу 1, чтобы вновь начать расставлять пометки, но используя уже улучшенный поток, найденный на шаге 5. Если гф s, то взять а; = Z и вернуться к шагу 5.

2.2. Пример

Рассмотрим граф, изображенный на рис. 11.1, и возьмем в качестве источника вершину х^, а ъ качестве стока - вершину 0:9. Пропускные способности дуг указаны на рисунке. Требуется найти максимальный поток от х^ к Хд.

В качестве начального возьмем поток с нулевыми значениями на всех дугах. Алгоритм работает следующим образом.

Шаг 1. Припишем вершине х^ пометку {х^, оо).

Шаг 2. (I) Множество вершин {xj \ Xj {х-, %ij <; qij, Xj не помечена} есть {х^ х^,

вершине х^ приписывается пометка (+a;i, min [00, 14 - 0], т. е. {+Xi, 14),

вершине х^ приписывается {х-, min [00, 23 - 0]), т. е. (+.1, 23).

(II) Множество вершин {xj \ Xj g Г {х-, > О, х, не помечена) является пустым. Итак, х^ помечена и просмотрена, х^ и Xi помечены и не просмотрены, а все остальные вершины не помечены. Повторяем шаг 2 и первой просматриваем вершину х^.

(I) Множество {xj \х, {х^, < 4ii и х, не помечена} есть {х^.

для Хз пометкой будет {х^, min [14, 10 - 0] = {-{-х^, Ю).


56 Ч 4

Рис. 11.1. Граф из примера 2.2.



пометка

для Xg будет {+х^,

min [10, 25 -

-0])

= (+5, 10),

пометка

для х, будет {+х^.

, min [10, 4 -

0]):

= i+x 4),

пометка

для Хд будет {+х^,

, min [4, 15 -

0]) =

= ( + 4. 4).

Переходя к

шагам 4 и 5, получим:

х = хд;

i,e = 0 + 4 = 4

X = Х-;

l5,7 = 4;

х = х^;

1з,5-4;

l2.3 = 4;

х = Х2;

ll,2 = 4.

Вид потока в конце шага 5 и пометки вершин до их стирания на шаге 6 показаны на рис. 11.2а. Все потоки показаны подчеркиванием.

Стирая пометки у вершин и возвращаясь к шагу 1 для второго прохода, получим следующие новые пометки вершин (помеченные, но не просмотренные вершины просматриваются в порядке возрастания их номеров).

Шаг 3.

Пометкой для Xi будет (+i,

пометкой для х^, будет (+Xi, min [оо, 14 - 4]) = {+Xi, 10),

пометкой для х^ будет (+i, min [оо, 23 - 0]) = (+i, 23);

теперь вершина х^ помечена и просмотрена.

Пометкой для Хз будет (+2> min [10, 10 - 4]) = i+x, 6),

теперь вершина Xj помечена и просмотрена.

Пометкой для х^ будет {-{-Хз, min [6, 12 - 4]) = {+Хз, 6),

пометкой для Xg будет (+3. min [6, 18 - 0]) = {+Хз, 6);

теперь вершина Хз помечена и просмотрена,

вершина х^ также помечена и просмотрена.

(II) Множество {xj \ Xj 6 Г [х^, < О и Xj не помечена} является пустым. Теперь вершины х- и х^ помечены и просмотрены, а Хз и х^ помечены, но не просмотрены.

Беря для просмотра Хз и повторяя шаг 2, придем к следуюш,им пометкам:

для х^ пометкой будет (+з, min [10, 12 - 0]) = {+Хз, 10), для Xg пометкой будет i+Xg, min [10, 18 - 0]) = (+Хз, 10).

Беря для просмотра х^, найдем, что никаких пометок расставить нельзя. Продолжая просмотр с х^, получим следующие пометки:



С+.г 10)


Рис. 11.2а. Потоки и пометки после 1-й итерации. - насыщенные дуги.

(+дг >)


(+л- 23)

Рис. 11.26. Потоки и пометки после 2-й итерации. - насыщенные дуги.



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 [ 104 ] 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141

© 2025 Constanta-Kazan.ru
Тел: 8(843)265-47-53, 8(843)265-47-52, Факс: 8(843)211-02-95