- •Оглавление
- •Глава 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. Алгебра предикатов
Множество T={T1, T2, T3, T4}, включающее множества предметных переменных Т1= {x, y, z,..}, предметных постоянных Т2= {a, b, c,...}, функциональных символов Т3={f1, f2, f3,...} и предикатных символов Т4=(P1, P2, P3,...} с заданными операциями F={; ; ; ; ; ; } формируют алгебру предикатов, т.е.
Aп=<T; F>.
Любую предметную переменную и предметную постоянную в алгебре предикатов называют термом и обозначают символом ti.
Если fi - функциональный символ и t1, t2,..tn - термы, то fi(t1, t2,..tn) также есть терм, где n –число аргументов функции, i –индекс функции.
Никаких иных термов нет.
Если Pi –предикатный символ и t1, t2,..tn - термы, то F= Pi(t1, t2,..tn ) - элементарная формула.
Если F1 и F2 формулы, то (F1 ); (F1 F2); (F1F2); (F1F2 );(F1F2 ) также формулы.
Если F формула, a x - предметная переменная, входящая в атомы формулы F, то x(F) и x(F) также формулы.
Никаких иных формул нет.
Для формирования сложных формул используют вспомогательные символы “(“ и “)”.
Простейшими операциями так же, как в исчислении высказываний, являются отрицание, конъюнкция, дизъюнкция, импликация и эквиваленция.
Отрицание (F(t1; t2; tn)) есть одноместная операция, посредством которой из данной формулы F(t1; t2; tn) получают ее отрицание.
Пример: если Р2 (х; a):= "х находится на a" и a=”стол”, то выводимы формулы:
а) x( Р2 (х; a)):= "для всех х верно, что х не находится на a “;
b) x( Р2 (х; a)):= "не для каждого х верно, что х находится на a”;
c) x( Р2 (х; a)):= “не существует х, для которого верно, что х находится на a”.
Конъюнкция (F1(t11; t12; ..t1n)F2(t21; t22;..t2n)) есть двуместная операция, посредством которой из формул F1 и F2 получают новую формулу F (t11; t12; t1n; t21; t22; t2n ) с числом предметных переменных и постоянных, равным объединенному числу их в исходных формулах. Значение формулы истинно тогда и только тогда, когда истинны обе формулы F1 и F2.
Пример: если P1(х):=“выдающийся музыкант” и
P2(х):= "талантливый писатель”, то выводимы формулы:
а) x(P1(х))x(P2(х)):= ”существуют выдающиеся музыканты и существуют талантливые писатели";
b) x(P1(х)P2(х)):= ”существуют лица, являющиеся талантливыми писателями и выдающимися музыкантами”.
Пример: если х - предметная переменная (индивид), ‘a’ - предметная постоянная (например, Саша) и P1 (х; a):=”х дружит с ‘a’”, P2. (х; a):=“х встретил ’a’ ”, то выводимы формулы :
а) x(P1.(х; a)P2.(х; a)):= “Саша встретил друга”;
b) x( P1.(х; a)P2.(х; a)):=“Саша встретил недруга”;
c) x(P1.(х; a)P2.(х; a)):= “не каждый встречный есть друг Саши”;
d) x(P1.(х; a)(P2.(х; a))):= “есть друзья, с которыми Саша не встречается”.
Дизъюнкция (F1(t11; t12; ..t1n)F2(t21; t22; ..t2n)) есть двуместная операция, посредством которой из формул F1 и F2 получают новую формулу F (t11; t12; t1n; t21; t22; t2n ) с числом предметных переменных и постоянных, равным объединенному числу их в исходных формулах. Значение формулы ложно тогда и только тогда, когда ложны обе формулы F1 и F2.
Пример: если предметные переменные х, у - города России и P21.(х; y):= “переезд из х в у поездом”; P22.(х;y):= “переезд из х в у самолетом”; P23.(х; y):= “переезд из х в у автобусом”, то выводимы формулы:
a) xy(P21.(х; y)P22.(х; y)P23.(х; y)):= “для всех городов России возможен переезд поездом, автобусом или самолетом”;
b) xy(P21. (х; y) P22. (х; y) P23. (х; y)) - "не для всех городов x существуют города y, между которыми невозможен переезд автобусом или самолетом, но возможен поездом”.
Импликация (F1(t11; t12;..t1n)F2(t21; t22;..t2n)) есть двухместная операция, посредством которой из формул F1и F2 получают новую формулу F(t11; t12;..t1n; t21; t22;..t2n ) с числом предметных переменных и постоянных, равным объединенному числу их в исходных формулах. Значение формулы ложно тогда и только тогда, когда F1 истинно, а F2 - ложно.
Пример: если х - предметные переменные для индивида, P1(x):= "быть судьей", P2(x):= "быть юристом", то выводимы формулы:
a) x(P1(x)P2(x)):= "все судьи - юристы";
b) x(P2(x)P1(x)):= "неверно, что все юристы - судьи",
Пример: если х-предметная переменная для индивида и P1(x):="x принадлежит к большинству", а P2(x):= "x стремится к миру", то выводима формула:
x(P1(x)P2(x))x(P1(x)P2(x)):= “большинство людей стремится к миру".
Эквиваленция (F1(t11;t12;..t1n)F2(t21; t22;..t2n)) есть двуместная операция, посредством которой из формул F1 и F2 получают новую формулу F (t11; t12; t1n; t21; t22; t2n ) c числом предметных переменных и постоянных, равным объединенному числу их в исходных формулах. Значение формулы истинно тогда и только тогда, когда обе формулы F1 и F2 имеют одно и то же значение истины или лжи.
Пример: если х - предметная переменная, Р(х) - предикат, то выводимы формула x(P(x))x(P(x)):= формула: "существует переменная х, для которой Р(х) истинно” эквивалентна формуле: “не для всех х Р(х) ложно".
Рассмотренные логические операции позволяют формализовать с помощью термов, предикатов и кванторов внутреннюю структуру предложения и формировать сложные суждения.
Пример: дано cуждение “некоторые действительные числа являются рациональными”. В этом суждении есть два предиката P1(x):=”x - действительное число” и P2(x):=”x - рациональное число”. Тогда формула этого суждения должна быть записана так: F=x(P1(x)P2(x)).
Ошибочными являются эквивалентные формулы F=x(P1(x)P2(x)) и F=x(P1(x)P2(x)), так как первое суждение ”некоторые числа, если они действительные, то они рациональные”, не эквивалентно суждению “некоторые числа не являются действительными или являются рациональными”.
Пример: cуждение “Некоторые республиканцы любят всех демократов. Ни один республиканец не любит ни одного социалиста. Следовательно, ни один демократ не является социалистом”.
В этом суждении три одноместных предиката P1(x):=”быть республиканцем”, P2(x):=”быть демократом”, P3(x):=”быть социалистом” и один двухместный предикат P24(x; y):=”x любит y”.
Формула сложного суждения должна быть записана так:
x (P1(x)y(P2(y)P24(x; y))); x(P1(x)y(P3(y)P24(x; y)))
x(P2(x)P3(x)).
Пример: cуждение “Ни один торговец наркотиками не является наркоманом. Некоторые наркоманы привлекались к ответственности. Следовательно, некоторые люди, привлекавшиеся к ответственности, не являются торговцами наркотиков”.
В этом суждении три предиката P1(x):=”быть торговцем наркотиков”, P2(x):=”быть наркоманом”, P3(x):=”привлекаться к ответственности ”.
Формула сложного суждения должна быть записана так:
x(P1(x)&P2(x)); x(P2(x) P3(y))
x(P3(x)P1(x)).
Приведенные примеры позволяют сформулировать некоторые правила записи сложных суждений:
каждое вхождение логической связки “” относится к формуле, следующей непосредственно за логической связкой справа;
каждое вхождение логических связок “” или “” после расстановки скобок связывает формулы, непосредственно окружающие логическую связку;
логические связки по силе могут быть упорядочены так: ; ; ; ; .
за квантором общности чаще всего следует логическая связка импликации, а за квантором существования - конъюнкции;
если формула содержит подформулу, то последняя не должна содержать кванторов, связывающих ту же переменную, что и квантор формулы;
значения всех предметных переменных и постоянных должны принадлежать одной области определения предиката или функции;
если в одной формуле есть кванторы всеобщности и существования, то при формализации суждений следует стремиться поставить квантор существования слева от всей формулы.
формулы называют равносильными, если при любых подстановках предметных постоянных они принимают одинаковое значение. Если две формулы F1 и F2 равносильны, т. е F1=F2, то они эквивалентны.
если формула F имеет вхождением подформулу Fi , т.е. F(t1; t2;...;Fi;…), и для Fi существует эквивалентная формула Fj, то возможна подстановка всюду в формулу F вместо формулы Fi формулы Fj без нарушения истинности формулы, т.е.
F( t1; t2;; Fi; ) = F( t1; t2;; Fj; ).