Как составить таблицу поста

Классами Поста называются следующие классы:

T0, T1, L, S, М.

Класс функций, сохраняющих константу 0:

T0 = {f ∈ P2 | f(0,0,…,0) =0}.

Класс функций, сохраняющих константу 1:

T1 = {f ∈ P2 | f(1,1,…,1) =1}.

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

L = {f ∈ P2 | f(x1, x2, …, xn) = a0 + a1x1 + … +anxn}.

Класс самодвойственных функций:

S = {f ∈ P2 | ∀(a1,…,an) f(a1,…,an) = f(a1,…,an)}.

Говорят, что набор α предшествует набору β, и пишут
α ⪯ β, если a iα bi для i=1,2,…,n.

Класс монотонных функций:

M={f ∈ P2|∀αβ α ⪯ β → f(α) ≤ f(β)

Замыканием множества булевых функций и называется множество всех суперпозиций функций класса и, которое обознача
ется [и].

Класс и называется функционально замкнутым, если [и] = и.

Теорема. Классы Поста функционально замкнуты.

Класс функций и называется функционально полным, если
[и] = P2.

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

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

Задание 2.4.1

Доопределить функции f(x,y,z), g(x,y,z), h(x,y,z) так,
чтобы f ∈ М, g ∈ L, h ∈ S.

Если построение какой-либо функции невозможно, докажите это.

Выясните вопрос о принадлежности построенных функций
к классам Т2 и T2.

Таблица 2.4.1

f g h
1 (-10- 1—) (-10- -0-0) (-0– 11-1)
2 (—0 1—) (0— 110-) (11– 10–)
3 (—0 -10-) (—0 0-10) (-1– 01-0)
4 (-1– –0-) (01-0 -1–) (101- 1—)
5 (—0 -01-) (0-10 —1) (–10 –01)
6 (–1- -0–) (-01- -1-1) (-1-0 -1-0)
7 (-0-0 1—) (1— 011-) (-00- 1–1)
8 (-1-1 –0-) (—1 1-01) (-1– 10-0)
9 (-01- -0–) (10-1 -0–) (0— 101-)
10 (—0 1-1-) (1-01 —0) (1–1 -00-)
11 (-1– –01) (1-1- –00) 1-10 –1-)
12 (0–0 1—) (–00 1-0-) (–10 –00)
13 (0-1- -0–) (–10 1-1-) (-10- 0–1)
14 (01– –0-) (-00- 1-1-) (11-1 -0–)
15 (—0 1–1) (0— 001-) (-010 —1)
16 (–1- -0-1) (-10- 0–1) (-1– 10-0)
17 (-1– -10-) (0–1 -0-0) (00-1 -1–)
18 (–00 1—) (–1- 11-0) (00-0 -0–)
19 (-01- -0–) (—0 01-0) (01– 01–)
20 (-1– 0-0-) (1–0 -1-1) (0-10 –0-)
21 (—0 1-1-) (–0- 00-1) (—1 -010)
22 (–11 -0–) (—1 10-1) (-1– 10-0)
23 (-10- –0-) (1— 110-) (0–1 -10-)
24 (-01- -0–) (-01- 1–0) (-1-0 -0-1)
25 (-0-0 1—) (-1-0 1-01) (1–0 -10-)
26 (-1-1 –0-) (1–0 -01-) (–01 –11)
27 (-0-0 1—) (01-1 -0–) (0-00 –0-)
28 (–11 -0–) (-1– 1-0-) (0–1 -01-)
29 (-1– 011-) (01– 1-0-) (-101 —0)
30 (—0 11–) (-0– 101-) (00-0 -0–)

Пример решения задания 2.4.1

Решим задание 2.4.1 для f = (-101 – -0-),
g = (—1-010), h = (1-10–1-).

Изобразим развёрнутую таблицу
данных функций.

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

