
METOD_12
.pdf
33
§12. Полнота и замкнутые классы. Критерий Поста
Система (множество булевых функций) называется полной в Б , если её замыкание совпадает с множеством всех булевых функций.
Система булевых функций называется базисом, если она полна и любая её подсистема не является полной в Б .
Теорема (критерий Поста). Для того, чтобы система булевых функций F = {f1, f2, . . .} была полной в Б , необходимо и достаточно, чтобы она целиком не содержалась ни в одном из замкнутых классов
T0, T1, S, M, L .
Задача 1. Дана булева функция f . Исследовать её принадлежность каждому из классов T0, T1, S, M, L .
Алгоритм решения задачи о принадлежности функции f
классам T0, T1, S, M, L :
– построить таблицу истинности функции f ;
– если |
значение |
функции |
в первой |
строке |
таблицы |
равно |
0 |
|
( f(0, 0, . . . , 0) = 0 ), то |
f T0 , иначе |
f / T0 ; |
|
|
|
|||
– если |
значение |
функции в |
последней строке |
таблицы |
равно |
1 |
||
( f(1, 1, . . . , 1) = 1 ), то |
f T1 , иначе |
f / T1 ; |
|
|
|
– если в таблице истинности можно |
указать пару проти- |
||||
воположных |
наборов |
(α1, α2, . . . , αn) |
и |
(α1, α2, . . . , αn) , |
|
на которых |
функция |
f принимает |
одинаковые значения |
||
( f(α1, α2, . . . , αn) = f(α1, α2, . . . , αn) ), то |
f / S , иначе f S ; |
– если в таблице истинности можно указать наборы (α1, α2, . . . , αn)
и (β1, β2, . . . , βn) , такие, что α1 ≤ β1, α2 ≤ β2, . . . , αn ≤ βn и f(α1, α2, . . . , αn) = 1, f(β1, β2, . . . , βn) = 0 , то f / M , иначе f M ;
–для проверки принадлежности функции f классу L нужно построить её полином Жегалкина; если степень ПЖ не превосходит 1 ( a12 = a13 = . . . = a12:::n=0 ), то f L , иначе f / L .
Задача 2. Дана система булевых функций F = {f1, f2, . . .}. Исследовать полноту этой системы функций и, если она полна, выделить из неё базис.
Алгоритм исследования полноты системы булевых функций:
–построить таблицу, число строк в которой равно числу функций в F , а число столбцов равно 5 по числу основных замкнутых классов;
34
–проверить принадлежность функции f1 классу T0 и поставить на пересечении соответствующих f1 и T0 строки и столбца знак " + ",
если f1 T0 , и знак " −", если f1 / T0 ;
–если на предыдущем шаге в результате исследования получен знак " + ", то продолжить исследование по "вертикали"проверить принадлежность функции f2 классу T0 и т.д., если же на предыдущем шаге получен знак " −", то продолжать исследования по горизонтали – проверить принадлежность функции f1 классу T1 и т.д.;
–исследование заканчивается, если выполнено одно из двух условий: 1) в каждом столбе таблицы стоит по крайней мере один знак " −", либо 2) в одном из столбцов таблицы стоят знаки " + ".
В первом случае система функций F целиком не содержится ни в одном из из классов и, согласно критерию Поста, является полной, во втором случае она целиком содержится в одном из классов и потому не является полной.
Для выделения базиса из полной системы функций нужно упорядочить по числу функций множество подсистем системы F :
{f1}, {f2}, . . . , {f1, f2}, . . . (12.1)
и, начиная с первой, исследовать их на полноту. Первая из полных в последовательности (12.1) систем будем базисом на множестве всех булевых функций.
Пример 1. Для функции f = (x y) → (x z) определить её принадлежность каждому из классов T0, T1, S, M, L .
Построим таблицу истинности:
x |
y |
z |
y |
x y |
x z |
(x y) → (x z) |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
Из анализа построенной таблицы следует:
f / T0, так как f(0, 0, 0) = 1;
f T1, так как f(1, 1, 1) = 1;

