Сделай Сам Свою Работу на 5

Суперпозиция функций алгебры логики.





Пусть имеется функция f(x1, x2, ... , xn) и функции

,

тогда функцию будем называть суперпозицией функции f(x1, x2, ... , xn) и функций .

Другими словами: пусть F = { fj } - набор функций алгебры логики, не обязательно конечный. Функция f называется суперпозицией функций из множества F или функцией над F, если она получена из функции путем замены одной или нескольких ее переменных функциями из множества F.

Пример.

Пусть задано множество функций

F = {f1(x1), f2(x1,x2,x3), f3(x1,x2)}.

Тогда суперпозициями функций из F будут, например, функции:

j1(x2, x3) = f3( f1(x2), f1(x3));

j2(x1, x2) = f2(x1, f1(x1), f3(x1,x2)).

Cовершенная ДНФ - суперпозиция функций из множества

. ð

Определение.

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

Мы уже имеем некоторый набор полных систем:

;

, так как ;

, так как ;

{x+y, xy, 1}. ð

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

Замкнутые классы.

Множество (класс) K функций алгебры логики называется замкнутым классом, если оно содержит все функции, получающиеся из K операциями суперпозиции и замены переменных, и не содержит никаких других функций.



Пусть K - некоторое подмножество функций из P2. Замыканием K называется множество всех булевых функций, представимых с помощью операций суперпозиции и замены переменных функций из множества K. Замыкание множества K обозначается через [K].

В терминах замыкания можно дать другие определения замкнутости и полноты (эквивалентные исходным):

K- замкнутый класс, если K = [K];

K - полная система, если [K] = Р2.

Примеры.

* {0}, {1} - замкнутые классы.

* Множество функции одной переменной - замкнутый класс.

* - замкнутый класс.

* Класс {1, x+y} не является замкнутым классом.

Рассмотрим некоторые важнейшие замкнутые классы.

1. Т0- класс функций, сохраняющих 0.

Обозначим через Т0 класс всех функций алгебры логики f(x1, x2, ... , xn), сохраняющих константу 0, то есть функций, для которых f(0, ... , 0) = 0.

.

Легко видеть, что есть функции, принадлежащие Т0, и функции, этому классу не принадлежащие:

0, x, xy, xÚy, x+y Î T0;



1, Ï T0 .

Из того, что Ï T0следует, например, что нельзя выразить через дизъюнкцию и конъюнкцию.

Поскольку таблица для функции f из класса Т0в первой строке содержит значение 0, то для функций из Т0можно задавать произвольные значения только на 2n - 1 наборе значений переменных, то есть

,

где - множество функций, сохраняющих 0 и зависящих от n переменных.

Покажем, что Т0- замкнутый класс. Так как xÎT0, то для обоснования замкнутости достаточно показать замкнутость относительно операции суперпозиции, поскольку операция замены переменных есть частный случай суперпозиции с функцией x.

Пусть . Тогда достаточно показать, что . Последнее вытекает из цепочки равенств

.

2. T1- класс функций, сохраняющих 1.

Обозначим через Т1класс всех функций алгебры логики f(x1, x2, ... , xn), сохраняющих константу 1, то есть функций, для которых f(1, ... , 1) = 1.

.

Легко видеть, что есть функции, принадлежащие Т1, и функции, этому классу не принадлежащие:

1, x, xy, xÚy, xºy Î T1;

0, , x+y Ï T1 .

Из того, что x + y Ï T0следует, например, что x + y нельзя выразить через дизъюнкцию и конъюнкцию.

Результаты о классе Т0тривиально переносятся на класс Т1. Таким образом, имеем:

Т1- замкнутый класс;

.

3. L - класс линейных функций.

Обозначим через L класс всех функций алгебры логики f(x1, x2, ... , xn), являющихся линейными:

.

Легко видеть, что есть функции, принадлежащие L , и функции, этому классу не принадлежащие:

0, 1, x, x+y, x1 º x2 = x1+ x2 + 1, = x+1 Î L;

xy, xÚy Ï L .

Докажем, например, что xÚy Ï L .

Предположим противное. Будем искать выражение для xÚy в виде линейной функции с неопределенными коэффициентами:



.

При x = y = 0 имеем a=0,

при x = 1, y = 0 имеем b = 1,

при x = 0, y = 1 имеем g = 1,

