
- •1.1 Множества и отношения
- •1.2 Сравнение множеств
- •1.3 Операции над множествами
- •1.4 Диаграммы Эйлера-Венна
- •1.5 Табличный способ задания множеств
- •1.6 Свойства операций над множествами
- •1.7 Отношения
- •1.8 Специальные бинарные отношения
- •2.1 Высказывания
- •2.2 Логические связки (операции) над высказываниями.
- •2.3 Пропозициональные формулы
- •2.4 Булевы функции. Таблицы истинности.
- •2.5 Булевы функции одной переменной
- •2.6 Булевы функции двух переменных
- •2.7 Существенные и несущественные переменные
- •2.8 Равносильные формулы. Основные равносильности
- •2.9 Основные тавтологии
- •2.10 Основные равносильности
- •2.11 Понятие двойственной функции
- •2.12 Некоторые двойственные функции
- •2.13 Элементарные канонические формы
- •2.14 Нормальные формы формул
- •2.15 Приведение формул к нормальным формам
- •2.16 Минимизация д.Н.Ф.
- •2.17 Полные системы функций. Полином Жегалкина
- •2.18 Функционально замкнутые классы функций
- •3.1 Основные понятия и определения
- •3.2 Смежность, инцидентность, степени
- •3.3 Способы задания графов
- •3.4 Подграфы. Операции на графах
- •3.5 Связность. Компоненты связности. Маршруты и пути.
- •3.6 Эйлеровы и гамильтоновы графы.
- •3.7 Деревья и леса.
- •3.8 Цикломатическое число графа. Построение
- •4.1 Понятие конечного детерминированного автомата
- •4.2 Способы задания автоматов.
- •4.3 Эквивалентные состояния. Минимизация к.Д.А.
- •4.4 Алгоритм минимизации конечного автомата.
- •4.5 Каноническая таблица. Канонические уравнения.
- •4.6 Функциональные и логические элементы. Проектирование дискретных устройств.
2.15 Приведение формул к нормальным формам
Любую логическую формулу (кроме 0) можно привести к С.Д.Н.Ф. следующим образом:
Все не булевские операции заменить на булевские (&, , ) c помощью равносильностей:
;
;
;
;
.
Все отрицания "спустить" до переменных с помощью законов де Моргана.
Раскрыть скобки (дистрибутивность, ассоциативность).
Удалить лишние конъюнкции, повторения переменных в конъюнкциях и константы.
Для приведения к С.Д.Н.Ф:
Расщепить те конъюнкции, которые содержат не все переменные.
2.16 Минимизация д.Н.Ф.
Д.Н.Ф, содержащую минимальное число вхождений переменных, будем считать минимальной.
Приведем 2 наиболее простых метода минимизации Д.Н.Ф. функции:
Группировка: элементарные конъюнкции
,
в ДНФ группируются в пары так, что после вынесения за скобку общего множителя K подформула
имела вид
или
. Далее заменяем на эквивалентную ей конъюнкцию K.
Пример:
.
Метод Блейка состоит в применении двух правил:
а) обобщенное
склеивание –
первое правило. С помощью формулы
производим
операцию обобщенного склеивания в
Д.Н.Ф. пока это возможно. Для этого в
Д.Н.Ф. отыскиваем подформулы вида
и
добавляем к ним
.
На этом этапе формула усложняется.
б) поглощение – второе правило. Оно основано на равенстве
.
Находим в Д.Н.Ф. конъюнкции с минимальным числом сомножителей и все конъюнкции, их содержащие, вычеркиваем.
Пример:
.
Разумно в Д.Н.Ф. сначала применить метод группировки (как более простой), а затем метод Блейка.
2.17 Полные системы функций. Полином Жегалкина
Определение. Множество булевых функций называется полной системой, если любая булева функция может быть выражена через функции этого множества с помощью суперпозиции. Минимальная полная система называется базисом.
Примеры базисов:
—
дизъюнктивный
базис;
—
конъюнктивный
базис;
—
базис
Жегалкина;
—
базис
Пирса;
—
базис
Шеффера.
Определение Логическая
функция, представленная
над базисом
называется многочленом
Жегалкина. Он
имеет вид:
,
где
константы
.
2.18 Функционально замкнутые классы функций
Ведем следующие классы Поста:
=
–
Класс функций,
сохраняющих 0.
=
–
Класс функций,
сохраняющих 1.
=
–
Класс самодвойственных функций.
=
–
Класс линейных функций.
=
–
Класс монотонных функций.
Каждый класс Поста является функционально замкнутым, т.е. все функции, реализованные формулами над данным классом, также принадлежат данному классу.
Таблица принадлежности функциональным классам основных булевых функций:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Теорема. (Теорема
Поста.)
Для того, чтобы система булевых
функций
была
полной, необходимо и достаточно, чтобы
для каждого из классов
,
,
,
,
нашлась
функция
из
системы, не принадлежащая данному
классу.