- •Оглавление
- •Глава 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. Логическая схема автомата с “памятью”
- •Вопросы и задачи
- •Литература
- •Предметный указатель
1.6. Алгебра четких множеств
Если подмножества универсального множества U упорядочены отношением (Xi; Xj), то
а) операцию поиска верхней грани двух подмножеств называют объединением, т. е. SupX=(XiXj), где символ “” есть оператор объединения,
b) операцию поиска нижней грани двух подмножеств называют пересечением, т. е. InfX=(XiXj), где символ ”” есть оператор пересечения,
с) операцию поиска элементов универсального множества U, не принадлежащих множеству Xi, называют дополнением, т.е. Xi={x| xXi и xU}, где символ “” есть оператор дополнения.
Множество всех подмножеств универсального множества - U вместе с двумя бинарными операциями и одной унарной представляют алгебру множеств, т. е.
A=<B(U), , , >,
где B(U) – носитель алгебры, а {; ; } - сигнатура алгебры.
1.6.1. Операции над множествами
Для изображения исполнения отдельных операций обозначим прямоугольником универсальное множество U, а внутри него - кругами - подмножества A, B,... Заштрихованная область будет представлять результат исполнения операции. Такое изображение называют кругами Эйлера.
Объединение множеств А и В есть множество, состоящее из всех тех элементов, которые принадлежат хотя бы одному множеству А или В, т.е.
С=(АВ)={x| xA или xB}.
Оператор объединения имеет вид:
С=union(A, B).
Если В=, то АВ=А=А. Если B=U, то АВ=АU=U.
Если АС и ВС, то
АВС.
Операцию объединения можно распространить на произвольное число подмножеств универсального множества U.
Например, если А1, А2, ..Аn U, то А1А2...Аn=i=1n АiU.
Пример: даны множества A={a, b, c}, B={b, c, d, e}.
Найти C= (АВ). Ответ: C={a, b, c, d, e},
т.к. одинаковые элементы множеств записываются в формируемом множестве только один раз.
Пример: даны множества, которым принадлежат подмножества A={{a, b}, c}, B={{b, c, d}, c, d}. Найти C= (АВ).
Ответ: C={{a, b},{b, c, d}, c, d}, т.к. множества {a, b}A, {b, c, d}B.
Пример: даны множества несовместимых кортежей A={(a,b), (b, c)}, B={(b, c), (b, c, d), (c, d)}. Найти C= (АВ).
Ответ: C={(a, b), (b, c), (b, c, d,), (c, d)}.
Пример: даны отображения h1 и h2, представляющие множества совместимых кортежей. Найти h=(h1h2).
Ответ: если все компоненты совместимых кортежей двух отображений имеют одинаковые значения, то формируется один кортеж (y, x1, x2,..xn), при различии значений хотя бы одной компоненты формируются два кортежа (y(1), x1(1), x2(1),..xn(1)) и (y(2), x1(2), x2(2),..xn(2)).
В таблицах приведены результаты исполнения операции объединения.
h1 |
y |
x1 |
x2 |
x3 |
|
h2 |
y |
x1 |
x2 |
x3 |
= |
h |
y |
x1 |
x2 |
x3 |
|
2 |
b |
c |
6 |
|
3 |
c |
e |
2 |
|
2 |
b |
c |
6 |
||
|
3 |
c |
e |
5 |
|
5 |
c |
b |
2 |
|
3 |
c |
e |
5 |
||
|
5 |
c |
b |
2 |
|
4 |
a |
e |
5 |
|
5 |
c |
b |
2 |
||
|
4 |
a |
e |
5 |
|
2 |
a |
e |
6 |
|
4 |
a |
e |
5 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
c |
e |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
a |
e |
6 |
Пример: даны отношения r1 и r2. Найти r=(r1r2).
Особенностью этой операции является исполнение дизъюнции для каждой позиции матриц смежности отношений r1 и r2, т. е.
r(xi, xj)=(r1(xi, xj)r2(xi, xj)).
r1 |
x1 |
x2 |
x3 |
x4 |
|
r2 |
x1 |
x2 |
x3 |
x4 |
|
r |
x1 |
x2 |
x3 |
x4 |
|
x1 |
1 |
0 |
0 |
0 |
|
x1 |
0 |
1 |
1 |
1 |
|
x1 |
1 |
1 |
1 |
1 |
|
x2 |
0 |
1 |
0 |
1 |
|
x2 |
1 |
1 |
0 |
0 |
= |
x2 |
1 |
1 |
0 |
1 |
|
x3 |
1 |
0 |
1 |
0 |
x3 |
0 |
1 |
1 |
0 |
x3 |
1 |
1 |
1 |
0 |
|
||
x4 |
0 |
1 |
1 |
1 |
|
x4 |
0 |
0 |
0 |
0 |
|
x4 |
0 |
1 |
1 |
1 |
|
Пересечение множеств А и В есть множество, состоящее из всех элементов, которые принадлежат множеству А и множеству В: С=(АВ)={x|xA и xB}.
Операторная запись имеет вид: С=intersection(A, B).
Если В=, то А=.
Если B=U, то АU=А.
Если СА и СВ, то САВ.
Операцию пересечения можно раcпространить на произвольное число под- множеств универсального множества U.
Например, если А1,...Аn U,
то А1А2... Аn=
i=1n АiU.
Пример: даны множества A={a, b, c} и B={b, c, d, e}.
Найти C= (АВ). Ответ: C={b, c}, т. к. b, cA и B.
Пример: даны множества A и B, которым принадлежат подмножества A={{a, b}, c}, B={{b, c, d}, c, d}. Найти C= (АВ).
Ответ: C={c}, т. к. {a, b}B и {b, c, d}, dA.
Пример: даны множества несовместимых кортежей A={(a, b), (b, c)}, B={(b, c), (b, c, d), (c, d)}. Найти C= (АВ).
Ответ: C={(b, c)}, т. к. кортежи (a, b)B, (b, c, d), (с, d)A.
Пример: даны отображения h1 и h2. Найти h=(h1h2).
Ответ: в таблицах приведены результаты исполнения операции пересечения двух отображений.
h1 |
y |
x1 |
x2 |
x3 |
|
h2 |
y |
x1 |
x2 |
x3 |
|
h |
y |
x1 |
x2 |
x3 |
|
2 |
b |
c |
6 |
|
3 |
c |
e |
2 |
= |
|
5 |
c |
b |
2 |
|
|
3 |
c |
e |
5 |
|
5 |
c |
b |
2 |
|
4 |
a |
e |
5 |
||
|
5 |
c |
b |
2 |
|
4 |
a |
e |
5 |
|
|
|
|
|
||
|
4 |
a |
e |
5 |
|
2 |
a |
e |
6 |
|
|
|
|
|
Пример: даны отношения r1 и r2. Найти r=(r1r2).
Особенностью этой операции является исполнение конъюнкции для каждой позиции матриц смежности отношений r1 и r2, т. е. r(xi, xj)=r1(xi, xj)r2(xi, xj).
В таблице приведены результаты исполнения операции пересечения.
r1 |
x1 |
x2 |
x3 |
x4 |
|
r2 |
x1 |
x2 |
x3 |
x4 |
|
r |
x1 |
x2 |
x3 |
x4 |
x1 |
1 |
0 |
0 |
0 |
|
x1 |
1 |
1 |
1 |
1 |
|
x1 |
1 |
0 |
0 |
0 |
x2 |
0 |
1 |
0 |
1 |
|
x2 |
1 |
1 |
0 |
0 |
= |
x2 |
0 |
1 |
0 |
0 |
x3 |
1 |
0 |
1 |
0 |
x3 |
0 |
1 |
1 |
0 |
x3 |
0 |
0 |
1 |
0 |
||
x4 |
0 |
1 |
1 |
1 |
|
x4 |
0 |
0 |
0 |
1 |
|
x4 |
0 |
0 |
0 |
1 |
Дополнение множества А есть множество, состоящее из всех тех элементов, которые принадлежат универсальному множеству U и не принадлежат множеству А, т.е.
А={x| xU и xA} Операторная запись дополнения имеет вид: А=complement(A).
Если существует А, то
АА=,
АА=U и
(А)=А..
Пример: дано множество A={a, b, c} и универсальное множество U={a, b, c, d, e, f}. Найти C=А.. Ответ: C={d, e, f}.
Пример: дано множество A={{a, b}, c} и универсальное множество U={a, b, {a, b}, c, {d, e}, f}. Найти C=А.
Ответ:C={a, b, {d, e}, f}.
Пример: дано отображение h. Найти h.
-
h
Y
a1
a2
a3
a1
X1
c2
c1
c1
c2
X2
d3
d1
d2
d1
Для поиска h необходимо найти множество кортежей, совместимых с кортежами h, но отличающихся значением хотя бы одной компонентой. Для этого определяют число элементов n области определения отображения (домен h) и число компонент кортежа k.
Тогда |h|=n(n-1)(n-2)..(n-k+1) -|h|.
Если значения компонент кортежей не выходят за пределы своего атрибута, т. е. |Y|=3, |X1|=2, |X2|=3, то |h |=323 – 4=14.
В таблице представлены результаты вычисления кортежей отображения h для этого случая.
h
Y |
a1 |
a1 |
a1 |
a1 |
a2 |
a2 |
a2 |
a2 |
a2 |
a3 |
a3 |
a3 |
a3 |
a3 |
X1 |
c1 |
c1 |
c1 |
c2 |
c1 |
c1 |
c2 |
c2 |
c2 |
c1 |
c1 |
c2 |
c2 |
c2 |
X2 |
d1 |
d2 |
d3 |
d2 |
d2 |
d3 |
d1 |
d2 |
d3 |
d1 |
d3 |
d1 |
d2 |
d3 |
Примечание: таблица размещена горизонтально.
Пример: дано отношение r. Найти r.
Согласно правилу:
Ответ: в матрицах смежности r и r приведены результаты исполнения этой операции.
-
r
x1
x2
x3
x4
r
x1
x2
x3
x4
x1
0
1
1
1
x1
1
0
0
0
x2
1
0
1
0
x2
0
1
0
1
x3
0
1
0
1
x3
1
0
1
0
x4
1
0
0
0
x4
0
1
1
1
Операции дополнения, пересечения и объединения формируют две дополнительные операции: разности и симметрической разности.
Разность множеств А и В есть множество, состоящее из всех тех элементов, которые принадлежат множеству А и не принадлежат множеству В, т.е. С=(А\В)={x| xА и xВ},
где “\” - символ разности.
Оператор разности имеет вид: С=difference(A, B).
Очевидно, что С=(А\В)=(А(В)).
Пример: даны множества A={a, b, c} и B={b, c, d, e}.
Найти C= (А\В).
Ответ: C={a}, т.к. элементы b, сB.
Пример: даны множества A={{a, b}, c} и B={{b, c, d}, c, d}.
Найти C= (А\В).
Ответ: C={a, b}, т.к. элемент сB.
Пример: даны множества A={(a,b), (b, c)} и B={(b, c), (b, c, d),
(c, d)}. Найти C= (АВ).
Ответ: C={(a, b)}, т. к. кортеж (b, c)B.
Пример: даны отображения h1 и h2. Найти h=(h1\h2).
Ответ: в таблицах приведены результаты исполнения этой операции.
h1 |
y |
x1 |
x2 |
x3 |
\\ |
h2 |
y |
x1 |
x2 |
x3 |
= |
h |
y |
x1 |
x2 |
x3 |
|
2 |
b |
c |
6 |
|
3 |
c |
e |
2 |
|
2 |
b |
c |
6 |
||
|
3 |
c |
e |
5 |
|
5 |
c |
b |
2 |
|
3 |
c |
e |
5 |
||
|
5 |
c |
b |
2 |
|
4 |
a |
e |
5 |
|
|
|||||
|
4 |
a |
e |
5 |
|
2 |
a |
e |
6 |
|
|
Пример: даны отношения r1 и r2. Найти r=(r1\r2).
Ответ: особенность исполнения этой операции состоит в том, что r(xi, xj)=(r1(xi, xj)r2(xi, xj)). Следовательно, необходимо найти r2 и выполнить операцию пересечения r1 и r2. В таблицах приведены результаты исполнения этой операции.
-
r1
x1
x2
x3
x4
r2
x1
x2
x3
x4
r
x1
x2
x3
x4
x1
1
0
0
0
x1
0
1
1
1
x1
1
0
0
0
x2
0
1
0
1
\
x2
1
1
0
0
=
x2
0
0
0
1
x3
1
0
1
0
x3
0
1
1
0
x3
1
0
0
0
x4
0
1
1
1
x4
0
0
0
0
x4
0
1
1
1
С имметрическая разность множеств А и В есть множество, состоящее из всех тех элементов, которые принадлежат разности (А\В) или (В\А), т. е.
С=(АВ)=(АВ)(ВА) .
Оператор симметрической разности имеет вид:
С:=union(difference(A, B), difference(B, A)).
Если А=В, то (АВ)=(АВ)(ВА)=.
Пример: даны множества A={a, b, c} и B={b, c, d, e}.
Найти C= (АВ).
Ответ: C={a, d, e}, т.к. b, сA и b, сB.
Пример: даны множества A={{a, b}, c} и B={{b, c, d}, c, d}.
Найти C= (АВ).
Ответ: C={{a, b}, {b, c, d}, d} т.к. сA и сB.
Пример: даны множества A={(a,b), (b, c)} и B={(b, c), (b, c, d),
(c, d)}. Найти C= (АВ).
Ответ: C={(a, b), (b, c, d), (c, d)}, т. к. (b, c)A и (b, c)B.
Пример: даны отображения h1 и h2. Найти h=(h1h2).
Ответ: в таблицах приведены результаты этой операции.
h1 |
y |
x1 |
x2 |
x3 |
|
h2 |
y |
x1 |
x2 |
x3 |
= |
h |
y |
x1 |
x2 |
x3 |
|
2 |
b |
c |
6 |
|
3 |
c |
e |
2 |
|
2 |
b |
c |
6 |
||
|
3 |
c |
e |
5 |
|
5 |
c |
b |
2 |
|
3 |
c |
e |
5 |
||
|
5 |
c |
b |
2 |
|
4 |
a |
e |
5 |
|
3 |
c |
e |
2 |
||
|
4 |
a |
e |
5 |
|
2 |
a |
e |
6 |
|
2 |
a |
e |
6 |
Пример: даны отношения r1 и r2. Найти r=(r1r2).
Ответ: особенность исполнения этой операции состоит в том, что
r(xi, xj)=(r1(xi, xj) r2(xi, xj))r2(xi, xj) r1(xi, xj).
В таблицах приведены результаты исполнения этой операции.
-
r1
x1
x2
x3
x4
r2
x1
x2
x3
x4
r
x1
x2
x3
x4
x1
1
0
0
0
x1
0
1
1
1
x1
1
1
1
1
x2
0
1
0
1
x2
1
1
0
0
=
x2
1
0
0
1
x3
1
0
1
0
x3
0
1
1
0
x3
1
1
0
0
x4
0
1
1
1
x4
0
0
0
0
x4
0
1
1
1