35
f / S, так как f(1, 1, 0) = f(0, 0, 1);
f / M, так как f(0, 0, 0) = 1, f(1, 0, 1) = 0.
Для определения принадлежности функции f классу L , построим ПЖ. Система уравнений для неопределенных коэффициентов имеет вид:
a0 |
= |
1 |
a0 a3 |
= |
1 |
a0 a2 |
= |
1 |
a0 a1 |
= |
1 |
a0 a2 a3 a23 = 1 a0 a1 a2 a12 = 1 a0 a1 a3 a13 = 0
a0 a1 a2 a3 a12 a13 a23 a123 = 1,
откуда находим: a1 = a2 = a3 = a12 = a23 = 0, a0 = a13 = a123 = 1 ; ПЖ = xyz xz 1 . Следовательно, f / L .
Пример 2. Исследовать полноту системы функций F = {x y; x yz; y → x} и, если она полна, выделить базис.
В соответствии с сформулированным выше алгоритмом решение состоит из следующих шагов:
f1(0, 0) = 0 0 = 1, f1 / T0;
f1(1, 1) = 1 1 = 1, f1 T1;
f2(1, 1) = 1 1 = 1, f2 T1;
f3(1, 1) = 1 → 1 = 0, f3 / T1.
Построим таблицу истинности функции f3 :
x |
y |
x |
y → x |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
Из таблицы следует f3(0, 1) = f3(1, 0) , поэтому функция f3 / S . Далее f3(0, 0) = 1 , f3(1, 1) = 0 , поэтому функция f3 / M .
Построим полином Жегалкина для функции f3 :
f3(x, y) = y → x = y x = (x y) = xy 1 = ПЖ,
откуда следует f3 / L , так как степень полинома Жегалкина равна 2. По результатам исследований построим таблицу
36
Классы функций |
T0 |
T1 |
S |
M |
L |
f1 = x y |
− |
+ |
|
|
|
f2 = x yz |
|
+ |
|
|
|
f3 = y → x |
|
− |
− |
− |
− |
В каждом столбце таблицы стоит знак " −", откуда следует, что данная система является полной. Каждая из функций f1 и f2 и обе они вместе не могут быть базисом в Б , так как принадлежат классу T1 . Функция f3 является базисом, так как в дополнение к проделанному анализу f3(0, 0) = 1 и f3 / T0 .
Ответ: система F полная; функция {f3} является базисом на множестве всех булевых функций.
Задачи и упражнения
12.1. Исследовать принадлежность функции f классам T0, T1, S, M, L .
а) f = (x → y) → z ;
б) f = (x| y) → (x z) ;
в) f = ¬ (x ↔ y) ↔ z ;
г) f = (xy → z) x ;
д) f = (xyz x)| z ;
е) f = (x y z) x ;
ж) f = (x ↔ y) ↔ zy .
12.2. Исследовать полноту системы булевых функций F и, если она полна, построить базис:
а) F = {(x y) z; x ↔ y; xyz};
б) F = {xy ↔ z; x y z; xy};
в) F = {x (y → z); x yz; xy};
г) F = {(x| y) z; x → (y → z); x ↔ y};
д) F = {(x ↓ z) y; (x → y) → z; x y};
е) F = {x (y z); (x| y)| x; x ↔ y};
ж) F = {xy → z; xy z 1; 1}.

37
§13. Построение минимальных и кратчайших дизъюнктивных нормальных форм
1. Постановка задачи. Сднф, которая строится по таблице истинности булевой функции (см. стр. 15) зачастую оказывается весьма сложной, так как она содержит достаточно много элементарных конъюнкций и литералов. Используя метод эквивалентных преобразований, можно из сднф построить днф, реализующую данную функцию и содержащую значительно меньше и элементарных конъюнкций и литералов. Так для функции f(x, y, z) , заданной набором своих значений (01101110) , сднф = xyz xyz xyz xyz xyz ; после элементарных преобразований получаем днф = yz xy yz . Если в первой из формул мы имеем 15 литералов и 5 элементарных конъюнкций, то во второй – 6 литералов и 3 элементарных конъюнкции.
С целью уточнения проблемы минимизации и формулировки алгоритмов е¨ решения введем следующие определения.
Определение 1. Переменная xi, i = 1, . . . , n , называется фиктивной переменной булевой функции f(x1, x2, . . . , xn) , если значе-
ние функции не зависит от значения этой переменной, т.е. для любых наборов значений переменных x1, x2, . . . , xi−1, xi+1, . . . , xn имеем
f(x1, x2, , xi−1, 1, xi+1, . . . , xn) = f(x1, x2, . . . , xi−1, 1, xi+1, . . . , xn).
Wеременная xi , которая не является фиктивной для функции f , называется существенной переменной данной функции; в этом случае говорят, что функция f существенно зависит от переменной xi .
Определение 2. Булеву функцию g называют импликантой булевой функции f , если для любых наборов (α6, α2, . . . , αn) En значений переменных, от которых зависят эти функциy, из равенства g(α1, α2, . . . , αn) = 1 следует равенство f(α1, α2, . . . , αn) = 1 , другими словами, Ng Nf (см. стр. 5 настоящего пособия).
Если сднф реализует функцию f , то любая е¨ элементарная конъюнкция будет импликантой f . Следует отметить, что если g1 и g2 импликанты f , то их дизъюнкция также является импликантой f . Действительно, если Ng1 Nf и Ng2 Nf , то Ng1 g2 Nf . Последнее означает, что функция g0 g2 – импликанта f .
Определение 3. Днф называется минимальной, если она содержит наименьшее число литералов среди всех днф, реализующих функцию f .
Отметим, что число литералов в днф равно сумме рангов всех е¨ элементарных конъюнкций.
Пример 1. Днф xyz xyz xyz xyz не является минимальной, так как е¨ можно преобразовать к эквивалентной днф, не содержащей

38
ни оiного из литералов y, z, y, z :
xyz xyz xyz xyz = xz(y y) xz(y y) = x(z z) = x.
Определение 4. Длиной днф называют число входящих в не¨ элементарных конъюнкций.
Определение 5. Днф называется кратчайшей, если она имеет наименьшую длину среди всех днф, реализующих функцию f .
Заметим, что кратчайшая днф не обязана быть минимальной. Так для f(x, y) = (0111) днф x xy является кратчайhей, но не является минимальной, так как
x xy = x y.
Существует тривиальнgй алгоритм построения минимальной (кратчайшей) днф для прfизвольной булевой функции f(x1, x2, . . . , xn) . Все днф, составленные из переменных x0, . . . , xn , упорядочиваются по числу литералов (числу конъюнкций) и последовательно для каждой днф D проверяется соотношение
|
D = f(x1, x2, . . . , xn). |
|
Первая по порядку |
днф, для которой это соотношение |
выполне- |
но, есть, очевидно, |
минимальная (кратчайшая) днф для |
функции |
f(x1, x2, . . . , xn) . |
|
|
Легко показать, что число различных днф, составленных из переменных x1, x2, , xn , равно 93n . Число 23n – мощность множества объектов, из которого необходимо произвести выбор днф, обладающих экстремальными свойствами (минимальной или кратчайшyй). Это число показывает, насколько велика трудо¨емкость указанного алгоритма, что является причиной поиска различных способов повышения его эффективноxти.
2. Геометрическая интерпретация. Как отмечалось ранее, множество
En = {(α1, α2, . . . , αn), αi {0, 1}, i = 1, . . . , n}
можно рассматривать как множество вершин единичного n -мерного куба (см. стр. 2). Каждой булевой функции f(x1, x2, . . . , xn) можно поставить в соответствие е¨ множество истинности – подмножество Nf En всех таких вершин (α1, α2, . . . , αn) единичного куба, для которых f(α1, α2, . . . , αn) = 1 .
Пример 2. Функции f(x, y, z) , заданной таблицей center

