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

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 более чем два раза.

5.2.2. Пример. Рассмотрим граф G, изображенный на рис. 9.12, имеющий 12 вершин и 22 ребра, веса которых указаны у каждого ребра. Задача состоит в нахождении цикла, проходящего


Рис. 9.12. Граф из примера 5.2.2.

по каждому ребру G по крайней мере один раз и имеющего минимальный вес. Множество вершин нечетной степени этого графа есть {1, 3, 4, 6, 8, 9}. Используя алгоритм кратчайшей цепи Дейкстры (см. гл. 8), найдем матрицу D из шага 1:

И



На шаге 2 алгоритм минимального паросочетании (см. гл. 12) связывает следуюш,ие вершины (два других паросочетании также являются минимальными):

1 с 6, цепь 1-12-6, вес 7,

3 с 8, цепь 3-5-6-7-8, вес 24,

9 с 4, цепь 9-2-4, вес И.

Граф G~ (М*), получающийся после выполнения шага 3, изображен на рис. 9.13; пунктиром показаны искусственные ребра.


Рис. 9.13. Граф G- (М*) из примера 5.2.2. - реальные ребра;--- искусственные ребра.

Из этого рисунка видно, что оптимальный цикл в графе G проходит череэ ребра (9, 2), (2, 4), (3, 5), (5, 6), (1, 12), (12, 6), (7, 6) и (8, 7) дважды, а через все остальные ребра - один раз. Вес этого цикла равен 294.

Как только найден граф G~ {М*}, могут быть сразу же найдены по алгоритму Флёри, упомянутому ранее, эйлеров цикл этого графа и соответствующий оптимальный цикл, проходящий по первоначальному графу G. Для графа, изображенного на рис. 9.13, например, один из возможных эйлеровых циклов, полученных по вышеприведенному правилу, дается последовательностью вершин (начиная с вершины 1):

1, 4, 3, 5, 3, 2, 4, 2, 1, 12, 5, 6, 7, 8, 10, 1, 7, 6, 12, 6, 5, И, 9, 2, 9, 10, И, 8, 7, 12, 1.



) Реберный граф графа G часто обозначается через L (G).- Прим. ред.

Этот цикл является также соответствующим оптимальным диклом, проходящим по первоначальному графу из рис. 9.12. Возможны также другие оптимальные циклы, проходящие ребра графа в ином порядке. Однако эти циклы будут проходить дважды по тому же множеству из 8 ребер. Таким образом, как только определены те ребра графа G, по которым оптимальный цикл проходит дважды, можно построить несколько таких циклов в графе G.

5.3. Связь между эйлеровыми и гамильтоновыми циклами

Гамильтонов цикл в графе G был определен в главе 1 как простой цикл, проходящий (один, и только один раз) через каждую вершину графа G. Не удивительно, что двойственность между эйлеровыми и гамильтоновыми циклами (замена вершины на ребро и наоборот) приводит к тесной связи между этими двумя понятиями в применении к неориентированному графу G и соответствующему ему реберному графу, определяемому ниже.

Определение. Реберный ) граф графа G имеет столько же вершин, сколько ребер у графа G. Ребро между двумя вершинами графа Gi существует тогда и только тогда, когда ребра графа G, соответствующие этим двум вершинам, смежны (т. е. инцидентны одной и той же вершине графа G).

Например, для графа, показанного на рис. 9.14(a), граф G, изображен на рис. 9.14(6).

Легко можно показать [15], что верны два следующие утверждения о взаимоотношении между эйлеровыми и гамильтоновыми циклами.

(1) Если G имеет эйлеров цикл, то Gj имеет как эйлеров, так и гамильтонов циклы.

(2) Если G имеет гамильтонов цикл, то Gj также имеет гамильтонов цикл.

Обращение этих утверждений, как нетрудно продемонстрировать, неверно. Для графа, изображенного на рис. 9.14(a), степени всех его вершин четны и поэтому существует эйлеров цикл. Таким образом, граф Gj, изображенный на рис. 9.14(6), также имеет эйлеров цикл (поскольку степени всех его вершин опять четны) и, кроме того, имеет гамильтонов цикл, задаваемый последовательностью вершин а, g, с, d, е, /, Ъ, h, i, а. Если теперь из графа G удалить ребро Ь, то новый граф G не имеет эйлерова цикла, но все еще имеет гамильтонов цикл 1, 2, 6, 5, 4, 3, 1. Реберный граф Gi графа G является тогда графом из рис. 9.14 (б) с удаленной вершиной b (и без ребер, инцидентных вершине Ь). Этот граф все еще имеет гамильтонов цикл а, /, е, d, с, g, h, i, а.



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