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

Тексты лекций / Текст лекции 7

.pdf
Скачиваний:
0
Добавлен:
12.01.2024
Размер:
612.12 Кб
Скачать

Тема 7 «Полнота системы булевых функций»

Олейник Т.А., 2020

§ 2.5. Полнота системы булевых функций

Полная система. Теорема о полноте двух систем. Критерий полноты системы булевых функций. Базисы. Предполные классы.

Базовые понятия и утверждения

1. Понятие о полноте системы булевых функций. В предыдущем параграфе мы уста-

новили,чтофункцию,непринадлежащую какому-нибудь классуПоста,нельзя представить формулой через функции, входящие только в этот класс. С другой стороны, нам известно, чтолюбуюбулевуфункциюможновыразитьчерездизъюнкцию,конъюнкциюиотрицание. Настоящий параграф посвящен обсуждению следующего вопроса: как для произвольной системы булевых функций определить, всякая ли функция представима формулой над , или нет?

Определение. Множество булевых функций = { , ,..., ,...} называется полной системой, если любая булева функция может быть задана формулой над .

Пример 1. а) { , ,¬} - полная система, поскольку любая булева функция представима в виде СДНФ или СКНФ.

б) {0,1, , } - полная система, поскольку любая булева функция представима в виде полинома Жегалкина.

в) { , } - полная система, поскольку любую булеву функцию можно сначала выразить формулой над { , ,¬}, а затем заменить в этой формуле все дизъюнкции формулой

= . В итоге получится формула над { , }.

г) { , } - полная система, поскольку любую булеву функцию можно сначала выразить формулой над { , ,¬}, а затем заменить в этой формуле все конъюнкции формулой

= . В итоге получится формула над { , }.

Следующая теорема обобщает подход, использованный нами для доказательства пол-

ноты систем { , } и { , }.

Теорема 2.12 (о полноте двух систем). Пусть заданы две системы булевых функций:= { , ,...} и = { , ,...}. Тогда, если система - полная и каждая ее функция может быть задана формулой над , то система тоже полная.

Доказательство. Покажем, как для произвольной булевой функции построить формулу над . Возьмем формулу для над = [ , ,...] (в силу полноты такая формула обязательно существует) и заменим в ней вхождение символов функций , ,...

формулами =

[ ,

,...]над (которыесуществуютпоусловию).Получимформулу

[ [ , ,...],

[ ,

,...],...] над , которая задает . ■

Пример 2. Докажем,что {|}- полная система. Действительно, пусть = { , }

и

= {|}. Имеем |

CKH

̄ ̄= , откуда = | . Следовательно, | = = и

=

= | = (|)|(|). Таким образом, каждую функцию полной системы можно задать формулой над . Следовательно, условия теоремы о полноте двух систем выполнены и, значит, = {|}- полная система.

С помощью теоремы о полноте двух систем можно доказать полноту некоторой системы булевых функций. Обосновать неполноту с ее помощью нельзя.

2. Критерий полноты системы булевых функций. Наиболее удобный способ про-

верки системы функций на полноту связан с использованием критерия полноты Поста.

1

Тема 7 «Полнота системы булевых функций» Олейник Т.А., 2020

Для того чтобы система функций = { ,..., } была полна, необходимо и достаточно, чтобы для каждого из классов Поста в нашлась функция , ему не принадлежащая.

Доказательство этого утверждения приведено во второй части параграфа.

При проверке, выполняются ли для некоторой системы функций = { ,..., } условия критерия Поста, удобно использовать таблицу, которую называют таблицей Поста

(табл. 2.29).

 

 

 

 

 

 

 

 

 

 

 

 

В

ячейках

таблицы

 

 

 

 

Таблица 2.29

ставится знак «+» или «–

», в зависимости от

того,

 

 

 

 

входит функция, стоящая

в данной строке,

в класс,

Функции

 

Классы Поста

 

стоящий

в

данном

 

 

 

 

 

 

столбце, или не входит. В

 

 

силу теоремы Поста для

 

 

 

 

 

 

полноты

системы

 

 

 

 

 

 

 

необходимои достаточно,

чтобы

в каждом

столбце

… … … …

стоялхотябыодинминус.

Таблицу

 

Поста

 

 

 

 

 

 

 

исследуемой

 

системы

лучше

заполнять

по

 

 

 

 

 

 

столбцам.

 

Вначале

 

 

 

 

 

 

 

 

рассматриваем класс

. Если окажется подмножеством

(первый столбец таблицы

заполнен толькоплюсами),тосистема неполна. В противном случае переходим к классу и т.д.

