
МАТ_ ЛОГИКА / МАТЕМАТИЧЕСКАЯ ЛОГИКА_ЛК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 |
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.