Функциональная полнота

Класс функций F называется полным в Р (пространстве булевых функций, например), если замыкание [F] совпадает в с Р. По-другому: Любая булева функция может быть реализована в виде формулы над F.

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

Теорема.

Любая булева функция может быть реализована в виде формулы над базисом {,Ú, Ù}.

►Утверждение доказано для всех функций, кроме 0. Нуль представим в виде: xÙx=0. ◄

– Эта теорема решает проблему полноты как в общем смысле, так и для частного выбора функций – стандартного базиса.

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

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

Теорема доказывается простой подстановкой (суперпозицией) формул.

Перечислим полные системы элементарных функций.

Теорема: Следующие системы функций полны:

1. {,Ù,Ú} – стандартный базис.

2. {,Ú}

3. {,Ù}

4. {|}

5. {↓}

6. {0,1, Ù, Å}

► 2), 3): xÙy ≡ (xÙy) и наоборот;

4) x ≡ (x|x), xÙy ≡ (x|y) ≡ (x|y)|(x|y):

5) x ≡ (x↓x), xÚy ≡ (x↓y) ≡ (x↓y) ↓ (x↓y)

6) x ≡ xÅ1, xÚy ≡ xÙyÅxÅy. ◄

Теорема. СДНФ, СКНФ и полином Жегалкина для любой булевой функции определены однозначно.

► Рассмотрим уравнение . Из определения следует, что данное уравнение имеет единственное решение xi = σi, i = 1,…,n. Поэтому и уравнение f(x1,…,xn) ≡ 1 имеет единственное решение (с точностью до перестановки слагаемых), равное дизъюнкции конституент носителя:

. (Это использование взаимной однозначности соответствия f↔Nf.)

· Единственность СКНФ следует по теореме двойственности из единственности СДНФ.

· Единственность полиномов следует из того, что алгебра Жегалкина изоморфна полю вычетов по модулю 2 (или, эквивалентно, разложение 0 имеет все нулевые коэффициенты).

Разложение булевых функций над базисом Жегалкина по этой причине называют СПНФ.

Таким образом, к совершенным формам СДНФ и СКНФ добавилась еще одна система – полиномов Жегалкина (СПНФ). Общий вид полинома Жегалкина следующий:

Например, при n=3 будем иметь выражение:

a123x1x2x3 Å a12x1x2Å a13x1x3 Å a23x2x3 Å a1x1Å a2x2 Å a3x3 Å a0.

· Общее число полиномов Жегалкина – 2 в степени 2n – совпадает с числом булевых функций и складывается из 2n – общего числа коэффициентов и 2-х возможных значений каждого коэффициента.

· Для вычисления коэффициентов полинома необходимо решать системы линейных уравнений над полем вычетом по модулю 2. Называется это методом неопределенных коэффициентов.

Пример. Пусть вектор значений булевой функции f равен 11001011. Найдем полином Жегалкина, представляющий f. Поскольку размерность вектора значений равна 8, то f задана как функция от 3-х переменных. Тогда она представлена полиномом Жегалкина 3-й степени, общий вид которых дает предыдущая формула. Составим систему уравнений в поле Z2:

0) f(000) = 1 → a0 =1;

1) f(001) =1, f(010) = 0, f(100) = 1→ a3Åa0=a1Åa0 = 1, a2 Åa0=0;

2) f(110) =1, f(101) = f(011) = 0 → a12Åa1Åa2Åa0=1, a23Åa2Åa3Åa0=0, a13Åa1Åa3Åa0=0;

3) f(111) =1 → a123Åa12Åa13Åa23Åa2Åa0 =1;

Итак, f = x1x2x3Åx1x2Åx1x3Åx2Å1.

Рассмотренные теоремы позволили построить алгоритм, разрешающий формулу алгебры логики. Алгоритм фактически основан на свойстве полноты 3-х основных операций булевой алгебры. — Любая булева функция может быть представлена в виде формулы над функциями {, &, Ú}.

Проблема полноты может быть поставлена в более общем виде.

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

Теорема. Пусть даны две системы функций: F = {f1, f2, …,fn,…} и G = {g1, g 2, …, g n,…}, относительно которых известно, что а) система F полна; б) каждая функция системы F выражается в виде формулы над G. Тогда система G полна.

Следствие: системы {, &,.}, {, &}.{,.}, {→, 0}, {Å, &, 0, 1}, {|},{↓} полны.

Пример показывает, что существует много полных классов функций, каждый из которых можно принять за множество элементарных функций и на нём строить язык логики высказываний. Какой именно из языков использовать – зависит от характера задачи и пристрастий исследователя. — Алгеброй Буля можно называть и {|}! Так, относящийся к логике вопрос синтеза СФЭ приводит к сложным задачам, если на число элементарных функций в наборе накладываются ограничения.

