
- •Введение
- •Глава 1. Множества, отношения и функции
- •1. Задание множества
- •2. Операции над множествами
- •3. Разбиение множества. Декартово произведение
- •4. Отношения
- •5. Операции над отношениями
- •6. Функция
- •7. Отношение эквивалентности. Фактор-множество
- •8. Отношения порядка
- •9. Вопросы и темы для самопроверки
- •10. Упражнения
- •Глава 2. Алгебраические структуры
- •1. Операции и предикаты
- •2. Алгебраическая система. Алгебра. Модель
- •3. Подалгебры
- •4. Морфизмы алгебр
- •5. Алгебра с одной операцией
- •6. Группы
- •7. Алгебра с двумя операциями. Кольцо
- •8. Кольцо с единицей
- •9. Поле
- •10. Решетки
- •11. Булевы алгебры
- •12. Матроиды
- •13. Вопросы и темы для самопроверки
- •14. Упражнения
- •Глава 3. Булевы функции
- •2. Формулы
- •3. Упрощения в записях формул
- •4. Равносильность формул
- •5. Важнейшие пары равносильных формул
- •6. Зависимости между булевыми функциями
- •7. Свойства операций штрих Шеффера, стрелка Пирса и сложения по модулю два
- •8. Элементарные суммы и произведения. Конституенты нуля и единицы
- •9. Дизъюнктивные и конъюнктивные нормальные формы
- •10. Представление произвольной булевой функции в виде формул
- •11. Совершенные нормальные формы
- •12. Полином Жегалкина
- •13. Сокращенные дизъюнктивные нормальные формы
- •14. Метод Квайна получения сокращенной д.н.ф.
- •15. Тупиковые и минимальные д.н.ф.
- •16. Метод импликантных матриц
- •17. Минимальные конъюнктивные нормальные формы
- •18. Полнота системы функций. Теорема Поста
- •21. Функциональная декомпозиция
- •22. Вопросы и темы для самопроверки
- •23. Упражнения
- •Глава 4. Элементы комбинаторики
- •1. Правило суммы для конечных множеств
- •2. Правило произведения для конечных множеств
- •3. Выборки и упорядочения
- •5. Число всевозможных разбиений конечного множества. Полиномиальная теорема
- •6. Метод включения и исключения
- •7. Задача о беспорядках и встречах
- •8. Системы различных представителей
- •9. Вопросы и темы для самоконтроля
- •10. Упражнения по комбинаторике
- •Глава 5. Теория графов
- •1. Основные типы графов
- •2. Изоморфизм графов
- •3. Число ребер графа
- •4. Цепи, циклы, пути и контуры
- •5. Связность графа. Компоненты связности
- •6. Матрица смежности
- •7. Матрицы смежности и достижимости
- •8. Критерий изоморфизма графов
- •9. Матрица инциденций
- •10. Деревья
- •11. Задача о минимальном соединении
- •12. Центры дерева
- •13. Ориентированные деревья
- •14. Эйлеровы графы
- •15. Гамильтоновы графы
- •16. Планарные графы
- •17. Задача о кратчайшей цепи между произвольными вершинами графа
- •18. Алгоритм Дейкстры нахождения кратчайших путей от заданной вершины орграфа
- •19. Потоки в сетях
- •20. Вопросы и темы для самопроверки
- •21. Упражнения
- •Список литературы