Так как f(1,1,0) = 0, то на всех на-
борах, предшествующих набору (1,1,0),
функция f тоже должна равняться 0,
т.е. f(0,0,0) = f(1,0,0) = 0.

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

Получаем: f(x,у,z) = (01010101).

Таблица 2.4.1a

xyz f g h
000 1
001 1
010 0 1
011 1 1 0
100
101 0
110 0 1 1
111 0

Доопределим функцию g, учитывая, что она — линейная. Общий вид линейной функции от переменных х, у, z имеет вид: g(x,y,z) = a0 + a1x + a2y + a3z.

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

Получим систему соотношений:

или

Заменяя a0 + a1x + a2 на 1 в 4 уравнении системы, имеем:

1 + a3 = 0 ⇒ a3 = 1.

Сложив первые три уравнения и учитывая, что х + х = 0, получим: а0 + 0 = 0 ⇒ а0 = 1.

Подставляя в 1 уравнение найденные значения а0 и а3, получим: 0 + а2 + 1 = 1 или а2 +1 = 1, откуда а2 = 0.

Подставив значения а0 и а3 во 2 уравнение, получим:

0 + а1+1 = 0 или а1 +1 = 0, откуда а1 =1.

Итак, g(x,y,z) = 0 + 1⋅х + 0⋅у + 1⋅z = x + z.

Исходя из этой формулы, найдём значения функции g на тех
наборах, на которых она была не определена: g(0,0,0) = 0 + 0 = 0;
g(0,0,1) = 0 + 1 = 1; g(0,1,0) = 0 + 0 = 0; g(1,0,0) = 1 + 0 = 1.

В итоге имеем: g(x,y,z) = (01011010).

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

Противоположными парами наборов значений переменных
являются также (0,0,1) и (1,1,0), (0,1,0) и (1,0,1), (0,1,1) и (1,0,0).

Используя известные значения функции h, получим:

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

Итак, h(x,y,z) = (10101010).

Так как f(0,0,0) = g(0,0,0) = 0 ≠ h(0,0,0), то f ∈ T0, g ∈ T0,
h ∉ T0.

Так как g(1,1,1) = h(1,1,1) = 0, f(1,1,1) = 1, то f ∈ T1, g ∉ T1, h ∉ T1.

Задание 2.4.2

1. Можно ли из функции f(x,y,z) с помощью суперпозиций
получить g(x,y,z) ?

2. Верно ли, что f(x,y,z) ∈ [g] ? ([g] — замыкание класса {g}).

Таблица 2.4.2

f g
1 1001 0110 1110 0110
2 1001 0100 1101 0100
3 0111 1010 1000 0110
4 1101 1010 1010 1010
5 0110 1111 1010 0110
6 1000 0110 1001 1000
7 0110 1110 1001 0010
8 1000 0110 1101 1001
9 1100 0111 1001 1001
10 1010 0110 1001 0110
11 1110 1000 1100 1000
12 1000 0000 1100 0011
13 0111 1110 1101 0000
14 1110 0000 1011 0010
15 1110 1111 1100 0010
16 1010 0100 1000 1110
17 0101 1110 1011 0000
18 1101 0000 1101 0100
19 1100 0001 1101 1000
20 1001 1000 1110 1000
21 1011 0010 1100 0110
22 1000 1100 0011 1010
23 100 0110 1111 0010
24 1100 1110 1000 0001
25 1100 0011 1001 1000
26 1001 0110 1101 1100
27 0111 1010 1001 1010
28 1101 0000 1110 1000
29 1111 0111 1010 1000
30 1000 1000 1001 0110

Пример решения задания 2.4.2

Решим задание 2.4.2 для функций f = (10010100),
g=(1001 0110).

Проверим f(x,y,z) на принадлежность к классам Поста.

f(0,0,0) = 1 ⇒ f ∉ T0; f(1,1,1) =1 ⇒ f ∉ T1;

