Лекции Просолупов
.pdf
=( 11 · · · ).
( 1,..., )( 1,..., )=0
Теперь покажем единственность СКНФ. Действительно, пусть у некоторой функции ̸= 1 существовало две различных СКНФ:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
′ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
( 1, ..., ) = |
( ( 1, ..., )) = |
( ′( 1, ..., )), |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
=1 |
|
|
|
=1 |
|
|
|
где |
и ′ |
— дизъюнкты. Возьмем отрицание от функции ( 1, ..., ). |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
′ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
( 1, ..., ) = |
( ( 1, ..., )) = |
( ′( 1, ..., )). |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
=1 |
|
|
|
=1 |
|
|
|
Произведем преобразования по правилам де Моргана и получим |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
′ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
( 1, ..., ) = |
( 1, ..., ) = |
′( 1, ..., ), |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
=1 |
|
|
=1 |
|
|
||
|
|
|
и ′ |
|
|||||||||||||||
где |
= |
|
= |
′ |
— конъюнкты, полученные по правилам де Моргана из |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Поскольку наборы дизъюнктов { 1, ..., } |
|||||
дизъюнктов СКНФ для функции . |
|||||||||||||||||||
и { 1′ , ..., ′′} различны, |
то и |
полученные наборы |
конъюнктов { 1, ..., } и |
||||||||||||||||
{ 1′ , ..., ′′} не совпадают. |
Таким образом, мы получили две различных СДНФ |
||||||||||||||||||
|
|
|
|
||||||||||||||||
для функции , что противоречит утверждению 38.3. |
Противоречие доказывает |
||||||||||||||||||
единственность СКНФ функции.
Замечание 38.7 . Из утверждений 37.7 и 38.6 мы получили формулы, которые удобно использовать для построения СДНФ и СКНФ соответственно.
( 1, |
|
11 · · · . |
|
||||
( 1, ..., ) = |
|
|
(28) |
||||
|
..., ) |
|
|
|
|
||
( 1,..., )=1 |
|
|
|
|
|||
для функции ̸= 0. |
|
|
|
|
|
|
|
( 1, |
|
|
|
· · · |
|
). |
|
( 1, ..., ) = |
|
( |
11 |
|
(29) |
||
..., )( 1,..., )=0
для функции ̸= 1.
Теперь для построения СДНФ согласно формуле (28) необходимо выбрать
каждый набор ( 1, ..., ), для которого ( 1, ..., ) = 1, и сопоставить ему
конъюнкт 1 · · · 1 совершенной дизъюнктивной нормальной формы.
Аналогично строится совершенная конъюнктивная нормальная форма по формуле (29).
81
Пример 38.8 . Рассмотрим функцию ( , , ), заданную таблицей:
|
|
|
|
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
|
|
|
|
Тогда, согласно (28) СДНФ будет выглядеть следующим образом:
( , , ) = 0 0 0 0 0 1 1 0 1 1 1 0 =
= .
СКНФ согласно формуле (29) будет иметь вид:
( , , ) = ( 0 1 0) ( 0 1 1) ( 1 0 0) ( 1 1 1) =
( 1 0 1) ( 1 0 0) ( 0 1 1) ( 0 0 0) = = ( ) ( ) ( ) ( ).
82
Лекция 12. Полином Жегалкина
§39. Полином Жегалкина
Рассмотрим еще одно представление функции в виде формулы заданного вида.
Определение 39.1 . Формула вида
0 1 1 2 2 ... |
12 1 2 ... |
12... |
1 2... |
, |
(30) |
где 1, ..., — логические переменные, а 0, 1, ..., 12... — логические константы, называется полиномом Жегалкина.
Замечание 39.2 . Для удобства будем также использовать следующую запись:
( ) .
{1,..., }
Пример 39.3 .
1 1 2 3 — полином Жегалкина.
Здесь = 3, 0 = 1 = 23 = 1, а 2 = 3 = 12 = 13 = 123 = 0.
Утверждение 39.4 . Пусть ( 1, ..., ) 2. Тогда функция может быть представлена полиномом Жегалкина, причем единственным образом.
Доказательство. Для начала докажем существование такого представления для функции. Прежде всего заметим, что произвольная функция представима в виде формулы 1 над {¬, , }: если ̸= 0, ее можно представить в виде СДНФ, а
= 0 представим как = . Воспользуемся законом де Моргана = и заменим все дизъюнкции в формуле 1 на конъюнкции и отрицание. Получим представление функции ( 1, ..., ) в виде формулы 2 над системой элементарных функций {¬, }. Заменим в формуле 2 все отрицания на сложение по модулю два согласно тождеству = 1 . Раскроем все скобки, пользуясь дистрибутивностьюотносительно , и получим формулу вида (30).
Теперь докажем единственность. Пусть
|
{ } |
|
|
{ } |
|
|
( 1, ..., ) = |
|
( ) |
= |
|
( ) |
. |
|
1,..., |
|
|
1,..., |
|
|
— два различных полинома Жегалкина для функции . Полиномы различны, когда отличаются наборы их коэффициентов и .
Выберем * {1, ..., } такой, что ( *) ̸= ( *) и ( ) = ( ) для любого *. Мы можем выбрать такой набор, начав с 0 = {1, ..., } и последовательно удаляя индексы, если указанное свойство не выполняется. Так, если для набора индексов существует : ( ) ̸= ( ), то выбираем +1 = и так далее, пока не получимс искомыми свойствами.
83
Пусть
|
1, |
*, |
|
|
|
= |
= 1, . |
||||
{ |
0, |
/ *, |
|
|
|
Тогда
( 1, ..., ) = |
|
1,..., |
( ) |
|
= |
( ) = |
( ) ( *) |
||
|
|
|
* |
|
* |
||||
и в то же время |
|
|
{ |
|
} |
|
|
|
|
( 1, ..., ) = |
|
1,..., |
|
( ) |
|
= |
( ) = |
( ) ( *). |
|
|
|
|
|
|
* |
|
* |
||
|
|
{ |
} |
|
|
|
|
||
Таким образом, |
|
|
|
|
|
|
|
|
|
|
( ) ( *) = |
|
( ) ( *) |
= ( *) = ( *). |
|||||
* |
|
|
* |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
Противоречие с нашим исходным предположением о * доказывает утверждение.
Замечание 39.5 . Полином Жегалкина является формулой над {0, 1, , }. 0 нам
требуется для задания тождественно нулевой функции. Для остальных случаев нам будет достаточно функций 1, , .
Пример 39.6 . Рассмотрим функцию , заданную формулой ( , , ) =. Представим ее с помощью формулы над {¬, }.
= = ,
= ( ) =
Теперь избавимся от отрицаний и раскроем скобки.
= 1 ((1 ( (1 ))) (1 )) = = 1 1 ( (1 )) ( (1 )) = = ( (1 )) ( (1 )) = .
Таким образом, единственным ненулевым коэффициентом полинома Жегалкина для функции оказался 12 и сам полином имеет вид ( , , ) = .
Замечание 39.7 . Для построения полинома Жегалкина есть и более удобный способ — метод неопределенных коэффициентов. Предположим, что функция
( 1, ..., ) задана таблицей значений для всех наборов аргументов. Нам известен общий вид полинома Жегалкина для
|
( ) |
{1,..., } |
|
84
и требуется только вычислить коэффициенты ( ).
Проходя по всей таблице значений для будем приравнивать общий вид полинома и известное значение функции на данном наборе, тем самым последовательно вычисляя коэффициенты .
(0, ..., 0) = {1,..., } ( ) 0 = (?). Отсюда имеем первый коэффициент:
(?) = (0, ..., 0).
(0, .., 0, 1) = (?) ({ }) 1. Таким образом,
({ }) = (0, ..., 0, 1) (?) = (0, ..., 0, 1) (0, ..., 0, 0).
(0, ..., 0, 1, 0) = (?) ({ − 1}) 1 и
({ − 1}) = (0, ..., 0, 1, 0) (?) = (0, ..., 0, 1, 0) (0, ..., 0, 0, 0).
(0, ..., 0, 1, 1) = (?) ({ − 1}) ({ }) ({ − 1, }) и, следовательно,
({ − 1, }) = (0, ..., 0, 1, 1) (?) ({ − 1}) ({ }) =
= (0, ..., 0, 1, 1) (0, ..., 0, 0, 0) (0, ..., 0, 1, 0)
(0, ..., 0, 0, 0) (0, ..., 0, 1) (0, ..., 0, 0) = = (0, ..., 0, 1, 1) (0, ..., 0, 1, 0) (0, ..., 0, 0, 1) (0, ..., 0, 0, 0)
Продолжая этот процесс мы сможем вычислить все коэффициенты и тем самым получим полином Жегалкина для функции .
Пример 39.8 . Построим полином Жегалкина для функции ( , , ) =
из примера 39.6 с помощью метода неопределенных коэффициентов. В общем виде полином для функции от трех переменных выглядит следующим образом:
( , , ) = 0 1 2 3 1,2 1,3 2,3 1,2,3 .
Переберем все возможные наборы аргументов.
(0, 0, 0) = 0 = 0
(0, 0, 1) = 0 = 0 3
(0, 1, 0) = 0 = 0 2
(0, 1, 1) = 0 = 0 2 3 2,3
(1, 0, 0) = 0 = 0 1
(1, 0, 1) = 0 = 0 1 3 1,3
(1, 1, 0) = 1 = 0 1 2 1,2
(1, 1, 1) = 1 = 0 1 2 3 1,2
1,3 2,3 1,2,3
0 = 0,
3 = 0,
2 = 0,
2,3 = 0,
1 = 0,
1,3 = 0,
1,2 = 1,
1,2,3 = 0.
Полином Жегалкина имеет вид ( , , ) = , что совпадает с результатом примера 39.6.
85
Пример 39.9 . Рассмотрим еще один пример использования метода неопределенных коэффициентов. Пусть ( , , ) = ( ) . Пусть
( , , ) = .
(0, 0, 0) = 0 = 0 |
0 = 0, |
(0, 0, 1) = 0 = 0 3 |
3 = 0, |
(0, 1, 0) = 0 = 0 2 |
2 = 0, |
(0, 1, 1) = 1 = 0 2 3 2,3 |
2,3 = 1, |
(1, 0, 0) = 0 = 0 1 |
1 = 0, |
(1, 0, 1) = 1 = 0 1 3 1,3 |
1,3 = 1, |
(1, 1, 0) = 1 = 0 1 2 1,2 |
1,2 = 1, |
(1, 1, 1) = 1 = 0 1 2 3 1,2 |
1,2,3 = 0. |
1,3 2,3 1,2,3 |
Следовательно, полином Жегалкина для функции будет иметь вид ( , , ) =
.
86
Лекция 13. Полные системы функций в 2
§40. Полнота системы функций
Определение 40.1 . Система функций 2 называется полной, если любую функцию из 2 можно представить в виде формулы над .
Замечание 40.2 . Удобно доказывать полноту системы функций, показывая, что она сводится к уже известной полной системе.
Лемма 40.3 . Пусть даны две системы функций 2 и 2. Пусть функция ( 1, 2, ..., ) представима в виде формулы над , и любая функция из представима в виде формулы над . Тогда функция представима в виде формулы над .
Доказательство. Пусть, — формула над , реализующая функцию . 1, 2, ...,— формулы над , реализующие все функции 1, 2, ..., множества . Тогда
каждое вхождение функции в формулу можно заменить формулой . Проведя такую замену, получим формулу ′ над . Очевидно, формула ′ эквивалентна
формуле , поскольку они отличаются заменой подформул на эквивалентные.
Пусть даны две системы функций 2 и 2. Пусть — полная система функций, и любая функция из представима в виде формулы над. Тогда, — полная система функций.
Доказательство. Непосредственно следует из леммы 40.3.
Приведем несколько примеров полных систем функций.
Утверждение 40.5 . {¬, , } — полная система функций.
Доказательство. Рассмотрим произвольную функцию 2. |
|
|
|
|
|||||||||
Если = 0, то = , где = |
|
. |
|
|
|
|
|||||||
|
противном случае |
. Тогда по утверждению 37.7 |
= |
, |
где |
= |
|||||||
В |
|
1 |
· · · |
|
|
|
̸= 0 |
|
|
||||
( 11,..., )=1 |
1 |
|
|
. |
|
|
|
|
|
|
|
||
( ,..., ) |
|
|
|
|
|
|
|
|
|
|
|||
Следствие 40.6 . {¬, } и {¬, } — полные системы функций.
Доказательство. Доказательство очевидно следует из утверждения 40.5 и правил де Моргана, если заметить, что
= |
|
|
|
, |
и = |
|
|
|
. |
87
Таким образом, подставив в любую формулу, выражающую функцию в виде формулы над {¬, , }, указанные выражения для или , можно получить эквивалентную формулу над {¬, } или над {¬, }.
Утверждение 40.7 . 1) Системы функций {|} и {↓} — полные системы функций.
2) Других полных систем, состоящих из одной функции от двух переменных нет.
Доказательство. 1) а) = | , = | = ( | ) | ( | ). б) = ↓ , = ↓ = ( ↓ ) ↓ ( ↓ ).
2) Пусть ( , ) 2 и { } — полная система функций.
Пусть (0, 0) = 0. Тогда, если ( ) задана в виде формулы над { }, то (0) = 0. Действительно, функция имеет вид ( ) = ( 1, 2), где — переменная , или формула того же вида, что и , = 1, 2. Таким образом, в конце концов оказывается, что (0) = (0, 0) = 0. Тогда, с помощью только функции ( , ) не может быть функция отрицания, поскольку ¬0 = 1. Следовательно (0, 0) = 1.
Аналогично можно показать, что (1, 1) = 0.
Теперь рассмотрим все функции от двух переменных, удовлетворяющие
полученному условию: (0, 0) = |
1, |
(1, 1) |
= |
0. Всего таких функций четыре |
||||||
(Скажите почему). |
|
|
|
|
|
|
|
|
|
|
|
|
|
↓ |
| |
|
|
|
|
|
|
|
|
|||||||||
0 |
0 |
1 |
1 |
1 |
|
1 |
|
|
||
0 |
1 |
0 |
1 |
1 |
|
0 |
|
|
||
1 |
0 |
0 |
1 |
0 |
|
1 |
|
|
||
1 |
1 |
0 |
0 |
0 |
|
0 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
Как видно из таблицы, две из этих функций известны нам как стрелка Пирса и штрих Шеффера, а две другие представляют из себя функцию отрицания от аргументов и . Поскольку система из одной функции отрицания не является
полной системой функций, утверждение доказано.
Утверждение 40.8 . {0, 1, , } — полная система функций.
Доказательство. Истинность этого утверждения следует из того, что любая функция из 2 представима в виде полинома Жегалкина (утв. 39.4).
Следствие 40.9 . Так как 1 1 = 0, полной системой функций является и
{1, , }.
Определение 40.10 . Пусть
0 = { 1( 1, ..., 1 ), 2( 1, ..., 2 ), ..., ( 1, ..., )}.
88
— суперпозиция ранга 1 (элементарная суперпозиция) функций |
1, ..., , если |
||||||||||||||||||
получена одним из способов: |
|
|
|
|
|
|
|
|
|
|
|
|
|
{1, ..., }, |
|||||
a) переименованием |
некоторой |
переменной |
|
функции |
, |
||||||||||||||
{1, ..., }: |
|
( 1, ..., −1, , +1, ..., ), |
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||
где может совпасть с любой переменной; |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
b) подстановкой некоторой функции |
вместо переменной функции , , |
||||||||||||||||||
{1, ..., }, {1, ..., }: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
( |
, ..., |
−1 |
, ( |
, ..., |
|
), |
+1 |
, ..., |
|
). |
|
|
|
|
|
||||
|
1 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
||||
Множество суперпозиций ранга 1 функций |
из |
0 обозначим |
1. |
Также, |
|||||||||||||||
множество суперпозиций ранга 1 функций из |
−1 обозначим |
, |
= |
1, ∞ |
. |
||||||||||||||
Функции из множества будем называть суперпозициями ранга |
функций из |
||||||||||||||||||
0. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Определение 40.11 . |
|
Суперпозицией |
функций |
из |
0 |
будем |
называть |
||||||||||||
суперпозицию любого ранга. |
Другими словами, |
|
— |
суперпозиция |
функций |
||||||||||||||
1, ..., , если N такое, что . |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
Замечание 40.12 . По сути дела утверждение, что является суперпозицией функций из 0, эквивалентно утверждению, что представима в виде формулы
над 0. Таким образом, мы можем переформулировать определение полной системы.
Определение 40.13 (40.1’). Система функций 2 называется полной, если любая функция из 2 является суперпозицией функций из .
Определение 40.14 . Пусть M 2. Замыканием M называется множество
[M] = { | — суперпозиция функций из M}.
Определение 40.15 . Пусть M 2. M — замкнутое множество функций, если M = [M].
Пример 40.16 .
1)= { , }. Тогда [ ] = { , } = и — замкнуто.
2)= { }. Тогда [ ] = { , } ̸= . Множество — не замкнуто.
Несложно проверить нижеследующие свойства операции замыкания.
Утверждение 40.17 . Пусть , 2.
1) Замыкание множества содержит само множество:
M [M].
89
2) Замыкание произвольного множества замкнуто:
[[M]] = [M].
3) Замыкание сохраняет включение множеств:
M N [M] [N].
4) Замыкание объединения содержит объединение замыканий:
[M] [N] [M N].
Замечание 40.18 . Заметим, что для доказательства замкнутости некоторого класса функций M достаточно показать, что любая суперпозиция ранга 1 функций
из M лежит в M.
Обозначим множество суперпозиций ранга функций из M за M . Пусть
M1 = M. Тогда M2 — множество суперпозиций ранга 1 функций из M1 |
= M. |
||
Следовательно, M2 = M1 = M. Аналогично можно убедиться, что M |
= M, |
||
= |
1, ∞ |
. |
|
Далее, когда мы будем доказывать замкнутость классов функций, будем ограничиваться только рассмотрением суперпозиций ранга 1.
С учетом определения замкнутости можно дать еще одно альтернативное определение полноты.
Определение 40.19 (40.1”). Система функций 2 — полная, если [ ] = 2.
Далее мы бы хотели доказать критерий, позволяющий для произвольной системы функций из 2 определить, является ли она полной. Для этого нам понадобится ввести и изучить свойства нескольких замкнутых классов функций алгебры логики.
§41. Функции, сохраняющие ноль
Определение 41.1 . Пусть ( 1, ..., ) 2. называют функцией, сохраняющей ноль, если (0, ..., 0) = 0.
Множество всех функций сохраняющих 0 обозначим 0:
0 = { ( 1, ..., ) | 2, (0, ..., 0) = 0}.
Утверждение 41.2 . Класс функций 0 замкнут.
Доказательство. Рассмотрим суперпозицию ранга 1 от функций из 0. a) Пусть
( 1, ..., ) 0 и
( 1, ..., −1, +1, ..., , ) = ( 1, ..., −1, , +1, ..., ).
Тогда (0, ..., 0) = (0, ..., 0) = 0. Следовательно, ( 1, ..., −1, +1, ..., , ) 0.
90
