- •Оглавление
- •Глава 1. Алгебраические системы 17
- •Глава 2. Элементы комбинаторики 88
- •Глава 3. Основы теории графов 101
- •Глава 4. Основы математической логики 169
- •4.1.1.4. Эквивалентные преобразования формул 179
- •4.1.4. Выполнить подстановку: 247
- •Глава 5. Основы теории алгоритмов 252
- •Глава 6. Конечные автоматы 289
- •Введение
- •Глава 1. Алгебраические системы
- •1.1 Множества
- •1.1.1. Четкие множества
- •1.1.2. Нечеткие множества
- •1.2. Соответствия, отображения и функции
- •1.2.1. Четкие отображения и функции
- •1.2.2. Нечеткие отображения
- •1.3. Отношение
- •1.3.1. Четкие отношения
- •1.3.2. Нечеткое отношение
- •1.4. Элементы общей алгебры
- •1.5. Булева алгебра
- •1.5.1. Булевы операции
- •1.5.2. Законы булевой алгебры
- •1.5.3. Формула булевой функции
- •1.5.4. Описание булевой функции
- •1.5.5. Суперпозиция булевых функций
- •1.5.6. Свойства булевых функций
- •1.5.6.1. Самодвойственные булевы функции
- •1.5.6.2. Монотонные булевы функции
- •1.5.6.3. Линейные булевы функции
- •1.5.6.4. Функции, сохраняющие “0”
- •1.5.6.5. Функции, сохраняющие “1”
- •1.5.6.6. Функционально полные системы
- •1.5.7. Разложение булевых функции
- •1.5.7.1. Днф булевой функции
- •1.5.7.2. Кнф булевой функции
- •Алгоритм преобразования формулы к скнф:
- •1.5.8. Минимизация булевых функций.
- •1.5.8.1.Минимизация днф булевой функции
- •1.5.8.2. Минимизация кнф булевой функции
- •1.6. Алгебра четких множеств
- •1.6.1. Операции над множествами
- •1.6.2. Законы алгебры множеств
- •1.6.3. Эквивалентные преобразования формул
- •1.6.4. Композиция отображений и отношений
- •1.6.5. Поиск неизвестного множества
- •1.7. Алгебра нечетких множеств
- •1.7.1. Операции над нечеткими множествами
- •1.7.2. Композиция нечетких отображений
- •1.7.3. Композиция нечетких отношений
- •1.7.4. Свойства нечетких отношений
- •Вопросы и задачи
- •Глава 2. Элементы комбинаторики
- •2.1. Размещение из n элементов по k
- •2.2. Перестановка элементов
- •2.3 Сочетание из n элементов по k
- •2.4. Разбиение множества
- •2. 5 Правила комбинаторики
- •Вопросы и задачи
- •Глава 3. Основы теории графов
- •3.1. Граф и его характеристики
- •3.2. Описание графа
- •3. 3. Числа графа
- •3.4. Операции над графами
- •3.4.1. Унарные операции
- •3.4.1.1 Поиск дополнительного графа
- •3.4.1.2. Введение и удаление вершин графа
- •3.4.1.3. Стягивание вершин графа
- •3.4.1.4. Введение и удаление ребер графа
- •3.4.1.5. Поиск плотности и неплотности графа
- •3.4.1.6. Поиск числа компонент связности графа
- •3.4.1.7. Поиск устойчивости графа
- •3.4.1.8. Поиск цикломатического числа графа
- •3.4.1.9. Поиск хроматического числа графа
- •3.4.2. Бинарные операции
- •3.4.2.1. Объединение графов
- •3.4.2.2. Пересечение графов
- •3.4.2.3. Композиция графов
- •3.4.2.4. Соединение графов
- •3.4.2.5. Прямое произведение графов
- •3.4.2.6. Изоморфизм графов
- •3.5. Некоторые алгоритмы на графах
- •3.5.1. Построение покрывающего остова
- •3.5.2. Построение остова минимального веса
- •3.5.3. Поиск кратчайших путей в сети.
- •3.5.4. Поиск максимального потока в сети
- •3.5.5. Метод критического пути в управлении
- •3.6. Нечеткие графы
- •Вопросы и задачи
- •Глава 4. Основы математической логики
- •4.1. Логика высказываний
- •4.1.1. Алгебра высказываний
- •4.1.1.1. Логические операции
- •4.1.1.2. Правила записи сложных формул.
- •4.1.1.3. Законы алгебры высказываний
- •4.1.1.4. Эквивалентные преобразования формул
- •4.1.1.5. Нормальные формы формул
- •4.1.2. Исчисление высказываний
- •4.1.2.1. Интерпретация формул
- •4.1.2.2. Аксиомы и правила введения и удаления логических связок
- •4.1.2.3. Метод дедуктивного вывода
- •4.1.2.4. Принцип резолюции
- •4. 2. Логика предикатов
- •4.2.1. Алгебра предикатов
- •4.2.1.1. Законы алгебры предикатов
- •4.2.1.2. Предваренная нормальная форма формулы
- •4.2.1.3 Сколемовская стандартная форма формулы
- •4. 2. 2. Исчисление предикатов
- •4.2.2.1. Правила подстановки
- •4.2.2.2. Правила введения и удаления кванторов
- •4.2.2.3. Правила заключения
- •4.2.2.4. Метод дедуктивного вывода
- •4.2.2.5. Принцип резолюции
- •4.2.2.6. Логическое программирование
- •4.3. Логика реляционная
- •4.3.1 Реляционная алгебра
- •4.3.1.1. Унарные операции
- •4.3.1.2. Бинарные операции
- •4.3.1.3. Правила реляционной алгебры
- •4.3.2. Реляционное исчисление
- •4.3.3. Языки реляционной логики
- •4.4. Нечеткая логика
- •4.4.1. Нечеткое исчисление
- •4.4.2. Экспертные системы
- •Вопросы и задачи
- •Глава 5. Основы теории алгоритмов
- •5.1. Рекурсивные функции
- •5.1.1. Базовые функции
- •5.1.2. Элементарные операции
- •5.2. Машина Тьюринга
- •5.2.1. Описание машины Тьюринга
- •5.2.2. Примеры машин Тьюринга
- •5.2.3. Композиция машин Тьюринга
- •5.3. Нормальные алгоритмы Маркова
- •5.4 Сложность вычислений
- •Вопросы и задачи
- •Глава 6. Конечные автоматы
- •6.1. Абстрактный автомат
- •6.1.1. Типы конечных автоматов
- •6.1.2. Описание автоматов
- •6.1.3. Автоматное моделирование алгоритмов
- •6.1.3.1. Автомат Мили - модель управляющего автомата
- •6.1.3.2. Автомат Мура - модель управляющего автомата
- •6.1.3.3. Микропрограммный автомат
- •6.1.4. Эквивалентность автоматов
- •6.1.5. Эквивалентность внутренних состояний автомата
- •6.1.5.1. Детерминированный автомат
- •6.1.5.2. Недетерминированный автомат
- •6.2. Структурный автомат
- •6.2.1. Произведение автоматов
- •6.2.1.1. Последовательное соединение автоматов
- •6.2.1.2. Параллельное соединение автоматов
- •Обратная связь автоматов
- •6.2.3. Сумма автоматов
- •6.2.4. Структурный автомат и кодирование
- •6.3. Логическое проектирование автоматов
- •6.3.1. Кодирование алфавитов автомата
- •6.3.2. Автоматы без “памяти”.
- •6.3.2.1. Формирование оператора
- •6.3.2.2. Формирование системы операторов
- •Логическая схема комбинационного автомата
- •6.3.3. Автоматы с “памятью”
- •6.3.3.1. Формирование оператора
- •6.3.3.2. Формирование оператора
- •.3.3.3. Логическая схема автомата с “памятью”
- •Вопросы и задачи
- •Литература
- •Предметный указатель
3. 3. Числа графа
Функции, заданные на множестве графов {G=<X; r>} и принимающие значения на множестве целых чисел, называют числовыми характеристиками или просто числами. Наиболее очевидными и простыми числами являются: число вершин - n, число рёбер - m, степени вершин - i(или i+/i-). Остальные числа графа требуют вычисления их значений.
Число компонент связности графа G=<X; r>. Граф называют связным, если любая пара его вершин связана цепью или путем.
Если множество вершин графа разбить на попарно непересекающиеся, непустые подмножества X={X1’, X2’,...X’}, т. е Xi’Xj’= для ij и Xi, то формируемые с помощью инцидентных X’i ребер r’ir подграфы G1=<X1’;r1’>, G2=<X2’;r2’>,…, G=<X’;r’> являются связными, а между собой – несвязными, т. е. GiGj=. Связный подграф Gi называют компонентой связности, а их количество - числом компонент связности k(G).
Для поиска числа компонент связности (G) используют механизм вычисления матриц достижимости (см. 3.3).
На рис. 3.12. представлен граф и его три компоненты:
G=<X; r>, где X={x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11},
G1=<X1; r1>, где X1={x1, x2, x3, x4}, G2=<X2; r2>, где X2={x5, x6, x7, x8}, G3=<X3; r3>, где X3={x9, x10, x11}.
Цикломатическое число графа G=<X; r>. Для исследования циклов в графе используют цикломатическую матрицу С(G), столбцы которой есть ребра графа, а строки c(I, j)– возможные циклы.
1, если j-е ребро входит в i-й цикл,
с(i, j) =
0, в противном случае.
Например, для графа, приведенного на рис. 3.13, ниже представлена цикломатическая матрица, описывающая все циклы. Таких циклов - семь.
Наименьшее число рёбер, удаление которых приводит к графу без циклов и петель, называют цикломатическим числом и обозначают (G). Цикломатическое число можно определить по формуле (G)=m-n+k(G), где m - число рёбер, n - число вершин, k(G) - число компонент связности графа. Для графа G, приведенного на рис. 3.13, имеем n=7, m=9, (G)=1. Следовательно, (G)=9-7+1=3.
Связный граф, не содержащий ни одного цикла, называют деревом.
Ниже приведена матрица для семи циклов графа, приведенного на рис. 3.13.
-
С(G)
r1
r2
r3
r4
r5
r6
r7
r8
r9
c1
1
1
1
1
0
0
0
0
0
c2
1
1
0
1
0
1
1
0
1
c3
1
1
1
0
1
0
1
1
0
c4
1
1
0
0
1
1
0
1
1
c5
0
0
0
1
1
0
1
1
0
c6
0
0
1
0
0
1
1
0
1
c7
0
0
1
1
1
1
0
1
1
Для устранения всех циклов достаточно удалить три ребра: {r1, r7, r8}, {r1, r6, r7}, {r2, r6, r8} и т.п. Всего возможно тридцать трехэлементных подмножеств для устранения всех циклов (см. матрицу циклов). Остов на рис. 3.13 получен в результате удаления {r2, r6, r8}.
Хроматическое число графа G=<X;r>. Если множество вершин связного графа разбить на подмножества попарно несмежных вершин, т. е. сформировать подмножества X={X1’;X2’;…;X’}, то XiXj= для ij и 1i, j и xi hxi = для xiX’i,.
Тогда каждому подмножеству Xi может соответствовать особый цвет и никакие две смежные вершины не будут окрашены в одинаковый цвет. Наименьшее число (G), при котором никакие две смежные вершины графа не могут быть окрашены в один цвет, называют хроматическим числом графа.
Поиск хроматического числа достаточно трудоёмкая задача. Существуют оценки этого числа. Так хроматическое число полного n-вершинного графа равно n, пустого графа - 1, графа с циклом чётной длины - 2, графа с циклом нечётной длины - 3, графа типа дерево - 2.
Чаще может быть рекомендована оценка числа красок по формуле: (G)maxi{i+1}.
Например, для графа на рис. 3.14 (G)=4. Так как (G)maxi{i+1}=6 и граф содержит взаимосвязанные циклы четной и нечетной длины, то следует сделать выбор из числа красок. (G)=4, 5, 6. Наименьшее число красок 4 определяет хроматическое число данного графа.
Плотность графа G=<X; r>. Наибольшее число вершин полного подграфа G=<X; r> связного графа G=<X; r>, между всеми вершинами которого есть отношение смеж ности, называют плотностью графа и обозначают
(G)= maxi{|Xi|}.
Для графа на рис. 3.14 множества вершин, формирующих полные подграфы есть {{x1, x2, x3}, {x3, x4, x5}, {x5, x6, x7}, {x1, x7, x8}, {x1, x3, x5, x7}}.
Следовательно, = maxi{|Xi|}=4.
Механизм вычисления плотности приведен в 3.4.
Неплотность графа G=<X;r>. Наибольшее число вершин пустого подграфа G=<X;r> связного графа G=<X; r>, между всеми вершинами которого нет смежности, называют неплотностью графа G и обозначают (G)= maxi{|Xi|}. Очевидно, что (G) = (G) и (G) = (G).
Для графа на рис. 3.14 множества вершин, формирующих пустые подграфы есть {{x2, x4, x6, x8}, {x1, x4, x6}, {x3, x6, x8}, {x2, x5, x8}, {x2, x4, x7}}}.
Следовательно, (G) = maxi{|Xi|}=4.
Механизм вычисления неплотности приведен в 3.4.
Число внутренней устойчивости графа G=<X, r>. Наибольшее число попарно несмежных вершин связного графа G формирует число внутренней устойчивости, которое обозначают (G). Для поиска этого числа следует воспользоваться формулой:
xi(q(xi)S=), где xiS, q(xi)– множество вершин смежных вершине xi.
Таких подмножеств в графе G может быть несколько. Выбор из множества {Si} подмножества с наибольшим числом вершин определяет число внутренней устойчивости, т.е.
(G)=maxi{|Si|}.
На рис. 3.14 множества попарно несмежных вершин есть S={{x2, x4, x6, x8}, {x1, x4, x6}, {x3, x6, x8}, {x2, x5, x8}, {x2, x4, x7}}. Следовательно, (G) = maxi{|Si|} =4.
Механизм вычисления внутренней устойчивости см. 3.4.
Число внешней устойчивости графа G=<X, r>. Наименьшее число вершин графа G, смежных со всеми остальными вершинами связного графа, формирует число внешней устойчивости, которое обозначают (G).
Для поиска этого числа следует воспользоваться формулой:
xi(q(xi)Т), где xiX\T, q(xi)– множество вершин смежных вершине xi.
Таких подмножеств в графе G может быть несколько. Выбор из множества {Ti} подмножества с наименьшим числом вершин определяет число внешней устойчивости, т.е.
(G)=mini{|Ti|}.
На рис. 3.14 подмножества вершин, смежных с остальными вершинами графа, есть Т={{x1, x4, x6}, {x1, x5}, {x2, x4, x7}, {x3, x7},{x3, x6, x8},..}.
Следовательно, (G) = min{|Тi|} = 2. Это T={{x1, x5}, {x3, x7}}.
Механизм вычисления внешней устойчивости см. 3.4.