
- •Введение
- •Глава 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. Упражнения
- •Список литературы
128
Длиной конечной цепи Z(v, u), соединяющей вершины v и u, считается число ребер в Z(v, u). Длиной конечного пути Р(v, u) из вершины v до вершины u, считается число дуг в Р(v, u).
Расстоянием d(v,u) между вершинами v и u графа G называется длина кратчайшей простой цепи, соединяющей их, если же вершины v и u не соединены, то полагаем d(v,u)=∞. Расстоянием d(v,u) между вершинами v и u орграфа, считается длина кратчайшего простого пути, идущего из вершины v до вершины u; если вершина u недостижима из v, то полагаем d(v,u)=∞.
Внекоторых графах вводят веса или длины ребер и дуг.
Вграфе G(V,X) каждому ребру х=(v,u) может приписываться число
(v,u), которое называется длиной или весом ребра. В орграфе G(V,X) каждой дуге x= v,u может приписываться число (v,u), которое называется длиной
или весом дуги.
Граф (орграф), для каждого ребра (дуги) которого определена длина, называется взвешенным графом (орграфом).
Для взвешенного графа длиной конечной цепи Z(v, u), соединяющей вершины v и u, считается сумма длин всех ребер из Z(v, u). Для взвешенного орграфа длиной конечного пути Р(v, u) из вершины v до вершины u, считается сумма длин всех дуг из Р(v, u).
Расстоянием d(v,u) между вершинами v и u взвешенного графа (орграфа) G называется длина кратчайшей простой цепи (кратчайшего простого пути), идущей (идущего) из вершины v до вершины u; если же вершина u не достижима из v, то полагаем d(v,u)=∞.
§ 5. Связность графа. Компоненты связности
Пусть G – неориентированный граф.
Две вершины v и u называются связанными, если существуют цепь Z(v,u) с концами v и u. Если цепь Z(v,u) проходит через какую-нибудь вершину w более одного раза, то ясно, что можно удалить циклический участок, при этом останется простая цепь, соединяющая v и u.
Граф называется связным, если любая пара вершин связана (соединена простой цепью). Ясно, что связность графа G означает, что любые две его вершины являются достижимыми одна из другой.
Если в графе G вершина v связана с вершиной u, то, очевидно, что u связана с v. Также очевидно, что если вершина v связана с u, а u с w, то v связана с w. Кроме того, можно считать, что v связана с v. Таким образом, отношение связанности для вершин графа обладает свойствами симметричности, транзитивности и рефлексивности, следовательно, является отношением эквивалентности. Тогда множество V вершин графа разбивается единственным образом на попарно не пересекающиеся подмножества Vi и V= UVi . Все вершины в каждом Vi связанные, а вершины из различных Vi не
i

129
являются связанными между собой. Таким образом, исходный граф можно представить в виде объединения связных подграфов:
G= UG(Vi ) ,
i
где G(Vi) - непересекающиеся связные подграфы данного графа, которые называются компонентами связности или просто компонентой графа G.
Ясно, что компонента связности графа G – это его максимальный связный подграф. Таким образом, мы имеем.
Теорема 5.3. Каждый (неориентированный) граф представляется единственным образом как объединение своих компонент связности.
Эта теорема позволяет сводить большинство задач, касающихся графов, к случаю связных графов.
Пусть G = (V,X) – граф. Для определения числа r компонент можно использовать следующий алгоритм:
begin
V’:=V; r:= 0;
while V’≠ do begin
Выбрать u V’;
Найти все вершины, соединённые цепями с u;
Удалить вершину u из V’ и соответствующие рёбра из Х; r:= r+1;
end
end
Теорема 5.4. Если в графе G ровно две вершины v и u имеют нечетную локальную степень, то эти вершины связанные.
Доказательство. Представим G= UG(Vi ) , где G(Vi ) – компонента.
i
Пусть v G(Vk ). По доказанной ранее теореме каждый граф имеет четное число вершин нечетной степени. Так как это свойство должно выполняется и для G(Vk ), то u должно принадлежать G(Vk ), следовательно, v и u являются вершинами связного графа, поэтому они связаны.
На рис. 5.10 приведены графы с двумя и с шестью компонентами связности (компонентами).
Ориентированный граф называется связным, если для любых двух его вершин v и u вершина u достижима из вершины v или вершина v достижима из вершины u.