(0,0,0) ⪯ (0,0,1) и f(0,0,0) > f(0,0,1) ⇒ f ∉ M;

(0,0,1) и (1,1,0) — противоположные наборы,

f(0,0,1) = f(1,1,0) ⇒ f ∉ S;

f(x,y,z) = (x + 1)(y + 1)(z +1) + (x + 1)yz + x(y + 1)z =

= 1 + x+y + z + xy + xz + yz + xyz + xyz + yz + xyz + xz =

= 1 + x+y + z + xy + xyz.

Так как в полиноме функции f присутствуют конъюнкции, то f ∉ L.

Итак, мы видим, что функция f(x,y,z) не принадлежит ни одному из классов Поста, значит, система {f} функционально полна, и с помощью суперпозиций из f можно получить любую булеву функцию, в частности, g(x,y,z).

Проверяя значения функции g(x,y,z) на всех парах противоположных наборов, видим:

g(0,0,0) = 1 = g(1,1,1), g(0,0,1) = 0 = g(1,1,0),

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

Значит, g ∈ S.

Так как S — функционально замкнутый класс, то [g] ⊆ S, но
f ∉ S, значит, f ∉ [g].

Задание 2.4.3

Для функций f(x,y,z) и g(x,y,z) выяснить вопрос об их принадлежности к классам Т0, T1, L, S, М.

В случае, если некоторая функция представляет из себя функционально полный класс, выразить из неё с помощью суперпозиций константы 0,1, отрицание и конъюнкцию ху.

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

Полученные результаты проверить с помощью построения
таблиц.

Таблица 2.4.3

f g
1 1100 0111 1101 1000
2 1110 1010 00110101
3 0100 1101 1100 1110
4 1111 0100 1001 0110
5 0110 1001 1101 0100
6 1000 0010 0000 1101
7 1011 1101 1100 0100
8 1111 1010 0101 1111
9 1000 0001 1110 1010
10 1101 1100 0001 1010
11 0010 0000 1100 1000
12 1001 0000 1000 0011
13 0111 1110 1101 0000
14 1110 0000 1011 0011
15 1110 1111 1100 0010
16 0010 0100 1000 1110
17 1101 1110 1011 0011
18 1101 0000 1101 0100
19 1100 0001 1101 1110
20 1001 1000 1110 1000
21 1011 0011 1100 0110
22 1000 1100 0011 1010
23 0001 0110 1111 0010
24 1100 1110 1000 0001
25 1100 0011 1101 1100
26 1001 1110 0101 0100
27 0111 1010 1011 1010
28 1101 0000 1110 1001
29 1111 0111 1011 1100
30 1000 1100 1001 0111

Пример решения задания 2.4.3

Решим задание 2.4.3 для функций
f = (0010 1000), g = (1001 0010).

Выпишем развёрнутую таблицу функций f и g (табл. 2.4.3а).

Таблица 2.4.3a

xyz f g
000 0 1
001 0 0
010 1 0
011 0 1
100 1 0
101 0 0
110 0 1
111 0 0

1. Исследуем функцию f(x,y,z). Проверим f(x,y,z) на принадлежность к классам
Поста.

f(0,0,0) = 0 ⇒ f ∈ T0.

Заметим, что отсюда следует, что {f} не
является функционально полным классом.

f(1,1,1) = 0 ⇒ f ∉ T1.

Так как наборы (0,0,0) и (1,1,1) противоположны
и f(0,0,0) = f(1,1,1), то f ∉ S.

Имеем, что (0,1,0) ⪯ (0,1,1), но f(0,1,0) > f(0,1,1), значит,
f ∉ M.

Найдём полином для f(x,y,z):

= xyz + xy + yz + y + xyz + xy + xz + x = xz + yz + x+ y.

Так как полином функции f содержит конъюнкцию, то f ∉ L.

Как было отмечено ранее, {f} не является функционально
полным классом, но, так как функция f нелинейна и немонотонна, {f} — функционально полный в слабом смысле класс.