139
отображении 2) имеем, что а25=1, а а’62=0, следовательно, тоже не выполнено условие 2) теоремы 5.8 и отображение 2) не будет изоморфизмом рассматриваемых графов. При отображении 3), как и для отображения 1) имеем, что а51=1, а а’12=0, следовательно, отображение 3) не будет изоморфизмом рассматриваемых графов. Осталось проверить отображение
4): |
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
1 |
5 |
3 |
4 |
2 |
6 |
Применяем непосредственно теорему 5.8. Следовательно, нужно сравнить все элементы матриц смежностей А и А′ графов G и G′, чтобы выяснить выполнение условий: aij=а′ψ(i) ψ(j). В матрице А =(aij) имеется 9 элементов, отличных от нуля и равных единице, в матрице А′ = (аij′) – тоже
только 9 элементов равны единице, остальные нули: |
|
|
|
|
|
|
||||||
|
|
0 0 0 1 0 0 |
|
|
0 0 0 1 |
0 |
0 |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 0 0 1 1 0 |
|
1 0 0 0 0 0 |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
А = ( а |
ij |
) = 0 0 0 1 1 1 |
, |
Ą′ = ( а′ |
) = |
0 |
1 |
0 |
1 |
0 |
1 |
|
|
0 0 0 0 0 0 |
|
ij |
0 0 0 |
0 0 0 |
|
||||||
|
|
|
||||||||||
|
|
|
|
|
|
0 |
1 |
0 |
1 |
0 |
0 |
|
|
|
1 0 0 0 0 0 |
|
|
|
|
||||||
|
|
|
|
|
|
|
0 |
0 |
0 1 |
0 |
|
|
|
|
1 1 0 0 0 0 |
|
|
1 |
|
Проверяем только элементы матриц, которые равны единице. Последовательно имеем:
а14=1, |
а′ψ(1) ψ(4)=а′14=1, |
а24=1, |
а′ψ(2) ψ(4)=а′54=1, |
а25=1, |
а′ψ(2) ψ(5)=а′52=1. |
Продолжая аналогичным образом, получим, что данное отображение является изоморфизмом рассматриваемых графов. Таким образом, убеждаемся, что среди всевозможных 720 отображений только одно является изоморфизмом, но этого достаточно, чтобы убедиться в изоморфности графов G и G′.
§ 9. Матрица инциденций
Пусть G - граф с множеством вершин V={v1,v2,…,vn} и множеством ребер X={x1,x2,…,xm}. Графу G ставим в соответствие матрицу инциденций А= (aij) размером n×m, (i,j) –й элемент которой равен:

140
1, если i-я вершина инцидентна j-у ребру,
аij =
0, если i-я вершина не инцидентна j-у ребру.
Пусть имеем граф, изображенный на рис. 5.17. Тогда матрица инциденций этого графа – матрица А, запишется в следующем виде справа от рис. 5.17.
v2 |
v3 |
|
x1 |
x2 |
x3 |
||
x2 |
v |
|
1 |
0 |
1 |
|
|
x1 |
|
1 |
|
|
|
|
|
|
|
А = v2 |
1 |
1 |
0 |
||
|
|
v |
|
0 |
0 |
1 |
|
x3 |
|
3 |
|
|
|
|
|
|
v4 |
|
|
1 |
|
|
|
v1 |
v4 |
0 |
0 |
||||
|
|
|
|
|
|
|
Рис. 5.17
Каждая строка этой матрицы равна сумме по модулю 2 всех остальных строк. Рассмотрим ещё один пример графа, состоящего из трёх компонент связности, см. рис 5.18. Построим для этого графа матрицу инциденций –
матрицу А.
v1 |
v2 |
|
x1 |
|
x2 |
|
v4 |
|
v3 |
|
x3 |
v6 |
v5 |
|
|
x4 |
x6 |
|
|
v8 |
v7 |
|
x5 |
|
Рис. 5.18 |
|
|
x1 x2 x3 x4 x5 x6 |
|||||||
v1 |
|
1 |
0 |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
||
v |
2 |
1 |
1 |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
v |
|
0 |
1 |
0 |
0 |
0 |
0 |
||
|
3 |
|
|
|
|
|
|
|
|
А = v |
4 |
0 0 1 0 0 0 . |
|||||||
|
|
|
|
|
|
|
|
|
|
v5 |
|
0 |
0 |
1 |
0 |
0 |
0 |
|
|
v |
6 |
0 |
0 |
0 |
1 |
0 |
1 |
||
|
|
|
|
|
|
|
|
|
|
v7 |
|
0 |
0 |
0 |
0 |
1 |
1 |
|
|
v8 |
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
1 |
1 |
0 |
Для данного графа получили, что матрица инциденций является блочной матрицей с тремя блоками. Можно убедиться, что и для любого графа при соответствующей нумерации ребер и вершин графа матрица инциденций является блочной матрицей и каждый блок соответствует компоненте связности графа G.
Последовательной нумерацией ребер и вершин графа внутри каждой компоненты связности графа можно получить блочно диагональное представление матрицы инциденций. Также блочно диагональное представление матрицы инциденций можно получить непосредственно с

