- •Оглавление
- •Глава 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.1.2.4. Принцип резолюции
Существует эффективный алгоритм логического вывода - принцип резолюции. Он основан на том, что выводимость формулы В из множества посылок и аксиом F1; F2; F3; . . . Fn равносильна доказательству теоремы
(F1F2F3. . .FnB);
((F1F2F3. . .Fn)B);
(F1F2F3. . .Fn B).
Из последней формулы следует, что заключение В истинно тогда и только тогда, когда формула (F1F2F3...Fn(B))=л. Так как все формулы связаны логической связкой конъюнкции, то это справедливо при значении “л” хотя бы одной из подформул Fi илиB.
Для анализа формулы (F1F2F3. . .FnB) все подформулы Fi иB должны быть приведены к КНФ.
Два дизъюнкта КНФ, содержащие пропозициональные переменные с противоположными знаками формируют третий дизъюнкт - резольвенту, из которой будут исключены контрарные переменные. Многократно применяя эту процедуру к множеству дизъюнктов формулы (F1F2F3...FnB), стремятся получить пустой дизъюнкт. Наличие пустого дизъюнкта свидетельствует о выполнении условия (F1F2F3...FnB)=л. Следовательно, В является выводимой из множества заданных посылок и аксиом.
Алгоритм вывода по принципу резолюции:
Шаг 1: принять отрицание заключения, т.е. В;
Шаг 2: привести все формулы посылок и отрицания заключения к конъюнктивной нормальной форме;
Шаг 3: выписать множество дизъюнктов всех посылок и отрицания заключения: K = {D1; D2; . . . Dk };
Шаг 4: выполнить анализ пар множества K по правилу:
“если существуют дизъюнкты Di и Dj, один из которых (Di) содержит пропозициональную переменную А, а другой (Dj) - контрарную ей переменную А, то соединить эту пару логической связкой дизъюнкции (Di Dj) и сформировать новый дизъюнкт - резольвенту, исключив контрарные литеры А и А; резольвенту включить в множество К,;
Шаг 5: если в результате соединения дизъюнктов, содержащих контрарные предикаты, будет получена пустая резольвента (пустой дизъюнкт) - , то конец (доказательство подтвердило противоречие), иначе включить резольвенту в множество дизъюнктов K и перейти к шагу 4; по закону идемпотентности любой дизъюнкт и любую резольвенту КНФ можно использовать неоднократно.
Пример: доказать истинность заключения
( ABС ); (CD M); ( N DM )
ABN.
ABC=(AB)C=(ABC) – посылка (один дизъюнкт);
CDM=(CD)M=(CDM) –посылка (один дизъюнкт);
NDM=(N)DM=( N D )( N M ) – посылка (два дизъюнкта);
((AB)N)=ABN - отрицание заключения (три однолитерных дизъюнкта);
множество дизъюнктов:
K={(ABC); (CDM); (ND); (NM); A; B;N};
(MN)N=М - резольвента;
множество дизъюнктов:
K1={(ABC); (CDM); (ND); (NM); A; B; M; N};
(CDM)M =(CD) - резольвента;
множество дизъюнктов:
K2={(ABC); (CDM); (ND); (NM);A; B; M;N; (CD)};
(ABC)(CD) =(ABD) – резольвента;
множество дизъюнктов:
K3={(ABC); (CDM); (ND); (NM); A; B; M; N; (CD); (ABD)};
(ABD)A=(BD) - резольвента;
множество дизъюнктов:
K4={(ABC); (CDM); (ND); (NM); A; B; M; N; D; (CD); (ABD)}; (BD) };
(BD)B=D - резольвента;
множество дизъюнктов:
K5={(ABC); (CDM); (ND); (NM); A; B; M; N; D; (CD); (ABD)}; (BD); D};
D(ND)=N - резольвента;
множество дизъюнктов:
K6={(ABC); (CDM); (ND); (NM);A; B; M; N; D; (CD); (ABD)}; (BD); D}; N};
N N = - пустая резольвента.
Для демонстрации удобно использовать граф типа дерево, корнем которого является один из дизъюнктов отрицания заключения, а вершинами – дизъюнкты всех посылок и отрицания заключения. Узлами графа типа дерево являются резольвенты.
Так доказана истинность заключения (ABN).
Пример: доказать истинность заключения
(AB)(CD); (DBM); M
(AC).
(AB)(CD)=(AB)(CD) - посылка;
DBM=(DB)M=(DBM) - посылка;
M - посылка;
( A C ) = A C - отрицание заключения;
множество дизъюнктов:
K ={A; C; M; (AB); (CD); (DBM)};
A(AB)=B - резольвента;
множество дизъюнктов:
K ={A; C; M; (AB); (CD); (DBM); B};
B(DBM)=(DM) - резольвента;
множество дизъюнктов:
K ={A; C; M; (AB); (CD); (DBM); B; (DM)};
(DM)(CD)=(CM) - резольвента;
множество дизъюнктов:
K ={A; C; M; (AB); (CD); (DBM); B; (DM); (CM)};
( CM)M=C - резольвента;
CC= - пустая резольвента.
Так доказана истинность заключения (AC).
П ример: доказать истинность заключения
((АBА B)С); ((ABАB)C)
(CA).
((АBА B)С)= (АC)(BC) - посылка;
(ABАB)C)= (АC)(BC) -посылка;
(CA)=CА – отрицание заключения;
множество дизъюнктов:
K={(АC); (BC); (АC); (BC); C; А };
С(АC)=А – резольвента;
множество дизъюнктов:
K1={(АC); (BC); (АC); (BC); C; А; А };
А(АC)=C – резольвента;
множество дизъюнктов:
K2={(АC); (BC); (АC); (BC); C; А; А };
С(BC)=B –резольвента;
множество дизъюнктов:
K3={(АC); (BC); (АC); (BC); C; А; А ; B };
B(BC)=C – резольвента;
множество дизъюнктов:
K4={(АC); (BC); (АC); (BC); C; А; А;B};
CA=(CA) – резольвента;
множество дизъюнктов:
K5={(АC); (BC); (АC); (BC); C; А; А; B; (CA)};
(CA) (АC)=А – резольвента;
множество дизъюнктов:
K5={(АC); (BC); (АC); (BC); C; А; А; B; (CA)};
(CA) (АC)=А – резольвента;
АA= - пустая резольвента.
Так доказана истинность заключения (CA).
Так как резольвенты включаются в множество дизъюнктов K, то возможно их неоднократное использование в процессе вывода. Многократное использование дизъюнктов оправдано законом идемпотентности, т.к. Di=DiDi...Di.
Достоинством принципа резолюции является то, что при доказательстве истинности заключения применяют только одно правило: поиск и удаление контрарных пропозициональных переменных на множестве дизъюнктов до получения пустой резольвенты.