- •1.3.6. Экстремальные характеристики отношения
- •3.2.3. Связь между исчислением высказываний и алгеброй
- •3.2.4. Основные результаты исследования исчисления
- •Предисловие
- •1.1. Понятие компьютинга и дискретной математики
- •1.2. Теория множеств
- •1.2.1. Основные понятия теории множеств
- •1.2.2. Способы задания множеств
- •1.2.3. Операции над множествами
- •1.2.4. Свойства операций над множествами
- •1.2.5. Аксиоматика теории множеств
- •1.3. Бинарные отношения и их свойства
- •1.3.1. Декартово произведение и бинарное отношение
- •1.3.2. Функции и операции
- •1.3.3. Способы задания бинарных отношений
- •1.3.4. Свойства бинарных отношений
- •1.3.5. Типы бинарных отношений
- •1.3.7. Отношение толерантности
- •1.3.8. Операции над отношениями
- •Контрольные вопросы и задания
- •2.1. Фундаментальные алгебры
- •2.2. Алгебра высказываний
- •2.3. Формализация логических высказываний
- •2.4. Таблицы истинности сложных высказываний
- •2.5. Равносильности алгебры высказываний
- •2.6. Булевы функции
- •2.7. Формы представления логических функций
- •2.7.1. Дизъюнктивные нормальные формы
- •2.7.2. Конъюнктивные нормальные формы
- •2.8.1. Законы алгебры Буля
- •2.8.2. Упрощение логических функций
- •2.8.3. Метод Квайна – МакКласки
- •2.9.1. Теорема о полноте системы булевых функций
- •2.10. Построение логических схем
- •Контрольные вопросы и задания
- •Глава 3. Формальные теории
- •3.1. Основные свойства формальных теорий
- •3.1.1. Выводимость
- •3.1.2. Интерпретация
- •3.1.3. Разрешимость
- •3.1.4. Общезначимость
- •3.1.5. Непротиворечивость
- •3.1.6. Полнота
- •3.1.7. Независимость
- •3.2. Исчисление высказываний
- •3.2.1. Интерпретация
- •3.2.2. Правило подстановки
- •3.2.3. Связь между исчислением высказываний
- •3.2.5. Другие формализации исчисления высказываний
- •3.3. Исчисление предикатов
- •3.3.2. Кванторные операции над предикатами
- •3.3.3. Формальное определение исчисления предикатов
- •Контрольные вопросы и задания
- •4.1. Прямые доказательства
- •4.1.1. Правило подстановки
- •4.1.2. Правило вывода
- •4.1.3. Дедукция
- •4.1.4. Математическая индукция
- •4.2. Косвенные доказательства
- •4.2.1. Доказательство «от противного»
- •4.2.2. Доказательство через контрпример
- •Контрольные вопросы и задания
- •Глава 5. Основы комбинаторики
- •5.1. Правила суммы и произведения
- •5.2. Перестановки
- •5.3. Размещения и сочетания
- •5.4. Разбиения
- •5.5. Формула включений и исключений
- •5.6. Рекуррентные соотношения
- •5.7. Производящие функции
- •5.8. Числа Стирлинга второго и первого рода
- •Контрольные вопросы и задания
- •Глава 6. Основы теории графов
- •6.1. Основные понятия
- •6.1.1. Классификация графов
- •6.1.2. Способы задания графов
- •6.2. Операции над графами
- •6.2.1. Удаление вершин и ребер
- •6.2.2. Дополнение
- •6.2.3. Объединение графов
- •6.2.4. Сложение графов
- •6.2.5. Произведение графов
- •6.3. Связность в графах
- •6.3.1. Компоненты связности
- •6.3.2. Вершинная и реберная связность
- •6.3.3. Сильная связность в графах
- •6.4. Цикломатика графов
- •6.4.1. Ациклические графы
- •6.4.2. Базисные циклы и цикломатическое число
- •6.4.3. Базисные разрезы и ранг
- •6.4.4. Эйлеровы графы
- •6.4.5. Гамильтоновы графы
- •6.5. Диаметр графа
- •6.5.1. Основные определения
- •6.5.2. Алгоритм нахождения диаметра
- •6.5.3. Поиск диаметра при операциях над графами
- •6.6. Устойчивость графов
- •6.6.1. Внутренняя устойчивость
- •6.6.1. Внешняя устойчивость
- •6.7. Хроматика графов
- •6.7.1. Хроматическое число
- •6.7.3. Двудольное представление графов
- •6.7.4. Хроматический класс
- •6.8. Преобразование графов
- •6.8.1. Реберные графы
- •6.8.2. Изоморфизм графов
- •6.8.3. Гомеоморфизм графов
- •6.8.4. Автоморфизм графов
- •6.9. Планарность
- •6.9.1. Основные определения
- •6.9.2. Критерии непланарности
- •6.10. Построение графов
- •6.10.1. Преобразование прилагательных в числительные
- •6.10.3. Оценка количества ребер сверху и снизу
- •Контрольные вопросы и задания
- •7.1. Введение в теорию нечетких моделей
- •7.1.1. Принятие решений в условиях неопределенности
- •7.1.2. Основы нечетких моделей
- •7.2. Нечеткие множества. Базовые определения
- •7.2.1. Базовые и нечеткие значения переменных
- •7.2.2. Основные определения
- •7.2.3. Типовые функции принадлежности
- •7.3. Операции над нечеткими множествами
- •7.3.1. Операция «дополнение»
- •7.3.2. Операция «пересечение»
- •7.3.3. Операция «объединение»
- •7.3.4. Операция «включение»
- •7.3.5. Операции «равенство» и «разность»
- •7.3.6. Операция «дизъюнктивная сумма»
- •7.3.7. Операции «концентрирование» и «растяжение»
- •7.3.8. Операция «отрицание»
- •7.3.9. Операция «контрастная интенсивность»
- •7.3.10. Операция «увеличение нечеткости»
- •7.4. Обобщенные нечеткие операторы
- •7.4.1. Треугольные нормы
- •7.4.2. Треугольные конормы
- •7.4.3. Декомпозиция нечетких множеств
- •7.5. Индекс нечеткости
- •7.5.1. Оценка нечеткости через энтропию
- •7.5.2. Метрический подход к оценке нечеткости
- •7.5.3. Аксиоматический подход
- •7.6. Нечеткие бинарные отношения
- •7.6.1. Нечеткие бинарные отношения
- •7.6.2. Свойства нечетких бинарных отношений
- •7.6.3. Операции над нечеткими отношениями
- •7.7. Нечеткие числа
- •7.8. Приближенные рассуждения
- •7.8.1. Нечеткая лингвистическая логика
- •7.8.2. Композиционное правило вывода
- •7.8.3. Правило modus ponens
- •Контрольные вопросы и задания
- •Список литературы
Таблица 6.3
Матрица базисных циклов
|
|
Хорды |
|
|
|
3,8 |
2,8 |
7,8 |
5,8 |
БЦ1 |
1 |
|
|
|
БЦ2 |
|
1 |
|
|
БЦ3 |
|
|
1 |
|
БЦ4 |
|
|
|
1 |
Ребра остова
2,3 |
1,2 |
1,7 |
1,8 |
8,4 |
7,6 |
6,5 |
1 |
1 |
|
1 |
|
|
|
|
1 |
|
1 |
|
|
|
|
|
1 |
1 |
|
|
|
|
|
1 |
1 |
|
1 |
1 |
6.4.3. Базисные разрезы и ранг
Удобно также определить коциклический ранг или ранг разреза графа G как число ребер в его остовном лесе. Коциклический ранг обозначается через χ(G) и равен (n – k).
В отличие от базисных циклов базисные разрезы строятся на одном ребре основа и необходимом количестве ребер остова. Смысл построения разреза можно сформулировать следующим образом.
Базисный разрез составляет совокупность ребер, состоящая из одного ребра остова и нескольких хорд, удаление которых делает исходный связный граф несвязным (а для произвольного графа в общем случае увеличивает количество компонент связности).
Правило построения базисных разрезов: возьмем одно из ребер основа и мысленно его удалим. Поскольку остов является деревом (или, в общем случае, лесом), то удаление одного ребра в обязательном порядке приведет к увеличению количества компонент связности. Иными словами, какая-то вершина или набор вершин будет откалываться («отваливаться») от основной части графа.
Далее, если посмотреть на исходный граф, то после «разрезания» «толстого» ребра остова окончательному откалыванию данной вершины (набора вершин) чаще всего препятствуют некоторые «тонкие» ребра (хорды). Совокупность таких хорд вместе с исходным ребром остова и составляет базисный разрез.
Чтобы не ошибиться в построении базисного разреза, можно отдельно нарисовать остов графа и именно на его основе определять,
164
какие вершины собираются отделяться после удаления одного из ребер остова (по картинке остова это видно графически). И затем «откалывающийся» фрагмент графа на исходной картинке можно обвести замкнутой линией. Тогда те ребра, которые будут пересекаться этой линией, как раз и составят базисный разрез на основе этого остовного ребра. Для конкретного выделенного остова можно найти все базисные разрезы, это удобно делать с помощью так называемой матрицы базисных разрезов.
Задача 6.4. Построим матрицу базисных разрезов для графа на рис. 6.20, при условии, что остов выбран в соответствии с вариантом 1.
|
2 |
3 |
2 |
|
3 |
1 |
8 |
4 |
1 |
8 |
4 |
|
7 |
5 |
7 |
|
5 |
|
6 |
|
|
6 |
|
|
Исходный граф |
|
Остов |
|
|
|
|
|
Рис. 6.21 |
|
|
Решение. Столбцам матрицы будут соответствовать ребра исходного графа, причем для удобства построения выпишем сначала ребра выделенного остова, а затем свободные хорды. Строки будут содержать искомые базисные разрезы, при этом ребра, вошедшие в соответствующий разрез, помечаются в матрице единичками, пустые клетки по умолчанию содержат нули.
Например, возьмем ребро остова (2,3) (рис. 6.21, справа). При его удалении из остова собирается «отколоться» от остального графа вершина 3. В исходном графе вершина 3 будет удерживаться еще и хордой (3,8) (рис. 6.21, слева).
При удалении ребра (1,2) из остова собирается «отколоться» от остального графа пара вершин (3 и 2), вместе с соединяющим их ребром (2.3) (рис. 6.21, справа). В исходном графе эта группа вер-
165
шин будет удерживаться еще и хордами (3,8) и (2,8) (рис. 6.21, слева).
Аналогично находим остальные разрезы (табл. 6.4).
Таблица 6.4
Матрица базисных разрезов
|
Хорды |
|
|
|
|
3,8 |
2,8 |
7,8 |
5,8 |
БР1 |
1 |
|
|
|
БР2 |
1 |
1 |
|
|
БР3 |
|
|
1 |
1 |
БР4 |
1 |
1 |
1 |
1 |
БР5 |
|
|
|
|
БР6 |
|
|
|
1 |
БР7 |
|
|
|
1 |
Ребра остова
2,3 1,2 1,7 1,8 8,4 7,6 6,5
1
1
1
1
1
1
1
6.4.4. Эйлеровы графы
Эйлеровым путем в графе называется путь, содержащий все ребра графа.
Эйлеровым циклом в графе называется цикл, содержащий все ребра графа.
Эйлеров граф |
Граф, в котором есть не- |
|
замкнутая эйлеровая цепь |
Неэйлеров граф |
Рис. 6.22 |
166
Связный граф G называется эйлеровым, если существует замкнутая цепь, проходящая через каждое его ребро (другими словами, еcли существует эйлеров цикл). Отметим, что в этом определении требуется, чтобы каждое ребро проходилось только один раз, вершины могут проходиться неоднократно.
Заметим, что предположение о связности графа G введено только ради удобства, так как оно позволяет не рассматривать тривиальный случай графа, содержащего несколько изолированных вершин.
Теорема 6.6. Граф G обладает эйлеровым циклом тогда и только тогда, когда он является связным, а все его вершины – четными.
В качестве примера практического применения эйлеровых графов можно привести план выставки, на которой необходимо так расставить указатели маршрута, чтобы посетитель смог пройти по каждому залу в точности по одному разу.
Иногда требуется не только определить эйлеровость графа, но и предложить наиболее эффективный способ превращения неэйлеровых графов в эйлеровые за счет удаления минимально возможного количества ребер.
Задача 6.5. Определить, является ли граф (рис. 6.23) эйлеровым, и, если нет, указать с достаточным обоснованием, удаление какого минимального числа ребер делает граф эйлеровым. Указать, какие это ребра. Указать эйлеров цикл.
Решение. Первое, что необходимо сделать, это проверить критерий эйлеровости, а именно четность вершин графа. Как видно из рис. 6.23, б, в графе из n=10 вершин 8 имеют нечетную степень.
Удобно при решении задач на рисунке заштриховать вершины, которые имеют нечетную степень. Поскольку удаление одного ребра может исправить степень двух вершин, то если удалять попарно несмежные ребра, соединяющие только нечетные вершины, минимально возможное количество таких кандидатов на увольнение будет 8/2=4. Теперь нужно попробовать найти попарно несмежные ребра, соединяющие именно нечетные вершины. В данном случае это возможно: решением могут быть, например, ребра
(1,2), (4,5), (7,8), (6,10) (рис. 6.23, в)
167