Критерий Поста

Материал из testwiki
Перейти к навигации Перейти к поиску

Шаблон:Другие значения Критерий Поста — одна из центральных теорем в теории булевых функций, устанавливающая необходимое и достаточное условие для того, чтобы некоторый набор булевых функций обладал достаточной выразительностью, чтобы представить любую булеву функцию. Впервые сформулирован американским математиком Эмилем Постом.

В середине 60-х годов почти одновременно в СССР и во Франции появились работы, где с иных позиций и в более доступной форме излагались результаты Поста. В 80-е годы сразу целому ряду исследователей с использованием различных подходов и различной техники удалось получить достаточно компактные доказательства результатов Поста. Алгебраический подход в изучении замкнутых классов булевых функций (подалгебр итеративной алгебры Поста над множеством 𝖡={0,1}) принадлежит А. И. Мальцеву.

Алгебра Поста и замкнутые классы

Шаблон:Main

Булева функция — это функция типа 𝖡n→𝖡, где 𝖡={0,1}, а n — арность. Количество различных функций арности n равно 22n, общее же количество различных булевых функций бесконечно. Вместе с тем, очевидно, что многие функции могут быть выражены через другие с использованием оператора суперпозиции. Например, давно известно, что из дизъюнкции и отрицания можно, используя законы де Моргана, получить конъюнкцию. Кроме того, любая булева функция может быть представлена в виде ДНФ, то есть, в терминах конъюнкции, дизъюнкции и отрицания. Возникает естественный вопрос: как определить, будет ли данный набор функций достаточным, чтобы представить любую булеву функцию? Такие наборы называются функционально полными. Теорема Поста даёт ответ на этот вопрос. Поскольку условие теоремы является необходимыми и достаточным, её называют также критерием.

Идея теоремы состоит в том, чтобы рассматривать множество всех булевых функций 𝖯𝖠 как алгебру относительно операции суперпозиции. Сейчас она носит имя алгебра Поста. Эта алгебра содержит в качестве своих подалгебр множества функций, замкнутых относительно суперпозиции. Их называют ещё замкнутыми классами. Пусть R — некоторое подмножество 𝖯𝖠. Замыканием [R] множества R называется минимальная подалгебра 𝖯𝖠, содержащая R. Иными словами, замыкание состоит из всех функций, которые являются суперпозициями R. Очевидно, что R будет функционально полно тогда и только тогда, когда [R]=𝖯𝖠. Таким образом, вопрос, будет ли данный класс функционально полон, сводится к проверке того, совпадает ли его замыкание с 𝖯𝖠.

Оператор [_] является оператором замыкания. Иными словами, он обладает (среди прочих) свойствами:

Говорят, что множество функций Q порождает замкнутый класс R (или класс R порождается множеством функций Q), если [Q]=R. Множество функций Q называется базисом замкнутого класса R, если [Q]=R и [Q1]≠R для любого подмножества Q1 множества Q, отличного от Q.

Если к подалгебре 𝖯𝖠, не совпадающей с 𝖯𝖠 прибавить один элемент, ей не принадлежащий, и образовать замыкание, результатом будет новая подалгебра, содержащая данную. При этом, она совпадёт с 𝖯𝖠, в том и только в том случае, если между исходной подалгеброй, и 𝖯𝖠 нет никаких других подалгебр, то есть, если исходная подалгебра была максимальной. Таким образом, для того, чтобы проверить, что данное множество функций R функционально полно, достаточно убедиться, что оно не входит целиком ни в одну из максимальных подалгебр 𝖯𝖠. Оказывается, что таких подалгебр всего пять, и вопрос принадлежности к ним может быть решён просто и эффективно.

Двойственность, монотонность, линейность. Критерий полноты

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

  • Если R — замкнутый класс, то R∗ — также замкнутый класс.
  • Множество S образует замкнутый класс.
  • Если R=[Q] , то R∗=[Q∗]. В частности, если Q — базис класса R, то Q∗ — базис класса R∗.

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

Основные классы функций: T0, T1, S, M, L Шаблон:Якорь

Шаблон:Main

  • Функция f(x1,x2,…,xn) называется сохраняющей ноль, если f(0,0,…,0)=0. Класс таких функций называется T0.
  • Функция f(x1,x2,…,xn) называется сохраняющей единицу, если f(1,1,…,1)=1. Класс таких функций называется T1.
  • Функция называется самодвойственной, если на противоположных наборах она принимает противоположные значения, то есть для самодвойственной функции f(x1,x2,…,xn) выполняется тождество f(x1,x2,…,xn)=f(x¯1,x¯2,…,x¯n)‾. Класс таких функций называется S.
  • Функция называется монотонной: (β1,β2,…,βn)≥(α1,α2,…,αn)⇒f(β1,β2,…,βn)≥f(α1,α2,…,αn). Класс таких функций называется M.
    • (β1,β2,…,βn)≥(α1,α2,…,αn)⇔∀i(βi≥αi).
  • Функция называется линейной, когда её можно представить полиномом Жегалкина первой степени, то есть f(x1,x2,…,xn)=α0⊕α1x1⊕α2x2⊕…⊕αnxn; α0,αi∈{0,1}(i∈1,n‾). Класс таких функций называется L.

Теорема о замкнутости основных классов функций

Отметим, что ни один из замкнутых классов S,M,L,T0,T1 целиком не содержится в объединении остальных четырёх. Это вытекает из следующих соотношений:

  1. {x¯,xy⊕xz⊕yz}⊂S∖(M∪L∪T0∪T1).
  2. {0,1,x∨y}⊂M∖(S∪L∪T0∪T1).
  3. {1,x⊕y}⊂L∖(S∪M∪T0∪T1).
  4. {x⊕y,xy}⊂T0∖(S∪M∪L∪T1).
  5. {x⊕y⊕1,x∨y}⊂T1∖(S∪M∪L∪T0).

