Перейти к содержанию

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

Материал из Мегавики — свободной энциклопедии

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

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

Алгебра Поста и замкнутые классы[править]

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

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

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

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

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

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

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

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

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

Основные классы функций: S,M,L,T0,T1[править]

  • Функция 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,αi0,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)

Всякий нетривиальный (отличный от P2) замкнутый класс булевых функций целиком содержится хотя бы в одном из классов S,M,L,T0,T1.

Формулировка критерия[править]

Система булевых функций F является полной тогда и только тогда, когда она целиком не принадлежит ни одному из замкнутых классов[⇦] S,M,L,T0,T1.

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

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

Имеем инвертор и обе константы[править]

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

Имея нелинейную функцию, инвертор и константу 1, получим конъюнкцию[править]

Нелинейная функция по определению имеет в полиноме Жегалкина хотя бы один член, содержащий конъюнкцию нескольких переменных. Пусть, например, имеется некоторая нелинейная функция

f(x1,x2,x3,x4,x5)=1x1x1x2x3x2x3x4x2x3x5x2x3x4x5.

Зададимся целью построить на её основе конъюнкцию c(x1,x2)=x1x2.

Присвоим переменным x3,x4,x5 значения 1, получим:

f(x1,x2,1,1,1)=1x1x1x2x2x2x2=1x1x1x2x2.

Очевидно, что в общем случае после такого преобразования получится функция вида

f(x1,x2,1,1,...,1)=x1x2[x1][x2][1],

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

В простейшем случае при отсутствии других членов сразу получаем конъюнкцию: :f(x1,x2,1,1,...,1)=x1x2.

Рассмотрим другие варианты.

  • x1x2x1=x1x2;
  • x1x2x2=x1x2;
  • x1x2x1x2=x1x2.
  • x1x21=x1x2;.
  • x1x2x11=x1x2;
  • x1x2x21=x1x2;
  • x1x2x1x21=x1x2.

Любое из этих выражений, используя инвертор, можно привести к конъюнкции.

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

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

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

x1+x2=x1x2.
  • Теорема доказана.

Следствие[править]

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

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

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

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

Максимальное число функций в базисе алгебры логики равно 4[1].

Доказательство[править]

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.

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

Примечания[править]

  1. Алексеев В.Б. (2002), с. 12.

Литература[править]

  • Марченков С. С. Замкнутые классы булевых функций. — М.: Физматлит, 2000.
  • Фудзисава Т., Касами Т. Математика для радиоинженеров: теория дискретных структур. — М.: Радио и связь, 1984. — 240 с.
  • Алексеев В. Б. Дискретная математика (II семестр). — М., МГУ, 2002. — 44 с.
  • Белоусов А. И., Ткачев С. Б. Дискретная математика. — М.: МГТУ, 2006. — 744 с. — ISBN 5-7038-2886-4.
  • Гиндикин С. Г. Алгебра логики в задачах. — М.: Наука, 1972. — 288 с.

Ссылки[править]


См. также[править]