- •Оглавление
- •Глава 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.1. Алгебра высказываний
Совокупность пропозициональных переменных T={A, B, C,…} и логических операций F={; ; ; ; } формируют алгебру высказываний:
Aв=<T; F>.
Символы логических операций заданы логическими связками:
- отрицание, - конъюнкция, - дизъюнкция, - импликация, - эквиваленция.
Сложное высказывание, которое может быть получено из элементарных высказываний посредством логических связок, называют формулой алгебры логики.
Любая пропозициональная переменная есть элементарная формула, т. е. Ai =Fi.
Если F1 и F2 –формулы, то F1, F2, (F1F2), (F1F2), (F1F2) и (F1F2) также формулы.
Никаких других формул в исчислении высказываний нет.
Значение формулы полностью определяется значениями входящих в нее пропозициональных переменных.
4.1.1.1. Логические операции
Логические операции бывают унарными (или одноместными) и бинарными (или двухместными). Это определяется наличием одного или двух операндов. Результаты логических операций также принадлежат множеству {и; л} и их удобно описывать таблицами истинности.
Отрицание ( F) есть одноместная операция, посредством которой ее значение есть отрицание значения операнда.
В программировании для этого используют оператор NOT: (NOT F) истинно тогда и только тогда, когда F ложно.
F |
F |
Если F - высказывание, то F также высказывание. |
и |
л |
Если F есть высказывание, то (F) также есть высказывание. |
л |
и |
Пример: верно ли, что высказывание “А:=“4 - простое число” истинно?
Нет, “неверно, что 4 –простое число”. Тогда А = и .
Конъюнкция (F1 F2) есть двухместная операция, посредством которой из двух формул F1 и F2 получают новую формулу F =(F1F2), описывающую сложное высказывание.
В программировании для этого используют оператор AND:
(F1_AND_F2) истинно тогда и только тогда, когда истинны значения двух операндов F1 и F2.
.
F1 |
F2 |
F1F2 |
|
Если даны формулы F1, F2,…Fn, то формула F=(F1F2…Fn)=и тогда и только тогда, когда истинны все формулы F1, F2,…Fn.
|
л |
л |
л |
|
|
л |
и |
л |
|
|
и |
л |
л |
|
|
и |
и |
и |
|
Из определения операций коньюнкции и отрицания очевидно, что (FF)=л.
На естественном языке эта операция выражается соединительными словами: “..и..“, “..также..“, “как ..,так..“, “..несмотря на ..“ и др.
Пример: даны высказывания A:="компьютер содержит основной микропроцессор", B:="компьютер содержит оперативную память", C:=”компьютер содержит контроллеры"; D:="компьютер содержит порты ввода - вывода".
Тогда формула F = (A&B&C&D) отражает высказывание "компьютер содержит основной микропроцессор, оперативную память, контроллеры и порты ввода-вывода".
Дизъюнкция (F1F2) есть двухместная операция, посредством которой из двух формул F1 и F2 получают новую формулу F=(F1F2), описывающую сложное высказывание.
В программировании для этого используют оператор OR:
(F1_OR_F2) ложно тогда и только тогда, когда ложны значения двух операндов F1 или F2..
Таблица истинности операции дизъюнкции представлена справа. Из определения операций дизьюнкции и отрицания очевидно, что (FF)=и.
В естественном языке эта операция выражается разъединительными словами “..или..“, “..либо.. “ и т.п..
|
F1 |
F2 |
F1F2 |
Если даны формулы F1, F2,…Fn, то значение формулы F=(F1F2…Fn)=и определяется значением “и” хотя бы одной формулы F1, F2,…или Fn.
|
л |
л |
л |
||
л |
и |
и |
||
и |
л |
и |
||
и |
и |
и |
Следует обратить внимание, что в повседневной речи союз “или” употребляется в двух смыслах: “исключающее или”, когда истинность составного высказывания определяется истинностью только одного из двух или нескольких высказываний, и “не исключающее или”, когда истинность сложного высказывания определяется истинностью хотя бы одного из них.
Пример: даны высказывания A:="в компьютере применяют матричный принтер", B:="в компьютере применяют струйный принтер", C:="в компьютере применяют лазерный принтер"; D:="в компьютере применяют литерный принтер".
Тогда формула F = (ABCD) отражает высказывание " в компьютере применяют матричный, струйный, лазерный или литерный принтеры".
Импликация (F1F2) есть двуместная операция, посредством которой выражают сложное высказывание. Значение этого высказывания
В программировании используют оператор IMPLIES:
(F1 IMPLIES F2) ложно тогда и только тогда, когда истинно F1 и ложно F2..
F1 |
F2 |
F1F2 |
На естественном языке эта операция выражается словами "если ..., то ... ", "тогда ..., когда ... ", "постольку ..., поскольку ... ", "при наличии ..., следует ... ", и т. п.. F1 называют посылкой, а F2 –заключением |
л |
л |
и |
|
л |
и |
и |
|
и |
л |
л |
|
и |
и |
и |
.
Пример: даны высказывания A:="по проводнику протекает электрический ток" и B - "вокруг проводника есть магнитное поле".
Тогда формула F=(AB) отражает высказывание "если по проводнику протекает электрический ток, то вокруг проводника возникает магнитное поле".
Эквиваленция (F1F2) есть двухместная операция, посредством которой из двух формул F1 и F2 получают новую формулу F=(F1F2), описывающую сложное высказывание.
В программировании для этого используют оператор IFF:
(F1__IFF F2) истинно тогда и только тогда, когда оба операнда F1 и F2 имеют одинаковые значения..
F1 |
F2 |
F1F2 |
На естественном языке эквиваленция выражается словами " для того, чтобы.., необходимо и достаточно..", ".. лишь при условии.." и т. п.
|
л |
л |
и |
|
л |
и |
л |
|
и |
л |
л |
|
и |
и |
и |
Пример: даны высказывания A:=“выполнить загрузку в компьютер операционной системы” и B:=“установить в компьютер дискету с записанной операционной системой“.
Тогда формула F=(AB) отображает высказывание “для того, чтобы выполнить загрузку операционной системы в компьютер, необходимо и достаточно установить в компьютер дискету с записанной операционной системой".
Пример: даны высказывания A:=”урожай будет стабильным ежегодно” и B:="выполнены все ирригационные работы".
Тогда формула F=(AB) отображает высказывание "урожай будет ежегодно стабильным тогда и только тогда, когда будут выполнены все ирригационные работы".