- •Глава 2. Булевы функции
- •Часть 1
- •§ 2.1. Булевы функции и способы их задания
- •2.1.1. Понятие булевой функции.
- •Примеры булевых функций
- •2.1.2. Реализация булевых функций формулами
- •§ 2.2. Нормальные формы
- •2.2.1. Принцип двойственности
- •2.2.2. Реализация булевых функций в виде сднф и скнф.
- •§ 2.3. Минимизация булевых функций в классе днф
- •§ 2.4. Классы Поста и полнота
- •2.4.1. Понятие о полноте системы булевых функций
- •2.4.2. Реализация булевых функций полиномом Жегалкина
- •2.4.3 Классы Поста
- •2.4.4. Критерий полноты
- •Проверочный тест
- •Ключи теста
- •Глава 2. Часть 2
2.1.2. Реализация булевых функций формулами
Для задания булевых функций помимо таблиц также используют формулы. Формулы обычно строят по «принципу матрешек», вкладывая друг в друга символические записи элементарных функций. Говоря о формуле, часто указывают, с использованием каких функций она строилась. Например, - это формула над множеством, состоящим из дизъюнкции, импликации и штриха Шеффера, а - формула над множеством, состоящим из конъюнкции, отрицания и эквивалентности.
Каждой формуле сопоставляется функция (при этом говорят, что формула реализует функцию). Процедура сопоставления пошаговая. Покажем, как действовать, на примерах.
Упражнение 2.9. Построить таблицу истинности и выписать вектор значений функции:
а) ; б) ; в) .
◄ а)
|
|
|
|
|
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
Вектор значений функции .
|
|
|
|
|
|
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Вектор значений функции .
в) решить самостоятельно.►
Итак, на примерах мы рассмотрели понятие формулы над множеством функций и понятие функции, реализуемой формулой над . Теперь этим понятиям нужно дать формальные определения.
Определение. Пусть - некоторое подмножество функций из ; - множество символов, используемых для обозначения функций из множества ; - множество символов, используемых для обозначения переменных; , . Тогда
каждое выражение вида , называется формулой над ;
выражение вида , где - либо символ переменной , либо формула над , называется формулой над .
Обозначения: - формула над множеством функций ; - формула над множеством функций .
Определение функции, реализуемой формулой, также строится индуктивно. Оно громоздкое и довольно сложное для восприятия. Мы рассмотрим его несколько позже. Опыт показывает, что при первом знакомстве с курсом вполне достаточно понимать, что такое функция, реализуемая формулой, интуитивно.
Если формула реализует функцию , то пишут .
Функцию , реализуемую формулой над множеством функций , будем называть суперпозицией функций .
Замечание. Для упрощения записи формул введен ряд соглашений:
а) внешние скобки у формул можно опускать;
б) вместо можно писать , а вместо – или ;
в) связку « » принято считать сильнее любой двуместной связки, поэтому внешние скобки в выражении, над которым стоит знак « – », можно опускать;
г) связку « » принято считать сильнее любой другой двуместной связки, поэтому в скобки выражения , , можно не брать.
Например, формулу можно записать в виде .
Упражнение 2.10. Показать, что формулы реализуют равные функции:
а) и ; б) и .
◄ а)
|
|
|
|
|
|
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
б) Выполнить самостоятельно. ►
Если две формулы и реализуют равные функции, то их называют равносильными и пишут .
Теорема. Для формул над множеством имеют место следующие равносильности:
1. ; 2. ;
3. ; 2. ;
5. ; 6. ;
7. ; 8. ;
9. ; 10. ;
11. ; 12. ;
13. ; 12. ;
15. ; 16. ;
17. ; 18. ;
19. .
◄ Чтобы доказать справедливость любого из этих равенств, нужно убедиться в равенстве функций, реализуемых формулами, записанными в его левой и правой частях. Для этого достаточно построить таблицы истинности этих функций. Например, для равносильности под номером 10 имеем:
|
|
|
|
|
0 |
0 |
0 |
1 |
|
0 |
1 |
0 |
1 |
|
1 |
0 |
0 |
1 |
|
1 |
1 |
1 |
0 |
|
|
|
|
|
|
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
Как видим, формулы и реализуют равные функции и, следовательно, равносильны.
Справедливость остальных равенств проверьте самостоятельно. ►
Равносильности 1-19 характеризуют свойства дизъюнкции, конъюнкции и отрицания: 1 и 2 – коммутативность, 3 и 4 – ассоциативность, 5 – дистрибутивность конъюнкции относительно дизъюнкции, 6 – дистрибутивность дизъюнкции относительно конъюнкции, 7 и 8 – идемпотентность. Равносильности 9 и 10 называют законами де Моргана, 15 и 16 – законами поглощения, 17 – законом противоречия, 18 – законом исключенного третьего, 19 – законом двойного отрицания.
Дополним соглашение об упрощенной записи формул: в случае многократного применения ассоциативной операции скобки можно опускать. Например, формулу можно записать в виде . В дальнейшем будем также употреблять следующие обозначения: и .
Упражнение 2.11. Учитывая соглашения о порядке выполнения операций, опустить «лишние» скобки и знак « » в формулах:
а) ; б) .
◄ а) ;
б) выполнить самостоятельно. ►
Упражнение 2.12. Доказать, что имеет место равносильность:
а) ; б) ;
в) ; г) ;
д) ; е) .
◄ Выполнить самостоятельно. ►
Упражнение 2.13. Применяя равносильные преобразования, упростить формулу:
а) ; б) ; в) ; г) .
◄ а) .
б) .
в) и г) выполнить самостоятельно. ►
Упражнение 2.12. Указать существенные и фиктивные переменные функции:
а) ;
б) .
◄ а) Преобразуем формулу, используя равносильность :
.
Поскольку на любом наборе и на любом наборе , то согласно определению , - фиктивные переменные. Переменная же - существенная, т.к. , .
б) выполнить самостоятельно. ►
Обратите внимание. Если функция реализована формулой, в которую некоторая переменная не входит, то эта переменная фиктивная. Обратное утверждение неверно. Действительно, в упражнении 14 а) мы рассмотрели функцию, реализованную формулой, содержащую переменные , , однако эти переменные оказались фиктивными.
Упражнение 2.15. Выяснить, на скольких векторах 4-х мерного булева куба обращается в ноль функция: а) ; б) .
◄ а) Функция обращается в ноль, если или . Равенства выполняются, только если все переменные равны единице. Равенства выполняются на таких наборах значений переменных , у которых одновременно не равны единице и одновременно не равны единице. При построении конкретного булевого вектора , отвечающего этим требованиям, будем сначала выбирать пару , а затем пару . Каждую из этих пар можно выбрать тремя способами (взять 0,0, или 0,1, или 1,0). Значит, согласно правилу произведения построить булев вектор, на котором оба слагаемых и равны нулю, можно девятью способами.
Таким образом, есть десять векторов, на которых функция обращается в нуль.
б) решить самостоятельно. ►