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

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

ванной вершине из G. Если экспонированных вершин нет, перейти к шагу 8. Если в G уже существует альтернирующее дерево, то продолжать его построение. Если на Т обнаружится цветок, то перейти к шагу 4. Если дерево Т станет аугментальным, то перейти к шагу 5.

Если дерево Т станет венгерским, то перейти к шагу 6.

Цветки на дереве

Шаг 4. Срезать цветки и образовать псевдовершину. Обозначим получившийся граф через G, его специальный остовный подграф через G, а оставшееся дерево через Т. Перейти к шагу 3.

Аугменталъное дерево

Шаг 5. Улучшить текущее паросочетание, поменяв вдоль аугментальной цепи ребра, принадлежащие паросочетанию и ему не принадлежащие. Отбросить дерево Т и перейти к шагу 3.

Венгерское дерево

Шаг 6. Вычислить Л^, Лг, Лз и А по формулам (12.19) - (12.22). Если нет никаких ограничений (12.19) - (12.21), то остановиться; в графе нет совершенного паросочетания. В противном случае изменить вектор весов [я Яг], как описано выше. Если А = Al или А = Aj, то сохранить текущее дерево Т и перейти к шагу 2. Если А = Аз, то перейти к шагу 7.

Шаг 7. Распустить псевдовершину, давшую Аз в соотношении (12.21), в цветок В. Обозначим получившийся граф через G, а его специальный остовный подграф через G. Построить в В совершенное паросочетание. Перестроить альтернирующее дерево, добавляя к ребрам из Т необходимую цепь из В, и обозначить это дерево символом Т. Перейти к шагу 3.

Конец

Шаг 8. Распустить все цветки в обратном порядке (к первоначальному порядку срезания цветков), находя совершенное паросочетание после каждого распускания.

3 2. Пример

Мы хотим найти совершенное паросочетание для графа Gq, изображенного на рис. 12.16. Начнем с приписывания вершинам Xi, i = 1, . . ., 12, весов Я;, задаваемых вектором [я;]= (9, 2, И, 7, 3, 4, 8, 6,6, 5,3, 4), и полагая все К=0. Веса Я; выбраны нами довольно произвольно.

Специальный остовный подграф Gl графа Gq изображен на рис. 12.17. Пусть в качестве корня выбрана вершина Ху, и в




Рис. 12.16. Граф Go из примера 3.2.

на шаге 3 алгоритма строится альтернирующее дерево. На шаге 5 сразу же в паросочетание отбирается ребро {xi, Xg). Выбирая вершины Хз, Xs и Х7 (в указанном порядке) в качестве корней новых деревьев, немедленно получим аугментальные деревья и приходим к ситуации, в которой ребра в паросочетании показаны жирными линиями на рис. 12.17. Выбрав вершину Xjg в качестве корня нового дерева, строим это дерево на шаге 3 алгоритма до тех пор, пока не будет достигнуто состояние, изображенное на рис. 12.18, в котором образуется цветок. На шаге 4 этот цветок срезается и образуется псевдовершина Xbj, а рост дерева продолжается на шаге 3, пока не достигается состояние, представленное на рис. 12.19, в котором дерево становится венгерским. Сам граф (после срезания) будет G, а его специальный остовный подграф - GI, как показано соответственно на рис. 12.20 (а) и рис. 12.20 (б).


12 ЙДГ„

Рис. 12.17. Специальный остовный подграф G{.




Корень I*

Рис. 12.18. Альтернирующее дерево в G[. Корень.

Соответствует множеству


Рис. 12.19. Венгерское дерево в GJ.



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