130
Граф с двумя |
Граф с шестью |
компонентами. |
компонентами. |
|
Рис. 5.10 |
Компонентой связности (компонентой) ориентированного графа
называется его максимальный связный подграф.
Вам поклоняюсь, вас желаю, числа! Свободные, бесплотные, как тени,
Вы радугой связующей повисли К раздумьям с вершины вдохновенья!
В. Брюсов
§ 6. Матрица смежности
Пусть дан граф G с n вершинами v1,v2,…,vn. Матрицей смежности графа, мультиграфа или псевдографа G с данной нумерацией вершин v1, v2,…, vn называется матрица A=(aij) размером n× n, в которой элемент aij равен числу ребер в G, соединяющих vi c vj. На рис. 5.11 приведены графы, а справа - их матрицы смежности.
|
|
v2 |
|
|
0 |
1 |
0 |
0 |
|
|
|
|
|
||||
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
1 |
1 |
|
|
|
|
|
||||
|
|
|
|
v3 |
A = |
1 |
0 |
|
|
|
|
|
|||||
v1 |
|
|
|
|
0 |
1 |
||
|
|
|
|
|
|
1 |
1 |
|
|
|
|
|
|
||||
|
|
|
|
|
0 |
0 |
v4
|
|
v2 |
|
|
|
|
1 |
1 |
1 |
0 |
∑= 3 |
v1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
v4 |
A |
= |
1 |
0 |
2 |
1 |
4 |
|
|
|
|
|
|
2 |
0 |
|
4 |
|||
|
|
|
|||||||||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
1 |
1 |
|||
|
|
|
|
|
|
|
|
1 |
1 |
|
2 |
|
|
|
|
|
|
|
0 |
0 |
∑= 3 4 4 2 v3
Рис. 5.11

131
При другой нумерации вершин получим другую матрицу, получающуюся из А перестановкой строк и столбцов. Но в результате всегда получится симметричная матрица из неотрицательных целых чисел, обладающая тем свойством, что сумма чисел в любой i-й строке или i-м столбце равна локальной степени соответствующей вершины vi, 1≤ i≤ n. Здесь каждая петля учитывается в степени вершины только один раз.
Обратно, по любой заданной симметричной матрице А из неотрицательных целых чисел легко построить граф (единственный с точностью до изоморфизма), матрицей смежности которого будет матрица А.
Таким образом, вместо графов можно исследовать матрицы смежности либо наоборот.
Для орграфа G матрица смежности есть n×n матрица А =(aij), где aij – число дуг, идущих из vi в vj.
На рис. 5.12 приведён пример орграфа, а справа от него построена матрица смежности этого орграфа.
|
|
0 |
1 |
1 |
1 ∑= 3 |
|
|
v2 |
|
0 |
1 |
|
1 |
|
A = |
0 |
0 |
|||
|
|
|
|
|
|
|
v3 |
|
|
|
|
||
|
0 |
0 |
0 |
0 |
0 |
|
v1 |
|
|
0 |
1 |
|
1 |
|
|
0 |
0 |
|||
v4 |
∑ = |
0 |
1 |
3 |
1 |
|
|
|
|
|
|
|
|
Рис. 5.12 |
|
|
|
|
|
|
Сумма элементов по i–й строке матрицы равна полустепени исхода i–й вершины орграфа, а сумма элементов по j–му столбцу – полустепени захода j–й вершины.
Легко видеть, что матрица смежности А орграфа уже не является симметричной матрицей. Но это - матрица целых неотрицательных чисел и для любой такой матрицы А можно построить граф (с точностью до изоморфизма), матрица смежности которого равна А.
В результате видим, что исследование графов равносильно исследованию матриц смежностей, составленных из целых неотрицательных чисел.
Выясним, каким операциям над графами соответствуют операции над матрицами смежностей.
1.Умножению матрицы смежности А на целое число α соответствует тому, что в графе каждое ребро заменяется α ребрами.
2.При сложение матриц смежностей А+В (одного и того же порядка
n×n) имеет место следующая теорема.

