К основным относят следующие равносильности, которые рекомендуется запомнить и применять при упрощении формул.
11) Формула Шенона.Докозательство
Определение. Разложением Шеннона называется следующее разложение булевой функции f(x1, ...,xn) по переменной xi:
Доказательство(не умоляя общности, для i =1). Покажем, что формула верна в обоих случаях: для x1 = 0 и x1 = 1.
Если x1 = 0, то f (0, x2, ... , xn) = 0 f (1, x2, ... , xn) Ú 1 f (0, x2, ... , xn) =
= f (0, x2, ... , xn).
Если x1 = 1, то f (1, x2, ... , xn) =1 f (1, x2, ... , xn) Ú 0 f (1, x2, ... , xn) == f (0, x2, ... , xn).
О пределение. Сомножитель f (x1, ..., xi -1, 1, xi+1,... , xn) в формуле Шеннона называется коэффициентом разложения функции f (x1, x2, ... , xn) по переменной xi при xi, а сомножитель f (x1, ..., xi -1, 0, xi+1,... , xn) — коэффициентом разложения функции f (x1, x2, ... , xn) по xi при .
Пример.Функцию разложим по переменной x:
12) Разложение функции по k переменным. Доказательство
Разложим функцию f(x1, ...,xn) последовательно по двум переменным: сначала саму функцию по переменной x1, затем коэффициенты разложения по переменной x2.
Рассмотрим булеву функцию f (x1, x2, ... , xn) и, используя формулу Шеннона, последовательно разложим функцию
- по первой переменной,
- по двум первым переменным,
- по k первым переменным.
1. Разложим функцию по первой переменной:
f (x1, x2, ... , xn) = x1 f (1, x2, ... , xn) Ú `x1 f ( 0, x2, ... , xn).
2. Разложим в полученной формуле оба коэффициента разложения по второй
переменной:
f (x1, x2, ... , xn) = x1 f (1, x2, ... , xn) Ú `x1 f ( 0, x2, ... , xn) =
= x1 [ x2 f (1,1, x3, ... , xn) Ú`x2 f (1,0, x3, ... , xn) ] Ú
Ú`x1 [ x2 f (0,1, x3, ... , xn) Ú`x2 f (0,0, x3, ... , xn) ] =
= x1 x2 f (1,1, x3, ... , xn) Ú x1`x2 f (1,0, x3, ... , xn) Ú
Ú`x1 x2 f (0,1, x3, ... , xn) Ú`x1`x2 f (0,0, x3, ... , xn) =
[ свернем последнюю формулу в более короткую, используя следующие
обозначения: x = x1 и `x = x0, то есть xс, где c Î {0,1}, и условимся
читать символы xс как “x в степнени c “]
3. По аналогии с предыдущей формулой запишем формулу разложения
функции по k переменным: и докажем, что данное разложение верно.
Доказательство.Подставим в левую и правую части равенства произвольный набор a1 a2 ... an:
Упростим правую часть, рассуждая следующим образом. Нетрудно проверить, что 1, если и только если ai = ci (в самом деле: 0 0 = 1, 11 = 1, но 0 1 = 0 и 10 = 0), поэтому конъюнкция равна единице лишь в единственном случае, когда наборы a1 a2 ... ak и с1 с2 ... сk совпадают. А это значит, что она не обращает в ноль лишь одно слагаемое правой части — то, для которого a1 a2 ... ak = с1 с2 ... сk и в котором сама обращается в единицу. Подставив в ставшееся слагаемое a1 a2 ... ak вместо с1 с2 ... сk , получим
13) Получение СовДНФ из разложения функции по переменным. Утверждение о существовании и единственности СовДНФ.Алгоритм построения СовДНФ по таблице истинности функции.
Применив формулу разложения булевой функции f (x1, x2, ... , xn) по k переменным при k = n, получим:
Поскольку коэффициентами разложения f (c1, c2, ... , cn) в этой формуле являются значения функции f (x1, x2, ... , xn) на всевозможных наборах c1 c2 ... cn, то возможны два случая:
- если набор c1 c2 ... cn Î M0 ( f ), то f (c1, c2, ... , cn ) = 0 и поэтому обращается в 0 соответствующее слагаемое правой части;
- если набор c1 c2 ...cn Î M1 ( f ), то f(c1, c2, ... , cn ) = 1 и слагаемое упрощается.
В результате имеем формулу разложения функции по всем переменным:
Определение.Совершенная дизъюнктивная нормальная форма булевой функции , или СовДНФ, — это формула вида: