- •Оглавление
- •Предисловие
- •1. Теоретико‑множественные основания дисциплины
- •1.1. Понятия и аксиомы теории множеств
- •1.2. Декартовы произведения, отношения и отношение эквивалентности
- •1.3. Понятия образа, прообраза, функции и отображения на конечном множестве. Аксиома выделения.
- •1.4. Аксиомы степени и бесконечности. Мощности и кардинальные числа множеств
- •1.5. Счетные и континуальные множества
- •1.6. Ординалы и трансфиниты. Аксиома выбора и континуум‑гипотеза
- •2. Основы математической логики
- •2.1. Высказывания и функции на высказываниях
- •2.2. Операции математической логики
- •2.3. Понятие формулы и свойства операций
- •2.4. Разложения булевых функций. Принцип двойственности. Совершенные нормальные формы.
- •2.5. Понятие полноты системы булевых функций
- •2.5. Исчисление предикатов
- •2.6. Введение в методы теории доказательств
- •1 Если X a,
- •0 Если X a.
- •1 Если X a,
- •0 Если X a.
- •3. Комбинаторика
- •3.1. Размещения
- •3.2. Размещения без повторений
- •3.3. Перестановки, подстановки и их свойства
- •3.4. Сочетания, структура соединений
- •3.5. Свойства биномиальных коэффициентов
- •Структура соединений
- •3.6. Понятие производящей функции
- •3.7. Соединения с повторениями
- •3.8. Разбиения множеств
- •3.9. Разбиения чисел
- •3.10. Композиции чисел
- •4. Основы теории графов
- •4.1. Основные понятия и определения
- •4.2. Графы и бинарные отношения
- •4.3. Понятие изоморфизма и изоморфизм плоских графов
- •4.4. Степени вершин графа
- •4.5. Представление графов матрицами
- •4.6. Представление графов списками инцидентности. Оценка пространственной сложности алгоритмов.
- •4.7. Маршруты, цепи, циклы и связность
- •4.7. Эйлеровы циклы и цепи
- •4.9. Гамильтоновы циклы. Оценка временной сложности алгоритмов
- •4.10. Деревья
- •4.11. Раскраска вершин и теорема Шеннона об информационной емкости графа
- •4.12. Раскраска ребер графа и теоремы о хроматическом классе
- •Ответы и решения
- •Список литературы
4.10. Деревья
Связный неориентированный граф называетсядеревом, если он не имеет циклов. Это определение исключает наличие на дереве петель и кратных ребер. Прямая сумма несвязных деревьев, рассматриваемая, в целом, как граф, называется лесом.
В произвольном графе G вершина а называется концевой, если (а) = 1. Инцидентное ей ребро называется концевым ребром.
Теорема 4.8 Любое конечное дерево имеет хотя бы две концевые вершины и хотя бы одно концевое ребро.
Доказательство. Пусть va — некоторая вершина дерева. Будем обходить дерево, начиная с этой вершины так, что войдя в вершину по одному ребру, выходим из нее по другому. Так как дерево не содержит циклов, то ни одна из пройденных вершин не будет повторена. В связи с тем, что дерево конечно, процесс должен закончиться в некоторой вершине vb. Эта вершина концевая и ей инцидентно только одно ребро, по которому в нее вошли. Если va также концевая вершина, то имеем две концевые вершины и не менее одного концевого ребра.
Если же va не является концевой вершиной, то построим вторую цепь из va. По этой цепи придем к некоторой концевой вершине vc. Вершины vb и vc различны, так как граф не содержит циклов. То, что построенная цепь из vb в vc содержит не менее одного ребра, теперь очевидно.
Теорема 4.9 Дерево с n вершинами содержит n - 1 ребро.
Доказательство проведем индукцией по n. При n = 2 утверждение очевидно. Пусть дерево G содержит n вершин. Удалим из него какую‑нибудь концевую вершину и инцидентное ей концевое ребро. Получим новое дерево, содержащее n - 1 вершину и, по нашему индуктивному предположению (n - 1) -1= n - 2 ребра. Следовательно, исходное дерево содержит (n - 2) + 1 = n - 1 ребро.
Теорема 4.10 В дереве G любые две вершины va начала и vb конца какого‑либо маршрута определяют цепь и притом единственную.
Доказательство. Предположим, что на дереве G имеется два маршрута, связывающих va и vb. Тогда имеем цикл и G не является деревом. Это противоречие доказывает теорему.
Теорема 4.11 На n вершинах можно построить nn-2 различных дерева.
Доказательство. Пусть V — множество вершин мощности n. Обозначим элементы множества V числами
1, 2, …, n (4.7)
и построим какое‑либо дерево G на V. Для этого дерева введем символ, характеризующий его однозначно.
Согласно теореме 4.8 в G существуют концевые вершины. Обозначим через b1 первую концевую вершину в последовательности (4.7), а через (а1, b1) — соответствующее концевое ребро. Удалив из G это ребро вместе с вершиной b1, мы получим новое дерево G1. Для этого дерева снова найдется в (4.7) первая концевая вершина b2 c ребром (a2, b2). Будем повторять такой процесс до тех пор, пока не останется единственное ребро (an - 1, bn - 1), соединяющее две оставшиеся вершины. Тогда символ
(G) = [a1, a2, …, an-2] (4.8)
однозначно определяется деревом G.
Обратно, каждый символ (G) определяет дерево G с помощью обратного построения. Если дано (4.8), то находим первую вершину b1 в (4.7), которая не содержится в (4.8). Далее удаляем вершину a1 из (4.8) и b1 из (4.7) и продолжаем построение для всех оставшихся чисел из (4.8).
В (4.8) каждая вершина может принимать все возможные значения из (4.7). Следовательно, имеем задачу размещения из n-2 по n, что на основании теоремы 3.1 и определяет nn - 2 различных деревьев.
Теорема 4.11 представляет интерес в связи с постановкой следующей задачи.
Задача о минимальном соединении. Пусть для некоторого множества V населенных пунктов известна стоимость (vi, vj) (i, j n) сооружения средств информационной сети между любыми двумя городами vi,vj V. Как должна быть спроектирована сеть, чтобы она обеспечивала связь между всеми городами, а ее общая стоимость была минимальна? Аналогичные вопросы возникают при проектировании дорог, трубопроводов и т.д.. Такие задачи именуются задачами о минимальном соединении.
В терминах теории графов эта задача формулируется следующим образом. Построим полный граф G, содержащий все вершины множества V. Каждому ребру Е графа G припишем меру (Е). Под мерой (Е) на графе понимают вещественную неотрицательную функцию, для которой должно быть выполнено:
(E1 E2) = (E1) + (E2),
где E1 и E2 — любые непересекающиеся множества.
Задача о минимальном соединении состоит в построении части графа G* G, содержащего все вершины G и такого, чтобы мера = E G* (E) была минимальной.
Ясно, что G* есть дерево ибо, предположив наличие цикла в G*, мы имеем возможность уменьшить , удалив ребро.
По теореме 4.11 решение этой задачи полным перебором потребует построения, nn - 2 деревьев. Можно значительно уменьшить число вариантов, если воспользоваться простым алгоритмом, который предложил Борувка. Этот алгоритм состоит в следующем.
Вначале находим ребро E1 с минимальной мерой (E1). Обозначим соответствующую ему часть дерева G1*. На каждом последующем шаге строим часть Gi* при помощи добавления к G*i - 1 такого ребра Ei, что оно имеет минимальную меру (Ei), а граф G*i - 1 не имеет циклов. Если имеется несколько ребер одинаковой длины, то можно выбрать любое из них. Ясно, что граф G*n - 1 есть остовное дерево. То, что он имеет минимальную меру доказано в [5].