Пример 3. Используя критерий полноты, выяснить, полна ли система булевых функций :

а) = { , ↔ ,}; б) = { ↔ ,}.

◄ а) Для удобства рассуждений зададим функции системы таблично (табл. 2.30 и

2.31).

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2.30

 

 

Таблица 2.31

 

 

 

 

 

=

 

 

= ↔

 

=

0

0

0

0

 

0

0

0

1

 

0

0

0

1

0

 

1

0

1

0

 

0

0

1

0

0

 

0

1

0

0

 

1

0

1

1

0

 

1

1

1

1

 

0

1

0

0

0

 

0

 

 

 

 

 

1

0

1

0

 

1

 

 

 

 

 

1

1

0

1

 

1

 

 

 

 

 

1

1

1

1

 

1

 

 

 

 

 

Заполним таблицу Поста исследуемой системы (табл. 2.32).

2

Тема 7 «Полнота системы булевых функций»

Олейник Т.А., 2020

 

 

 

 

Таблица 2.32

 

 

Класс : (0,0,0) = 0,

следовательно,

;

 

 

 

 

 

 

 

 

 

 

 

 

 

Классы Поста

 

 

(0,0,0) = 1, следовательно,

.

Выяснять,

Функции

 

 

 

 

 

 

 

 

 

 

 

 

 

 

принадлежит или нет классу

функция , не

 

 

 

 

 

 

 

 

 

надо, так как в системе уже нашлась функция, не

 

=

+

+

+

 

= ↔

+

 

 

принадлежащая .

 

 

 

 

 

 

 

 

Класс : (1,1,1) =

1, следовательно,

 

 

 

 

 

 

 

 

 

 

=

 

 

 

 

 

 

; (1,1,1) = 1, следовательно,

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1,1,1) = 0, следовательно, .

 

 

 

 

= (01010111), = (00010101), следовательно,

 

 

 

 

Класс :

.

 

 

 

Класс : перебрав все пары сравнимыхвекторов, убеждаемся, что условие монотонности для функции не нарушается, значит, ; (0,0) ̱(0,1), а (0,0) > (0,1), следовательно, .

Класс : = = , следовательно, .

Таким образом, для каждого класса Поста можно указать функцию системы ,емуне

принадлежащую. Следовательно, - полная система.

 

 

 

 

б) Заполним таблицу Поста системы (табл. 2.33).

 

 

 

 

 

 

Таблица 2.33

Класс : (0,0) = 1, следовательно, .

 

 

Класс

: (1,1) = 1,

следовательно,

 

 

 

 

 

 

 

;

 

 

Классы Поста

 

 

 

 

 

 

 

Функции

 

 

(1,1) = 0, следовательно,

.

 

 

 

 

 

 

 

 

Класс

: = (1001),

 

 

= (0110),

следова-

 

+

+

 

= ↔

тельно,

.

 

 

 

 

=

 

 

 

+

Класс : (0,0) ̱(0,1),

(0,0) > (0,1), следо-

 

 

 

 

 

 

вательно, .

 

 

 

 

Класс :

= ↔ = = 1 , следовательно,

; = = 1 , сле-

довательно,

.

 

 

 

 

 

 

 

 

 

Посколькуобефункциисистемы принадлежатклассу линейныхфункций,тосистема неполна. ►

Упражнение 2.30. Используя критерий полноты, выяснить, полна ли система буле-

вых функций :

 

а) = { → , |};

б) = { , 1, 0}.

Определение. Полная система функций называется базисом, если после удаления из

нее любой функции получается неполная система.

 

 

 

 

 

 

 

 

Пример 4. Укажите подмножества , являющиеся базисами:

 

 

 

 

 

а) = { ,,};

б) = { , ↔ ,}.

 

 

 

 

 

◄ а) Заполним таблицу Поста (табл. 2.34).

 

 

 

 

 

 

 

 

Для каждого класса Поста можно указать функцию

 

 

Таблица 2.34

системы,которая ему не принадлежит (для , и это

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Классы Поста

 

, для и это ( )), значит, система { ,,}

 

 

 

Функции

 

 

 

 

 

полная.Приэтоманализ табл.2.34показывает,чтоэтаси-

стема базисом не является, поскольку не теряет полноты

 

+

+

+

при удалении или . Полученные в результате уда-

 

+

+

+

ления этих функций множества { ,} и { ,}

явля-

 

+

+

ются базисами, так как полны и при удалении из них лю-

 

 

 

 

 

 

бой из функций полноту теряют ( ,

 

, ).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

