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

МАТ_ ЛОГИКА / МАТЕМАТИЧЕСКАЯ ЛОГИКА_ЛК6_20_02_2012_Классы Поста

.doc
Скачиваний:
108
Добавлен:
06.06.2015
Размер:
200.7 Кб
Скачать

Классы Поста

Определим 5 классов булевых функций (классов Поста).

1. Классом булевых функций (,...,), сохраняющих константу 0, называется множество: :={(,...,)|(0,...,0)=0}.

2. Классом булевых функций (,...,), сохраняющих константу 1, называется множество: :={(,...,)|(1,...,1)=1}.

3. Классом L линейных булевых функций (,...,) называется множество:

L:={(,...,)|(,...,)=...}

где ,{0,1}, i=.

Коэффициенты ,,.., линейной функции определяются из следующих соотношений:

=(0,...,0)=0, =(1,0,...,0),...,=(0,...,0,1).

Пример 2. Определить, будет ли линейной функция:

f (x,y,z)=.

Имеем (x,y,z)=()== ==()=1=(x  1) z  x (y  1)(z  1) = xz  1z  xyz  xz  xy  x = x  z  xy  xyz.

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

4. Классом S самодвойственных булевых функций (,...,) называется множество:

S:={(,...,)|(,...,)=(,...,)}.

Пример. В нижеследующей таблице функции f1, f2 являются самодвойственными функциями, а функции f3, f4 – нет.

x

y

f1

f2

f3

f4

0

0

0

0

0

1

0

1

1

0

1

0

1

0

0

1

1

0

1

1

1

1

0

1

5. Классом M монотонных булевых функций (,...,) называется множество:

:={(,...,)|(,...,)(,...,)(,i=) (,...,)(,...,)}.

Пример. В нижеследующей таблице функции f1, f2 являются монотонными функциями, а функции f3, f4 – нет.

x

y

f1

f2

f3

f4

0

0

0

0

0

1

0

1

1

0

1

0

1

0

0

1

1

0

1

1

1

1

0

1

Естественный порядок переменных обеспечивает тот факт, что если какой-то набор меньше другого набора, то он обязательно расположен в таблице истинности выше “большего” набора. Поэтому если в таблице истинности (при естественном порядке набора переменных) вверху стоят нули, а затем единицы, то эта функция точно является монотонной. Однако возможны инверсии, т. е. единица стоит до каких-то нулей, но функция является все равно монотонной (в этом случае наборы, соответствующие “верхней” единице и “нижнему” нулю должны быть несравнимы; можно проверить, что функция, задаваемая таблицей истинности при естественном порядке набора переменных (00010101), является монотонной);

Пример 3. Определим, к каким классам Поста относится булева функция (x,y)=x|y.

f (0,0)=1, т.е. f (x,y).

f (1,1)=0, т.е. f (x,y).

f (1,0)f (0,1), т.е. f (x,y)S.

f (0,0)>f (1,1), т.е. f (x,y)M.

f (x,y)=1 xy, т.е. f (x,y)L.

Отметим, что каждый класс Поста замкнут относительно операций замены переменных и суперпозиций, т.е. с помощью этих операций из функций, принадлежащих данному классу, можно получить только функции из этого же класса.

Для установления полноты системы S:={,...,} булевых функций используют критерий полноты Поста–Яблонского:

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

В силу критерия полноты функция f (x,y)x|y образует полную систему, т.е. с помощью функции Шеффера (x|y) можно получить любую функцию. В частности,

x|x, x&y(x|y)| (x|y).

Система булевых функций F:={,...,} называется базисом, если она полна, а для любой функций S система F\{} – неполна.

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

{○},{|},{,},{,○},{,},{,},{,},{,},{&,},{,}, {,1},{,&,0},{,,0},{,&,},{,,},{,&,1},{,,1}.

Наиболее хорошо изученным является базис {&,,}.

Из критерия полноты следует довольно простой способ выяснения полноты некоторого набора функций. Для каждой из этих функций выясняется принадлежность к перечисленным выше классам. Результаты заносятся в так называемую таблицу Поста (в нашем примере эта таблица составлена для 4-х функций, причем знаком “+” отмечается принадлежность функции соответствующему классу, знак “–” означает, что функция в него не входит).

  f

T0

T1

L

M

S

f1

+

+

f2

+

+

f3

+

f4

+

+

+

В соответствии с теоремой Поста набор функций будет полным тогда и только тогда, когда в каждом столбце таблицы Поста имеется хотя бы один минус. Таким образом, из приведенной таблицы следует, что данные 4 функции образуют полный набор, но эти функции не являются базисом. Из этих функций можно образовать 2 базиса: f3, f1 и f3, f2. Полными наборами будут любые наборы содержащие, какой-либо базис.

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

Для доказательства функциональной полноты предъявленной системы F:={,...,} достаточно показать, что через функции F можно выразить все функции из базиса {&,,}. Справедливо и более общее утверждение.

Теорема. Если все функции функционально полной системы * представимы формулами над , то  также функционально полна.

Пример. В алгебре Жегалкина (;={&,,1}) определить, является ли сигнатура  функционально полной системой.

Чтобы выяснить функциональную полноту системы ={&,,1}, достаточно показать, что через операции  можно выразить операции булевого базиса *={&,,}:

1) =,

2) =

Построенные таблицы истинности подтверждают справедливость формул 1) и 2).

x

x

1

x1

0

1

1

1

1

0

1

0

x1

x2

x1x2

x1x2

x1x2x1

x1x2x1x2

0

0

0

0

0

0

0

1

1

0

0

1

1

0

1

0

1

1

1

1

1

1

0

1

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

Отношение двойственности между функциями симметрично, т.е. если f* двойственна к f, то f двойственна к f*:

(,...,)=(,...,)=f*(,...,).

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

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

Принцип двойственности в булевой алгебре: если в формуле F, представляющей функцию f, все конъюнкции заменить на дизъюнкции, дизъюнкции на конъюнкции, 1 на 0, 0 на 1, то получим формулу F*, представляющую функцию f*, двойственную f.

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

Найдем для каждой операции булевой алгебры (; &, , ) двойственные им операции.

а) Пусть f (x,y)=xy. Тогда f*(x,y)xy.

б) Пусть f (x,y)=xy. Тогда f*(x,y)xy.

в) Пусть f (x). Тогда f*(x).

Таким образом, конъюнкция двойственна дизъюнкции, дизъюнкция – конъюнкции, а отрицание самодвойственно.

Наконец, константы 0 и 1 принадлежат множеству логических функций , поэтому 0 и 1 могут содержаться в булевой формуле и являются двойственными друг к другу: если (,...,)=0, то f*(,...,)(,...,)1. Аналогично, если f =1, то f*=0.

Отсюда следует справедливость принципа двойственности в булевой алгебре.

Пример. Пусть f (x,y,z) . Найти ДНФ двойственной функции f*(x,y,z), исходя из:

а) определения двойственности функции;

б) принципа двойственности в булевой алгебре.

а) f*(x,y,z) xz;

б) f*(x,y,z) xz.