- •Оглавление
- •Глава 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. Логическая схема автомата с “памятью”
- •Вопросы и задачи
- •Литература
- •Предметный указатель
4.2.1.1. Законы алгебры предикатов
Имя закона |
Равносильные формулы Fi=Fj |
Коммутатив- ности
|
xy(F(x; y))=yx(F(x; y))*); xy(F(x; y))=yx(F(x; y))*). *) только для одноименным кванторов. |
Дистрибутив-ности |
x(F1(x))x(F2(x))=x(F1(x)F2(x))*); x(F1(x))x(F2(x))=x(F1(x)F2(x))**); *) только для логической связки “” формул с кванторами по одной переменной x. **) только для логической связки “” формул с кванторами по одной переменной x. |
Идемпотент-ности
|
x(F(x)) x(F(x))= x(F(x)); x(F(x))x(F(x))= x(F(x)), для {;}. |
Исключенно-го третьего |
x(F(x))x(F(x))=и, для {;} |
Противоречия |
x(F(x))x(F(x))=л, для {;} |
де Моргана |
x(F(x))=x(F(x)); x(F(x))=x(F(x)) |
Дополнения |
(x(F(x)))= x(F(x)), для {;} |
4.2.1.2. Предваренная нормальная форма формулы
Для удобства анализа сложных формул рекомендуется преобразовывать ее к нормальной форме. Если в алгебре высказываний приняты две нормальные формы ДНФ и КНФ, то в алгебре предикатов - одна предваренная нормальная форма (ПНФ), суть которой сводится к разделению формулы на две части: кванторную и бескванторную. Для этого кванторы формулы выносят влево по определенным правилам алгебры предикатов.
В результате таких преобразований может быть получена формула вида: x1 x2 xn(M), где {; } , а М – матрица формулы. Кванторную часть формулы x1 x2 xn иногда называют префиксом формулы.
Затем матрицу формулы преобразуют к виду КНФ для использования принципа резолюции.
Алгоритм приведения формулы к виду ПНФ:
Шаг 1: исключить всюду логические связки и :
(F1F2)=(F1F2) (F2F1)=(F1F2)(F2F1);
(F1F2)=( F1F2);
Шаг 2: продвинуть отрицание до элементарной формулы:
x(F)=x(F); (F1F2)=(F1F2);
x(F)=x(F);. (F1F2)=(F1F2);
Шаг 3: переименовать связанные переменные:
найти самое левое вхождение предметной переменной – такое, что это вхождение связано некоторым квантором, но существует еще одно вхождение этой же переменной; затем сделать замену связанного вхождения на вхождение новой переменной. Операцию повторять пока возможна замена связанных переменных;
Шаг 4: вынести кванторы влево;
Шаг 5: преобразовать бескванторную матрицу к виду КНФ.
Алгоритм приведения матрицы формулы к виду КНФ приведен в алгебре высказываний.
Пример: F=x1x2(P1(х1)x3 (P2(х1, x3)P3(x2, x3))).
выполнить отрицание формулы:
F=x1x2(P1(х1)x3(P2(х1, x3)P3(x2, x3)));
выполнить отрицание формулы:
F=x1x2(P1(х1)x3 (P2(х1, x3)P3(x2, x3)));
удалить логическую связку “”:
F=x1x2(P1(х1)x3(P2(х1; x3)P3(x2; x3)));
выполнить отрицание формулы:
F=x1x2(P1(х1)x3(P2(х1; x3)P3(x2; x3)));
выполнить отрицание формулы:
F=x1x2(P1(х1) x3(P2(х1; x3)P3(x2;x3)));
выполнить отрицание формулы:
F=x1x2(P1(х1) x3(P2(х1; x3)P3(x2;x3)));
перенести квантор x3 влево:
F=x1x2x3 (P1(х1)P2(х1; x3)P3(x2;x3)).
Матрица ПНФ содержит три элементарных дизъюнкта:
K={ P1(х1); P2(х1; x3); P3(x2;x3)).
Пример: F=(x(P1 (х)y(P2 (y)P3 (z))))(y(P4 (x; y)P5.(z))).
удалить логические связки “”:
F=(x(P1 (х)y( P2 (y)P3 (z))))(y( P4 (x; y)P5.(z)));
применить закон де Моргана x( F(x))=x( F(x)):
F=(x(P1.(х)y( P2 (y)P3 (z))))(y(( P4 (x; y)P5.(z)));
применить закон де Моргана (F1F2)=(F1F2):
F=x(P1.(х)y( P2 (y)P3 (z)))(y(P4 (x; y)(P5.(z))));
переименовать связанную переменную x=w:
F=w(P1 (w)y( P2 (y)P3 (z)))(y(P4 (x; y)( P5.(z))));
переименовать связанную переменную y=v:
F=w(P1 (w)v(P2 (v)P3 (z)))(y(P4 (x; y)(P5.(z))));
вынести квантор v влево:
F=wv(P1 (w)P2 (v)P3 (z))(y(P4 (x; y)(P5.(z))));
вынести квантор y влево:
F=wvy(P1 (w)P2 (v)P3 (z))P4 (x; y)P5.(z).
Матрица ПНФ содержит три элементарных дизъюнкта:
K={(P1 (w)P2 (v)P3 (z)); P4 (x; y); P5.(z)}.
Пример: F = x(P1 (х)x(P2 (x)))y(P3.(y)).
удалить логические связки “”:
F=x((P1 (х)x(P2 (x)))(x(P2 (х))P1 (x)))y(P3.(y));
удалить логические связки “”:
F=(x((P1.(х)x(P2 (x)))(x(P2.(х))P1 (x)))y(P3.(y));
применить закон x(F(x))=x(F(x)):
F=x(((P1.(х)x(P2 (x)))(x(P2 (х))P1 (x))))y(P3.(y));
применить закон де Моргана (F1F2)=(F1F2):
F=x(((P1 (х)x(P2 (x)))((x(P2.(х))P1 (x))))y(P3.(y));
применить закон де Моргана (F1F2)=(F1F2):
F=x((P1 (х)(x(P2 (x))))(x(P2 (х))(P1 (x))))y(P3.(y));
применить закон x(F(x))= x (F(x)):
F=x((P1 (х)x(P2.(x)))(x(P2 (х))(P1 (x))))y(P3.(y));
переименовать связанную переменную x=z:
F=z((P1.(z)x( P2 (x)))(x(P2.(х))(P1.(z))))y(P3.(y));
переименовать связанную переменную x=w:
F=z(P1 (z)w(P2 (w))x(P2 (х)P1 (z)))y(P3.(y));
вынести квантор w, x и y влево:
F=zwxy(P1 (z)P2 (w)P2 (х)P1 (z)P3.(y));
преобразовать матрицу к виду КНФ:
F=zwxy((P1 (z)P2 (х)P3.(y))(P2 (w)P2 (х)P3.(y)) (P2 (w)P1 (z)P3.(y))).
Матрица ПНФ содержит три элементарных дизъюнкта:
K={(P1(z)P2(х)P3.(y)); (P2 (w)P2 (х)P3.(y)); (P2 (w)P1 (z)P3.(y))}.