б) Мы рассматривали систему = { , ↔

,} в примере 3.

 

 

 

 

 

3

Тема 7 «Полнота системы булевых функций»

 

 

Олейник Т.А., 2020

Чтобы выделить из этой полной системы базисы,

 

 

 

Таблица 2.35

заполним таблицу Поста системы полностью (табл.

Функции

 

Классы Поста

 

2.35).

 

 

 

 

 

 

 

Анализ табл. 2.35 показывает, что сама система

 

 

 

 

 

 

 

 

=

+

+

+

базисом не является, так как при удалении функции

полноту не теряет. Система { ↔ , } явля-

 

= ↔

+

+

ется базисом, поскольку удаление из нее любой из

 

=

+

функций приводит к потере полноты. Остальные соб-

 

 

 

 

 

 

 

ственныеподмножества базисаминеявляются(система {

, ↔ }неполная, таккак

лежит в ; система { , } неполная, так как лежит в

; неполны и подмножества,

 

 

 

содержащие по одной функции). ►

 

 

Упражнение 2.31. Указать подмножества , являющиеся базисами:

а) = { , 0, 1,  };

б) = { ↓ , | }.

 

Теоретические обоснования

Лемма о функции, не сохраняющей 0. Пусть . Тогда формулой над множе-

ством { } можно задать либо константу 1, либо отрицание.

Доказательство. Пусть , т.е. (0,0,...,0) = 1. Отождествим между собой все переменные функции . Получим функцию от одной переменной ( ) = ( , ,..., ).

Возможны два случая: (1,1,...,1) = 0 или (1,1,...,1) = 1.

Впервом случае (0,0,...,0) = 1 и (1,1,...,1) = 0, следовательно, (0) = 1 и (1) = 0, откуда ( ) = .

Вовторомслучае (0,0,...,0) = 1и (1,1,...,1) = 1,следовательно, (0) = 1и (1) = 1, откуда ( ) = 1.■

Лемма о функции, не сохраняющей 1. Пусть . Тогда формулой над множе-

ством { } можно задать либо константу 0, либо отрицание.

Доказательство. Пусть , т.е. (1,1,...,1) = 0. Отождествим между собой все переменные функции . Получим функцию от одной переменной ( ) = ( , ,..., ).

Возможны два случая: (0,0,...,0) = 0 или (0,0,...,0) = 1.

Впервом случае (0,0,...,0) = 0 и (1,1,...,1) = 0, следовательно,

(0) = 0 и (1) = 0, откуда ( ) = 0.

Вовторомслучае (0,0,...,0) = 1и (1,1,...,1) = 0,следовательно, (0) = 1и (1) = 0, откуда ( ) = .■

На рис. 2.1 и 2.2 представлены условные обозначе-

 

f C T0

f C T1

 

 

 

 

ния алгоритмов, использованных при доказательствах

 

_

_

 

леммы о функции, не сохраняющей 0, и леммы о функ-

 

T0

T1

 

 

_

 

_

ции, не сохраняющей 1.

 

 

 

 

 

 

 

 

 

 

1

x

0

x

Лемма о несамодвойственной

функции. Пусть

Рис. 2.1.

Рис. 2.2.

( , ,..., ) - несамодвойственная функция. Тогда

 

 

 

 

формулой над множеством { , ¬} можно задать константы 0 и 1.

 

 

Доказательство. Пусть . Тогда существует набор (

, ,..., ) значений пере-

менных ( , ,..., ), такой что (

, ,..., ) ≠ ( ,

,..., ), и, значит,

 

 

( , ,...,

) = (

, ,...,

).

 

 

 

Рассмотрим функцию ( ) = (

,

,...,

), где

= ̄, если

= 0, и

= ,

если = 1. Заметим, что 0

= , 1

= .

 

 

 

 

 

4

Тема 7 «Полнота системы булевых функций»

 

 

 

 

 

 

Олейник Т.А., 2020

 

Имеем

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(0) = (0

,0

,...,0

) = (

,

,...,

);

 

 

x, f C S

 

(1) = (1

,1

,...,1

) = (

,

,...,

).

 

 

_

 

С учетом равенства

 

 

 

 

 

 

 

 

 

 

 

S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( ,

,..., ) = ( ,

,...,

)

 

 

 

 

0, 1

 

получим (0) = (1), т.е. ( ) - константа, ( ) - другая константа. ■

 

 

 

 

 

На рис. 2.3 представлено условное обозначение алгоритма, использо-

Рис. 2.3.

 

ванного в доказательстве леммы о несамодвойственной функции.

 

 

 

 

 

 

