Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
новый онлайн-сервис
число, сумма и дата прописью

Часовой пояс: UTC + 3 часа [ Летнее время ]


Теорема Поста и классы

Теорема Поста и классы


В силу теоремы о представлении любой булевой функции дизъюнктивной или конъюнктивной нормальной формой стандартный базис \{\lor,\cdot,\overline{\phantom{A}}\} является полным множеством. Поскольку, согласно законам де Моргана, можно выразить конъюнкцию через дизъюнкцию и отрицание, равно как и дизъюнкцию можно выразить через конъюнкцию и отрицание, то при удалении из стандартного базиса одной функции, дизъюнкции или конъюнкции, при сохранении отрицания, получим снова полное множество.


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


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


Из условия теоремы следует, что каждая функция f\in F может быть представлена некоторой формулой \Psi над G, т.е.


f(x_1,\ldots,x_n)=\Psi(x_1,\ldots,x_n).
(6.17)

Докажем, что всякая формула над F эквивалентна некоторой формуле над G, т.е. всякая функция \varphi, представляемая формулой над F, может быть представлена также и некоторой формулой над G. Доказательство проведем по такой схеме: сначала убедимся в справедливости утверждения для "базисных" формул, т.е. для переменных и констант из F, а затем в предположении, что оно уже доказано для формул \Phi_1,\ldots,\Phi_n, где n\geqslant1, докажем его для любой формулы вида f(\Phi_1,\ldots,\Phi_n), где f\in F. Такой метод доказательства называют доказательством индукцией по построению формулы.


Пусть \varphi — какая-то формула над F. Если \varphi=x, где x — булево переменное из множества X, то, поскольку каждое переменное есть, по определению, и формула над G, функция \varphi представляется формулой над G.


Если \varphi есть константа из F, то представляющая \varphi формула над G существует ввиду (6.17).


Рассмотрим формулу над F вида f(\Phi_1,\ldots,\Phi_n), где n>0,~f\in F, а \Phi_1,\ldots,\Phi_n — формулы над F. Согласно предположению индукции, каждая формула \Phi_1,~i=\overline{1,n}, может быть заменена эквивалентной ей формулой \Theta_i над G (т.е. имеет место тождество \Phi_1=\Theta_i над F\cup G). Тогда, используя правила эквивалентных преобразований формул (см. теорему 6.1), получим тождество


f(\Phi_1,\ldots,\Phi_n)= f(\Theta_1,\ldots,\Theta_n),
а в соответствии с (6.17) будем иметь
f(\Theta_1,\ldots,\Theta_n)= \Psi(\Theta_1,\ldots,\Theta_n).
(6.18)

Правая часть тождества (6.18) и есть формула над G, эквивалентная исходной формуле над F.


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


Пример 6.17. Рассмотрим базис Жегалкина \{\oplus,\cdot,1\}. Чтобы доказать полноту этого множества, заметим, что


x\lor y=x\cdot y\oplus x\oplus y,\qquad \overline{x}=x\oplus1,

т.е. каждый элемент стандартного базиса может быть представлен формулой над базисом Жегалкина. Отсюда и следует (ввиду полноты стандартного базиса и теоремы 6.3) полнота базиса Жегалкина.




Любую формулу над базисом Жегалкина называют полиномом Жегалкина. Полином Жегалкина от n переменных может быть записан в виде


P(x_1,\ldots,x_n)= \bigoplus\limits_{\{i_1,i_2,\ldots,i_m \}\subseteq\{1,2,\ldots,n\}} (\operatorname{mod}2)a_{i_1i_2\ldots i_m} x_{i_1}x_{i_2}\ldots x_{i_m},

где коэффициенты полинома a_{i_1i_2\ldots i_m}\in\{0;1\} индексированы всеми возможными подмножествами множества \{1,2,\ldots,n\} (коэффициент a_0 соответствует пустому множеству). В частности, при n=3 будем иметь:


a_{123}x_1x_2x_3\oplus a_{12}x_1x_2\oplus a_{13}x_1x_3\oplus a_{23}x_2x_3\oplus a_1x_1\oplus a_2x_2\oplus a_3x_3\oplus a_0
(6.19)

(общий вид полинома Жегалкина от трех переменных). Формула вида


\bigoplus\limits_{i=1}^{n}(\operatorname{mod}2)a_ix_i\oplus a_0
(6.20)

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


