Минимизация сложных высказываний методом Квайна
Алгоритм:
1. Получить СДНФ.
2. Получить сокращенную ДНФ (СкДНФ), используя следующие равносильности:
- неполное склеивание;
- поглощение.
3. Построить импликантную матрицу, с помощью которой получить МДНФ.
Пример.
1.
- ДНФ
- СДНФ
1 2 3 4 5 6
2. Применяя операции склеивания, получаем СкДНФ.
| 1-2: |
|
| 1-5: |
|
| 2-3: |
|
| 3-4: |
|
| 4-6: |
|
| 5-6: |
|
3. Импликантная матрица
|
|
|
|
|
| |
| + | + | ||||
| + | + | ||||
| + | + | ||||
| + | + | ||||
| + | + | ||||
| + | + |
Выбираем импликанты, которые поглощают все конституенты единицы.


Полные системы функций
1.9.1. Система функций {
}
Теорема. Всякая булева функция порождается некоторой формулой, в которой есть только операции
.
Доказательство. Пусть
некоторая булева функция. Для нее можно поострить таблицу истинности, в которой будет 2n строк. Каждую строку можно представить в виде конъюнкции переменных х1,…хn, куда входит либо
, либо
. Если значение конъюнкции будет равно 1, то всю функцию можно представить в виде дизъюнкции этих конъюнкций.
Пример.

| x | y | f(x,y) |
Получим СДНФ, используя таблицу истинности.
Возникает вопрос: Существуют ли другие системы булевых функций, с помощью которых можно выразить все другие функции?
Замкнутые классы
Пусть
множество булевых функций от n переменных.
Замыканием F ([F]) называется множество всех булевых функций, реализуемых формулами над F.
Множество функций (класс) называется замкнутым, если [F]=F.
Рассмотрим следующие классы функций.
1. Класс функций, сохраняющих 0:
.
2. Класс функций, сохраняющих 1:

3. Класс самодвойственных функций:
, где
.
4. Класс монотонных функций
где
.
5. Класс линейных функций
, где + - означает сложение по модулю 2, а знак конъюнкции опущен.
Теорема. Классы Т0, Т1, Т*, ТМ, TL – замкнуты.
Доказательство. Чтобы доказать, что некоторый класс F замкнут достаточно показать, что, если формула реализована в виде формулы над F, то она принадлежит F.
Рассмотрим доказательство для одного класса функций Т0.
Пусть
и
. Тогда
.
Аналогичные доказательства можно привести для остальных классов.
Функциональная полнота
Класс функций F называется полным, если его замыкание совпадает с Pn:
.
Другими словами, множество функций F образует полную систему, если любая функция реализуема в виде формулы над F.
Теорема.
Пусть заданы две системы функций
и
.
Тогда, если система F – полная и все функции из F реализуемы формулами над G, то система G тоже полная.
Доказательство. Пусть h – произвольная функция,
. Тогда [F]=Pn, следовательно, h реализуема формулой
, базисом которой является F (
). Если выполнить замену подформулы fi на подформулу
в формуле
, то мы получим формулу над G.
Следовательно, функция h реализуется формулой
.
Примеры:
1. Система {
} – полная, т. к. любая логическая операция может быть выражена через дизъюнкцию, конъюнкцию и отрицание;
2. Система {
} – полная, т. к. 
3. Система {
} – полная, т. к. 
4. Система {|} – полная, т. к.
, а {
}и{
} – полные системы.
5. Система {
} – полная, т. к.
Представление логической операции системой{
}называется полиномом Жегалкина. Таким образом, всякая логическая операция представима в виде
где
- сложение по модулю 2, знак · обозначает конъюнкцию,
.
Теорема Поста: Система логических операций полна тогда и только тогда, когда она содержит хотя бы одну функцию, не сохраняющую 0, одну функцию, не сохраняющую 1, хотя бы одну несамодвойственную функцию, хотя бы одну нелинейную функцию и хотя бы одну немонотонную функцию.
Пример.
Докажем полноту системы {Å,Ú,1}.
| f | T0 | T1 | T* | TL | TM | В каждом столбце должен быть хотя бы один «-» |
| xÅy | + | - | - | + | - | |
| xÚy | + | + | - | - | + | |
| - | + | - | + | + |
1.
Проверка на принадлежность классу T0.



2.
Проверка на принадлежность классу T1.



3.
Проверка на принадлежность классу T*.


4.
Проверка на принадлежность классу TL.


5.
Проверка на принадлежность классу TM.

f(0,0)=0
f(0,1)=1
f(1,0)=1
f(1,1)=0

f(0,0)=0
f(0,1)=1
f(1,0)=1
f(1,1)=1