Лемма о немонотонной функции. Пусть (

 

, ,..., ) - немонотонная функция.

Тогда формулой над множеством { ,0,1} можно задать отрицание.

 

 

 

Доказательство. Пусть . Тогда существуют

такие наборы ( ,

,..., )

и

( , ,..., )

значений

 

переменных,

что

 

( ,

,...,

) ̱( , ,..., ),

а

( , ,...,

) > ( , ,..., ), и,

значит, ( ,

,...,

) = 1, ( , ,...,

) = 0.

 

Поскольку ( ,

,..., ) ≠ ( , ,..., ), то можно выделить подпоследователь-

ность индексов 1 ≤

<

<...< ≤ такую, что

= , 

= , ..., 

=

и

для всякого ≠ , ,...,

 

≠ (и, значит,

= 0,  

= 1).

 

 

 

 

Рассмотримфункцию ( ),заданнуюформулой,полученнойврезультатеподстановки в формулу ( , ,..., )вместо переменных , ,..., чисел ,  ,..., соответ-

ственно, а на остальные места - . Не ограничивая общности рассуждений, можно считать, что

 

 

( ) = ,..., , , ,..., , , ,..., ,..., , ,..., .

 

Так как

= 0 при ≠ ,..., , имеем

 

 

 

 

(0) =

 

0,...,0, ,0,...,0, ,0,...,0,...,

,0,...,0 = ( ,

,...,

) = 1.

Так как

= 1 при ≠ ,..., и

=

, …,

= , имеем

 

 

(1) =

1,...,1, ,1,...,1, ,1,...,1,...,

,1,...,1 = ( ,

,...,

) = 0.

Равенства (0) = 1 и (1) = 0 означают, что ( ) = . ■

 

 

0,1, f C M

На рис. 2.4 представлено условное обозначение алгоритма, исполь-

_

 

зованного при доказательстве леммы о немонотонной функции.

M

 

 

 

 

 

 

 

 

_

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

Рис. 2.4.

 

 

 

 

 

 

 

Лемма о нелинейной функции. Пусть

. Тогда формулой над множеством

{ ,0,1, } можно задать конъюнкцию.

Доказательство. Пусть . Тогда в каноническом полиноме Жегалкина данной функции найдется членсотличнымотнуля коэффициентом,содержащий произведениепеременных. Не нарушая общности рассуждений, можно считать, что этот член содержит. Следовательно, полином Жегалкина функции можно преобразовать к виду

 

=

∙ ( , ,…, ) ∙ (

, ,…, )

 

 

∙ ( , ,…,

) (

,

,…, ),

где функция

такова, что найдется набор ( , ,...,

) значений переменных такой, что

( , ,...,

) ≠ 0.

 

 

 

 

Рассмотрим функцию ( , ) = ( ,

, , ,..., ), или

5

Тема 7 «Полнота системы булевых функций»

 

 

Олейник Т.А., 2020

 

( ,

) =

∙ ( , ,…, ) ∙ ( , ,…, )

 

∙ (

, ,…,

) ( , ,…,

) =

,

где = (

,

,...,

), = ( ,

,..., ), = ( ,

,..., ).

Теперь рассмотрим функцию ( ,

), получаемую из функции ( , ) следующим

образом:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( ,

) = (

, ) .

Преобразуем формулу, реализующую функцию ( , ):

( , ) = (

) ∙(

) ( ) (

) =

=

 

 

=

Подытоживая проделанное, можем записать

 

 

 

 

 

 

= (

,

, , ,…, )

Заметим, что

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,

если = 0;

 

 

 

 

 

 

 

=

,

если = 1, =

 

 

 

 

 

,

если = 0;

 

 

 

 

 

,

если = 1.

 

 

 

=

 

если

 

0,1, x , f

C L

 

 

0

 

 

 

 

 

 

Таким образом, можно утверждать, что конъюнкция реализо-

 

 

 

_

 

 

, если = 1;

 

 

 

 

 

 

вана формулой=над,множеством { ,0,1,}.■

L

 

 

 

 

 

 

 

 

 

 

 

 

 

 

На рис. 2.5 представлено условное обозначение алгоритма, использо-

xy

 

ванного при доказательстве леммы о нелинейной функции.

Рис. 2.5.

Теорема 2.13 (критерий полноты Поста). Для того чтобы система

функций = { ,..., } была полна, необходимо и достаточно, чтобы

 

для каждого из классов Поста в нашлась функция , ему не принадлежащая.

Доказательство. Необходимость. Пусть система полна. Надо доказать, что для каждого из классов Поста найдется функция , ему не принадлежащая.