Можно доказать следующее достаточно простое, но важное утверждение.


Теорема 6.4. Полином Жегалкина для любой булевой функции определен однозначно.


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


Пример 6.18. Пусть вектор значений булевой функции f равен 11001011. Найдем полином Жегалкина, представляющий f. Поскольку размерность вектора значений f равна 2^3=8, то f задана как функция от трех переменных. Тогда она представляется некоторым полиномом Жегалкина третьей степени, общий вид которого дает формула (6.19). Наша задача — найти такие значения коэффициентов этого полинома, при которых он представляет функцию f. Ясно, что значение функции f на наборе 000 равно коэффициенту a_0 в формуле (6.19). Но, согласно заданному вектору значений, оно равно 1. Следовательно, a_0=1. Далее,


f(0,0,1)=a_3\oplus a_0=a_3\oplus 1=1,

откуда, решая уравнение относительно a_3 в поле \mathbb{Z}_2, получим a_3=0;


f(0,1,0)=a_2\oplus1=0, то есть a_2=1 и f(1,0,0)= a_1\oplus 1=1 и a_1=0.

Чтобы найти коэффициенты a_{12},\,a_{13} и a_{23}, нужно рассмотреть значения функции на наборах 110,\,101 и 011 соответственно. Так, для первого набора получим


f(1,1,0)=a_{12}x_1x_2\oplus a_1x_1\oplus a_2x_2\oplus a_0= a_{12}\oplus a_{2}\oplus a_0=a_{12}\oplus1\oplus1=a_{12}

(сумма по модулю 2 любого четного числа равных слагаемых равна 0). Поскольку в то же время f(1,1,0)=1, то a_0=1. Аналогично f(1,0,1)=a_{13}\oplus a_0=0, откуда a_{13}=1; f(0,1,1)=a_{23}\oplus a_2\oplus a_0=0, и, так как a_2=a_0=1,~a_{23}=0. Наконец,


f(1,1,1)=a_{123}\oplus a_{12}\oplus a_{13}\oplus a_2\oplus a_0=a_{123}=1.

Итак, окончательно имеем f=x_1x_2x_3\oplus x_1x_2\oplus x_1x_3\oplus x_2\oplus 1.




Как видно из примера 6.18, суть метода неопределенных коэффициентов состоит в следующем. Записывая полином Жегалкина сначала в общем виде, с неопределенными коэффициентами, мы выражаем значение полинома на фиксированных наборах через коэффициенты и приравниваем его заданному значению функции. Начинаем с нулевого набора и находим коэффициент a_0, равный значению заданной функции на нулевом наборе. Зная его, из рассмотрения значений функции на наборах, содержащих в точности одну единицу, находим коэффициенты а,- при "одиночных" переменных (коэффициенты "линейной части" полинома). Зная их, из рассмотрения значений функции на наборах, содержащих в точности две единицы, находим коэффициенты при конъюнкциях двух переменных и т.д. При этом выполняются вычисления и решаются простейшие линейные уравнения в поле вычетов по модулю 2.


Пример 6.19. а. Рассмотрим множество \{\mid\}, состоящее из единственной функции (штриха Шеффера). Полнота этого множества следует из легко проверяемых тождеств


x\cdot y=(x|y)|(x|y),\qquad \overline{x}=(x|x).

б. Полнота множества \{\downarrow\}, единственным элементом которого является стрелка Пирса, проверяется аналогично.


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


