Тексты лекций / Текст лекции 3
.pdfТема 3 «Булевы функции и способы их задания» |
Олейник Т.А., 2020 |
||
Индуктивный переход. Пусть ( , ,..., |
) - функция из , |
, |
,..., - фор- |
мулы и { ( ),( ),...,( )} = . Тогда выражение = |
( |
, ,..., ) |
является формулой, ее глубина ( ) равна +1, а множество подформул включает саму формулу и все подформулы , ,..., .
Используя индукцию по глубине формулы, определим функцию, заданную формулой. Определение. Базис индукции. Пусть ( ) = 0. Тогда имеет вид = , где - переменная из , или = , где - константа из . В первом случае задаеттождествен-
ную функцию , во втором - функцию, тождественно равную константе . Индуктивный переход. По предположению индукции каждой формуле глубины
сопоставлена некоторая функция. Пусть ( , ,..., ) - произвольная формула глубины
( ) = +1. Следовательно, она имеет вид = |
( , ,..., ) , где |
- функция из |
|
, , ,..., |
- формулы, для которых { ( |
),( ),...,( |
)} = , и, зна- |
чит, по предположению индукции этим формулам уже сопоставлены некоторые функции
( |
, |
,..., ), ( |
, |
,..., |
),…, |
( |
, ,..., ). Тогда |
формула задает функцию |
|
( |
, |
,..., ) = = |
|
( , |
,..., |
), ( , ,..., ),..., ( , ,..., ) |
, значение |
||
которой на каждом наборе ( , ,..., |
) находится как значение функции |
на наборе |
( , ,..., ),..., ( , ,..., ) .
Заметим, что, определяя индуктивно функцию, заданную формулой, мы воспользовались договоренностью рассматривать функции с точностью до фиктивных переменных и считали все функции системы зависящими от переменных.
Зададимсявопросом:можнолиповидуформулы,которойзаданафункция,определить, какиеиз переменныхэтой функции существенны,акакие фиктивны?Очевидно,если функция задана формулой, в которую некоторая переменная не входит, то эта переменная фиктивная. Обратное утверждение в общем случае неверно, т.е. в формуле, задающей функцию, могут присутствоватькак существенные, так и фиктивные переменные этой функции.
Убедимся в этом на примерах. |
|
|
|
|
|
|
Пример 9. Указать существенные и фиктивные переменные функции |
||||
|
( , , ) = |
→ ( |
) |
→ . |
|
|
◄ Вначале упростим формулу, которой задается функция, используя равносильность |
||||
→ = ̄: |
|
|
|
|
|
|
( , , ) = |
→ ( |
) |
→ |
= |
|
= |
̄ ( |
) |
→ |
= (1 ) → = 1 → . |
|
Таким образом, значение функции определяется исключительно значением перемен- |
||||
ной , причем (1,0,0) = 1 → 1 = 1, (0,0,0) = 0 → 1 = 0. |
Значит, - существенная, |
||||
|
, - фиктивные.► |
|
|
|
|
|
Упражнение 2.10. Указать существенные и фиктивные переменные функции |
||||
|
( , , ) = ̄̄̄ ̄̄ |
̄̄ ̄ . |
Задачи повышенной сложности
2.1.Назовем весом булева вектора число его координат, равных 1. Сколько булевых векторов длины n имеет вес k?
2.2.Булевы векторы часто называют вершинами булева куба. Расстоянием (Хэмминга)
между вершинами и куба называют число , , равное числу координат, в
11
Тема 3 «Булевы функции и способы их задания» |
|
Олейник Т.А., 2020 |
|
которых они различаются, т.е. , = ∑ |
| |
− |. Вершины (векторы) и называют |
|
соседними, если , = 1, и противоположными, если , |
= . Например, расстоя- |
ние между векторами (1,0,0,1,0) и (0,0,0,1,1) равно 2. Расстояние между векторами (0,0,1,0) и (1,0,1,0) равно 1 и, значит, они соседние. Расстояние между векторами (1,0,0,1,0,0) и (0,1,1,0,1,1) равно длине этих векторов, и, следовательно, они противоположные.
Найти число неупорядоченных пар вершин булева куба , удаленных друг от друга на расстояние k (0 ≤ ≤ ).
2.3. Показать, что для любых противоположных наборов и выполняется равенство
() + = 2 − 1.
2.4.Подсчитать число функций от переменных, у которых: а) одна переменная фиктивная, остальные существенные;
б) (1 ≤ ≤ ) переменных фиктивные, остальные - существенные.
2.5.Пусть = { ,, }-подмножествобулевыхфункций,причем (1), (2),
(3) и ни одна из функций не является тождественной константой, = { ,,} - алфавит переменных. Определить, является ли выражение формулой над множеством независимо от вида функций ,,:
а) = |
,,( ) ; |
|
|
б) = |
( ( ),0); |
|
||||
в) = |
( ,),,( ) |
; |
г) = |
( ( ,( )),); |
|
|||||
д) = ( ( ),( ,)); |
|
е) = |
( ( ),( ),1). |
|
||||||
2.6. По функциям ( |
, ) |
и ( |
, |
), заданным векторами значений, построить век- |
||||||
торы значений функции : |
|
|
|
|
|
|
|
|||
а) = (0111), = (0100), ( |
, |
, ) = ( ( , ), |
); |
|||||||
б) = (1110), = (0001), |
|
|
|
|
|
|||||
( |
, |
, , |
) = |
( |
, ),( |
, ) . |
|
|||
2.7. Указать существенные и фиктивные переменные функции |
||||||||||
|
( ,..., ) = ( |
) ( |
) ... ( |
) ( ), |
||||||
где ≥ 3. |
|
|
|
|
|
|
|
|
|
|
2.8. Выяснить, на скольких векторах булева куба обращается в нуль функция: |
||||||||||
а) ( |
, |
,..., |
) = |
|
|
|
|
|
; |
|
б) ( |
, |
,..., |
) = |
|
|
|
|
|
. |
|
Ответы и указания к упражнениям
2.1. 16. Указание. Вектор, одинаково читающийся слева направо и справа налево, однозначно определяется первой половиной своих координат. Первые четыре его координаты можно выбрать 2 2 2 2 = 16 способами. 2.2. (0,0,0), (0,0,1), (0,1,0), (0,1,1), (1,0,0),
(1,0,1), (1,1,0), (1,1,1). 2.3. а) |
= (1101 1011); б) = (0011 0110). |
2.4.а) ( ̄ ); |
б)( ) → ( ̄ ̄). 2.6. |
а) ̄ ̄; б) ̄̄. 2.7. а) Переменная - фиктивная, пере- |
менные , - существенные. Чтобы удалить фиктивную переменную , нужно вычеркнуть изтаблицыистинностифункции2-ойстолбеци3-,4-,7-,8-юстроки(еслинесчитатьстроку заголовков). В результате получим таблицу истинности функции ( ,) = (0111). б) Переменные , - фиктивные, - существенная. После удаления фиктивных переменных по-
лучим функцию ( ) = (01). 2.8. = ), = (00001010), = (00001100). 2.9. ( ,) = ( ).
12
Тема 3 «Булевы функции и способы их задания» Олейник Т.А., 2020
Решение. Чтобы выполнить задание, нужно выявить все фиктивные переменные функции и удалить их. Построим таблицу истинности функции , дополнив ее для наглядности столбцомномеровбулевыхвекторов(табл.1).Сначалавыясним,какиеиз аргументов функции фиктивные. Чтобы выяснить, является переменная фиктивной или существенной, нужно сравнить значения функции на парах векторов, отличающихся лишь значени-
ями переменной . |
|
|
|
|
|
|
||||
|
Такие парыобразуют векторы с номерами 0и 8, 1 и 9,2 и 10, …, |
|
|
Таблица 1 |
||||||
7 и 15. Так как сравниваемые значения одинаковы, переменная - |
v |
|
|
|
|
|
||||
фиктивная. Теперь сравним значения функции на парах векторов, |
0 |
0 |
0 |
0 |
0 |
1 |
||||
отличающихся лишь значениями переменной (эти векторы имеют |
1 |
0 |
0 |
0 |
1 |
1 |
||||
номера0и4,1и5,2 и6,3и7,8и12,…,11и15).Имеем (0,0,0,0) ≠ |
||||||||||
2 |
0 |
0 |
1 |
0 |
0 |
|||||
(0,1,0,0), следовательно, переменная - существенная. Сравним |
3 |
0 |
0 |
1 |
1 |
0 |
||||
значения функции на парах векторов, отличающихся лишь значени- |
||||||||||
4 |
0 |
1 |
0 |
0 |
0 |
|||||
ями переменной (эти векторы имеют номера 0 и 2, 1 и 3, 4 и 6, 5 и |
5 |
0 |
1 |
0 |
1 |
0 |
||||
7, …, 13 и 15). Имеем (0,0,0,0) ≠ (0,0,1,0), следовательно, - |
||||||||||
6 |
0 |
1 |
1 |
0 |
1 |
|||||
существенная переменная. И, наконец, сравним значения функции |
7 |
0 |
1 |
1 |
1 |
1 |
||||
на парах векторов, отличающихся лишь значениями переменной |
||||||||||
8 |
1 |
0 |
0 |
0 |
1 |
|||||
(они имеют номера 0 и 1, 2 и 3, 4 и 5, …, 14 и 15). Поскольку срав- |
9 |
1 |
0 |
0 |
1 |
1 |
||||
ниваемые значения одинаковы, то переменная - фиктивная. |
10 |
1 |
0 |
1 |
0 |
0 |
||||
|
|
|
Теперь удалим фиктивныепеременные, вычерк- |
|||||||
Таблица 2 |
11 |
1 |
0 |
1 |
1 |
0 |
||||
|
|
|
нув из таблицы истинности функции ( ,,,) |
12 |
1 |
1 |
0 |
0 |
0 |
|
строки истолбцы,закрашенныесерымцветом. В ре- |
||||||||||
0 |
0 |
1 |
зультате получим таблицу истинности для функции |
13 |
1 |
1 |
0 |
1 |
0 |
|
0 |
1 |
0 |
( ,) (табл. 2). Функции и равны, и функция |
14 |
1 |
1 |
1 |
0 |
1 |
|
1 |
0 |
0 |
существенно зависит от всех своих аргументов. За- |
15 |
1 |
1 |
1 |
1 |
1 |
1 1 1 метим, что можно было действовать в другом порядке: определив, что переменная фиктивная, удалить ее и далее рассматривать функцию, полученную в результате удаления . 2.10. Переменная - существенная, а переменные , - фиктивные.
Решение. = ( ̄̄̄ ̄̄ ) ( ̄̄ ̄ ) = = ̄̄( ̄ ) ̄( ̄ ) = ̄̄ 1 ̄ 1 = ̄( ̄ ) = ̄.
13