но тогда при x = 1, y = 1 имеем 1Ú 1 ¹ 1 + 1, что доказывает нелинейность функции xÚy.

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

Поскольку линейная функция однозначно определяется заданием значений n+1 коэффициента a0, ... , an, число линейных функций в классе L(n)функций, зависящих от n переменных равно 2n+1.

.

4. S - класс самодвойственных функций.

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

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

Очевидно, что таблица для двойственной функции (при стандартной упорядоченности наборов значений переменных) получается из таблицы для исходной функции инвертированием (то есть заменой 0 на 1 и 1 на 0) столбца значений функции и его переворачиванием.

Легко видеть, что

0* = 1,

1* = 0,

x* = x,

,

(x1 Ú x2)* = x1 Ù x2,

(x1 Ù x2)* = x1 Ú x2.

Из определения вытекает, что (f*)* = f, то есть функция f является двойственной к f*.

Пусть функция выражена с помощью суперпозиции через другие функции. Спрашивается, как построить формулу, реализующую ? Обозначим через = (x1, ... , xn) все различные символы переменных, встречающиеся в наборах .

Теорема 2.6.Если функция j получена как суперпозиция функций f, f1, f2, ... , fm, то есть

,

то

-

функция, двойственная к суперпозиции, есть суперпозиция двойственных функций.

Доказательство.

j*(x1 ,...,xn) = ` f(`x1 ,...,`xn) =

Теорема доказана. ð

Из теоремы вытекает принцип двойственности: если формула А реализует функцию f(x1, ... , xn), то формула , полученная из А заменой входящих в нее функций на двойственные им, реализует двойственную функцию f*(x1, ... , xn).

Обозначим через S класс всех самодвойственных функций из P2:

S = {f | f* = f }

Легко видеть, что есть функции, принадлежащие S, и функции, этому классу не принадлежащие:

x, Î S;

0, 1, xy, xÚy Ï S .

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

h(x, y, z) = xy Ú xz Ú yz;

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

h*(x, y, z)= (x Ú y)Ù(x Ú z) Ù ( y Ù z) = x y Ú x z Ú y z; h = h* ; h Î S.

Для самодвойственной функции имеет место тождество

,

так что на наборах и , которые мы будем называть противоположными, самодвойственная функция принимает противоположные значения. Отсюда следует, что самодвойственная функция полностью определяется своими значениями на первой половине строк стандартной таблицы. Поэтому число самодвойственных функций в классе S(n)функций, зависящих от n переменных, равно :

.

Докажем теперь, что класс S замкнут. Так как xÎS , то для обоснования замкнутости достаточно показать замкнутость относительно операции суперпозиции, поскольку операция замены переменных есть частный случай суперпозиции с функцией x. Пусть . Тогда достаточно показать, что . Последнее устанавливается непосредственно:

.

5. М - класс монотонных функций.

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

Говорят, что набор предшествует набору (или “не больше ”, или “меньше или равен ”), и применяют обозначение , если ai £ biдля всех i = 1, ... , n. Если и , то будем говорить, что набор строго предшествует набору (или “строго меньше”, или “меньше” набора ), и использовать обозначение . Наборы и называются сравнимыми, если либо , либо .В случае, когда ни одно из этих соотношений не выполняется, наборы и называются несравнимыми. Например, (0, 1, 0, 1) £ (1, 1, 0, 1), но наборы (0, 1, 1, 0) и (1, 0, 1, 0) несравнимы. Тем самым отношение £ (его часто называют отношением предшествования) является частичным порядком на множестве Вn . Ниже приведены диаграммы частично упорядоченных множеств В2, В3и В4.

 

 


В3


Введенное отношение частичного порядка - исключительно важное понятие, далеко выходящее за рамки нашего курса.

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

Функция алгебры логики называется монотонной, если для любых двух наборов и , таких, что , имеет место неравенство . Множество всех монотонных функций алгебры логики обозначаетcя через М, а множество всех монотонных функций, зависящих от n переменных - через М(n).

Легко видеть, что есть функции, принадлежащие M , и функции, этому классу не принадлежащие:

0, 1, x, xy, xÚy Î M;

x+y, x®y, xºy Ï M .

Покажем, что класс монотонных функций М - замкнутый класс. Так как xÎМ , то для обоснования замкнутости достаточно показать замкнутость относительно операции суперпозиции, поскольку операция замены переменных есть частный случай суперпозиции с функцией x.

Пусть . Тогда достаточно показать, что .

Пусть - наборы переменных, соответственно, функций j, f1, ... , fm , причем множество переменных функции j состоит из тех и только тех переменных, которые встречаются у функций f1, ... , fm. Пусть и - два набора значений переменной , причем . Эти наборы определяют наборы значений переменных , такие, что . В силу монотонности функций f1, ... , fm

,

поэтому

,

и в силу монотонности функции f

.

Отсюда получаем

. ð

Число монотонных функций, зависящих от n переменных, точно неизвестно. Легко может быть получена оценка снизу:

,

где [n/2] - есть целая часть от n/2.

Так же просто получается слишком завышенная оценка сверху:

.

Уточнение этих оценок - важная и интересная задача современных исследований.

Критерий полноты

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

Лемма 2.7. Лемма о несамодвойственной функции.

Если f(x1, ... , xn)Ï S , то из нее путем подстановки функций x и `x можно получить константу.