132
Теорема 5.5. Пусть матрице A соответствует граф G1 = (V,X1), а матрице B – граф G2 = (V,X2). Тогда матрице А+В соответствует граф, полученный объединением ребер (дуг) графов G1 и G2 на том же множестве вершин V.
Доказательство. Если A=(aij), В=(bij), то А+В=(aij+bij), следовательно, у графа, соответствующего матрице А+В, вершины vi и vj соединяет aij+bij ребер (дуг из vi в vj), что получается, если к ребрам (дугам) графа G1 добавить ребра (дуги) графа G2. Теорема доказана.
3. Умножение матриц смежностей.
Теорема 5.6. Пусть матрице A соответствует граф G1 = (V,X1), а матрице B – граф G2 = (V,X2). Тогда матрице А×В отвечает мультиграф, построенный следующим образом: вершины vi и vj соединяет столько ребер, сколько существует различных цепей из vi в vj, составленных из двух ребер, первое из которых принадлежит графу G1, а второе G2.
Доказательство. Пусть A=(aij), В=(bij) и им соответствуют графы G1 и G2 соответственно.
По определению матрицы смежности число различных цепей вида
[vi,vk,vj], где (vi,vk) G1, (vk,vj) G2 равно аikbkj. Общее число цепей из vi в vj, составленных из двух ребер (первая из G1, а вторая G2), получается суммированием по всем k:
n
∑ aik bkj , k =1
что и дает (ij)-элемент матрицы А×В.
Эту теорему можно обобщить и на случай произведения любого конечного числа матриц.
Теорема 5.7. Пусть матрице Ai соответствует граф Gi = (V,Xi), 1≤ i≤ N. Тогда матрице А=А1×А2×…×АN отвечает мультиграф, построенный следующим образом: вершины vi и vj соединены стольким числом ребер, сколько существует цепей из vi в vj, составленных из N ребер, первое из которых принадлежит G1 , второе - G2 и т.д., N-е – GN.
Следствие 5.1. Если Аr= 0, то в графе, соответствующем матрице А, нет цепи длины r.
Следствие 5.2. Если G – связный граф с матрицей смежности А, то расстояние между vi и vj для i ≠ j равно наименьшему из целых чисел r, для которых (i,j)-ый элемент матрицы Аr отличен от нуля.
Следствие 5.3. Пусть G - помеченный граф с матрицей смежности А. Тогда (i,j)-й элемент матрицы Ar равен числу цепей длины r из vi в vj.

133
Это следствие позволяет просто (алгоритмически) определить число цепей заданной длины, соединяющих вершины vi и vj.
Рассмотрим примеры. Пусть имеем граф G1, диаграмма которого представлена на рис. 5.13, а). Матрица смежности А1 этого графа равна:
|
|
v2 |
|
v2 |
|
|
|
v1 |
|
|
|
v2 |
||
|
v1 |
v3 |
v1 |
v3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v4 |
|
|
|
v4 |
|
|
|
|
v3 |
|
|
|
а) |
|
б) |
|
|
|
|
|
в) |
|
|
|
|
|
|
|
|
Рис. 5.13 |
|
|
|
|
|
|
|
|
|
|
1 1 0 |
|
|
|
|
1 |
1 |
0 |
|
1 |
1 |
|
0 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
А1 = 1 0 1 |
и элемент а13 = 0. Вычислим A12 |
= |
1 |
0 |
1 |
× |
1 |
0 |
|
1 = |
||||
|
0 1 0 |
|
|
|
|
0 |
1 |
|
|
|
0 |
1 |
|
|
|
|
|
|
|
0 |
|
|
0 |
|
2 |
1 |
1 |
|
|
|
|
|
|
= 1 |
2 |
0 |
. Элемент а13 полученной матрицы равен единице (больше нуля), |
|
|
1 |
0 |
1 |
|
|
|
следовательно, расстояние между 1-й и 3-й вершинами графа G1 равно 2 (минимальной степени матрицы А1, при котором (1,3)-й её элемент отличен от нуля). Более того, имеется ровно одна цепь длины 2, ибо (1,3)-й её элемент равен единице.
Рассмотрим граф G2, диаграмма которого представлена на рис. 5.13, б) и, используя матрицу смежности, выясним, чему равно расстояние между 1-й и 4-й вершинами графа G2. Матрица смежности А2 графа G2 равна:
|
|
|
0 1 0 |
0 |
|
|
|
|
|
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
А2 |
|
= |
1 0 1 |
0 |
. |
Вычислим A |
2 |
= |
|
1 |
0 |
1 |
0 |
× |
|
1 |
0 |
1 |
0 |
= |
|||
|
0 1 0 |
1 |
|
|
0 |
1 |
0 |
1 |
|
0 |
1 |
0 |
1 |
||||||||||
|
|
|
|
2 |
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
1 |
|
|
|
0 |
0 |
1 |
|
|
|
|
|
0 0 1 |
0 |
|
|
|
|
|
0 |
0 |
|
|||||||||||
1 |
|
0 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
2 |
0 |
1 |
|
|
полученной матрицы |
(1,4)–й |
элемент |
равен |
|
нулю, |
|||||||||||
= |
1 |
|
0 |
2 |
0 |
. Для |
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|