Последующее изложение представляет результаты Поста.

Наша цель – найти критерий полноты произвольной системы функций или, по-другому, решить задачу: дан произвольный набор функций F={f1, …,fs,…}. Верно ли, что [F]=P2? Для того, чтобы решить эту задачу, оказалось удобным сначала решить противоположную задачу: найти все наборы функций такие, что [F]¹P2. Другими словами, следует найти сначала все неполные замкнутые классы функций. Пост выяснил, что все неполные замкнутые классы «группируются» в пять основных классов, называемых классами Поста. Эти классы обладают следующими свойствами.

Определение. Класс R называется предполным, или максимальным, если R неполон, а для "fÏR класс RÇ{f} полон.

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

Следовательно, любой полный класс не должен содержаться целиком в каждом классе Поста: "i FÚRi. Это и есть решение задачи: берём произвольный класс F и ищем в нём функции, не принадлежащие классам Поста. Если таковые находятся – класс полон.

Предполными классами являются следующие классы Поста и только они:

1. T0 = {f | f(0,0,…,0) = 0} – класс функций, сохраняющих константу 0.

2. T1 = {f | f(1,1,…,1} = 1} – класс функций, сохраняющих константу 1.

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

4. M = – класс монотонных функций.

5. L – класс линейных функций.

Примеры функций из каждого класса:

  T0 T1 S M L
  + + +
  + + +
x + + + + +
x + +

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

Лемма 1.

Если булева функция , то из неё можно получить: либо а) константу 1, либо б) отрицание x.

Пусть . Сравним со значением функции в 1:

.

Лемма 2.

Если булева функция , то из неё можно получить: либо а) константу 0, либо б) функцию отрицания. — Проще всего для доказательства леммы воспользоваться двойственностью.

Лемма 3.

Если булева функция , то из неё подстановкой х и x можно получить константы 0 и 1.

. Пусть . Тогда получаем:

. Вторая константа получается из данной операцией отрицания.

Лемма 4.

Если , то из неё подстановкой констант 0,1 и тождественной функции х можно получить отрицание x.

Лемма 5.

Если , то из неё путём подстановки констант 0, 1 и функций вида х, x и, быть может, навешиванием отрицания, можно получить функцию x1&x2.

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

Теорема о функциональной полноте.

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

2-я формулировка: для полноты системы необходимо и достаточно, чтобы для каждого класса Поста Т0, Т1, S, M, L среди функций системы нашлась функция, не принадлежащая данному классу.

3-я формулировка: в критериальной таблице в каждом столбце должен найтись «–».

Пример:

  T0 T1 S M L
  + + +
+
~ + +
Ú + + +
Ù + + +
Å + +

{0,→} - система полна. Система {0,., ~} – также полна; это система, двойственная к {1, Ù,Å} – базису Жегалкина.

Необходимость следует из неполноты каждого класса.

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

I. По лемме 1 из можно получить либо 1, либо x, по лемме 2 из – либо 0, либо x. Всего получается 4 варианта:{0, 1}, {0, x}, {1, x}, {x}

II. Варианты 2-й и 3-й (0 =1, 1 = 0) приводят к набору функций {0, 1, x}.

III. Применение леммы 4 к 1-му варианту с использованием приводит к тому же набору.

Применение леммы 3 к 4-му варианту с использованием приводит к тому же набору.

IV. Из набора {0, 1, x} и функции по лемме 5 получается конъюнкция.

Таким образом, при помощи функций из классов Поста реализованы функции x и x&y – следовательно, набор из 5-ти функций, не водящих в классы Поста, полон.

Из доказательства теоремы непосредственно вытекает следующая теорема.

Теорема. Из всякой полной системы функций можно выделить полную подсистему, содержащую не более 4-х функций.

Функция дополнительно обладает свойством: она либо несамодвойственна, либо не сохраняет 1 и немонотонна. Поэтому полной будет либо система { , , , }, либо { , , }.

Пример показывает, что константа 4 не может быть понижена.

Теорема о функциональной полноте на самом деле даёт не только критерий полноты. Она позволяет найти для произвольной булевой функции f формулу через функции полной системы.

Ещё некоторые следствия доказанных теорем.

Определение. Система функций {f1, f2,…,fs,…} из замкнутого класса R называется его базисом, если она полна в R, но всякая её подсистема не является полной в R.

Так, система

f1 = x1x2, f2 = 0, f3 = 1, f4 = x1Åx2Åx3

является базисом в Р2. Можно показать, что система {0, 1, x1Ùx2, x1Úx2} является базисом для М.

Теорема. Каждый замкнутый класс из Р2 имеет конечный базис.

Теорема. Мощность множества замкнутых классов в Р2 – счётная.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: