4.8. Полнота и замкнутость алгебраических систем
Любую логическую функцию, как простую так и сложную, можно представить двумя способами – табличным и формульным. Таблица задает функцию непосредственно как соответствие между двоичными наборами и значениями функции на этих наборах. Этот способ универсален, т.е. пригоден для любой функции, однако громоздок. Формула – гораздо более компактный способ задания функции, однако она задает функцию через другие функции. Поэтому для любой системы функций S возникает естественный вопрос: всякая ли логическая функция представима формулой над S? В настоящем параграфе будет показано, какими свойствами должны обладать операции, с помощью которых можно выражать любое сложное высказывание.
Система функций S называется функционально полной системой в Pk, если любая логическая функция f (fÎPk) может быть представлена формулой над S, т. е. является суперпозицией функций из S и базисом, если теряется полнота S при удалении хотя бы одной функции, где Pk – k-значная логика. Ранее уже указывалось, что система S0 ={Ù, Ú,` }, состоящая из операций конъюнкции, дизъюнкции и отрицания функционально полна. Функционально полной будет и любая система S, через функции которой можно выразить дизъюнкцию, конъюнкцию и отрицание. Действительно, для любой логической функции f представляющую ее формулу над S можно построить так: взять булеву формулу для f (такая формула обязательно найдется) и все булевы операции в ней заменить формулами над S, представляющими эти операции. Аналогично доказывается и более общее утверждение: если все функции функционально полной системы S* представимы формулами над системой S, то S также функционально полна. В этом случае говорят, что S сводится к S*.
В общем случае для установления полноты системы S булевых функций fi (S в P2) используют критерий полноты Поста – Яблонского.
Для реализации этого критерия определяют пять классов булевых функций.
Классом К0 булевых функций fi(x1, x2, ..., xn), сохраняющих константу 0, называется множество функций вида { fi (x1, x2, ..., xn)/ fi (0, 0, ..., 0) = 0}.
Классом К1 булевых функций fi(x1, x2, ..., xn), сохраняющих константу 1, называется множество функций вида { fi (x1, x2, ..., xn)/ fi (1, 1, ..., 1) = 1}.
Классом Кл линейных булевых функций fi(x1, x2, ..., xn) называется множество функций вида { fi (x1, x2, ..., xn)/ fi (x1, x2, ..., xn) = с0 Å с1х1 Å с2х2 Å ...
Å сnхn}, где с0, сi = 0, 1; i = 1, 2, ..., n, Å – знак операции «сложение по модулю 2».
Классом Кс самодвойственных булевых функций fi(x1, x2, ..., xn) называется множество функций вида { fi (x1, x2, ..., xn)/ fi (x1, x2, ..., xn) = `fi(`x1,`x2, ..., `xn)}.
Функция f1(x1, x2, ..., xn) называется двойственной к функции f2(x1, x2, ..., xn), если f1(x1, x2, ..., xn) = `f2(`x1, `x2, ..., `xn). Отношение двойственности между функциями симметрично. Из определения двойственности ясно, что для любой функции двойственная функция определяется однозначно. В частности, может оказаться, что функция двойственна самой себе. В этом случае она называется самодвойственной. Функция самодвойственна, если на любой паре противоположных наборов аргументов (наборов, сумма десятичных эквивалентов которых равна 2n –1) функция принимает противоположные значения.
Классом Км монотонных булевых функций fi(x1, x2, ..., xn) называется множество булевых функций, для которых выполняется условие: для любых двоичных наборов s и t длины n (s1, s2, ..., sn; t1, t2, ..., tn) из того, что s ³ t, следует, что fi(s1, s2, ..., sn) ³ fi(t1, t2, ..., tn).
Константы 0, 1 и функция x монотонны, отрицание`x немонотонно. Дизъюнкция и конъюнкция любого числа переменных являются монотонными функциями.
Критерий полноты.Система S булевых функций fi является полной тогда и только тогда, когда выполняются следующие условия:
1) существует функция fiÎ S, не сохраняющая константу 0: fi Ï K0;
2) существует функция fiÎ S, не сохраняющая константу 1: fi Ï K1;
3) существуют нелинейная функция, несамодвойственная функция и немонотонная функция в системе S.
Для порождения всех базисов в двузначной логике P2 строится двумерная таблица 4.7, каждой строке которой взаимно однозначно сопоставляется одиннадцать функций из табл. 4.3 (функции f3, f4, f5, f10, f11 не используются), а столбцам – классы функций (K0, K1, Kл, Kс, Kм). На пересечении строк i и столбцов j ставится 1, если i-тая функция не принадлежит j-тому классу, в противном случае клетка (i,j) оставляется пустой.
Таблица 4.7
|
Номер функции fi |
Идентифи-катор строки |
Классы |
||||
|
K0 |
K1 |
Kл |
Kс |
Kм |
||
|
0 |
a |
1 |
1 |
|||
|
1 |
b |
1 |
1 |
|||
|
2 |
c |
1 |
1 |
1 |
1 |
|
|
6 |
d |
1 |
1 |
1 |
||
|
7 |
e |
1 |
1 |
|||
|
8 |
g |
1 |
1 |
1 |
1 |
1 |
|
9 |
k |
1 |
1 |
1 |
||
|
12 |
m |
1 |
1 |
1 |
||
|
13 |
n |
1 |
1 |
1 |
1 |
|
|
14 |
p |
1 |
1 |
1 |
1 |
1 |
|
15 |
r |
1 |
1 |
|||
Методом Петрика, преобразуя мультипликативно-аддитивную форму в аддитивно-мультипликативную, получают все покрытия столбцов строками табл. 4.7:

Каждое из полученных покрытий порождает базис Вi:
B1 = { ° } – базис Вебба;
B2 = { | } – базис Шеффера;
B3 = { D, ~ };
B4 = {®, 0} – импликативный базис;
B5 = {®, D};
B6 = {®, Å};
B7 = { D,` } – коимпликативный базис;
B8 = { ®,` } – импликативный базис;
B9 = { Ù,` } – конъюнктивный базис Буля;
B10 = { Ú,` } – дизъюнктивный базис Буля;
B11 = { D, 1 } – коимпликативный базис;
B12 = {~, Ù, 0};
B13 = {~, Ú, 0 };
B14 = { Å, Ù, ~ };
B15 = { Å, Ú, ~ };
B16 = { Å, Ù, 1} – базис Жегалкина;
B17 = { Å, Ú, 1}.
Получено 17 базисов, в каждом из которых нельзя вычеркнуть ни одну функцию без потери полноты в P2.
Каждому сложному высказыванию в базисе {Ù, Ú,` } (И, ИЛИ, НЕ) соответствует эквивалентное высказывание в любом из этих базисов.
Техническая реализация базисных функций может быть основана на использовании различных физических явлений, например импликация и коимпликация – магнитных, функции Шеффера и Вебба – явлений в полупроводниках.
Согласно ГОСТу базисные элементы графически изображают в виде прямоугольников, в которых инверсные входы и выход изображают в виде
незаштрихованных кружков и внутри прямоугольников ставят «1», если внешняя связка «дизъюнкция», и «&», если внешняя связка «конъюнкция», за исключением сложения по модулю два (тогда обозначают «М2») и эквивалентности (обозначают «=») (табл. 4.8). Более сложные элементы графически изображают в виде композиций перечисленных элементов на основе представления реализуемой им булевой функции в виде дизъюнктивной нормальной формы (ДНФ) или конъюнктивной нормальной формы (КНФ).
