Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://www.nature.web.ru/db/msg.html?mid=1158346&uri=node2.html
Дата изменения: Unknown Дата индексирования: Mon Apr 11 12:34:11 2016 Кодировка: Windows-1251 |
![]() |
|
|
В таблице есть три строки с единицами в правой колонке - три случая, когда булева функция истинна (равна ![]()
Ясно, что аналогичная конструкция применима и для любой таблицы
(и с любым числом переменных).
Для формул подобного вида есть специальное название: формулы в
дизъюнктивной нормальной форме. Более подробно:
литералом называется переменная или отрицание переменной,
конъюнктом называется произвольная конъюнкция литералов,
а дизъюнктивной
нормальной формой называется дизъюнкция
конъюнктов. В нашем случае в каждый конъюнкт входит
Задача 5. Длина построенной в доказательстве теоремы 3 формулы зависит от числа единиц: формула будет короткой, если единиц в таблице мало. А как написать (сравнительно) короткую формулу, если в таблице мало нулей, а в основном единицы? Иногда используется конъюнктивная нормальная форма, которая представляет собой конъюнкцию дизъюнктов, каждый из которых состоит из литералов, связанных дизъюнкциями. Теорему 3 можно теперь усилить так:
Теорема 4. Всякая булева функция может быть выражена формулой, находящейся в дизъюнктивной нормальной форме, а также формулой, находящейся в конъюнктивной нормальной форме.
Доказательство. Первая часть утверждения уже доказана. Вторую часть можно доказать аналогично первой, надо только для каждой строки с нулем написать подходящий дизъюнкт.
Можно также представить функцию
Задача 6. Проведите второй вариант рассуждения подробно. Вообще говоря, определение дизъюнктивной нормальной формы не требует, чтобы в каждом конъюнкте (или дизъюнкте) встречались все переменные. (Повторять переменную больше одного раза смысла нет; если, например, формула и ее отрицание входят в одну конъюнкцию, то эта конъюнкция всегда ложна и ее можно выбросить.)
Задача 7.
Приведите пример булевой функции от
Заметим, что при доказательстве
теоремы 3 мы обошлись без импликации.
Это и не удивительно, так
как она выражается через дизъюнкцию и отрицание:
![]() (проверьте!). Вообще- то мы могли бы обойтись только конъюнкцией и отрицанием, так как ![]() или только дизъюнкцией и отрицанием, так как ![]() (обе эквивалентности вытекают из законов де Моргана; их легко проверить и непосредственно). Можно сказать, что система связок ![]() ![]()
Задача 8.
Докажите, что система связок
А вот без отрицания обойтись нельзя. Система связок
Задача 9.
Легко понять, что любая формула, составленная только с помощью
связок
Задача 10.
Пусть
В принципе мы не обязаны ограничиваться четырьмя рассмотренными
связками. Любая булева функция может играть роль связки.
Например, можно рассмотреть связку
![]() (словами: ![]() ![]() ![]() ![]()
Другая интересная полная система связок - это сложение
по модулю
Назовем мономом конъюнкцию любого набора переменных или
константу
Назовем полиномом сумму таких мономов
по модулю
Теорема 5. (полиномы Жегалкина) Всякая булева функция однозначно представляется полиномом указанного вида.
Доказательство.
Чтобы доказать существование искомого полинома, можно сослаться
на известное из алгебры утверждение, что всякая функция с
аргументами из конечного поля (в данном случае это
двухэлементное поле вычетов по модулю
Далее можно заметить, что полиномов столько же, сколько
булевых функций, а именно
Можно и не ссылаться на сведения из алгебры, а дать явную
конструкцию. Это удобно сделать индукцией по
Для единственности также есть другое доказательство: пусть
два многочлена равны. Тогда их сумма (или разность - вычисления
происходят по модулю ![]() где ![]() ![]() ![]() ![]() ![]() ![]() ![]()
Задача 11.
Назовем мультилинейной
функцией полином от Если рассматривать произвольные булевы функции в качестве связок, возникает вопрос: в каком случае они образуют полный базис? Ответ дает следующая теорема.
Теорема 6. (критерий Поста) Набор булевых функций тогда и только тогда является полным (это значит, что любая булева функция представляется в виде их композиции, -е записывается в виде формулы, где связками служат функции набора), когда он не содержится ни в одном из пяти "предполных классов":
![]() ![]() ![]() ![]() ![]() ![]() ![]() Если набор содержится в одном из классов, то и все композиции также не выходят за пределы этого класса (легко проверить для каждого из классов в отдельности) и поэтому набор не является полным. Доказательство обратного утверждения опустим (читатель может попробовать доказать его самостоятельно).
Next: 3. Схемы из функциональных Up: Логические формулы и схемы Previous: 1. Высказывания и операции Contents: Написать комментарий |
Copyright © 2000-2015, РОО "Мир Науки и Культуры". ISSN 1684-9876 |
![]() |