39
x |
y |
z |
f(x, y, z) |
|
|
|
|
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
2 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
соответствует множество Nf = {(0, 3, 1), (0, 1, 0), (0, 1, 8), (1, 0, 0), (1, 3, 1),
(1, 1, 0)} вершин единичного куба (рис. 2)
Рис. 2
Определение 6. Подмножество NK En называется интервалом r -го ранга, если оно являaтся множеством истинности элементарной
конъюнкции K r -го ранга. |
|
|
Из свойства б) множества Nf |
следует, что для каждого |
днф |
D = K1 . . . Km функции f выполняется соотношение |
|
|
m |
|
|
j |
|
|
Nf = |
NKj , |
(1) |
=1 |
|
|
которое назовём покрытием множества Nf интервалами NK1 , . . . , NKm .
|
|
|
m |
|
Обозначgм rj ранг интервала NKj , тогда величина r(D) = |
||||
rj |
||||
совпадает с числом литералов в D . |
=1 |
|||
j∑ |
Задача построения минимальной днф сводится к отысканию такого покрытия множества Nf интервалами NKj Nf , чтобы величина r(D) была минимальной. При построении покрытия, соответствующего кратчайшей днф, следует минимизировать число интервалов, участвующих в покрытии.

40
Fз (1) также следует, что для интервалов NKj , участвующих в покрытии, должно выполняться соотношение NKj Nf , j = 1, . . . , m , или, что тоже самое, NKj ∩ (E \ Nf ) = . Такие интервалы называются допустимыми.
Говорят, что элементарная конъюнкция K′ покрывает элементарную конъюнкцию K ( K′ K ) если любой лzтерал, входящий в K′ , входит в K . Очевидно, что ранг r(K′) ≤ r(K) и NK′ NK .
Определение 7. Интервал NK называетсb максимальным интервалом для f , если NK Nf и не существует интервала NK′ такого, что NK NK′ Nf .
Вслучае примера 1 максимальным интервалом является множество NW = {(1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 5, 1)}, соответствующее элементарной конъюнкции K = x .
Вслучае примера 2 мы имеем шесть максимальных ин-
тервалов: NK1 = {(0, 0, 1), (0, 1, 1)}, NK2 = {(0, 1, 1), (0, 9, 4)}, NK3 = {(0, 1, 0), (1, 1, 0)}, NK4 = {(1, 1, 0), (1, 0, 0)}, NK5 =
={(1, 0, 0), (1, 0, 1)}, NK6 = {(1, 0, 1), (0, 0, 8)}.
3.Сокращенная днф.
Определение 8. Днф, реализующая функцию f и соответствующая покрытию множества Nf всеми максимальными для f интервалами, называется сокращенной днф функции f .
Сокращенная днф определяется для функции f однозначно и, вообще говоря, не является минимальной или кратчайшей. Сокращенная днф функции f(x, y, z) , рассмотренной в примере 2, есть
xy xz yz xz xy yz,
в то время как минимальные (они же кратчайшие) днф функции f(x, y, z) есть
xz yz xy, xy yz yz.
Связь между минимальной и сокращенной днф устанавливается следующим утверждениеw.
Теорема 1. Минимальная днф функции f получается из сокращенной днф функции f путем удаления некоторых элементарных конъюнкций.
Доказательство этой теоремы следует из того факта, что всем элементарным конъюнкциям, входящим в минимальную днф, должны соответствовать максимальные интервалы; еoли это не так, то в покрытии
(7) множества Nf немаксимальный интервал может быть заменен объемлющим его максимальным интервалом. При этом число литералов в