Выразим из f отрицание с помощью фиксирования переменных. На соседних наборах (0,1,0) и (0,1,1) нарушается монотонность, рассмотрим функцию р(х) = f(0,1,х).

Найдём все значения функции р(х):

р(0) = f(0,1,0) = 1, p(1) = f(0,1,1) = 0 ⇒ р(х) = x.

Отрицание построено, x = f(0,1, х).

Для построения конъюнкции зафиксируем одну переменную и
переобозначим оставшиеся переменные так, чтобы полином принял вид

xy + αx + βy +γ, где α,β,γ ∈ {0,1}.

Например, можно сделать так: f(1,y,x) = 1⋅х + ху + 1 + у =
= ху + х+у + 1. В этом случае α = β = γ =1.

Введём функцию h(x, у) = f(1, у + α,х + β) + αβ + γ = f(1, y, x) =
= f(1,f(0,1,у), f(0,1,x)).

Найдём значения функции h на всех её наборах.

h(0,0) = f(1,f(0,1,0), f(0,1,0)) = f(1,1,1) = 0;

h(0,1) = f(1 f(0,1,1), f(0,1,0)) = f(1,0,1) = 0;

h(1,0) = f(1, f(0,1,0), f(0,1,1)) = f(1,1,0) = 0;

h(1,1) = f(1, f(0,1,1),f(0,1,1)) = f(1,0,0) = 1.

Как видим, таблица функции h(x,y) совпадает с таблицей
конъюнкции, следовательно, х⋅у = f(1, f(0,1,у), f(0,1,х)).

2. Исследуем g(x,y,z) на принадлежность к классам Поста.

g(0,0,0) = 1 ⇒ g ∉ T0.

g(1,1,1) = 0 ⇒ g ∉ T1.

Наборы (1,0,1) и (0,1,0) противоположны и
g(1,0,1) = g(0,1,0) ⇒ g ∉ S.

Так как (0,0,0) ⪯ (0,0,1), но g(0,0,0) > g(0,0,1) ⇒ g ∉ M.

Найдём полином для g(x,y,z):

g(x,y,z) = (x + 1)(y + 1)(x + 1) + (x + 1)yz + xy(z + 1) =

= xyz + xy + xz + yz + x+y + z + 1 + xyz + yz + xyz + xy =

= 1 + x + у + z + xz + xyz.

Так как в полиноме функции g содержится конъюнкция,
то g ∉ L.

Итак, функция g не принадлежит ни одному из пяти классов
поста, значит, {g} —функционально полный класс.

Выразим из g отрицание с помощью одних лишь суперпозиций. Рассмотрим функцию s(x) = g(x,x,x).

Найдём все значения функции s(x):

s(0) = g(0,0,0) = 1, s(1) = g(1,1,1) = 0 ⇒ s(x) = x

Отрицание построено, x = g(x,x,x).

Строим константу 0. Для этого возьмём набор из пары проти-
воположных наборов, на которых функция g равна 0, например,
(1,0,1), и рассмотрим функцию о(х):
о(х) = g(x1, x0, x1) = g(x, x, x) = g(x, g(x, x, x) x).

Найдём значения функции о(х) на её наборах.

о(0) = g(0, g(0,0,0),0) = g (0,1,0) = 0;

o(1) = g(1, g(1, g(1,1,1)1) = g(1,0,1) = 0.

Константа 0 построена, g(x, g(x,x,x),x) = 0.

Для построения константы 1 возьмём отрицание от функции
о(х) и обозначим полученную функцию через е(х).

е(х) = g(o(x),o(x),o(x)) =

= g(g(x,g(x,x,x,),x),g(x,g(x,x,x,))x),g(x,g(x,x,x),x)).

Итак, койстанта 1 получена,

g(g(x,g(x,x,x,),x),g(x,g(x,x,x,),x),g(x,g(x,x,x,),x)) ≡ 1.