141
помощью перестановки строк и столбцов матрицы инциденций. Теперь можно утверждать следующее.
Два графа изоморфны тогда и только тогда, если они имеют одни и те же матрицы инциденций с точностью до перестановок строк и столбцов.
Теорема 5.9. Ранг матрицы инциденций p-компонентного графа с n вершинами равен n-p при условии, что арифметические операции производятся по модулю 2.
Доказательство. Добьемся, чтобы матрица инциденций стала блочной. Пусть n1 – число вершин, принадлежащих компоненте связности G1 и ей соответствует блок А1 матрицы инциденций А. Покажем, что ранг А1 равен n1-1.
Для ранга имеем: r ≤ n1 -1, так как сумма (по модулю 2) всех столбцов А1 равна нулю, следовательно, если n1 -1 первых столбцов А1 прибавить к последней, то получим столбец, состоящий из нулей. Так как ранг матрицы не меняется при элементарных преобразованиях (сложение столбцов), ранг новой матрицы, имеющей столбец только из нулей, не может превосходить n1 -1. Сумма любых n1 -1 или меньшего числа столбцов А1 должна иметь некоторый ненулевой элемент. Если все элементы равны нулю, тогда исходные строки образуют подматрицу, соответствующую компоненте связности графа, так как ни одна из вершин, соответствующих этим столбцам, не связана ребром ни с одной из вершин, не принадлежащих рассматриваемому подмножеству. Это противоречит тому, что G1 – максимальный связный подграф, и доказывает, что ранг G1 равен n1 -1, так как каждое множество n1 -1 столбцов независимо.
Аналогично для каждого i ранг Аi равен ni -1, тогда ранг блочной
p
матрицы, как известно, равен ∑ (ni -1)= n-p. Что и требовалось доказать.
i =1
Матрица инциденций орграфа с n вершинами и m дугами это n×m
матрица, (i,j)–й элемент которой равен:
|
1, |
если из i–й вершины исходит j-я дуга, |
аij |
|
|
= - 1, |
если в i–ю вершину входит j-я дуга, |
|
|
|
если i–я вершина не инцидентна j-й дуге. |
|
0, |
Пусть дан орграф, изображённый на рис. 5.19. Тогда его матрица инциденций А имеет вид:

|
|
|
142 |
|
|
|
|
|
|
|
|
v2 |
x3 |
|
|
|
x1 |
x2 |
x3 |
x4 |
x5 |
|
|
|
|
|
−1 0 |
|
0 |
|||
|
|
v3 |
v1 |
1 |
0 |
|||||
x2 |
|
|
|
|
|
−1 1 |
−1 1 |
|
||
x1 |
x4 |
А= v2 |
0 |
|||||||
|
v |
|
|
0 |
0 |
1 |
0 |
−1 |
||
|
|
x5 |
|
|||||||
|
|
|
3 |
|
|
|
|
|
|
|
v1 |
v4 |
|
|
|
|
|
|
|
|
|
|
v4 |
0 |
0 |
0 |
−1 1 |
Рис. 5.19
Для орграфа можно доказать, что ранг А тоже равен n-p.
Кроме матриц смежности, достижимости и инциденций вводят ряд других матриц, характеризующих графы: матрица весов, циклов, матрица разрезов и другие. Каждая из них удобна для изучения некоторых свойств графа.
Когда рисуешь дерево, нужно чувствовать, как оно растёт.
Су Ши
Лес безмолвен. На просеках пусто. Нынче холод у ветра в чести. Нет, не может он теплые чувства, Словно зелень листвы, унести.
М. Джалиль
§ 10. Деревья
Связный граф без циклов называется (свободным) деревом. Граф без циклов называется ациклическим, или лесом. Таким образом, компонентами связности леса являются деревья.
На рис. 5.20, а) и б) приведены два графа; первый из них является деревом, а второй – лесом.
а) |
б) |
|
|
в) |
г) |
Рис. 5.20