Определение 6.8. Функцию f называют функцией, сохраняющей константу 0 (соответственно константу 1), если f(\widetilde{0})=0 (соответственно: f(\widetilde{1})=1, где \widetilde{0} — нулевой, а \widetilde{1} — единичный наборы значений переменных функции f.


Например, мажоритарная функция является функцией, сохраняющей и константу 0, и константу 1. Отрицание не сохраняет ни 0, ни 1, а эквивалентность сохраняет 1, но не сохраняет 0. Множество всех функций, сохраняющих константу 0 (константу 1), обозначается T_0 (соответственно T_1).


Наборы \widetilde{\alpha} и \overline{\widetilde{\alpha}} из булева куба \mathbb{B}^n=\{0;1\}^n (для произвольного фиксированного n) будем называть взаимно противоположными, говоря при этом также, что набор \overline{\widetilde{\alpha}} есть инверсия (или отрицание) набора \widetilde{\alpha} (в силу единственности дополнения любого элемента булевой алгебры набор \widetilde{\alpha} будет, очевидно, инверсией набора \overline{\widetilde{\alpha}}).


Определение 6.9. Функцию g\in\mathcal{P}_{2,n} называют двойственной к функции f\in\mathcal{P}_{2,n}, если для всякого \widetilde{\alpha}\in \{0;1\}^n имеет место g(\widetilde{\alpha})= \overline{f} (\overline{\widetilde{\alpha}}).


Полагаем также, что константа 0 является двойственной к константе 1 и наоборот.


Пример 6.20. а. Стрелка Пирса есть функция, двойственная к штриху Шеффера, так как


x\downarrow y=\overline{x\lor y}= \overline{\overline{\overline{x}\cdot \overline{y}}}= \overline{\overline{x}|\overline{y}}.

б. Сумма по модулю 2 двойственна к эквивалентности, так как x\sim y=\overline{x\oplus y}=\overline{\overline{x}\oplus \overline{y}}.


Эти две функции являются и отрицанием друг друга, но неверно в общем случае, что функция д, будучи отрицанием функции f, двойственна к f: штрих Шеффера не есть функция, двойственная к конъюнкции, а стрелка Пирса не есть функция, двойственная к дизъюнкции, но конъюнкция двойственна к дизъюнкции и наоборот, а стрелка Пирса двойственна к штриху Шеффера и наоборот.




В общем случае в силу уже упомянутого свойства единственности дополнения в булевой алгебре функция h, двойственная к функции g, которая двойственна к f, равна f.


Определение 6.10. Функцию f\in\mathcal{P}_{2,n} называют самодвойственной, если она двойственна к себе самой, т.е.


\bigl(\forall\widetilde{\alpha}\in\{0;1\}^n\bigr)\bigl(f(\widetilde{\alpha})= \overline{f}(\overline{\widetilde{\alpha}})\bigr), или \bigl(\forall \widetilde{\alpha}\in\{0;1\}^n\bigr)\bigl(f(\overline{\widetilde{\alpha}})= \overline{f}(\widetilde{\alpha})\bigr).

Таким образом, функция самодвойственна тогда и только тогда, когда на взаимно противоположных наборах она принимает взаимно противоположные значения. Следовательно, для того чтобы убедиться в несамодвойственности заданной функции f, достаточно найти хотя бы одну пару взаимно противоположных наборов \widetilde{\alpha} и \overline{\widetilde{\alpha}}, таких, что значения функции на них совпадают, т.е. f(\widetilde{\alpha})=f(\overline{\widetilde{\alpha}}). Так, мажоритарная функция является самодвойственной, а эквивалентность — нет, поскольку при \widetilde{\alpha}=(0;0) имеем 0\sim0=1 и 1\sim1=1.


Множество всех самодвойственных функций (при всех n\geqslant1) обозначим S.


Определение 6.11. Функцию f\in\mathcal{P}_{2,n} называют монотонной, если для любых наборов \widetilde{\alpha},\widetilde{\beta}\in\mathcal{B}^n, таких, что \widetilde{\alpha}\leqslant \widetilde{\beta}, имеет место f(\widetilde{\alpha})\leqslant f(\widetilde{\beta}).


Другими словами, функция монотонна тогда и только тогда, когда для любого набора \widetilde{\alpha} имеет место следующее свойство: если значение функции на наборе \widetilde{\alpha} равно 1, то оно равно 1 и на всех наборах, строго больших (по отношению булева порядка на \mathbb{B}^n) набора \widetilde{\alpha}. Любой минимальный (относительно того же порядка) набор \widetilde{\alpha}, для которого значение f(\widetilde{\alpha}) монотонной функции f равно 1, называют нижней единицей функции f. Очевидно, что вектор значений монотонной булевой функции полностью определяется множеством ее нижних единиц*. Мажоритарная функция монотонна, и множество ее нижних единиц есть \{011,101,110\}. Штрих Шеффера — немонотонная функция, так как 00<11, но 0|0=1, а 1|1=0. Множество всех монотонных функций принято обозначать через M.


*Нетрудно понять, что множество нижних единиц монотонной функции f есть множество всех минимальных элементов множества C_f^1 — конституент единицы функции f.


Определение 6.12. Функцию f\in\mathcal{P}_{2,n} называют линейной, если она может быть представлена полиномом Жегалкина первой степени от п переменных, т.е. формулой вида (6.20).


Множество всех линейных функций принято обозначать через L.


Любая булева константа и любая проектирующая функция х являются линейными функциями. Такова, разумеется, сумма по модулю 2. Отрицание также линейно, ибо \overline{x}= x\oplus1. Конъюнкция и дизъюнкция не являются линейными функциями, так как не могут быть представлены полиномом Жегалкина первой степени (см. теорему 6.4).


Определение 6.13. Множества функций T_0,\,T_1,\,S,\,M,\,L называются классами Поста.


Замечание 6.9. Каждый класс Поста состоит из функций с соответствующим свойством для любого числа переменных. Можно доказать также, что если функция f принадлежит какому-то классу Поста C, то и любая функция, равная функции f, принадлежит этому же классу. Другими словами, добавление или удаление фиктивных переменных не выводит за пределы любого из классов Поста.


Полезно еще заметить, что любая проектирующая функция х принадлежит одновременно всем пяти классам Поста. Действительно, если f(x)=x, то f(0)=0 и f(1)=1, то есть f\in T_0\cap T_1. Отсюда же вытекает и самодвойственность функции x. Монотонность следует из того, что 0<1 и f(0)=0<f(1)=1. Линейность очевидна.


В то же время существуют функции, не принадлежащие ни одному из классов Поста. Таков, например, штрих Шеффера. Все свойства, кроме нелинейности, следуют прямо из таблицы этой функции. Нелинейность же доказывается выводом полинома Жегалкина для штриха Шеффера: x|y=\overline{x\cdot y}=x\cdot y\oplus1, что не есть полином Жегалкина первой степени.


Фундаментальным свойством каждого класса Поста является его замкнутость (в смысле определения 6.3). Это означает для любого из классов Поста C, что всякая суперпозиция над C снова есть элемент C.




Теорема о замкнутости классов Поста


Теорема 6.5. Каждый класс Поста замкнут.


Нужно для каждого класса Поста C\in\{T_0,T_1,S,M,L\} доказать, что замыкание [ C] множества булевых функций C совпадает с C. Пусть f(g_1,\ldots,g_n) — какая-то суперпозиция над C. Обозначим ее через \varphi. Без ограничения общности можно считать, что все функции f,g_1,\ldots, g_n\in \mathcal{P}_{2,n} (для некоторого n).


Рассуждаем, используя индукцию по определению суперпозиции. Если для каждого i=\overline{1,n} функция g_i=x_i, где x_i — переменное, то \varphi=f(x_1,\ldots,x_n)\in C. Предположим, что в суперпозиции \varphi все функции g_i есть элементы класса Поста C (в частности, это может быть и соответствующая проектирующая функция, которая ввиду замечания 6.9 принадлежит всем классам Поста). Докажем, что и \varphi=f(g_1,\ldots,g_n)\in C.


1. Если C=T_0, то \varphi(\widetilde{0})= f(g_1(\widetilde{0}),\ldots, g_2(\widetilde{0}))= f(0,\ldots,0)=0, так как f,g_1,\ldots,g_n\in T_0. Следовательно, \varphi\in T_0.


2. При C=T_1 рассуждаем точно так же.


3. Пусть C=S. Фиксируем произвольно набор \widetilde{\alpha}\in \{0;1\}^n. Вычислим (используя само двойственность всех функций):


\varphi\bigl(\overline{\widetilde{\alpha}}\bigr)= f\bigl(g_1(\overline{\widetilde{\alpha}}), \ldots, g_2(\overline{\widetilde{\alpha}})\bigr)= f\bigl(\overline{g_1}(\widetilde{\alpha}),\ldots, \overline{g_n}(\widetilde{\alpha})\bigr)= \overline{f}\bigl(g_1(\widetilde{\alpha}), \ldots g_n(\widetilde{\alpha})\bigr)= \overline{\varphi}(\widetilde{\alpha}).

Следовательно, \varphi\in S.


4. C=M. Берем произвольно наборы \widetilde{\alpha} и \widetilde{\beta} так, что \widetilde{\alpha}\leqslant \widetilde{\beta}. Докажем, что \varphi\in M. Имеем


\varphi(\widetilde{\alpha})= f\bigl(g_1(\widetilde{\alpha}), \ldots g_n(\widetilde{\alpha}) \bigr)\leqslant f\bigl(g_1(\widetilde{\beta}), \ldots g_n(\widetilde{\beta})\bigr)= \varphi(\widetilde{\beta}).

так как все функции g_i,~i=\overline{1,n}, монотонны и тем самым вектор (g_1(\widetilde{\alpha}), \ldots g_n(\widetilde{\alpha})) не больше вектора (g_1(\widetilde{\beta}), \ldots g_n(\widetilde{\beta})), а функция f также монотонна. Тогда ясно, что \varphi\in M.


5. Если же C=L, то очевидно, что при подстановке в линейную функцию (полином Жегалкина первой степени) вместо ее переменных произвольных линейных функций получится снова линейная функция. Итак, мы доказали замкнутость каждого класса Поста.




Докажем теперь теорему, характеризующую одно важное свойство немонотонных функций.


Теорема 6.6. Если функция f не является монотонной, т.е. f\in M, то найдутся два таких набора \widetilde{\alpha},\widetilde{\beta}, что


\begin{aligned}\widetilde{\alpha}&= (\alpha_1,\ldots, \alpha_{i-1},0, \alpha_{i+1},\ldots, \alpha_n),\\ \widetilde{\beta}&= (\alpha_1,\ldots, \alpha_{i-1},1, \alpha_{i+1},\ldots, \alpha_n), \end{aligned}

и f(\widetilde{\alpha})=1,~f(\widetilde{\beta})=0, т.е. эти два набора различаются значениями в точности одной компоненты, а значение функции равно О на большем наборе и равно 1 на меньшем.


Так как функция f не является монотонной, то найдутся такие два набора \widetilde{\gamma} и \widetilde{\delta}, что \widetilde{\gamma}<\widetilde{\delta}, но f(\widetilde{\gamma})=1,~ f(\widetilde{\delta})=0. Строгое неравенство \widetilde{\gamma}< \widetilde{\delta} означает, что найдутся такие номера (не меньше одного) 1\leqslant i_1<i_2<\ldots< i_k\leqslant n, что


\begin{aligned}\widetilde{\gamma}&=\bigl(\gamma_1,\ldots, \gamma_{i_1-1}, 0, \gamma_{i_1+1},\ldots, \gamma_{i_2-1},0,\ldots, \gamma_{i_2+1},\ldots, \gamma_{i_k-1},0, \gamma_{i_k+1},\ldots, \gamma_n \bigr),\\[2pt] \widetilde{\delta}&=\bigl(\gamma_1,\ldots, \gamma_{i_1-1}, 1, \gamma_{i_1+1},\ldots, \gamma_{i_2-1},1,\ldots, \gamma_{i_2+1},\ldots, \gamma_{i_k-1},1, \gamma_{i_k+1},\ldots, \gamma_n \bigr).\end{aligned}

т.е. все компоненты наборов, кроме выделенных, с номерами i_1,i_2,\ldots,i_k соответственно совпадают, а все компоненты с выделенными номерами у меньшего набора равны 0, а у большего равны 1. Построим монотонно возрастающую последовательность наборов


\widetilde{\gamma}=\widetilde{\gamma}_0<\widetilde{\gamma}_1<\widetilde{\gamma}_2<\ldots <\widetilde{\gamma}_k=\widetilde{\delta}.

так что для каждого s\in\{1,2,\ldots,k\} набор \widetilde{\gamma}_s получается из набора \widetilde{\gamma}_{s-1} заменой нулевого значения компоненты с номером i_s единичным. Поскольку f(\widetilde{\gamma})=1, а f(\widetilde{\delta})=0, то обязательно найдется такое s\in\{1,2,\ldots,k\}, что f(\widetilde{\gamma}_{s-1})=1, а f(\widetilde{\gamma}_s)=0 (на наборе \widetilde{\gamma}_{s-1} значение функции еще равно 1, а на наборе \widetilde{\gamma}_{s} оно уже равно 0). Полагая \widetilde{\alpha}= \widetilde{\gamma}_{s-1} и \widetilde{\beta}= \widetilde{\gamma}_{s} получим доказываемое.

Математический форум (помощь с решением задач, обсуждение вопросов по математике).
Кнопка "Поделиться"
Если заметили ошибку, опечатку или есть предложения, напишите в комментариях.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Яндекс.Метрика

Copyright © 2010-2022 MathHelpPlanet.com. All rights reserved