булева алгебра1
.pdfЕ.В.Просолупов
42. Булева алгебра. Функции алгебры логики
1Булевы функции
Будем рассматривать булевы функции функции, аргументы и значения которых принимают значения истина и ложь. Истину и ложь будем обозначать соответственно 1 и 0. Таким образом функция n аргументов f есть
f : {0, 1} × {0, 1} × ... × {0, 1} |
→ {0, 1}. |
||||
| |
|
{z |
|
} |
|
|
|
n |
|
|
Аргументы этих функций будем называть логическими переменными и обозначать буквами x, y и z, возможно с индексами. Множество всех булевых функций (функций алгебры логики) будем обозначать P2.
Пример 1.1 . Табличное задание функции f:
|
|
x |
y |
z |
f(x, y, z) |
|
|
|
|
|
|
|
|
0 |
0 |
1 |
0 |
|
|
0 |
0 |
0 |
1 |
|
0 |
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
0 |
1 |
1 |
0 |
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
1 |
0 |
0 |
0 |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
0 |
0 |
|
|
1 |
0 |
1 |
1 |
|
|
|
|
|
|
|
|
1 |
1 |
1 |
1 |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Всего существует 23 различных наборов значений трех переменных. Если их нумеровать от 0 до 23 − 1, то набор с номером i оказывается представлением числа i в двоичной системе счисления. Всего различных функций от 3-х аргументов 223
1
В общем случае число строк в таблице для функции от n аргументов равно 2n. Число различных булевых функций от n аргуменов 22n .
Определение 1.1 . Будем говорить, что функция f(x1, x2, ..., xn) не зависит существенно от xn (xn несущественная переменная функции f(x1, x2, ..., xn)), если на любых значений α1, α2, ..., αn−1 {0, 1}
выполняется равенство f(α1, α2, ..., αn−1, 0) = f(α1, α2, ..., αn−1, 1). Переменные функции f, которые не являются несущественными,
называют существенными переменными и говорят, что функция f существенно от них зависит.
Пример 1.2 . Функция f из примера 1.1 не зависит существенно от переменной y.
Определение 1.2 . Будем говорить, что две функции f(x1, x2, ..., xk) и g(x1, x2, ..., xl) равны, если после удаления всех несущественных переменных получаются функции с одинаковыми таблицами. В таком случае будем писать f = g.
2Формулы
Выберем некоторую сисстему функций из P2: P = {f1, f2, ..., fk} P2, k ≥ 1. Назавем функции из системы P элементарными функциями. Тогда формула над {f1, f2, ..., fk} определяется рекурсивно:
Определение 2.1 . 1. Если f(x1, ..., xn) P, то f(x1, ..., xn)
формула.
2. Если f(x1, ..., xn) P и U1, U2, ..., Un формулы или логические пременные, то f(U1, ..., Un) формула.
Замечание 2.1 . Мы определили формулу над P. Формула всегда мыслится в связи с каким-то указанным множеством элементарных функций.
Каждой функции можно однозначно сопоставить функцию:
1. Если U = f(x1, ..., xn) P, то формуле U сопоставляется функция fU = f(x1, ..., xn).
2
2. Пусть U = f(U1, ..., Un), где f(x1, ..., xn) P и U1, U2, ..., Un формулы или логические пременные. Тогда fU = f(fU1 , ..., fUn ), где fUi функция, сопоставленная формуле Ui, если Ui формула, и fUi = xi, если Ui = xiлогическая переменная.
Определение 2.2 . Будем говорить, эквивалентны и писать U = B, если fU несущественных переменных.
что формулы U и |
B |
= fB с точностью |
до |
Рассмотрим основные функции, используемые в качестве элементарных функций в алгебре логики.
Всего существует четыре различные функции от одной переменной: тождественный ноль f(x) = 0; тождественная единица f(x) = 1; тождественная функция или тождественный x f(x) = x; отрицание x или "не x" f(x) = ¬x, так же обозначается x.
x |
0 |
1 |
x |
¬x |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
|
|
|
|
|
Из них тождественный ноль и тождественная единица не зависят существенно от x. То есть фактически это две функции без аргументовконстанты: f = 0 и f = 1.
Рассмотрим основные булевы функции от двух переменных.
x y |
x y |
x y |
x y |
x y |
x ≡ y |
x|y |
x ↓ y |
|
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
f(x, y) = x y дизъюнкция, логическое "или".
f(x, y) = x y конъюнкция, логическое "и", логическое умножение. Также можно использовать обозначения x&y или xy.
f(x, y) = x y сложение по модулю два, логическое исключающее "или". Также можно использовать обозначение x + y.
f(x, y) = x y импликация, "если, то". Также можно использовать обозначение x→y.
3
f(x, y) = x ≡ y эквивалентность. Также можно использовать обозначение x y.
f(x, y) = x | y штрих Шеффера. f(x, y) = x ↓ y стрелка Пирса.
Всего, как мы |
помним, существует 16 различных функций от |
двух переменных. |
Мы выбрали 7, существенно зависящих от обоих |
переменных и имеющих наибольшее значение. Добавив к ним функции от одной переменной и константы (функции от 0 переменных) получим систему элементарных функций
P = {0, 1, x, x, x y, xy, x y, x y, x ≡ y, x|y, x ↓ y}.
Указанные функции будем теперь также называть операциями.
Пример 2.1 . Рассмотрим пример формулы над P :
U= (((xy) (xz)) (xz)).
Вэтой записи слишком много скобок.
Чтобы облегчить чтение и запись формул можно установить приоритеты выполнения операций. Будем считать, что наивысший приоритет имеют функции от одной переменной. Из функций от двух переменных наивысший приоритет будет иметь коньюнкция . Все остальные операции имеют одинаковый приоритет.
Кроме того можно убедиться, что операции , , , ≡ являются ассоциативными. Таким образом, вместо x ◦ (y ◦ z) или (x ◦ y) ◦ z можно писать x ◦ y ◦ z, если ◦ { , , , ≡}. Операции , |, ↓ не являются ассоциативными.
Пример 2.2 . С учетом указанных договоренностей, формула из примера 2.1 примет вид:
U = xy xz xz.
3Основные тождества
1. Коммутативность: x ◦ y = y ◦ x, если ◦ { , , , ≡, |, ↓}.
4
2. |
Ассоциативность: x ◦ (y ◦ z) = (x ◦ y) ◦ z, если ◦ {, , , ≡}. Мы |
||||||||||||||
уже указывали на это свойство раньше. |
|
|
|
|
|
|
|
||||||||
3. |
Правила де Моргана: |
|
= |
|
|
|
, |
|
|
= |
|
|
|
. |
|
x y |
x y |
||||||||||||||
x |
y |
x |
y |
||||||||||||
4. |
Правила поглощения: x xy = x, |
x(x y) = x. |
|||||||||||||
5. |
Дистрибутивность: |
|
|
|
|
|
|
|
x(y z) = xy xz дистрибутивность относительно ,
x yz = (x y)(x z) дистрибутивность относительно , x(y z) = xy xz дистрибутивность относительно .
6.Формулы расщепления: x = xy xy,
x = (x y)(x y).
7. 0 = xx = x 0 = x x, 1 = x x = x 1 = x ≡ x,
x = ¬¬x = x x = xx = x 1 = x 0. 8. x = x 1,
x ≡ y = (x y) 1,
x y = x y = xy x 1, x ↓ y = x y.
Используя эти тождества можно выполнять преобразования формул, получая им эквивалентные.
Пример 3.1 . Рассмотрим формулу U = (y x) (x 1) y. Проведем преобразования, используя известные тождества.
(y x) (x 1) y = (y x) (x) y = y x x y = 1 1 = 1.
Таким образом, формула U задает тождественно истинную функцию. Очевидно, что формула B = U = (y x) (x 1) y = 1 = 0, то
есть B задает тождественно ложную функцию.
Определение 3.1 . Формула, задающая тождественно истинную функцию, называется тавталогией.
Определение 3.2 . Формула, задающая тождественно ложную функцию, называется противоречием.
5
Определение 3.3 . Формула называется выполнимой, если для нее существует набор аргументов, на котором она принимает значение 1.
4Дизъюнктивная нормальная форма
Определение 4.1 . Введем следующее обозначение:
xσ = |
x, |
σ = 0. |
|
|
|
x, |
σ = 1, |
Также будем говорить x в степени σ, имея в виду запись xσ определенную выше.
Утверждение 4.1 . Пусть f(x1, ..., xn) P2 и f 6= 0. Тогда
_
f(x1, ..., xn) = xσ11 · · · xσnn . (1)
(σ1,...,σn) f(σ1,...,σn)=1
Замечание 4.1 . Здесь и далее запись "f 6= 0" понимается в смысле эквивалентности формул. То есть запись "f 6= 0" читается "f не является тождественно ложной функцией", а запись "f 6= 1" "f не является тождественно истинной функцией".
σi |
σi |
|
σi |
логическая |
Определение 4.2 . Формула вида xi1 |
1 xi2 |
2 |
· · · xikk , где xij |
переменная, σij логическая константа, i1 < i2 < ... < ik, называется конъюнктом.
Определение 4.3 . Если f(x1, ..., xn) представлена в виде
f(x1, ..., xn) = K1 K2 ... Ks
где K1, K2,..., Ks различные конъюнкты, то говорят, что f представлена в дизъюнктивной нормальной форме (ДНФ).
Если в каждый Ki входят все переменные x1, ..., xn, то говорят, что f представлена в совершенной дизъюнктивной нормальной форме (СДНФ).
6
Утверждение 4.2 . Пусть f(x1, ..., xn) P2. Если f 6= 0, то она представима в виде СДНФ, причем единственным образом (с точностью до перестановки конъюнктов).
Замечание 4.2 . Из утверждения 4.1 мы получили формулу (1), которую удобно использовать для построения СДНФ для функции f 6= 0.
Теперь для построения СДНФ согласно формуле (1) необходимо
выбрать каждый набор (σ1, ..., σn), для |
которого f(σ1, ..., σn) = 1, |
и сопоставить ему коньюнкт x1σ1 · · · xnσn |
совершенной дизъюнктивной |
нормальной формы. |
|
Пример 4.1 . Рассмотрим функцию f(x, y, z), заданную таблицей:
x |
y |
z |
f |
|
|
|
|
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
|
|
|
|
Тогда, согласно формуле (1) СДНФ будет выглядеть следующим образом:
f(x, y, z) = x0y0z0 x0y0z1 x1y0z1 x1y1z0 = = x y z x y z x y z x y z.
5Полином Жегалкина
Рассмотрим еще одно представление функции в виде формулы заданного вида.
7
Определение 5.1 . Формула вида
α0 α1x1 α2x2 ... αnxn α12x1x2 ... α12...nx1x2...xn, (2)
где x1, ..., xn логические переменные, а α1, ..., αn логические константы, называется полиномом Жегалкина.
Пример 5.1 .
1 x1 x2x3 полином Жегалкина.
Здесь n = 3, α0 = α1 = α23 = 1, а α2 = α3 = α12 = α13 = α123 = 0.
Утверждение 5.1 . Пусть f(x1, ..., xn) P2. Тогда фукнция f может быть представлена полиномом Жегалкина, причем единственным образом.
Замечание 5.1 . Для построения полинома Жегалкина удобно использовать метод неопределенных коэффициентов. Предположим, что функция f(x1, ..., xn) задана таблицей значений для всех наборов аргументов. Нам известен общий вид полинома Жегалкина для f
M^
α(I) xi
I{1,...,n} i I
и требуется только вычислить коэффициенты α(I).
Проходя по всей таблице значений для f будем приравнивать общий вид полинома и известное значение функции на данном наборе, тем самым последовательно вычисляя коэффициенты α.
LV
f(0, ..., 0) = I{1,...,n} α(I) i I 0 = α( ). Отсюда имеем первый коэффициент:
α( ) = f(0, ..., 0).
f(0, .., 0, 1) = α( ) α({n}) 1. Таким образом,
α({n}) = f(0, ..., 0, 1) α( ) =
= f(0, ..., 0, 1) f(0, ..., 0, 0).
Продолжая этот процесс мы сможем вычислить все коэффициенты и тем самым получим полином Жегалкина для функции f.
8
Пример 5.2 . Пусть f(x, y, z) = (x y) z. Пусть f(x, y, z) = xy xz yz.
f(0, 0, 0) = 0 = α0 |
α0 = 0, |
f(0, 0, 1) = 0 = α0 α3 |
α3 = 0, |
f(0, 1, 0) = 0 = α0 α2 |
α2 = 0, |
f(0, 1, 1) = 1 = α0 α2 α3 α2,3 |
α2,3 = 1, |
f(1, 0, 0) = 0 = α0 α1 |
α1 = 0, |
f(1, 0, 1) = 1 = α0 α1 α3 α1,3 |
α1,3 = 1, |
f(1, 1, 0) = 1 = α0 α1 α2 α1,2 |
α1,2 = 1, |
f(1, 1, 1) = 1 = α0 α1 α2 α3 α1,2 |
α1,2,3 = 0. |
α1,3 α2,3 α1,2,3 |
Следовательно, полином Жегалкина для функции f будет иметь вид f(x, y, z) = xy xz yz.
6Полнота системы функций
Определение 6.1 . Система функций P P2 называется полной, если любую функцию из P2 можно представить в виде формулы над P.
Приведем несколько примеров полных систем функций.
Утверждение 6.1 . {¬, , } полная система функций.
Следствие 6.2 . {¬, } и {¬, } полные системы функций.
Утверждение 6.3 . 1) Системы функций {|} и {↓} полные системы функций.
2) Других полных систем, состоящих из одной функции от двух переменных нет.
Утверждение 6.4 . {1, , } полная система функций.
Определение 6.2 . Пусть
K0 = {f1(x1, ..., xk1 ), f2(x1, ..., xk2 ), ..., fm(x1, ..., xkm )}.
9
f суперпозиция ранга 1 (элементарная суперпозиция) функций f1, ..., fm, если f получена одним из способов:
a) переименованием некоторой переменной xj функции fi, i = 1, m,
j = 1, ki:
fi(x1, ..., xj−1, y, xj+1, ..., xki ),
где y может совпасть с любой переменной;
b) подстановкой некоторой функции fl вместо переменной xj функции fi, l = 1, m, i = 1, m, j = 1, ki:
fi(x1, ..., xj−1, fl(x1, ..., xkl ), xj+1, ..., xki ).
Множество |
суперпозиций ранга 1 |
функций |
из |
K0 обозначим |
|||
K1. Также, |
множество суперпозиций ранга |
1 функций из Ki−1 |
|||||
обозначим Ki, i = |
1, ∞ |
. Функции из множества Ki |
будем называть |
||||
суперпозициями ранга i функций из K0. |
|
|
|
||||
Определение 6.3 . |
Суперпозицией функций из K0 |
будем называть |
|||||
суперпозицию любого ранга. |
|
|
|
||||
Определение 6.4 . |
Пусть M P2. |
Замыканием M называется |
|||||
множество |
|
|
|
|
|
|
|
[M] = {f | f суперпозиция функций из M}.
Определение 6.5 . Пусть M P2. M замкнутое множество функций, если M = [M].
Пример 6.1 .
1)M = {x, x}. Тогда [M] = {x, x} = M и M замкнуто.
2)M = {x}. Тогда [M] = {x, x} 6= M. Множество M не замкнуто.
Несложно проверить нижеследующие свойства операции замыкания.
Замечание 6.1 . Заметим,что для доказательства замкнутости некоторого класса функций M достаточно показать, что любая суперпозиция ранга 1 функций из M лежит в M.
Следствие 6.5 . Система функций P P2 полная, если [P] = P2.
10