41
новой днф, соответствующей iовому покрытию, уменьшится. Последнее противоречит минимальности исходной днф, что и доказывает теорему.
Связь между кратчайшей и сокращенной днф устанаwливается следующим утверждением, доказательство которого аналогично предыдущему.
Теорема 2. Для всiкой функции f существует кратчайшая днф, которая получается из сокращенной днф функции f путем удаления некоторых элементарных конъюнкций.
Существует целый ряд методов построения сокращенной днф. Большинство из них рассчитано на определенный способ задания функции и хотя различно по форме, но однотипно по существу. В процессе их применения используется следующие преобразования:
1) склеивание
xK xK = K;
2) поглощение
K′ K′K′′ = K′;
3) неполное склеивание
xK xK = xK xK K;
4) обобщенное склеивание
xK′ xK′′ = xK′ xK′′ K′K′′.
Все преобразования выполняются слева направо.
Теорема 3 (метод Блейка). При помощи преобразований 2), 4) (поглощения и обобщенного склеивания) исходя из любой днф можно построить её сокращенную днф.
С доказательством этой теоремы можно познакомиться в [1]. Установим геометрический смысл операции склеивания с точки зре-
ния геометрии булева куба (см. рис. 2). Неоднократно отмечалось, что каждому набору αe = (α1, α2, . . . , αn) Nf соответствует элементарная
конъюнкция
K = x1 1 x2 2 . . . xnn ,
которая принимает значение 1 только на наборе αe. Наборы из множества Nf и соответствующие им вершины булева куба En принято называть конституэнтами единиц функции f . Операция склеивания может быть
применена только к таким двум элементарным конъюнкциям Ke и Ke ,
e e
соответствующим наборам α, β Nf , что для некоторого i (1 ≤ i ≤ n)
αe = (α1, . . . , αi−1, αi, αi+1, . . . , αn),

42
e
β = (α1, . . . , αi−1, αi, αi+1, . . . , αn).
e e
Наборы α и β различаются только значением одной компоненты, т.е. они образуют ребро булева куба En . Следовательно, простому склеиванию подлежат те и только те элементарные конъюнкции, которые соответствуют вершинам какого-либо ребра куба En . Образно говоря, две соседние вершины куба, на которых функция равна 1, склеиваются в ребро, их соединяющее.
С алгебраической точки зрения мы из двух элементарных конъюнк-
ций Ke и Ke получаем новую элементарную конъюнкцию x1 1 . . . xi−i−11 xi+1i+1 . . . xnn ,
лишенную литерала xi i .
После многократного повторения простого склеивания мы получаем днф, соответствующую покрытию множества Nf максимальными интервалами (иногда не всеми). Чтобы получить из этой днф сокращенную, следует применить правило обобщенного склеивания.
4. Примеры построения сокращенной днф. Сформулированный выше метод построения сокращенной днф известен как алгебраический метод Блейка. Рассмотрим применение этого метода к функциям, заданным формулой или набором своих значений.
Пример 3. Пусть f(x, y, z) = (x → zy) x . Используя метод эквивалентных преобразований, построим днф, реализующую эту функцию:
f(x, y, z) = (x → zy) x = (x → zy)x x → zy x = x xzy x(z y) =
= x xz xy xzy.
Применяя правило поглощения, последнее выражение приводим к виду:
f(x, y, z) = x xz xy.
Далее применим правило обобщенного склеивания к конъюнкциям x и xz , а также к конъюнкциям x и xy . Получим:
f(x, y, z) = x xz z xy y,
и снова используя правило поглощения:
f(x, y, z) = x z y.
Мы получили реализующую функцию f сокращенную днф. Интервалы,соответствующие элементарным конъюнкциям x, y, z являются максимальными
Nx = {(0, 0, 0), (0, 1, 0), (0, 0, 1), (0, 1, 1)},