Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дехтярь М.И. Основы дискретной математики. Лекц...docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
864.55 Кб
Скачать

Критерий полноты (теорема Поста)

Оказывается, что всякая система, не содержащаяся внутри одного из указанных пяти классов полна.

Теорема 5.2.(Теорема Поста о полноте) Система булевых функций F является полной тогда и только тогда, когда она не содержится ни в одном из классов и , т.е. когда в ней имеется хотя бы одна функция, не сохраняющая 0, хотя бы одна функция, не сохраняющая 1, хотя бы одна несамодвойственная функция, хотя бы одна немонотонная функция и хотя бы одна нелинейная функция.

Доказательство. Необходимость условия теоремы непосредственно следует из установленного выше следствия 5.1.1.

Для доказательства достаточности предположим, что F Содержит не сохраняющую 0 функцию , не сохраняющую 1 функцию , несамодвойственную функцию , немонотонную функцию и нелинейную функцию . Покажем, что с помощью этих функций всегда можно выразить функции одной из двух уже известных нам полных систем: {¬, } или {¬, }. Для этого установим, что:

  1. используя f0, f1 и fs, можно выразить константы 0 и 1;

  2. с помощью констант из fm можно получить отрицание ¬;

  3. с помощью констант и отрицания из fl можно получить конъюнкцию или дизъюнкцию .

Лемма 5.1. Формулами, построенными из функций f0, f1 и fs,можно задать константы 0 и 1.

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

Случай 1. f0(1, … , 1)= 0. Рассмотрим функцию g(X), заданную формулой f0(X,… , X). Тогда, очевидно, g(0) =f0(0, … , 0) =1, а g(1) = f0(1, … , 1)= 0. Таким образом, получили отрицание: g(X) = ¬ X. Так как , то для некоторого набора значений аргументов (σ1, … , σk) имеет место равенство fs1, … , σk) = fs(¬σ1, … ,¬ σk)= const {0, 1}. Положим тогда h(X) = fs(Xσ1, … , Xσk) (такая подстановка переменной X1 и ее отрицания X0 возможна, так как мы уже получили отрицание). Тогда h - это константа const. Действительно, h(1) =fs(1σ1, … , 1σk)= fs1, … , σk) = fs(¬σ1, … ,¬σk)= fs(0σ1, … , 0σk)=h(0)= const. Другая константа тогда задается формулой ¬ h(X).

Случай 2. f0(1, … , 1)= 1. В этом случае формула f0(X,… , X) задает функцию g(X), тождественно равную 1, а формула f1(g(X), … , g(X)) задает функцию h(X), тождественно равную 0. Действительно, h(σ)=f1(g(σ), … , (σ))= f1(1, … , 1) = 0 для любого σ {0,1}.

Лемма 5.2. Формулами, построенными из констант 0 и 1 и немонотонной функции , можно задать отрицание ¬.

Доказательство. Так как немонотонна, то имеются два разных набора аргументов и таких, что для всех j [1,r] σj ρj и при этом fm1, σ2, …, σn) =0, а fm1, ρ2, …, ρn)=1. Пусть i1, … , il - это все индексы, для которых Так как , то l 1. Определим последовательность из (l+1)-го набора аргументов следующим образом: , а далее каждый набор получется из предыдущего заменой ij -ой координаты с 0 на 1. Таким образом, последний из этих наборов совпадает с . Рассмотрим значения функции fm на этих наборах: . Так как первое из них , а последнее , то найдутся два соседних набора и таких, что , а . Они отличаются только ij-ой координатой. Пусть , a Положим тогда . Тогда , a Следовательно, g(X) = ¬ X.

Лемма 5.3. Формулами, построенными из констант 0 и 1, отрицания и нелинейной функции , можно задать дизъюнкцию или конъюнкцию .

Доказательство. Так как то в представляющий ее многочлен Жегалкина обязательно входит слагаемое вида Выберем самое короткое из таких слагаемых и рассмотрим функцию , где σj=1 при j {i3, …, ik} и σj=0 в остальных случаях. При такой подстановке констант многочлен Жегалкина для g(X1,X2) = g1(X1,X2) имеет вид: 0 + 1 X1 + 2 X2 + X1*X2, где 0, 1, 2 {0, 1}. Таким образом, всего возможно 8 вариантов. Рассмотрим 4 из них в случае, когда 0=0. Тогда

  1. при 1=0 и 2=0 получаем, что g(X1, X2) X1 X2;

  2. при 1=0 и 2=1 получаем, что g(¬ X1, X2) X2 + ¬ X1 * X2 (1 + ¬ X1)*X2 X1 X2;

  3. при 1=1 и 2=0 получаем, что g( X1, ¬ X2) X1 + X1 * ¬ X2 X1 *(1 + ¬ X2) X1 X2;

  4. при 1=1 и 2=1 имеем g(X1, X2) X1 + X2 + X1*X2 X1 X2.

Остальные 4 варианта в случае, когда 0=1, получаются как отрицания соответствующих вариантов для 0=0.

