- •В. Н. Степанов дискретная математика: графы и алгоритмы на графах
- •Предисловие
- •1. Основные понятия теории графов
- •1.1. Граф и его разновидности
- •1.2. Морфизмы графов
- •1.3. Степени вершин
- •1.4. Маршруты, цепи, циклы, связность
- •1.5. Операции над графами
- •1.6. Примеры графов
- •1.7. Метрические характеристики графов
- •1.8. Представления графов
- •2. Алгоритмы и сложность
- •2.1. Понятие алгоритма
- •2.2. Сложность алгоритма
- •2.3. Запись алгоритма
- •3. Обходы графов
- •3.1. Поиск в глубину на графе
- •3.2. Поиск в ширину на графе
- •3.3. Алгоритм выделения компонент связности
- •4. Деревья
- •4.1. Деревья. Свойства деревьев
- •4.2. Остовы. Теорема Кирхгофа
- •4.3. Теорема Кэли
- •4.4. Фундаментальная система циклов. Цикломатическое число
- •4.5. Алгоритм отыскания фундаментального множества циклов на графе
- •5. Остов минимального веса. Алгоритм Краскала и Прима
- •5.1. Алгоритм д. Краскала
- •5.2. Алгоритм р. Прима
- •6. Кратчайшие пути между вершинами графа
- •6.1. Алгоритм Дейкстры
- •6.2. Алгоритм Флойда
- •7. Эйлеровы графы
- •7.1. Теорема Эйлера
- •7.2. Алгоритм Флёри
- •8. Гамильтоновы графы
- •8.1. Гамильтоновы маршруты. Задача коммивояжера
- •8.2. Существование гамильтоновых маршрутов
- •9. Алгоритмы отыскания гамильтоновых циклов
- •9.1. Алгоритм с возвратом (полного перебора)
4. Деревья
4.1. Деревья. Свойства деревьев
Деревья являются наиболее простейшим и распространенным классом графов. Деревья были введены Г. Кирхгофом, который применил их к анализу электрических цепей.
Деревом называется конечный связный граф без циклов, имеющий не менее двух вершин. Любая фиксированная вершина дерева называется корнем. Любой граф без циклов называется ациклическим или лесом. Таким образом, компонентами леса являются деревья. На рисунке 4.1.1 изображены все различные деревья с шестью вершинами.
|
Следующие определения дерева равносильны и содержат их наиболее характерные свойства.
Теорема 4.1.1. Пусть граф с вершинами. Следующие характеристические свойства деревьев равносильны:
1) связен и не содержит циклов.
2) Любые две вершины соединены единственной простой цепью.
3) связен, но утрачивает это свойство после удаления любого ребра.
4) связен и имеет ребер.
5) не содержит циклов и имеет ребер.
6) не содержит циклов, но добавление ребра, соединяющего любые две несмежные вершины, приводит к появлению ровно одного простого цикла.
Доказательство. Схема доказательства:
От противного. Пусть существуют две цепи (рис. 3.1.2). Тогда – простой цикл. Противоречие.
|
Для любых двух вершин существует единственная простая цепь, следовательно, граф связен. Предположим, что некоторое ребро не является мостом. Тогда в графе концы и этого ребра связаны некоторой цепью. Само ребро – вторая цепь. Противоречие.
Индукция по числу вершин . При . Пусть для всех графов с числом вершин меньше . Тогда удалим из графа ребро , которое является мостом. Так как удаленное ребро является мостом, то получим две компоненты связности и . По индукционному предположению
следовательно, .
От противного. Пусть имеется цикл с вершинами, ребрами. Остальные вершин имеют инцидентные им ребра, которые связывают их с циклом. Следовательно, , что противоречит условию .
Граф без циклов, следовательно, его компоненты – деревья. Пусть их . Имеем:
.
Но , следовательно, .
По ранее доказанному . Для любых двух вершин и существует единственная простая цепь . Соединяя две несмежные вершины этой цепи, получаем единственный простой цикл.
От противного. Пусть граф не является связным и вершины принадлежат разным компонентам связности графа. Тогда добавление к графу ребра не приводит к образованию цикла. Противоречие.
Следствие 4.1.1. Любое дерево имеет по крайней мере две висячие (концевые) вершины.
Доказательство. Пусть – степенная последовательность дерева. Тогда по лемме о рукопожатиях имеем: и все . Следовательно, хотя бы два числа из степенной последовательности равны .