Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции Просолупов

.pdf
Скачиваний:
110
Добавлен:
21.03.2016
Размер:
2.15 Mб
Скачать

=( 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

Теорема 40.4 .

Лекция 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