Рассуждаемот противного: предположим, чтонайдется классПоста (обозначим его ),

в котором содержатся все функции из . Тогда

 

 

( ) ([ ] [ ])

 

( ).

 

т.к.  полна,

 

 

а   замкнут

 

Следовательно, ( ) ( ). т.е. = . Но этого не может быть, поскольку есть булевы функции, не принадлежащие ни одному из классов Поста (например, штрих Шеффера). Получили противоречие, следовательно, наше предположение было неверным.

Достаточность. Пусть найдутся функции , , , , из такие, что ,, , , . Покажем, что отрицаниеи конъюнкцию можно реализоватьформулами над множеством , , , , . Схема построения соответствующих формул представлена на рис. 2.6.

6

Тема 7 «Полнота системы булевых функций»

 

 

Олейник Т.А., 2020

 

 

 

f0C T0

 

 

 

 

_

 

 

 

 

 

T0

 

 

f1

T1

1

x

 

f1C T1

 

T1

fL

L

T1

 

 

 

 

 

fM M

0,1

0,1, x

0,1, x

x

fSC S

 

M

 

 

 

S

 

0,1, x

L

 

0,1, x

 

xy, x

Рис. 2.6.

Таким образом, конъюнкцию и отрицание можно задать формулой над . Имеем: система { , } полная, и каждая ее функция может быть выражена формулой над . Следовательно, условия теоремы о полноте двух систем выполнены и, значит, - полная система.■

Задачи повышенной сложности

2.34.Используя теорему о полноте двух систем, доказать, что { ↓ } полная система.

2.35.Опираясь на доказательство леммы о функции, не сохраняющей 0, реализовать формулой над множеством = (10010000) либо 1, либо отрицание.

2.36.Опираясь на доказательство леммы о функции, не сохраняющей 1, реализовать формулой над множеством = (00010000) либо 0, либо отрицание.

2.37.Опираясь на доказательство леммы о несамодвойственной функции, реализовать формулой над множеством {(01101011), } константы 0 и 1.

2.38.Опираясь на доказательство леммы о немонотонной функции, реализовать формулой над множеством {(01101011),0,1} отрицание.

2.39.Опираясьнадоказательстволеммыонелинейнойфункции,реализоватьформулой над множеством {(11100100), 0, 1} конъюнкцию.

2.40.Доказать, что из любой полной системы можно выделить полную подсистему, содержащую не более пяти функций.

2.41.Доказать, что всякий замкнутый класс функций, не совпадающий с , содержится, по крайней мере, в одном из классов Поста.

2.42.Назовем систему булевых функций предполным классом, если эта система неполна и добавление к ней любой функции, ей не принадлежащей, приводит к образованию полной системы. Доказать, что:

а) классы Поста являются предполными; б) других предполных классов, кроме классов Поста, нет.

2.43.Доказать, что во всяком базисе содержится не более четырех функций.

Ответы и указания к упражнениям

7

Тема 7 «Полнота системы булевых функций» Олейник Т.А., 2020

2.30. а) Полная; б) Неполная. Решение. а) Последовательно заполняем столбцы таблицы Поста данной системы (табл. 3). Поскольку для каждого из классов Поста можно указать функцию системы, ему не принадлежащую, то заключаем, что система полная.

 

 

 

 

Таблица 3

 

 

Классы Поста

 

Функции

 

 

 

 

 

 

 

 

 

 

 

+

( )|

 

 

 

 

б) Последовательно заполняем столбцы таблицы Поста данной системы (табл. 4). Посколькувсефункциисистемылежатвклассемонотонныхфункций,заключаем,чтосистема

неполная.

 

 

 

 

 

 

 

 

 

Таблица 4

 

 

Классы Поста

 

Функции

 

 

 

 

 

 

 

 

 

 

 

0

+

+

 

1

 

 

+

 

 

 

 

 

+

 

2.31. а) Имеем один базис: { 1,  , }. Указание. Проанализируйте таблицу Поста

данной системы (табл. 5).

 

 

 

 

 

 

 

 

 

 

 

Таблица 5

Функции

 

 

Классы функций

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

+

+

+

1

+

+

+

 

+

+

+

 

+

+

б) Имеем два базиса: {|} и { ↓ } . Указание. Проанализируйте таблицу Поста данной системы (табл. 6).

 

 

 

 

 

Таблица 6

 

 

 

Классы функций

 

Функции

 

 

 

 

 

 

 

 

 

 

 

 

|

8

Соседние файлы в папке Тексты лекций