Шаблон:Теорема

Формулировка критерия

Шаблон:Теорема То есть когда в ней можно реализовать пять функций: несамодвойственную, немонотонную, нелинейную, не сохраняющую 0 и не сохраняющую 1.

Доказательство

Порядок перебора вариантов при доказательстве критерия Поста

Доказательство критерия Поста основано на том, что система функций (И, ИЛИ и НЕ) является полной. Таким образом, любая система, в которой реализуемы эти три функции, также является полной. Докажем, что в системе, удовлетворяющей критерию Поста, всегда можно реализовать конъюнкцию, дизъюнкцию и отрицание.

Имея функцию, не сохраняющую 0, получим инвертор или константу 1

Рассмотрим функцию, не принадлежащую классу Т0. Для неё

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

Эта функция может принадлежать, а может не принадлежать классу Т1.

  • В первом случае f(1,1,...,1)=1, тогда f(x,x,...,x)=1, и мы имеем константу единицы.
  • Во втором случае f(1,1,...,1)=0, тогда f(x,x,...,x)=x‾, и мы имеем инвертор.

Имея функцию, не сохраняющую 1, получим инвертор или константу 0

Рассмотрим функцию, не принадлежащую классу Т1. Для неё

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

Эта функция может принадлежать, а может не принадлежать классу Т0.

  • В первом случае f(0,0,...,0)=0, тогда f(x,x,...,x)=0, и мы имеем константу нуля.
  • Во втором случае f(0,0,...,0)=1, тогда f(x,x,...,x)=x‾, и мы имеем инвертор.

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

Рассмотрим функцию, не принадлежащую классу S самодвойственных функций. Для неё найдётся такой набор входных переменных X, что

f(x1,x2,...,xn)=f(x‾1,x‾2,...,x‾n).

Пусть, например, f(0,1,0)=f(1,0,1)=1, тогда f(x,x‾,x)=1 и мы имеем константу 1.

Аналогично, если, например, f(0,0,0,1)=f(1,1,1,0)=0, тогда f(x,x,x,x‾)=0 и мы имеем константу 0.

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

Имея инвертор и одну из констант, получим другую константу

Если в одном из вышеперечисленных случаев мы получили инвертор и одну из констант, вторую константу получим с помощью инвертора: 0‾=1 или 1‾=0.

Имея немонотонную функцию и обе константы, получим инвертор

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

f(x1,x2,...,0,...,xn)=1 и
f(x1,x2,...,1,...,xn)=0.

Пусть, например, f(1,1,0)=0 и f(1,0,0)=1. Тогда f(1,x,0)=x‾.

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

Имея нелинейную функцию, инвертор и обе константы, получим конъюнкцию

Нелинейная функция по определению имеет в полиноме Жегалкина хотя бы один член, содержащий конъюнкцию нескольких переменных. Пусть переменные x1,x2 содержатся в этой конъюнкции, тогда f(x1,x2,x3,...,xn)=x1x2A(x3,...,xn)⊕x1B(x3,...,xn)⊕x2C(x3,...,xn)⊕D(x3,...,xn), где A,B,C,D — полиномы Жегалкина.

Так как A(x3,...,xn) — не константа 0, ведь x1x2 содержатся в полиноме Жегалкина функции f, то A(x3,...,xn)=1 на некотором наборе α=(x3,...,xn).

Тогда f(x1,x2,α)=x1x2A(α)⊕x1B(α)⊕x2C(α)⊕D(α)=x1x2⊕x1b⊕x2c⊕d, где b,c,d∈{0,1}.

f(x1⊕c,x2⊕b,α)=x1x2⊕bc⊕d, то есть в зависимости от значения bc⊕d мы получили x1x2 или x1x2‾.

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

Имея конъюнкцию и инвертор, получим дизъюнкцию

Имея инвертор и конъюнкцию, всегда можно получить дизъюнкцию:

x1∨x2=x‾1x‾‾2.

Теорема доказана.

Следствие

Функция f в одиночку является полной системой тогда и только тогда, когда:

  1. f(0,0,...,0)=1.
  2. f(1,1,...,1)=0.
  3. f не является самодвойственной.

Примерами функций, в одиночку являющихся полной системой, будут штрих Шеффера x|y=x&⁡y‾ и стрелка Пирса x↓y=x∨y‾.

Теорема о максимальном числе функций в базисе

Шаблон:Теорема

Доказательство

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

Согласно критерию Поста, в полной системе должны присутствовать пять функций:

f0∉T0;f1∉T1;fS∉S;fM∉M;fL∉L.

Рассмотрим функцию f0. Возможны два случая:

  • f0∈T1, тогда: f0∉S и система [f0,f1,fM,fL] полна.
  • f0∉T1, тогда: f0∉M,T1 и система [f0,fS,fL] полна.

2) Покажем, что существует базис из четырёх функций. Рассмотрим систему функций {0,1,x⋅y,x⊕y⊕z}. Эта система полна:

0∉T1,S;1∉T0;x⋅y∉L;x⊕y⊕z∉M.

Однако ни одна его подсистема не полна:

  • {0,1,x⋅y}⊆M;
  • {0,1,x⊕y⊕z}⊆L;
  • {0,x⋅y,x⊕y⊕z}⊆T0;
  • {1,x⋅y,x⊕y⊕z}⊆T1.

Теорема доказана.

Примечания

Шаблон:Примечания

Литература

Ссылки


См. также