- •1.3.6. Экстремальные характеристики отношения
- •3.2.3. Связь между исчислением высказываний и алгеброй
- •3.2.4. Основные результаты исследования исчисления
- •Предисловие
- •1.1. Понятие компьютинга и дискретной математики
- •1.2. Теория множеств
- •1.2.1. Основные понятия теории множеств
- •1.2.2. Способы задания множеств
- •1.2.3. Операции над множествами
- •1.2.4. Свойства операций над множествами
- •1.2.5. Аксиоматика теории множеств
- •1.3. Бинарные отношения и их свойства
- •1.3.1. Декартово произведение и бинарное отношение
- •1.3.2. Функции и операции
- •1.3.3. Способы задания бинарных отношений
- •1.3.4. Свойства бинарных отношений
- •1.3.5. Типы бинарных отношений
- •1.3.7. Отношение толерантности
- •1.3.8. Операции над отношениями
- •Контрольные вопросы и задания
- •2.1. Фундаментальные алгебры
- •2.2. Алгебра высказываний
- •2.3. Формализация логических высказываний
- •2.4. Таблицы истинности сложных высказываний
- •2.5. Равносильности алгебры высказываний
- •2.6. Булевы функции
- •2.7. Формы представления логических функций
- •2.7.1. Дизъюнктивные нормальные формы
- •2.7.2. Конъюнктивные нормальные формы
- •2.8.1. Законы алгебры Буля
- •2.8.2. Упрощение логических функций
- •2.8.3. Метод Квайна – МакКласки
- •2.9.1. Теорема о полноте системы булевых функций
- •2.10. Построение логических схем
- •Контрольные вопросы и задания
- •Глава 3. Формальные теории
- •3.1. Основные свойства формальных теорий
- •3.1.1. Выводимость
- •3.1.2. Интерпретация
- •3.1.3. Разрешимость
- •3.1.4. Общезначимость
- •3.1.5. Непротиворечивость
- •3.1.6. Полнота
- •3.1.7. Независимость
- •3.2. Исчисление высказываний
- •3.2.1. Интерпретация
- •3.2.2. Правило подстановки
- •3.2.3. Связь между исчислением высказываний
- •3.2.5. Другие формализации исчисления высказываний
- •3.3. Исчисление предикатов
- •3.3.2. Кванторные операции над предикатами
- •3.3.3. Формальное определение исчисления предикатов
- •Контрольные вопросы и задания
- •4.1. Прямые доказательства
- •4.1.1. Правило подстановки
- •4.1.2. Правило вывода
- •4.1.3. Дедукция
- •4.1.4. Математическая индукция
- •4.2. Косвенные доказательства
- •4.2.1. Доказательство «от противного»
- •4.2.2. Доказательство через контрпример
- •Контрольные вопросы и задания
- •Глава 5. Основы комбинаторики
- •5.1. Правила суммы и произведения
- •5.2. Перестановки
- •5.3. Размещения и сочетания
- •5.4. Разбиения
- •5.5. Формула включений и исключений
- •5.6. Рекуррентные соотношения
- •5.7. Производящие функции
- •5.8. Числа Стирлинга второго и первого рода
- •Контрольные вопросы и задания
- •Глава 6. Основы теории графов
- •6.1. Основные понятия
- •6.1.1. Классификация графов
- •6.1.2. Способы задания графов
- •6.2. Операции над графами
- •6.2.1. Удаление вершин и ребер
- •6.2.2. Дополнение
- •6.2.3. Объединение графов
- •6.2.4. Сложение графов
- •6.2.5. Произведение графов
- •6.3. Связность в графах
- •6.3.1. Компоненты связности
- •6.3.2. Вершинная и реберная связность
- •6.3.3. Сильная связность в графах
- •6.4. Цикломатика графов
- •6.4.1. Ациклические графы
- •6.4.2. Базисные циклы и цикломатическое число
- •6.4.3. Базисные разрезы и ранг
- •6.4.4. Эйлеровы графы
- •6.4.5. Гамильтоновы графы
- •6.5. Диаметр графа
- •6.5.1. Основные определения
- •6.5.2. Алгоритм нахождения диаметра
- •6.5.3. Поиск диаметра при операциях над графами
- •6.6. Устойчивость графов
- •6.6.1. Внутренняя устойчивость
- •6.6.1. Внешняя устойчивость
- •6.7. Хроматика графов
- •6.7.1. Хроматическое число
- •6.7.3. Двудольное представление графов
- •6.7.4. Хроматический класс
- •6.8. Преобразование графов
- •6.8.1. Реберные графы
- •6.8.2. Изоморфизм графов
- •6.8.3. Гомеоморфизм графов
- •6.8.4. Автоморфизм графов
- •6.9. Планарность
- •6.9.1. Основные определения
- •6.9.2. Критерии непланарности
- •6.10. Построение графов
- •6.10.1. Преобразование прилагательных в числительные
- •6.10.3. Оценка количества ребер сверху и снизу
- •Контрольные вопросы и задания
- •7.1. Введение в теорию нечетких моделей
- •7.1.1. Принятие решений в условиях неопределенности
- •7.1.2. Основы нечетких моделей
- •7.2. Нечеткие множества. Базовые определения
- •7.2.1. Базовые и нечеткие значения переменных
- •7.2.2. Основные определения
- •7.2.3. Типовые функции принадлежности
- •7.3. Операции над нечеткими множествами
- •7.3.1. Операция «дополнение»
- •7.3.2. Операция «пересечение»
- •7.3.3. Операция «объединение»
- •7.3.4. Операция «включение»
- •7.3.5. Операции «равенство» и «разность»
- •7.3.6. Операция «дизъюнктивная сумма»
- •7.3.7. Операции «концентрирование» и «растяжение»
- •7.3.8. Операция «отрицание»
- •7.3.9. Операция «контрастная интенсивность»
- •7.3.10. Операция «увеличение нечеткости»
- •7.4. Обобщенные нечеткие операторы
- •7.4.1. Треугольные нормы
- •7.4.2. Треугольные конормы
- •7.4.3. Декомпозиция нечетких множеств
- •7.5. Индекс нечеткости
- •7.5.1. Оценка нечеткости через энтропию
- •7.5.2. Метрический подход к оценке нечеткости
- •7.5.3. Аксиоматический подход
- •7.6. Нечеткие бинарные отношения
- •7.6.1. Нечеткие бинарные отношения
- •7.6.2. Свойства нечетких бинарных отношений
- •7.6.3. Операции над нечеткими отношениями
- •7.7. Нечеткие числа
- •7.8. Приближенные рассуждения
- •7.8.1. Нечеткая лингвистическая логика
- •7.8.2. Композиционное правило вывода
- •7.8.3. Правило modus ponens
- •Контрольные вопросы и задания
- •Список литературы
СДНФ = a b c + a b c + a b c +a b c ;
СКНФ = (a + b + c) (a + b + c) ( a + b + c) ( a + b + c) .
2.8.Минимизация булевых функций. Метод Квайна – МакКласки
2.8.1. Законы алгебры Буля
В математической логике определяется специальная алгебра, алгебра Буля, содержащая операции логического умножения, логического сложения и отрицания { ,+, - }, которые позволяет производить тождественные преобразования логических выражений. К этим законам относятся
Закон идемпотентности (одинаковости):
a + a = a, |
a a = a. |
Закон коммутативности: |
|
a + b = b + a, |
a b = b a. |
Закон ассоциативности:
a + (b + c) = (a + b) + c, a (b c) = (a b) c.
Законы дистрибутивности:
-дистрибутивность конъюнкции относительно дизъюнкции:
а(b + c) = a b + a c.
-дистрибутивность дизъюнкции относительно конъюнкции:
а + b c = (a + b) (a + c).
Закон двойного отрицания:
a = a .
Законы де Моргана:
a + b = a b , a b = a + b .
Законы поглощения:
a + a b = a, a (a + b) = a.
Законы, определяющие действия с логическими константами 0 и 1:
67
a + 0 = a |
a + 1 = 1 |
||||
a 0 = 0 |
a 1 = a |
||||
0 = 1 |
|
|
|
|
+ a =1 |
|
a |
||||
1 = 0 |
|
|
|
|
|
|
a a = 0 |
||||
|
|
Правомерность всех рассмотренных выше законов может быть легко доказана, например, с использованием таблиц истинности.
Дополнительные законы алгебры Буля являются следствиями из основных законов и очень полезны при упрощении записи логических функций.
Закон склеивания:
1)a b + a b = b .
Доказательство этого тождества проводится с использованием первого закона дистрибутивности:
a b+ a b =b (a+a) = b 1 = b .
2)(a + b) ( a + b) = b .
Доказательство этого тождества проводится с использованием второго закона дистрибутивности:
(a + b) ( a + b) = a a + b = b .
Закон Блейка–Порецкого:
a + a b = a + b , a + a b = a + b .
Применяя законы действия с логическими константами, идемпотентности и склеивания, данное тождество можно доказать следующим образом:
a+ a b = a 1 + a b = a (b + b) + a b =
= a b + a b + a b = a b + a b + a b + a b = a+b.
Закон свертки логического выражения:
a b+a c+ b c = a b+ a c .
Данное тождество можно доказать, последовательно используя законы работы с логическими константами, дистрибутивности, идемпотентности и склеивания:
a b+ a c + b c =
= a b (c + c) + a c (b + b) + b c (a + a) =
68
=a b c + a b c + a b c + a b c + a b c + a b c =
=(a b c + a b c )+( a b c + a b с) + (a b с+ a b c) =
=a b + a c + a c = a b + a c.
2.8.2. Упрощение логических функций
Для нормальных форм представления функций определено понятие сложности функции, как число первичных термов в таком представлении. Преобразования нормальной формы с целью снижения сложности функции называется упрощением. Для упрощения логических функций используются все законы алгебры логики.
Задача 2.11. Упростить СДНФ функции (a b) c.
Решение. Представим функцию в совершенной дизъюнктивной форме и упростим ее с помощью законов алгебры логики:
СДНФ = a b c + a b c + a b c + a b c + a b c = b c + b c +a b c =
= c +a b c = c +a b.
Задача 2.12. Упростить СДНФ функции (a↓ b) ↓ c.
Решение. Представим функцию в совершенной дизъюнктивной форме и упростим ее с помощью законов алгебры логики:
СДНФ = a b c + a b c + a b c = b c + a c .
Задача 2.13. Упростить СДНФ функции (a b) c .
Решение. Представим функцию в совершенной дизъюнктивной форме и упростим ее с помощью законов алгебры логики:
СДНФ = a b c + a b c .
Дальнейшее упрощение невозможно.
Задача 2.14. Упростить СДНФ функции (a →b) →c .
Решение. Представим функцию в совершенной дизъюнктивной форме и упростим ее с помощью законов алгебры логики:
СДНФ = a b c + a b c + a b c + a b c + a b c + a b c =
= a c + a = a +c.
Задача 2.15. Упростить СДНФ функции a b + a b .
69
Решение. Представим функцию в совершенной дизъюнктивной форме и упростим ее с помощью законов алгебры логики:
СДНФ = a b c + a b c + a b c +a b c = a b + a b .
2.8.3. Метод Квайна – МакКласки
Минимизация логических функций можно проводить с помощью метода Квайна – МакКласски, который состоит из четырех шагов.
1.Представить наборы (конституенты), на которых функция истинна, в виде двоичных эквивалентов;
2.Упорядочить двоичные эквиваленты по ярусам (по числу единиц двоечных эквивалентов) и провести склейку (применить правило склеивания к соответствующим конституентам) наборов в соседних ярусах, получая максимальные интервалы до тех пор, пока это возможно; пометить каждый набор, участвовавший в склейке. Склеиваются только те наборы или интервалы, различие в которых заключается только в значении одного разряда: 001 и 000, 001-
и101-, и т.д.
3.Построить таблицу Квайна, столбцы которой соответствуют двоичным наборам истинности функции, а строки – максимальным интервалам. Если i-й набор покрывается j-м интервалом, то ставим 1 на пересечении соответствующих строки и столбца, в противном случае ставим 0 или ничего;
4.Найти минимальное покрытие таблицы Квайна, состоящее из минимального количества максимальных интервалов, включающих в себя все наборы, на которых функция истинна.
Рассмотрим функцию F1, которая истинна на наборах {1, 3, 5, 7, 11, 13, 15}. Совершенная дизъюнктивная нормальная форма данной функции равна:
СДНФ = x1 x2 x3 x4 + x1 x2 x3 x4 + x1 x2 x3 x4 + +x1 x2 x3 x4 + x1 x2 x3 x4 + x1 x2 x3 x4 + x1 x2 x3 x4 .
Двоичные эквиваленты истинных наборов:
70
1 |
0001 |
3 |
0011 |
5 |
0101 |
7 |
0111 |
11 |
1011 |
13 |
1101 |
15 |
1111 |
Упорядочим двоичные наборы по ярусам и проведем склейки, до тех пор, пока это возможно (табл. 2.7).
Таблица 2.7
|
|
Склеивание элементов |
|||
0001 |
√ √ |
|
00-1 √ |
0--1 |
|
0011 |
√ √ |
|
0-01 √ |
--11 |
|
0101 |
√ √ |
|
-011 √ |
-1-1 |
|
0111 |
√ √ √ |
|
0-11 √ √ |
|
|
1101 |
√ √ |
|
-101 √ |
|
|
1011 |
√ √ |
01-1 |
√ √ |
|
|
1111 |
√ √ √ |
11-1 |
√ |
|
|
|
|
-111 |
√ √ |
|
|
|
|
1-11 |
√ |
|
Затем строим таблицу Квайна (табл. 2.8), в которой наборы 0001, 1101 и 1011 покрываются единственно возможным образом, следовательно, покрывающие их минимальные интервалы называются обязательными и образуют ядро покрытия, так как должны входить в любое покрытие.
В табл. 2.8 соответствующие единицы подчеркнуты, интервалы {0- -1,- -11, -1-1} образуют не только ядро покрытие, но и покрывают всю таблицу Квайна.
Таким образом, мы получили минимальную форму исследуемой функции в виде:
МДНФ = {0 - - 1, - - 1 1, -1-1} = x1 x4 + x3 x4 + x2 x4.
71
Таблица 2.8
|
|
|
Таблица Квайна |
|
|
|
||
|
0001 |
|
|
|
|
|
|
|
|
0011 |
0101 |
0111 |
|
1011 |
1101 |
1111 |
|
0--1 |
1 |
1 |
1 |
1 |
|
|
|
|
--11 |
|
1 |
|
1 |
|
1 |
|
1 |
-1-1 |
|
|
1 |
1 |
|
|
1 |
1 |
Задача 2.16. Найти МДНФ функции
f1 = ( x1 x2 ) (x1 x3 ) x4 .
Решение. Построим таблицу истинности для f1.
x x x x |
4 |
( |
x |
|
x |
) (x |
x |
) x |
4 |
||
1 |
2 |
3 |
1 |
2 |
1 |
3 |
|
||||
0 0 0 0 |
|
0 |
|
|
|
|
|
|
|
||
0 0 0 1 |
|
1 |
|
|
|
|
|
|
|
||
0 0 1 0 |
|
1 |
|
|
|
|
|
|
|
||
0 0 1 1 |
|
1 |
|
|
|
|
|
|
|
||
0 1 0 0 |
|
1 |
|
|
|
|
|
|
|
||
0 1 0 1 |
|
0 |
|
|
|
|
|
|
|
||
0 1 1 0 |
|
0 |
|
|
|
|
|
|
|
||
0 1 1 1 |
|
1 |
|
|
|
|
|
|
|
||
1 0 0 0 |
|
0 |
|
|
|
|
|
|
|
||
1 0 0 1 |
|
1 |
|
|
|
|
|
|
|
||
1 0 1 0 |
|
1 |
|
|
|
|
|
|
|
||
1 0 1 1 |
|
1 |
|
|
|
|
|
|
|
||
1 1 0 0 |
|
0 |
|
|
|
|
|
|
|
||
1 1 0 1 |
|
1 |
|
|
|
|
|
|
|
||
1 1 1 0 |
|
0 |
|
|
|
|
|
|
|
||
1 1 1 1 |
|
1 |
|
|
|
|
|
|
|
Совершенная ДНФ исследуемой функции имеет вид:
СДНФ = x1 x2 x3 x4 + x1 x2 x3 x 4 + x1 x2 x3 x4 + +x1 x2 x3 x4 + x1 x 2 x3 x4 + x1 x2 x3 x4 + x1 x2 x3 x4 +
+x1 x2 x3 x4 + x1 x2 x3 x4 + x1 x2 x3 x4 .
Упорядочим двоичные наборы по ярусам и проведем склейку
(табл. 2.9).
72
Таблица 2.9
|
Склейка для задачи 2.16 |
|||
0001 |
√√ |
00-1 √ |
-0-1 |
|
0010 |
√√ |
-001 √ |
-01- |
|
0100 |
|
001- √ |
--11 |
|
0011 |
√√√√ |
-010 √ |
1--1 |
|
1010 |
√√ |
0-11 √ |
|
|
1001 √√√ |
-011 √√√ |
|
||
0111 √√ |
101- √ |
|
||
1011 |
√√√√ |
10-1 √√ |
|
|
1101 |
√√ |
1-01 |
√ |
|
1111 √√√ |
-111 |
√ |
|
|
|
|
1-11 √√ |
|
|
|
|
11-1 |
√ |
|
В первом столбике присутствует набор, который не участвовал ни в одной склейке – он сам является максимальным интервалом 0100. В третьем столбике к нему добавляется еще четыре макси-
мальных интервала: {-0-1, -01-, --11, 1--1}.
Строим таблицу Квайна (табл. 2.10).
Таблица 2.10
Таблица Квайна для задачи 2.16
|
0001 |
0010 |
0100 |
0011 |
1010 |
1001 |
0111 |
1011 |
1101 |
1111 |
0100 |
|
|
1 |
|
|
|
|
|
|
|
-0-1 |
1 |
|
|
|
|
1 |
|
1 |
1 |
|
-01- |
|
1 |
|
1 |
1 |
|
|
1 |
|
|
--11 |
|
|
|
1 |
|
|
1 |
1 |
|
1 |
1--1 |
|
|
|
|
|
1 |
|
1 |
1 |
1 |
Определим ядро покрытия, в которое войдут обязательные интервалы: {0100, -0-1, -01-, --11}. В данном случае, ядро покрытия покрывает и всю таблицу в целом.
Минимальная дизъюнктивная нормальная форма f1 имеет вид:
МДНФ = x1 x2 x3 x4 + x2 x4 + x2 x3 + x3 x4.
73
Задача 2.17. Найти МДНФ функции f2(x1 x2 x3), которая принимает единичные значения на наборах 0,2,3,6 и 7.
Решение. Построим таблицу истинности для f2.
|
|
|
|
|
|
x1 x2 x3 |
|
|
f2 |
|
|
|
||||
|
|
|
|
|
|
0 0 0 |
|
|
1 |
|
|
|
||||
|
|
|
|
|
|
0 0 1 |
|
|
0 |
|
|
|
||||
|
|
|
|
|
|
0 1 0 |
|
|
1 |
|
|
|
||||
|
|
|
|
|
|
0 1 1 |
|
|
1 |
|
|
|
||||
|
|
|
|
|
|
1 0 0 |
|
|
0 |
|
|
|
||||
|
|
|
|
|
|
1 0 1 |
|
|
0 |
|
|
|
||||
|
|
|
|
|
|
1 1 0 |
|
|
1 |
|
|
|
||||
|
|
|
|
|
|
1 1 1 |
|
|
1 |
|
|
|
||||
СДНФ = |
|
|
|
|
|
+ |
|
x2 |
|
+ |
|
x2 x3 + x1 x2 |
|
+ x1 x2 x3 . |
||
x1 |
x2 |
x3 |
x1 |
x3 |
x1 |
x3 |
Упорядочим двоичные наборы по ярусам и проведем склейку
(табл. 2.11).
Таблица 2.11
Склейка для задачи 2.17
000 |
√√ |
0-0 √ |
--0 |
|
010 |
√√ |
-00 |
√ |
|
100 |
√√ |
-10 |
√ |
|
110 |
√√√ |
1-0 |
√ |
|
111 |
√ |
11- |
|
|
В результате склейки у нас получилось всего два максимальных интервала: {11-, --0}. Без построения таблицы Квайна очевидно, что они образуют минимальное покрытие, так как удаление любого из этих интервалов приведет к потери наборов, на которых функция f2(x1 x2 x3) истинна. МДНФ = x1 x2 + x3.
2.9.Функционально полные системы логических функций
Рассмотрим понятия полноты, или функциональной полноты, для системы логических функций.
74