Доказательство. Так как fÏS, то найдется набор значений переменных
=(a1,...,an) такой, что

f(`a1,...,`an) = f(a1,...,an)

Заменим аргументы в функции f :

xi заменяется на ,

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

.

Мы имеем

Тем самым мы получили константу ( правда, неизвестно, какая это константа: 0 или 1). ð

Лемма 2.8.Лемма о немонотонной функции.

Если функция f(x1 ,...,xn) немонотонна, f(x1 ,...,xn) Ï M, то из нее путем замены переменных и подстановки констант 0 и 1 можно получить отрицание.

Доказательство. Так как f(x1 ,...,xn) Ï M, то найдутся наборы и значений ее переменных, , , такие что , причем хотя бы для одного значения i имеет место ai < bi . Выполним следующую замену переменных функции f:

xi заменим на

 

После такой подстановки получим функцию одной переменной j(x), для которой имеем:

j(0) = ;

j(1) = .

Это означает, что j(x)=`x. Лемма доказана. ð

Лемма 2.9. Лемма о нелинейной функции.

Если f(x1 ,...,xn) Ï L , то из нее путем подстановки констант 0, 1 и использования функции `x можно получить функцию x1&x2 .

Доказательство. Представим f в виде ДНФ ( например, совершенной ДНФ) и воспользуемся соотношениями:

Пример. Приведем два примера применения указанных преобразований.

ð

Таким образом, функция, записанная в дизъюнктивной нормальной форме, после применения указанных соотношений, раскрытия скобок и несложных алгебраических преобразований переходит в полином по mod 2 ( полином Жегалкина):

где A0константа, а Аi- конъюнкция некоторых переменных из числа x1,..., xn, i = 1, 2, ... , r.

Если каждая конъюнкция Ai состоит лишь из одной переменной, то f - линейная функция, что противоречит условию леммы.

Следовательно, в полиноме Жегалкина для функции f найдется член, в котором содержится не менее двух сомножителей. Без ограничения общности можно считать, что среди этих сомножителей присутствуют переменные x1и x2. Тогда полином можно преобразовать следующим образом:

f = x1x2f1(x3,..., xn) + x1f2(x3,..., xn) + x2f3(x3,..., xn) + f4(x3,..., xn),

где f1(x3,..., xn) ¹ 0 (в противном случае в полином не входит конъюнкция, содержащая конъюнкцию x1x2).

Пусть (a3,...,an) таковы, что f1(a3,...,an) = 1. Тогда

j(x1 ,x2) = f(x1,x2, a3,...,an) = x1x2+ax1+bx2+g ,

где a, b, g - константы, равные 0 или 1.

Воспользуемся операцией отрицания, которая у нас имеется, и рассмотрим функцию y(x1,x2), получающуюся из j(x1 ,x2) следующим образом:

y(x1,x2) = j(x1+b, x2+a)+ab+g.

Очевидно, что

y(x1,x2) =(x1+b)(x2+a)+a(x1+b)+b(x2+a)+g+ab+g = x1x2 .

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

y(x1,x2) = x1x2 .

Лемма доказана полностью.ð

Лемма 2.10. Основная лемма критерия полноты.

Если в классе F={ f } функций алгебры логики содержатся функции, не сохраняющие единицу, не сохраняющие 0, несамодвойственные и немонотонные:

;

,

то из функций этой системы операциями суперпозиции и замены переменных можно получить константы 0, 1 и функцию .

Доказательство. Рассмотрим функцию . Тогда

.

Возможны два случая последующих рассмотрений, в дальнейшем изложении обозначенные как 1) и 2).

1). Функция на единичном наборе принимает значение 0:

.

Заменим все переменные функции переменной x . Тогда функция

есть , ибо

и .

Возьмем несамодвойственную функцию . Так как функцию мы уже получили, то по лемме о несамодвойственной функции (лемма 2.7. ) из можно получить константу. Вторую константу можно получить из первой, используя функцию . Итак, в первом рассмотренном случае получены константы и отрицание.

2). Функция на единичном наборе принимает значение 1:

.

Заменим все переменные функции переменной x (отождествим все переменные). Тогда функция есть константа 1, ибо

и .

Вторая константа 0 получается из функции , не сохраняющей единицу, : .

Теперь на основании леммы о немонотонной функции (лемма 2.8) из имеющейся у нас немонотонной функции и полученных констант 0 и 1 можно получить отрицание . Второй случай, а вместе с ним и основная лемма критерия полноты, полностью доказаны. ð

Теорема 2.11. Критерий полноты систем функций алгебры логики (теорема Поста).

Для того, чтобы система функций F = {fi}была полной, необходимо и достаточно, чтобы она целиком не содержалась ни в одном из пяти замкнутых классов T0, T1, L , S, M, то есть для каждого из классов T0, T1, L , S, Mв F найдется хотя бы одна функция, этому классу не принадлежащая.

Необходимость. Пусть F - полная система. Допустим, что F содержится в одном из указанных классов, обозначим его через K, т.е. F Í K. Последнее включение невозможно, так как K - замкнутый класс, не являющийся полной системой.

Достаточность. Пусть система функций F = {fi}целиком не содержится ни в одном из пяти замкнутых классов T0, T1, L , S, M. Возьмем в Fфункции:

.

Тогда на основанииосновной леммы (лемма 2.10) из функции не сохраняющей 0, функции не сохраняющей 1, несамодвойственной и немонотонной функций можно получить константы 0, 1 и функцию отрицание :

.

На основании леммы о нелинейной функции (лемма 2.9) из констант, отрицания и нелинейной функции можно получить конъюнкцию:

.

Система функций - полная система по теореме о возможности представления любой функции алгебры логики в виде совершенной дизъюнктивной нормальной формы (заметим, что дизъюнкция может быть выражена через конъюнкцию и отрицание в виде ).

Теорема доказана полностью. ð

Примеры.

1.Покажем, что функция f(x,y) = x|y образует полную систему. Построим таблицу значений функции x½y:

x y x|y

f(0,0) = 1, следовательно, x | yÏT0.

f(1,1) = 0, следовательно, x | yÏT1.

f(0,0) = 1, f(1,1) = 0, следовательно, x | yÏM .

f(0,1) = f(1,0) = 1, - на противоположных наборах x | y принимает одинаковые значения, следовательно x | yÏS .

Наконец, , что означает нелинейность функции
x | y.

На основании критерия полноты можно утверждать, что f(x,y) = x | y образует полную систему. ð

2.Покажем, что система функций образует полную систему.

Действительно, .

Тем самым среди функций нашей системы найдены: функция, не сохраняющая 0, функция, не сохраняющая 1, несамодвойственная, немонотонная и нелинейная функции. На основании критерия полноты можно утверждать, что система функций образует полную систему.ð

Таким образом мы убедились, что критерий полноты дает конструктивный и эффективный способ выяснения полноты систем функций алгебры логики.

Сформулируем теперь три следствия из критерия полноты.

Следствие 1. Всякий замкнутый класс Kфункций алгебры логики, не совпадающий со всем множеством функций алгебры логики (K¹P2), содержится по крайней мере в одном из построенных замкнутых классов.

Определение. Замкнутый класс K называется предполным, если K неполный и для любой функции fÏ Kкласс K È {f}- полный.

Из определения следует, что предполный класс является замкнутым.

Следствие 2. В алгебре логики существует только пять предполных классов, а именно:T0,T1, L , M , S .

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

 

  T0 T1 L S M
+ - + - +
- + + - +
- - + + -

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

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

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.