- •Глава 16. Специальные циклы и метрика графов 345
- •Глава 17. Графовые инварианты 404
- •Введение
- •Цели и задачи преподавания дисциплины «дискретная математика»
- •Модуль 1. Основы Теории множеств (2 кредита)
- •Комплексная цель и задачи изучения модуля
- •Глава 1. Исчисление множеств
- •1.1. Понятие множества
- •1.2. Способы задания множеств
- •1.3. Подмножество
- •2. Пустое множество не имеет собственных и истинных подмножеств.
- •3. Одноэлементное множество имеет два подмножества - сaмo себя и , т.Е. Не имеет собственных подмножеств.
- •Множество – это многое, мыслимое как единое.
- •Глава 2. Операции над множествами
- •2.1. Объединение множеств
- •2.2. Пересечение множеств
- •2.3. Разность множеств
- •2.4. Дополнение множества
- •2.5. Тождества алгебры множеств
- •2.6. Доказательства тождеств с множествами
- •Глава 3. Упорядоченные множества
- •3.1. Кортеж (Упорядоченное множество)
- •3.2. Декартово произведение
- •3.3. Операция проектирования множеств
- •3.4. График
- •Декартово произведение множеств позволяет перейти к графическому представлению упорядоченных множеств.
- •Глава 4. Отношения
- •4.1. Основные понятия отношений
- •4.2. Основные свойства отношений
- •4.3. Операции над отношениями
- •4.4. Основные свойства специальных отношений
- •4.5. Разбиение множеств
- •4.6. Отношение порядка
- •Использование отношений позволяет строить модели взаимосвязей между любыми обьектами в природе.
- •5. Соответствия
- •5.1. Определение соответствия
- •5.2. Операции над соответствиями
- •5.3. Понятия образа и прообраза при соответствии
- •5.4. Доказательства тождеств с соответствиями
- •5.5. Основные свойства соответствий
- •5.6. Функция
- •Глава 6. Упорядоченные бесконечные множества
- •6.1. Основные сведения об упорядоченных бесконечных множествах
- •6.2. Проблема континуума
- •Глава 7. Основные понятия теории мультимножеств
- •7.1. Понятие мультимножества
- •7.2. Операции над мультимножествами
- •Возможность многократного вхождения элементов в мультимножество создает новое качество и позволяет расширить класс описываемых, анализируемых и синтезируемых математических объектов.
- •8. Нечеткие множества
- •8.1. Нечеткие высказывания
- •8.2. Операции над нечеткими множествами
- •8.3. Нечеткие отношения и соответствия
- •Тестовые задания к модулю 1
- •24. Множество называется графиком, если каждый его элемент ...
- •25. Соответствие может быть задано … способом.
- •Критерии оценки
- •Нечеткие и приближенные высказывания, множества, соответствия и отношения позволяют формально задавать расплывчатую информацию в виде, удобном для обработки на эвм.
- •Глоссарий к модулю 1
- •Глава 1.
- •Глава 2.
- •Глава 3.
- •Глава 4.
- •Глава 5.
- •Глава 6.
- •Глава 7.
- •Глава 8.
- •Галилей Модуль 2. Основы теории алгоритмов (1,5 кредита) Комплексная цель и задачи изучения модуля
- •Глава 9. Введение в теорию алгоритмов
- •9.1. Понятие алгоритма
- •9.2. Основные свойства алгоритмов
- •9.3. Классификация алгоритмов
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •10.1. Преобразование слов в произвольных абстрактных алфавитах
- •10.2. Числовые функции
- •10.3. Построение алгоритмов по принципу «разделяй и властвуй»
- •10.4. Представление алгоритма в виде детерминированного устройства
- •10.5. Универсальные схемы алгоритмов
- •10.5. “Жадные” алгоритмы
- •10.6. Нечеткие (расплывчатые) алгоритмы
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •11.1. Анализ алгоритмов
- •11.2. Сложность алгоритмов
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Тестовые задания к модулю 2
- •Критерии оценки
- •Модуль 3. Алгебра логики (1,5 кредита) Комплексная цель и задачи изучения модуля
- •Глава 12. Элементы алгебры логики
- •12.1. Логические функции
- •12.2. Основные логические тождества и законы
- •12.3. Булевы функции одной и двух переменных
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •13.1. Дизъюнктивная и конъюнктивная нормальные формы
- •13.2. Способы перехода от нормальных к совершенным нормальным формам
- •2. Графический способ.
- •13.4. Функциональная полнота бф
- •13.3. Алгебра Жегалкина
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •14.1. Реализация булевых функций
- •14.2. Минимизация булевых функций
- •14.3. Карты Карно
- •14.4. Метод Квайна - Мак-Класски
- •14.5. Переход от бф к простейшим комбинационным схемам
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Критерии оценки
- •Глоссарий к модулю 3
- •Модуль 4. Основы Теории графОв (2 кредита) Комплексная цель и задачи изучения модуля
- •Глава 15. Введение в теорию графов
- •15.1. Способы задания графов и виды графов
- •15.1.1. Способы задания графов
- •15.1.2. Виды графов
- •15.1.3. Нечеткие неориентированные графы
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •15.2. Маршруты, цепи, циклы
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •При моделировании систем модели и алгоритмы нахождения маршрутов, цепей, циклов, разрезов, связности графов позволяют строить эффективные алгоритмы преобразования графов.
- •15.3. Нахождение кратчайших маршрутов (цепей)
- •15.3.1. Алгоритм Форда
- •15.3.2. Алгоритм Дейкстры
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •Алгоритмы Форда и Дейкстры являются эффективным способом определения кратчайшей по стоимости цепи между двумя вершинами графа.
- •Глава 16. Специальные циклы и метрика графов
- •16.1. Эйлеровы и гамильтоновы цепи и циклы
- •16.1.1. Связь между эйлеровыми и гамильтоновыми графами
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •16.2. Алгоритмы построения гамильтонова цикла
- •16.2.1. Алгоритм Робертса ─ Флореса
- •16.2.2. Алгебраический метод
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •16.3. Задача о коммивояжере и алгоритмы ее решения
- •16.3.1. Алгоритм Хелда и Карпа
- •16.3.2. Геометрический метод решения
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •16.4. Расстояния на графах
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •16.5. Деревья
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •Глава 17. Графовые инварианты
- •17.1. Цикломатическое и хроматическое числа графа
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •17.2. Числа внутренней и внешней устойчивости графа
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •Числа внутренней и внешней устойчивости относятся к инвариантам графа. Они позволяют определить специальные группы вершин в графах.
- •17.3. Планарность графов
- •17.3.1. Плоские и планарные графы
- •17.3.2. Эвристики для определения планарности
- •17.3.3. Минимизация пересечений ребер графов
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •17.4. Ориентированные графы
- •17.4.1. Способы задания
- •17.4.2. Решение стандартных графовых задач с использованием орграфов
- •17.4.3. Выделение сильносвязных компонент
- •17.4.4. Нечеткие ориентированные графы
- •Примеры решения задач
- •Вопросы
- •Задания для самостоятельной работы
- •175 Гиперграфы
- •Примеры решения задач
- •Вопросы для самоконтроля
- •Задания для самостоятельной работы
- •Тестовые задания к модулю 4
- •Критерии оценки
- •Глоссарий к модулю 4 Глоссарий к главе 1
- •Глоссарий к главе 2
- •Глоссарий к главе 3
- •Библиографический комментарий
- •Литература
- •Заключение
- •Приложение 1
- •Учебное издание Гладков Леонид Анатольевич, Курейчик Владимир Викторович, Курейчик Виктор Михайлович
17.1. Цикломатическое и хроматическое числа графа
Заметим, что реализация графовых алгоритмов упрощается при использовании таких числовых инвариантных характеристик графа, как числа цикломатическое, хроматическое и др.
Наименьшее число ребер, которое необходимо удалить из графа G, чтобы он стал ациклическим (деревом), называется цикломатическим числом графа. Для графа G = (X, U), |X| = n, |U| = m цикломатическое число
(G) = m – n + k, (17.1)
где k — число компонентов связности графа, (k = 1, 2, …). Величину (G) = n – k называют коцикломатическим числом. Тогда (G) = m – (G).
Циклы, получаемые добавлением какого-нибудь ребра из графа G к ребрам дерева и отличающиеся один от другого хотя бы одним ребром, называют фундаментальными циклами. Очевидно, для графа, состоящего из одной компоненты связности,
(G) = m – n + 1. (17.2)
Например, для графа G (рис. 17.38) (G) = 9 – 6 + 1 = 4, то есть после удаления четырех ребер он становится деревом. В примере это могут быть ребра (x1, x3), (x1, x5), (x4, x5), (x4, x6). Тогда получаем дерево T, выделенное жирным шрифтом.
Заметим, что цикломатическое число графа не зависит от ориентации его ребер и формула его определения справедлива для мультиграфов. Из определения (G) следует, что оно может быть только положительным или равным нулю. Граф (мультиграф) не имеет циклов тогда и только тогда, когда (G) = 0. Очевидно, что граф (мультиграф) имеет единственный цикл тогда и только тогда, когда (G) = 1.
Цикломатическое число (G) показывает только число ребер, которые необходимо удалить из графа. Для получения конкретных ребер необходимо каждый раз удалять ребро, которое разрушает хотя бы один цикл.
Матрица Rc = ||rc(i, j)||(G)×m, состоящая из (G) строк и m столбцов, называется матрицей фундаментальных циклов, если
Для графа G (рис. 17.38) матрица Rc запишется следующим образом:
|
|
u1 |
u2 |
u3 |
u4 |
u5 |
u6 |
u7 |
u8 |
u9 |
|
Rc = |
c1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
. |
c2 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
||
c3 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
||
c4 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
u1 = (x1, x2), u2 = (x1, x3), u3 = (x1, x5), u4 = (x2, x4), u5 = (x2, x5), u6 = (x3, x4), u7 = (x4, x5), u8 = (x4, x6), u9 = (x5, x6).
Раскраской вершин графа называется разбиение множества вершин X на l непересекающихся классов (подмножеств):
(17.3)
таких, что внутри каждого подмножества Xi не должно содержаться смежных вершин. Если каждому подмножеству Xi поставить в соответствие определенный цвет, то вершины этого подмножества можно окрасить в один цвет, вершины другого подмножества Xj – в другой цвет, и т.д. до раскраски всех подмножеств. В этом случае граф называется l–аскрашиваемым. Наименьшее число подмножеств, на которое разбивается граф при раскраске, называется хроматическим числом (G).
Очевидно, что полный граф Kn можно раскрасить только n цветами, следовательно, (Kn) = n. Для связного графа G = (X, U) с (n - 1) m n(n – 1)/2 верхняя оценка хроматического числа
(17.4)
Известно утверждение, что для любого графа хроматическое число превышает максимальную локальную степень вершины не более чем на единицу, т.е.
(G) 1+max (xi), xi X, i I = {1, 2, …, n}. (17.5)
Если известно число вершин в наибольшем полном подграфе Ki графа G, то
(G) = n / ni,
где ni – число вершин в подграфе Ki. Известны еще такие оценки:
, (17.6)
где
– хроматическое число графа
.
Хроматическое число обычно определяют аналитически с помощью методов линейного программирования. Рассмотрим один из возможных методов определения (G), равного q.
Пусть справедливы следующие утверждения:
и
Тогда можно составить следующую систему линейных соотношений:
j
= 1, 2, …, n,
l
= 1, 2, …, m, (17.7)
p
= 1, 2, …, q.
Первая система n уравнений говорит о том, что каждая вершина окрашена только одним цветом из множества всех цветов. Система неравенств показывает, что любые две смежные вершины графа не должны быть окрашены одним цветом.
Каждому способу раскраски вершин графа q цветами (при обязательном условии разноцветности смежных вершин) соответствует система целых чисел (j, p), удовлетворяющая условиям (17.3), и, наоборот, каждому целочисленному решению системы (17.3) соответствует один из способов раскраски. Наименьшее q, для которого система (17.7) имеет целочисленное решение, будет искомым хроматическим числом графа.
Опишем последовательный метод раскраски графа G = (X, U). Сначала составляется упорядоченный в порядке не возрастания степеней вершин список. Первая вершина окрашивается в цвет 1 и удаляется из списка. Просматривая список, в цвет 1 раскрашиваются и удаляются из него все вершины, не смежные с первой выбранной и между собой. Далее снова выбирается первая вершина из списка, она окрашивается в цвет 2 и удаляется. Процесс продолжается, пока не будут окрашены все вершины.
Например, пусть задан граф G, показанный на рис. 17.1.
Рис. 17.1. Граф G
Построим список смежности
-
xi
x3
x2
x4
x5
x7
x1
x6
(xi)
5
4
3
3
3
2
2
Вершины x3, x4 окрашиваем в цвет 1 и удаляем из списка. Получаем новый список
xi |
x2 |
x5 |
x7 |
x1 |
x6 |
(xi) |
4 |
3 |
3 |
2 |
2 |
Вершины x2, x6 окрашиваем в цвет 2 и удаляем из списка:
xi |
x5 |
x7 |
x1 |
(xi) |
3 |
3 |
2 |
Вершины x5, x7, x1 окрашиваем в цвет 3. На этом процесс окончен, так как раскрашены все вершины графа.
Отметим, что такого типа последовательные методы могут давать плохие результаты раскраски при быстром получении результата. Существует много модификаций последовательных алгоритмов, связанных с переупорядочиванием списков после удаления вершин, анализа вершин с одинаковой локальной степенью и выбора из них вершин, через которые проходит большее число маршрутов, и т.п. Временная сложность таких алгоритмов составляет величину O(n) – O(n2).
Важное практическое применение имеет частный вид n-раскрашиваемых графов – двудольные (бихроматические) графы. Обозначается двудольный граф G(n1, n2) = (X1, X2, U). Причем X1 X2 = X, X1 X2 = , а ребра соединяют только подмножества X1 и X2 между собой. На рис. 17.2 показан пример двудольного графа G = (X1, X2, U), |X1| = 3 = n1, |X2| = 2 = n2, X1 = {x1, x2, x3}, X2 = {x4, x5}.
Рис. 17.2. Двудольный граф
Граф K(n1, n2) называется полным двудольным, если любая вершина xi X1 смежна с каждой вершиной xj X2 и наоборот (i = 1, 2, …, n1; j = n1 + 1, n1 + 2, …, n1 + n2).
Например, при добавлении к графу G(n1, n2) (рис. 3.2) ребра (x3, x4) он становится полным двудольным графом. Очевидно, что в графе G = (X1, X2, U) подмножество X1 можно раскрасить одним цветом, а подмножество X2 – другим. Число ребер m графа K(n1, n2) определяется выражением m = n1 × n2.
При разработке алгоритмов конструкторского и технологического проектирования ЭВА часто возникает необходимость определения двудольности произвольного графа схемы или выделения максимальных непересекающихся двудольных частей.
Теорема 17.1. Граф G является двудольным тогда и только тогда, когда он не имеет простых циклов нечетной длины.
