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

Материал из 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}(i1,n). Класс таких функций называется L.

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

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

  1. {x¯,xyxzyz}S(MLT0T1).
  2. {0,1,xy}M(SLT0T1).
  3. {1,xy}L(SMT0T1).
  4. {xy,xy}T0(SMLT1).
  5. {xy1,xy}T1(SMLT0).

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

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

Шаблон:Теорема То есть когда в ней можно реализовать пять функций: несамодвойственную, немонотонную, нелинейную, не сохраняющую 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(x1,x2,...,xn).

Пусть, например, 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(α)=x1x2x1bx2cd, где b,c,d{0,1}.

f(x1c,x2b,α)=x1x2bcd, то есть в зависимости от значения bcd мы получили x1x2 или x1x2.

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

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

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

x1x2=x1x2.

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

Следствие

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

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

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

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

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

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

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

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

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

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

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

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

0∉T1,S;1∉T0;xy∉L;xyz∉M.

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

  • {0,1,xy}M;
  • {0,1,xyz}L;
  • {0,xy,xyz}T0;
  • {1,xy,xyz}T1.

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

Примечания

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

Литература

Ссылки


См. также