- •Иркутский государственный технический университет
- •1. Определения графов
- •7.4.5. Массив дуг
- •8.4.2. Трансверсаль
- •8.5.4. Алгоритм нахождения максимального потока
- •8.6.3. Выделение компонент сильной связности
- •8.7.1. Длина дуг
- •8.7.2. Алгоритм Флойда
- •8.7.3. Алгоритм Дейкстры
- •Глава 9 Деревья
- •9.1. Свободные деревья
- •9.1.1. Определения
- •9.1 .2. Основные свойства деревьев
- •9.2. Ориентированные, упорядоченные и бинарные деревья
- •9.2.1. Ориентированные деревья
- •9.2.2. Эквивалентное определение ордерева
- •9.2.3. Упорядоченные деревья
- •9.2.4. Бинарные деревья
- •9.3. Представление деревьев в эвм
- •9.3.1. Представление свободных, ориентированных и упорядоченных деревьев
- •9.3.2. Представление бинарных деревьев
- •9.3.3. Обходы бинарных деревьев
- •9.3.4. Алгоритм симметричного обхода бинарного дерева
- •9.4. Деревья сортировки
- •9.4.1. Ассоциативная память
- •9.4.2. Способы реализации ассоциативной памяти
- •9.4.3. Алгоритм бинарного (двоичного) поиска
- •9.4.4. Алгоритм поиска в дереве сортировки
- •9.4.5. Алгоритм вставки в дерево сортировки
- •9.4.6. Алгоритм удаления из дерева сортировки
- •9.4.7. Вспомогательные алгоритмы для дерева сортировки
- •9.4.8. Сравнение представлений ассоциативной памяти
- •9.4.9. Выровненные деревья
- •9.4.10. Сбалансированные деревья
- •9.5. Кратчайший остов
- •9.5.1. Определения
- •9.5.2. Схема алгоритма построения кратчайшего остова
- •9.5.3. Алгоритм Краскала
- •Глава 10 Циклы
- •10.1. Фундаментальные циклы и разрезы
- •10.1.1. Циклы и коциклы
- •10.1.2. Независимые множества циклов и коциклов
- •10.1.3. Циклический и коциклический ранг
- •10.2. Эйлеровы циклы
- •10.2.1. Эйлеровы графы
- •10.2.2. Алгоритм построения эйлерова цикла в эйлеровом графе
- •10.2.3. Оценка числа эйлеровых графов
- •10.3. Гамильтоновы циклы
- •10.3.1. Гамильтоновы графы
- •10.3.2. Задача коммивояжера
- •Глава 11 Независимость и покрытия
- •11.1. Независимые и покрывающие множества
- •11.1.1. Покрывающие множества вершин и ребер
- •11.1.2. Независимые множества вершин и ребер
- •11.1.3. Связь чисел независимости и покрытий
- •11.2. Построение независимых множеств вершин
- •11.2.1. Постановка задачи отыскания наибольшего независимого множества вершин
- •11.2.2. Поиск с возвратами
- •11.2.3. Улучшенный перебор
- •11.2.4. Алгоритм построения максимальных независимых множеств вершин
- •11.3. Доминирующие множества
- •11.3.1. Определения
- •11.3.2. Доминирование и независимость
- •11.3.3. Задача о наименьшем покрытии
- •11.3.4. Эквивалентные формулировки знп
- •11.3.5. Связь знп с другими задачами
- •Глава 12 Раскраска графов
- •12.1. Хроматическое число
- •Ух, . . . ,Vn одноцветные классы,доказательство
- •12.2. Планарность
- •12.2.2. Эйлерова характеристика
- •12.2.3. Теорема о пяти красках
- •12.3. Алгоритмы раскрашивания
- •12.3.1. Точный алгоритм раскрашивания
- •12.3.2. Приближенный алгоритм последовательного раскрашивания
- •12.3.3. Улучшенный алгоритм последовательного раскрашивания
10.2.3. Оценка числа эйлеровых графов
ЛЕММА В любом графе число вершин нечетной степени четно,
доказательство
По теореме Эйлера ]Г d(v) = 2q, то есть сумма степеней всех вершин — четное число. Сумма степеней вершин четной степени четна, значит, сумма степеней вершин нечетной степени также четна, значит, их четное число. П
Пусть д(р) — множество всех графов с р вершинами, а £(р) — множество эйлеровых графов с р вершинами.
ТЕОРЕМА Эйлеровых графов почти нет, то есть
доказательство
Пусть £'(р) — множество графов с р вершинами и четными степенями. Тогда по предыдущей теореме £(р) с £'(р) и |£(р)| ^ |£'(р)|- В любом графе число вершин нечетной степени четно, следовательно, любой граф из £'(р) можно получить из некоторого графа S(p — 1), если добавить новую вершину и соединить ее со всеми старыми вершинами нечетной степени. Следовательно, |£'(р)| < |S(p — 1)|. Но |S(p)| = 2с(р'2). Заметим, что
C(fc,2)-C(fc-l,2)= ^ №"П!
(fc-l)(fc-fc
2\(k - 2)! 2!(fc - 3)! fc(fe-l) (fc-l)(fc-2)
Далее имеем:
|S(P - 1)1 =
10.3. Гамильтоновы циклы
Название «гамильтонов цикл» произошло от задачи «Кругосветное путешествие», придуманной Гамильтоном1 в прошлом веке: нужно обойти все вершинь: графа, диаграмма которого показана на рис. 10.1 (в исходной формулировке этс были названия столиц различных стран), по одному разу и вернуться в исходнук точку. Этот граф представляет собой укладку додекаэдра.
Рис. 10.1. Задача «Кругосветное путешествие»
10.3.1. Гамильтоновы графы
Если граф имеет простой цикл, содержащий все вершины графа (по одному разу), то такой цикл называется гамилътоновым циклом, а граф называется гамилъ-тоновым графом.
Гамильтонов цикл не обязательно содержит все ребра графа. Ясно, что гамиль-тоновым может быть только связный граф.
ЗАМЕЧАНИЕ -
Любой граф G можно превратить в гамильтонов, добавив достаточное количество вершин. Для этого, например, достаточно к вершинам vi,..., vp графа G добавить вершины ui,...,up и множество ребер {(vi,Ui)} U {(ui,vi+i)}.
р/2, то граф G является
ТЕОРЕМА (Дирак) Если в графе G(V, E) Vw б V d(v) гамилътоновым.
доказательство
От противного. Пусть G — не гамильтонов. Добавим к G минимальное количество новых вершин ifi,...,un, соединяя их со всеми вершинами G так, чтобы G' : = G + hi + • • • + ип был гамильтоновым.
Пусть v,ui,w,...,v — гамильтонов цикл в графе G' ', причем г; е G, hi e G' , mi ^ G. Такая пара вершин v и mi в гамильтоновом цикле обязательно найдется, иначе граф G был бы гамильтоновым. Тогда w 6 G, w g {ui,...,un}, иначе вершина иг была бы не нужна. Более того; вершина v несмежна с вершиной w, иначе вершина Uj была бы не нужна.
Далее, если в цикле v, ui, го, . . . , v', w', . . . , v есть вершина w', смежная с вершиной w, то вершина v' несмежна с вершиной v, так как иначе можно было бы построить гамильтонов цикл v,v',...,w,w'...v без вершины и\, взяв последовательность вершин w,...,v' в обратном порядке. Отсюда следует, что число вершин графа G', не смежных с v, не менее числа вершин, смежных с w. Но для любой вершины w графа G d(w) > р/2 + п по построению, в том числе d(v) ^ р/2 + п. Общее число вершин (смежных и не смежных с v) составляет п + р — 1. Таким образом, имеем:
Следовательно, 0 ^ п + 1, что противоречит тому, что п> 0.