МАТ_ ЛОГИКА / МАТЕМАТИЧЕСКАЯ ЛОГИКА_ЛК6_20_02_2012_Классы Поста
.docКлассы Поста
Определим 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 1z 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 |
x1 |
|
||||||
|
0 |
1 |
1 |
1 |
|
||||||
|
1 |
0 |
1 |
0 |
|
||||||
|
|||||||||||
x1 |
x2 |
x1x2 |
x1x2 |
x1x2x1 |
x1x2x1x2 |
||||||
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)=xy. Тогда f*(x,y)xy.
б) Пусть f (x,y)=xy. Тогда f*(x,y)xy.
в) Пусть 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.