143
На рис. 5.20, в) приведены всевозможные (непомеченные) деревья с четырьмя вершинами и на рис. 5.20, г) с пятью вершинами.
Теорема 5.10. В дереве любые две вершины соединены единственной простой цепью.
Доказательство. Существование цепи следует из связности графа. Если бы было две цепи, соединяющих заданные вершины, то получили бы цикл, а в дереве нет циклов.
Теорема 5.11. Число ребер у дерева с n вершинами равно n-1.
Доказательство проведем индукцией. Для графа с двумя вершинами – очевидно. Предположим, наше утверждение верно для графов, имеющих меньше чем k вершин. Докажем для графа с k вершинами. Удаление любого ребра из дерева G делают G несвязным. Так как мы разрываем связь только между двумя вершинами, то получаемый граф будет иметь в точности две компоненты. Положим, что получили компоненты G1 и G2. Пусть в G1 имеется k1 вершин, а в G2 - k2 вершин; при этом k1 + k2 = k. По предположению индукции в каждой компоненте число ребер mi ровно на единицу меньше числа вершин, т.е. m1= k1 -1, m2= k2 -1.
Таким образом, общее число ребер в G будет m1+ m2+1= k1 -1 + k2 - 1+1= k -1. Следовательно, утверждение верно и для графа с k вершинами и, по методу математической индукции, теорема доказана.
Теорема 5.12. Число различных помеченных деревьев, которые можно построить на n вершинах, равно nn-2.
Без доказательства. Очевидно, что это число деревьев при больших значениях n велико, например если n=10, то число различных деревьев равно
N=108 = 100 000 000.
Теорема 5.13. В любом нетривиальном дереве имеются, по крайней мере, две висячие вершины.
Доказательство. Рассмотрим дерево G(V,Х). Дерево – связный граф, следовательно, для любой vi, vi V, её локальная степень больше или равна единице: deg(vi) ≥ 1.
Далее от противного. Пусть для любой vi, vi V, имеет место: deg(vi) >
144
n
1.Тогда: 2m = ∑ deg(vi) ≥ 2n. Но m=n-1, т.е. 2n-2 ≥ 2n, что не может быть.
i =1
Таким образом, локальные степени всех вершин не могут быть больше единицы.
Допустим, что существует только одна вершина с локальной степенью 1, а остальные вершины имеют локальную степень больше единицы. Тогда
n
вновь имеем: 2m = ∑ deg(vi) ≥ 2(n-1)+1=2n-1. Но m= n-1, т.е. 2n-2 ≥ 2n-1, что
i =1
не может быть.
Итак, не менее чем две вершины являются висячими.
Корневым деревом называется дерево с выделенной вершиной, называемой корнем.
При решении некоторых задач необходимо осуществлять обход вершин графа G(V,X) для поиска вершины, удовлетворяющей заданным свойствам. Пусть Т - некоторый остовный подграф графа G(V,X), не имеющий цикла, т.е. Т – дерево и положим, что v - корень этого дерева. Расположим вершины графа по этажам (уровням, ярусам) так, чтобы корень находился в верхнем нулевом этаже, смежные с ним вершины занимали следующий нижний первый этаж, смежные с вершинами k-го этажа занимали k+1-й этаж (который ниже, чем k-й этаж) и т.д. После установления вершин по этажам начинаем процедуру обхода вершин.
Обход графа по глубине. При таком обходе после очередной рассмотренной вершины k-го этажа выбирается смежная с ней вершина следующего k+1-го этажа. Если очередная рассмотренная вершина висячая и её достижение не даёт желаемого решения задачи, то возвращаются до ближайшей вершины, откуда можно пройти до новой непросмотренной вершины и т. д.
Обход графа по ширине. При этом просмотр вершин дерева ведётся по этажам (начиная с корня дерева). Переход от вершин k-го этажа к вершинам следующего k+1-го этажа производится только после просмотра всех вершин k-го этажа.
При компьютерной реализации обходов дерева (по глубине или ширине) целесообразно использовать задание графа с помощью списков смежностей вершин.
Отметим, что в приведённом описании номера этажей растут сверху вниз. В некоторых случаях нижний этаж считается нулевым и при движении вверх номера этажей возрастают.