Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

булева алгебра1

.pdf
Скачиваний:
18
Добавлен:
01.04.2015
Размер:
232.85 Кб
Скачать

Е.В.Просолупов

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