Минимизация сложных высказываний методом Квайна
Алгоритм:
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