Для построения конъюнкции зафиксируем переменную z,
придав ей значение 1.

Получим: g(x,у,1) = 1 + x+y + 1 + x⋅1 + xy⋅1 = xy + y + 1, т. е. мы
получили выражение вида ху + αх + βу + γ, где α = γ = 0, β = 1.

Рассмотрим функцию k(х,у) = g(x + β, y + α,1) + αβ + γ =

= g(x + 1,y,1) + 0⋅l + 0= g(g(x,x,x),y,1) =

= g(g(x,x,x),y,g(g(x,g(x,x,x),x),g(x,g(x,x,x),x),g(x,g(x,x,x),x))).

Найдём значения функции к на всех её наборах.

k(0,0)=g(g(0,0,0),0, g(g0, g(0,0,0),0x g(0, g(0,0,0),0), g(0, g(0,0,0),0)))=

=g(1,0,g(g(0,1,0), g(0,1,0), g(0,1,0)) = g(1,0,0) = 0;

k(0,1) = g(g(0,0,0), 1, g(g(0, g(0,0,0),0), g(0, g(0,0,0),0), g(0, g(0,0,0),0)))=

= g(1,1, g(g(0,1,0), g(0,1,0), g(0,1,0))) = g(1,1,g(0,0,0)) = g(1,1,1) = 0;

k(1,0) = g(g(1,1,1),0,g(g(1, g(g(1,1,1),1),g(1,g(1,1,1),1,g(1,g(1,1,1),1))) =

= g(0,0,g(g(1,0,1), g(1,0,1), g(1,0,1))) = g(0,0, g(0,0,0)) = g(0,0,1) = 0;

k(1,1)=g(g(1,1,1),1, g(g(1, g(1,1,1),1),g(1,g(1,1,1),1),g(1,g(1,1,1),1))) =

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

Как видим, таблица функции к(х,у) совпадает с таблицей
конъюнкции, следовательно,

х⋅y = g(g(x,x,x),y,g(g(x,g(x,x,x)x),g(x,g(x,х,х)х), g(x,g(x,х,х),х))).

Задание 2.4.4

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

Таблица 2.4.4

A   A   A
1 (L∪T0)T1   11 SΔL   21 (S∩T1)∪L
2 (S∪T0)T1   12 (S∩L)∪T0   22 (T1∪T0)∩L
3 S∪T0∪T1   13 (S∩L)∪T1   23 (T1∩T0)∪L
4 (S∪T0)∩T1   14 (S∪L)∩T1   24 (L∩T0)∪(S∩T1)
5 SΔT1   15 (S∪L)∩T0   25 (S∩T1)(L∩T0)
6 (L∪T1)T0   16 (L∪T0)∩S   26 (T1∪T0)S
7 LΔT1   17 (L∩T0)∪S   27 (T1∪T0)L
8 (ST0)∪T1   18 (L∪T1)∩S   28 (L∪T0)S
9 (S∩T1)∪T0   19 (L∩T1)∪S   29 T0(S∪L)
10 (S∪L)T0   20 (S∪T0)∩L   30 (T0S)T1

Примеры решения задания 2.4.4

Рис. 2.4.4 a. Классы Поста

Пример 1. Подсчитать число различ ных булевых функций от n переменных,
принадлежащих множеству L(T0∩S).

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

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

|L(n)(T(n)0∩S(n))|=|L(n)|-|L(n)∩T(n)0∩S(n)|

Каждая функция из L(n) имеет вид: а0 + а1х1 + а2х2 +… + аnхn.

Поставим в соответствие каждой такой функции вектор её
двоичных коэффициентов (а0, а1, а0, …, а0). Очевидно, что это соответствие — биекция, значит, количество различных линейных
функций от п переменных равно количеству различных двоичных наборов размерности n + 1, т.е. 2n+1 итак, |L(n) |=2n+1.

Если линейная функция сохраняет константу 0, то
а0 + а1 ⋅ 0 + а0 ⋅ 0 + … + аn ⋅ 0 = 0 ⇒ а0=0, и она имеет вид
а1х12х2+… + аnхn. Для самодвойственной функции выполняется свойство f(х1,…, хn) = f(х1,…,хn). Учитывая, что х = х + 1, посмотрим, как будет выглядеть это равенство в случае линейной, сохраняющей ноль функции:

а11 +1) + а22 + 1) + … + аnn +1) = 1 + a1x1 + а2х2 +… + аnхn.

