logo
кр одмита

4.5 Полнота и замкнутость системы логических функций

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

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

содержится в А.

Перечислим пять замкнутых классов логических функций:

1. Класс функций , сохраняющих константу 0, содержит функции, обладающие свойством f(0,0,...,0) = 0

2. Класс функций , сохраняющие константу 1, содержит функции, обладающие свойством f(1,1,...,1) = 1

3. Класс линейных функций L, для которых полином Жегалкина линеен

, .

Алгоритм построения полинома Жегалкина (совершенной полиномиальной формы Жегалкина) логической функции состоит из следующих шагов:

1) построить формулу с использованием связок или построить СДНФ функции;

2) заменить всюду на . Если построена СДНФ, заменить в ней все операциина операции, т.к. для ортогональных элементарных конъюнкций имеет место соотношение , если

3) раскрыть скобки, пользуясь дистрибутивным законом и привести подобные члены, используя правило алгебры Жегалкина

4. Класс самодвойственных функций S, для которых выполняется условие , т.е. на всех инверсных наборов значения функции различны.

5. Класс монотонных функций M, для которых выполняется условие монотонности f(A)≥f(A`) при А>А`. Здесь и- двоичные наборы. Набор А больше набора А`, если каждый элементнабора А больше или равен соответствующему элементунабора А`.

Система булевых функций {f1f2, … , fт} называется функционально полной, или просто полной, если любая булева функция может быть представлена в виде суперпозиции этих функций. Полную систему булевых функций называют еще базисом.

Минимальным базисом называется такой базис {f1f2, … , fт}, для которого удаление хотя бы одной из функций f1f2, … , fт превращает его в неполную систему.

Функции от двух переменных, представляемые булевыми операциями   (отрицание),  (конъюнкция) и  (дизъюнкция), образуют полную систему. Действительно, из теоремы Шеннона следует, что любую булеву функцию можно представить в виде совершенной ДНФ, которая представляет собой суперпозицию отрицания, конъюнкции и дизъюнкции.

Базис {, , } не является минимальным. Одну из операций,  или , из него можно удалить. Пользуясь правилами де Моргана и законом двойного отрицания, можно дизъюнкцию выразить через отрицание и конъюнкцию, а конъюнкцию – через отрицание и дизъюнкцию:

a  b  = ;

a  b  = .

Система {, } не является полной, т. к. операцию отрицания нельзя выразить через операции  и .

Чтобы убедиться в полноте некоторой системы функций, достаточно через эти функции выразить любую функцию из некоторой известной полной системы. Покажем, что каждая из операций  (штрих Шеффера) и  (стрелка Пирса) составляет полную систему, использовав для этого базис {, }:

aaa;ab=(ab)(ab);

aaa;ab=ab= (aa)(bb);

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

a  а  1;

a  b  =   (а  1)(b  1)  1.

Последнее выражение упрощается с учетом коммутативности и ассоциативности операции  и дистрибутивности операции  относительно :

a  b  а  b  аb.

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

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