Из приведенных трех лемм, очевидно, следует достаточность условия теоремы Поста.

Пример 5.2. Рассмотрим набор функций f, g и h, представленный в следующей таблице:

Функции f, g и h

X1

X2

X3

f

g

h

0

0

0

1

1

0

0

0

1

0

1

0

0

1

0

0

0

1

0

1

1

1

0

0

1

0

0

0

0

1

1

0

1

1

1

0

1

1

0

1

1

1

1

1

1

0

1

0

Функция f, очевидно, не сохраняет 0 и 1, но является самодвойственной. Функция g(X1,X2,X3)= 1+X1+X2 + X1 * X3 + X1 * X2 * X3 является несамодвойственной, немонотонной и нелинейной. По лемме 5.1 получаем, что f(X,X,X) = ¬ X, функция g1(X)=g(X,X,X) 1, а функция g0(X) = ¬ g1(X) 0. Подставив X2=0 в g получим g3(X1,X3)= g(X1,0,X3)= 1 + X1 + X1 * X3. Тогда h(X1,X2) = ¬ g3(X1, ¬X2) = ¬ (1 + X1 + X1 * ¬ X2) ¬(1 + X1*(1+ ¬ X2)) X1*X2. Таким образом, мы с помощью f и g сумели выразить обе функции полной системы {¬, *(= )} и, следовательно, система функций {f, g } полная.

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

Например, система {¬, , } не является базисом, а каждая из систем {¬, }, {¬, } является. Мы уже знаем, что имеются полные системы, состоящие из одной функции (например, система { | }). Они, конечно, являются базисами. Имеются и полные системы, включающие 3 функции, например, система { 1, *, +}, на которой основаны многочлены Жегалкина (отметим, что константу 0 можно выразить как 1+1). Из теоремы Поста следует, что никакая минимальная система не содержит более 5 функций. Оказывается, что для полноты всегда достаточно четырех функций.

Теорема 5.3. Во всяком базисе F содержится не более 4-х функций.

Доказательство. Действительно, по теореме Поста в базисе имеется функция . Поэтому f0(0,0, …, 0) =1. Если она хотя бы на одном наборе значений аргументов принимает значение 0, то она немонотонна, т.е. . В противном случае, f0 на всех наборах значений аргументов равна 1. Но тогда она несамодвойственна , так как f0(0, 0, …, 0)=1 = f0(1,1,…, 1). Во всех случаях или и, следовательно, в системе F содержится не более 4-х функций.

Может быть, в минимальной системе можно обойтись тремя функциями? Это не так. Расмотрим, например, систему F(4)={0, 1, X Y, X+Y+Z}. В этой системе, . Легко проверить, что при удалении любой из функций система F(4) перестает быть полной. Таким образом, теорема 5.3 дает наилучшую верхнюю оценку числа функций в базисе.

Замечание. Е. Пост в работах, опубликованных в 1921 и 1941 гг. не только установил критерий полноты, но и описал структуру всех замкнутых классов функций в . Он показал, что число таких классов счетно и что в каждом из них имеется собственный конечный базис.

Задачи

Задача 5.1. Докажите полноту системы { }, включающей только стрелку Пирса, непосредственно выразив через нее отрицание, дизъюнкцию и конъюнкцию.

Задача 5.2. Определите принадлежность каждой из функций f1, f2, f3, f4 и f5, представленных в таблице 5.1, каждому из классов и .

Задача 5.3. Используя результаты задачи 5.2, определите, какие из троек функций, представленных в таблице 5.1, являются полными системами. Имеются ли среди них полные системы из двух функций? Из одной функции?

Задача 5.4. Проверьте полноту системы функций {g, h}, представленных в таблице 5.2. Если она полна, выразите с помощью этих функций обе константы, отрицание ¬ и импликацию .

Задача 5.5. Докажите, что система { , , } не является полной. Можно ли ее сделать полной, добавив некоторую константу?

Задача 5.6. Выразите функции {0, 1, , , ~} с помощью формул, построенных из функций полной системы { ¬, }.

Задача 5.7. Определите количество функций из принадлежащих каждому из классов и .

Задача 5.8. Доказать, что для монотонных функций f(n) M справедливо представление f(X1,… , Xn)= (Xi f(X1,…, Xi-1, 1, Xi+1,… , Xn) ) f(X1,…, Xi-1, 0, Xi+1,… , Xn), (1 i n). Вывести отсюда (индукцией по n), что для всякой монотонной функции, отличной от константы, существует задающая ее ДНФ, не содержащая отрицаний переменных.

Задача 5.9. Докажите, что число монотонных функций в не меньше .

Задача 5.10. Найдите все базисы, которые можно получить, удаляя функции из системы {0, 1, , , }.

Задача 5.11. Найти число булевых функций от n переменных, являющихся одновременно самодвойственными и линейными.

Задача 5.12. Найти число булевых функций от n переменных, являющихся одновременно монотонными и линейными.

Задача 5.13. Доказать, что если f(X1, …, Xn) - линейная функция, отличная от константы, то . Верно ли обратное?