Раскроем скобки:

а1х11+ а2х1 + а2 +… + аnхn + аn = 1 + а1х1 + а2х2 +… + аnхn.

Прибавим по модулю 2 к обеим частям полученного равенства
выражение а1х1 + а2х2 +… + аnхn, учтём, что х + х = 0. Тогда после упрощений будем иметь: а1 + а1 + … + а1 =1. (*)

Из коэффициентов а1, а1, …, аn произвольным образом можно
назначать n-1 коэффициент, а значение n-го коэффициента однозначно определяется из равенства (*). Итак, между множеством булевых функций класса L(n)∩T(n)0∩S(n) и множеством
двоичных векторов размерности n-1 существует биекция, значит, верно равенство | L(n)∩T(n)0∩S(n) |= 2n-1.

В итоге получаем:

| L(n)T(n)0 ∩ S(n)) |=|L(n)| – | L(n) ∩ T(n)0 ∩ S(n)| = 2n+1 – 2n-1 = 2n-1(4-1) = 3⋅2n-1.

Пример 2. Подсчитать число различных булевых функций от
n переменных, принадлежащих множеству S ∪ T1.

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

Рис. 2.4.4, б. Классы Поста

Изобразим множества S(n) и T(n)1
(рис. 2.4.4, б).

Очевидно,

| S(n) ∪ T(n)1 | = | S(n) | + | T(n)1 | – | S(n) ∩ T(n)1 |.

Пусть f ∈ S(n), g ∈ T(n)1, h ∈ S(n)∩T(n)1, изобразим таблицы этих функций.

Таблица 2.4.4а

x1 x2 xn-1 xn f g h
0 0 0 0 a1 b1 0
0 0 0 1 a2 b2 c1
0 1 1 1 a2n-1 c2n-1-1
1 0 0 0 ¬a2n-1 ¬c2n-1-1
1 1 1 0 ¬a2 b2n-1 ¬c1
1 1 1 1 ¬a1 1 1

Значит, мощности множеств S(n), T(n)1, S(n) ∩ T(n)1 равны соответственно 22n-1, 22n-1 и 22n-1-1.

В итоге: | S(n) ∪ T(n)1 | = 22n-1 + 22n-1 – 22n-1-1 = 22n-1-1 + 22n-1.

Классы Поста

Определим
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,
f
2 являются
самодвойственными функциями, а функции
f3,
f
4
– нет.

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,
f
2 являются
монотонными функциями, а функции f3,
f
4
– нет.

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,
f
1
и f3,
f
2.
Полными наборами будут любые наборы
содержащие, какой-либо базис.

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

Для
доказательства функциональной полноты
предъявленной системы 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.

Чтобы составить таблицу Поста, нужно решить вопрос о принадлежности каждой из четырёх рассматриваемых функций к классам (  large P_0, P_1, S, L, M ). Если некоторая функция принадлежит тому или иному классу, то на пересечении соответствующей строки и соответствующего столбца ставится знак “плюс”, если не принадлежит, то ставится знак “минус”

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

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

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

2) Решим вопрос о принадлежности функций к классу (  large P_0 ). Имеем:

Итак, функции (  large f_2 ) и (  large f_3 ) сохраняют нуль, а функции (  large f_1 ) и (  large f_4 ) — не сохраняют.

3) Проверим, какие из функций принадлежат к классу (  large P_1 ). Имеем:

Вывод: все рассматриваемые функции, кроме (  large f_2 ), сохраняют единицу.

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

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

5) Используя определения элементарных булевых функций, составим таблицы значений для функций (  large f_1, f_2, f_3, f_4 ) и выясним, являются ли они монотонными.

Рассмотрим первую и вторую строки таблицы. Функция (  large f_1 ) не является монотонной, так как

но

Рассмотрев третью и четвертую строки таблицы, делаем вывод, что функция (  large f_2 ) также не является монотонной, поскольку

но

Рассмотрим третью и седьмую строки таблицы. Функция (  large f_3 ) не является монотонной, так как

но

Рассмотрев первую и вторую строки таблицы, замечаем, что 

но

Значит, функция (  large f_4 ) также не является монотонной.

Используя полученные выше данные, составим таблицу Поста:

Согласно теореме Поста, системы (  large { f_1,f_2,f_3,f_4 } ), (  large { f_1,f_2,f_3 } ), (  large { f_1,f_2,f_4 } ), (  large { f_2,f_3,f_4 } ), (  large { f_1,f_2 } ), (  large {f_2 ,f_4 } ) полны, поскольку в каждой из них есть функция, не сохраняющая нуль, есть функция, не сохраняющая единицу, есть функция, не являющаяся самодвойственной, есть нелинейная функция, есть немонотонная функция.

стемы (  large {f_1 ,f_3,f_4 } ), (  large { f_1,f_3 } ), (  large { f_1,f_4 } ), (  large { f_2,f_3 } ), (  large { f_3,f_4 } ), (  large { f_1 } ), (  large { f_2 } ), (  large { f_3 } ), (  large {f_4 } ), в силу той же теоремы, не являются полными. Но являются ли перечисленные выше полные системы базисами? Будем рассуждать, используя определение базиса булевых функций. Системы (  large { f_1,f_2 } ), (  large {f_2 ,f_4 } ) есть базисы, поскольку после удаления из них любой функции они превращаются в систему из одной функции, а все такие системы, как сказано выше, не полны. Удаляя из системы (  large { f_1,f_2,f_3 } ) функцию (  large f_3 ) получаем полную систему, удаляя из системы (  large { f_1,f_2,f_4 } ) функцию (  large f_1 ) получаем полную систему, удаляя из системы (  large { f_2,f_3,f_4 } ) функцию (  large f_3 ) получаем полную систему. Следовательно, системы (  large { f_1,f_2,f_3 } ), (  large { f_1,f_2,f_4 } ), (  large { f_2,f_3,f_4 } ) не являются базисами. Система (  large {f_1, f_2,f_3,f_4 } ) не базис, так как, например, удаление из неё функции (  large f_4 ) приводит к полной системе.

Итак, базисами являются только две системы: (  large { f_1,f_2 } ) и (  large {f_2 ,f_4 } ).

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

maths24.net

Система булевых функций F={f1,…,fn} называется полной, если любая булева функция представима в виде терма сигнатуры (f1,…,fn}, т.е в виде суперпозиции функций из F.

Классы Поста:

1) P0={f|f(0,…,0)=0} — класс булевых функций, сохраняющих ноль

2) P1={f|f(1,…,1)=1} – класс булевых функций, сохраняющих 1

3) S={f|f+=f} – класс самодвойственных функций

4) M – класс монотонных функций. Булева функция f(x1,…,xn) называется монотонной, если для любых наборов нулей и единиц (α1,…,αn) и (β1,…,βn) из условий αi≤βi следует f(α1,…,αn)≤f(β1,…,βn)

5) Класс I – это класс линейных функций. Булева функций f(x1,…,xn) называется линейной, если в булевом кольце Классы поста функция f представима в виде Классы поста .

Каждый класс Поста замкнут относительно операций замены переменных и суперпозиции.

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

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

Доказательство: Предположим, что существует базис F, состоящий более чем из четырех функций. По теореме Поста тогда получаем, что F состоит ровно из пяти функций, каждая из которых не принадлежит ровно одному классу Поста. Пусть f – функция из F, не принадлежащая классу P0. Тогда f(0,…,0)=1 и f(1,…,1)=1, но тогда f не принадлежит классу самодвойственных функций, а это противоречит предположения.

studopedia.ru

Необходимость.

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

Достаточность.

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

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

Таким образом, возможны четыре варианта:

  • Мы получили функцию .

Используем несамодвойственную функцию . По определению, найдется такой вектор , что . Где .

Рассмотрим , где либо , при . Либо , при .
Нетрудно заметить, что .
Таким образом мы получили одну из констант.

  • Мы получили и имеем константу, равную , поскольку .
  • Мы получили и имеем константу, равную , поскольку .
  • Мы получили и .

Рассмотрим немонотонную функцию . Существуют такие , что , , зафиксируем все , тогда .

В итоге имеем три функции: , , .

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

Рассмотрим несколько вариантов:

  1. Присутствует член . Возьмем отрицание от и член исчезнет.
  2. Присутствуют три члена, без : . Составив таблицу истинности для этой функции нетрудно заметить, что она эквивалентна функции .
  3. Присутствуют два члена, без . Построив две таблицы истинности для двух различных вариантов, заметим, что в обоих случаях функция истинна только в одной точке, следовательно, СДНФ функции будет состоять только из одного члена. Если это так, то не составляет труда выразить через и . Например, если функция принимает истинное значение, когда аргументы c номерами ложны, а все остальные истины, то функцию можно выразить как , где ставится перед аргументами с номерами .
  4. Присутствует один член. Выразим через и аналогично пункту 3.

В итоге получим функцию, а также либо функцию , либо функцию . Поскольку функцию можно выразить через и , а функцию через и , то мы получили базис , , . Любую булеву функцию, не равную тождественному нулю, можно представить в форме СДНФ, то есть выразить в данном базисе. Если же функция равна тождественному нулю, то ее можно представить в виде .

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

Задача 2. Привести данные выражения к ДНФ, пользуясь правилами де Моргана. Если возможно, сократить ДНФ, используя свойство поглощения и правило Блейка:
image002

Задача 12.а) Написать по данной ДНФ полином Жегалкина, от ДНФ перейти к КНФ, а затем перейти к СКНФ; б) перейти от данной КНФ к ДНФ, а затем перейти к СДНФ.
image004

Задача 22.Составить таблицу истинности данной функции, написать для нее СДНФ и СКНФ (если возможно); найти по таблице истинности полином Жегалкина для данной функции; составить карту Карно для данной функции и найти сокращенную ДНФ.
image006


Задача 32. С помощью карт Карно по данной таблице истинности для функции 4-х переменных найти ее сокращенную ДНФ.
а)

x3x4
x1x2

00

01

11

10

00

1

0

0

1

01

1

0

0

1

11

0

1

1

0

10

0

0

0

1

б)

x3x4
x1x2

00

01

11

10

00

0

1

1

0

01

0

1

1

0

11

0

0

0

0

10

1

0

0

1

Задача 42. Составить таблицу Поста и найти базисы из следующих функций:
image008

Задача 52. Составить структурную матрицу для данного орграфа (или графа) и, методами булевой алгебры, найти все пути Pij из вершины i в вершину j, затем найти все сечения Sij между этими вершинами.

Дан орграф. Имеется 2 ориентированных ребра: (2-3) и (2-4); i=4, j=6.

image010

Задача 62. Найти в данной сети максимальный поток из вершины с номером 1 в вершину с наибольшим номером.
image011

Download (PDF, 369KB)

21 февраля, 2014

Posted In: Дискретная математика, Контрольная работа, Математика, СПб ГУТ


Метки: Вариант 2

Добавить комментарий