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

Алгебра логики

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

II.АЛГЕБРА ЛОГИКИ

1.Понятие алгебры

Функция типа ϕ: M n M называется n -арной операцией на множестве M ; n называется

арностью операции. Множество M

вместе с

заданной на нем совокупностью операций

={ϕ1, ..., ϕm , ...} называется алгеброй, при этом используется обозначение A =(M ;ϕ1,,ϕm ,).

M

называется основным или несущим множеством алгебры A . Упорядоченный набор (n1,, ni ,),

где

ni – арность операции ϕi , x1 = x1 | x1

называется

типом алгебры, совокупность операций Σ −

сигнатурой.

 

 

 

Множество M M называется замкнутым относительно операции ϕ на M , если значения ϕ

на аргументах из M принадлежат M . Если M замкнуто относительно всех операций ϕ1,, ϕm ,алгебры A , то алгебра A′ =(M ;ϕ1,,ϕm ,) называется подалгеброй A .

Пример 1

1. Алгебра (D; +, ) называется полем действительных чисел. Тип (2, 2). Все конечные

подмножества, кроме {0}, не замкнуты относительно обеих операций. Подалгеброй этой алгебры является поле рациональных чисел.

2. Алгебра

 

2A; ,,

_

есть алгебра подмножеств множества

A . Ее тип (2, 2,1).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Логические функции

Мы будем рассматривать множество B ={0,1}, в котором элементы 0 и 1 есть не числа в обычном

смысле, а несут следующую логическую интерпретацию: 0 ложь, 1истина.

Алгебра, образованная множеством B вместе со всеми возможными операциями на нем,

называется алгеброй логики.

Функцией алгебры логики или логической функцией от n переменных называется n -арная операция на B . Итак, логическая функция f (x1,, xn ) это функция, принимающая значения 0 или 1, аргументы которой тоже принимают значения 0 или 1. Множество всех логических функций обозначается P2 , множество всех логических функций n переменных P2 (n) . Всякая логическая

функция n переменных может быть задана таблицей, в левой части которой перечислены все 2n упорядоченных наборов значений переменных из n элементов 0 или 1. В правой части таблицы располагаются значения функции на этих наборах. Такие таблицы называются таблицами

истинности.

 

 

Наборы значений переменных, на которых функция f

принимает значение 1, называют

единичными

наборами

функ-

ции f . Наборы, на которых f

принимает значение 0, называют нулевыми наборами функции f .

Ниже дан пример табличного задания логической функции трех переменных.

x1x2 x3

f

0 0 0

0

0 0 1

1

0 1 0

0

0 1 1

0

1 0 0

1

1 0 1

1

1 1 0

0

1 1 1

0

 

 

Логическая функция n переменных полностью определяется вектор-столбцом своих значений, размерность которого равна числу наборов значений функции, т. е. 2n . Отсюда число различных

15

функций n

переменных

 

P

(n)

 

равно числу различных двоичных наборов длины 2n

и,

 

 

 

 

 

2

 

 

 

 

следовательно, равно 22n .

Переменная xi в функции f (x1,, xi1, xi , xi+1,, xn ) называется фиктивной, если при любых значениях остальных переменных выполняется равенство

f(x1,, xi1,0, xi+1,, xn ) = f (x1,, xi1,1, xi+1,, xn ) .

Вэтом случае функция f (x1,, xn ) , по существу, зависит от (n 1) переменной, т. е. представляет

собой функцию g(x1,, xi1, xi+1,, xn ) . Говорят, что g получена из f удалением фиктивной переменной, а f получается из g введением фиктивной переменной. Переменные функции f , которые не являются фиктивными, называются существенными.

2.1. Логические функции одной и двух переменных

Число логических функций одной переменной равно 4. Все эти функции приведены в следующей таблице:

x

ϕ0

ϕ1

ϕ2

ϕ3

0

0

0

1

1

1

0

1

0

1

 

 

 

 

 

Функции

ϕ0 и ϕ3 константы 0 и

1 соответственно. Их значения не зависят от значения

переменной

 

x .

Значения

 

функ-

ции ϕ1 совпадают со значениями переменной x . Поэтому функция ϕ1

называется тождественной

функцией и

обозначается

x . Значения

функции ϕ2 противоположны значениям

переменной и

поэтому она

называется

отрицанием

x или функцией не. Для

функции ϕ2

используются

обозначения:

x , ¬x , x.

 

 

 

 

Рассмотрим логические функции двух переменных. Всего существует 16 различных логических функций двух переменных. Все эти функции даны в следующей таблице:

x1 x2

ψ0 ψ1 ψ2 ψ3 ψ4 ψ5 ψ6 ψ7 ψ8 ψ9 ψ10 ψ11 ψ12 ψ13 ψ14 ψ15

0 0

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

0 1

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

1 0

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

1 1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

В данной таблице функции ψ0 и ψ15 есть константы 0 и 1 соответственно, т.е. имеют по две фиктивные переменные.

Функция ψ1 называется конъюнкцией x1 и x2 . Для функции ψ1 используют обозначения: x1 & x2 , x1 x2 , x1 x2 . Иногда знак операции опускают и пишут x1x2 . Функция ψ1 равна 1, только если x1 и x2 равны 1. Поэтому конъюнкцию часто называют функцией и. Еще одно название «логическое умножение», так как ее таблица совпадает с таблицей обычного умножения для чисел 0 и 1.

Функция ψ7 называется дизъюнкцией

x1 и x2 . Для нее используются обозначения: x1 x2 ,

x1 + x2 . Функция ψ7 равна 1, если x1 или x2

равны 1. Поэтому ее часто называют функцией или.

Функция ψ6 называется сложением по модулю 2. Ее обозначения: x1 x2 , x1 x2 , x1 x2 . Она равна 1, когда значения ее аргументов различны, и равна 0, когда они равны. Иногда ψ6 называют

неравнозначностью.

Функция

ψ9

называется эквивалентностью или равнозначностью. Ее обозначения:

x1 x2 ,

x1 x2 . Она равна 1, когда значения ее аргументов совпадают, и равна 0, когда они различны.

 

 

Функция

ψ13

называется импликацией x1 и x2 . Ее обозначения: x1 x2 , x1 x2

и

часто

читается « x1 имплицирует x2 » или «из x1 следует x2 ».

 

 

Функция ψ8

называется стрелкой Пирса. Она обозначается x1 x2 и часто читается «ни

x1 , ни

x2 ». Ее значения на соответствующих наборах противоположны значениям дизъюнкции, поэтому ее еще называют антидизъюнкцией или «не или».

16

Функция ψ14 называется

штрих Шеффера. Она обозначается x1 | x2

и часто читается «не x1 или

не x2 » или « x1 и x2 не

совместны». Значения функции x1 | x2 на

соответствующих наборах

противоположны значениям конъюнкции, поэтому ее еще называют антиконъюнкцией или «не и».

В функциях ψ3

и ψ12

переменная x2 фиктивная: ψ3 (x1, x2 )= x1 и ψ12 (x1, x2 )= x1 .

В функциях ψ5

и ψ10

фиктивна переменная x1 : ψ5 (x1, x2 )= x2 и ψ10 (x1, x2 )= x2 .

Таким образом, из 16 логических функций двух переменных шесть функций имеют фиктивные переменные. С ростом n доля функций, имеющих фиктивные переменные, убывает и стремится к нулю.

 

2.2. Суперпозиции и формулы

Пусть даны

функции f : A B и g : B C . Говорят, что функция h : A C получена

подстановкой f

в g , если имеет место равенство h(x) = g (f (x)), где x A .

Пусть задано множество функций типа: f1 : Am1 A,, fn : Amn A . Тогда возможны любые

подстановки этих функций друг в друга, а также любые переименования аргументов. Например, переименование x3 в x2 порождает из функции четырех аргументов f (x1, x2 , x3, x4 ) функцию трех

аргументов g (x1, x2 , x4 )f (x1, x2 , x3, x4 ). Функция, полученная из f1,, fn некоторой подстановкой

их друг в друга и переименованием аргументов, называется суперпозицией f1,, fn . Выражение,

описывающее эту суперпозицию и содержащее функциональные знаки и символы аргументов, называется формулой. Формулы, как правило, состоят из других формул (подформул) и поэтому имеют древовидную структуру. При этом важно такое понятие, как глубина формулы.

Пусть дано множество логических функций Σ ={f1,, fm ,}. Символы переменных x1,, xn ,

есть формулы глубины 0.

 

 

Формула

F

имеет глубину k +1, если она имеет вид fi (F1,, Fni ), где fi Σ, ni число

аргументов

fi ,

а F1,, Fn

подформулы, максимальная из глубин которых равна

k . Функция fi

 

 

i

 

называется внешней или главной операцией формулы F .

Пример 1

1.f (x1, x2 )формула глубины 1.

2.f2 (f1 (x1, x2 ), x3 ) формула глубины 2, содержащая подформулу глубины 1. Если, например,

f1 дизъюнкция, f2 конъюнкция, то данная формула имеет вид (x1 x2 )& x3 .

Всякая формула, выражающая функцию f как суперпозицию других функций, задает способ ее

вычисления. Этот способ определяется следующим очевидным правилом: формулу можно вычислить, только если можно вычислить все ее подформулы.

Для заданного набора значений аргументов можно вычислить значения всех подформул и получить значение функции. Таким образом, формула каждому набору значений аргументов ставит в соответствие значение функции и, следовательно, может наряду с таблицей служить способом задания

и вычисления функции. В частности, по формуле, вычисляя ее на всех 2n наборах, можно восстановить таблицу функции. О формуле, задающей функцию, говорят, что она реализует или

представляет эту функцию. В отличие от табличного представление данной функции формулой не

единственно. Например, функцию

x1 x2 можно

представить

формулами

(x1 x2 )& (x1 x2 ),

(x1 & x2 ) (x1 & x2 ). Формулы,

представляющие

одну и

ту же функцию, называются

эквивалентными или равносильными. Эквивалентность формул обозначается знаком равенства. Например, x1 x2 = =(x1 x2 )& (x1 x2 ). Эквивалентность формул можно установить путем построения таблиц по каждой формуле и последующего их сравнения.

2.3. Двойственность логических функций

Функция f1 (x1,, x2 ) называется двойственной к f2 (x1,, x2 ), если f1 (x1,, x2 )= f2 (x1,, xn ). Беря отрицание над обеими частями равенства и подставляя x1,, xn вместо x1,, x2 , получим

f1 (x1,, x2 )= f2 (x1,, xn )= f2 (x1,, x2 ),

17

т. е. функция f2 (x1,, x2 ) является двойственной к f1 (x1,, x2 ). Таким образом, отношение двойственности логических функций является симметричным. Двойственная функция к f (x1,, x2 )

обозначается f * (x

,, x

). Если функция

f (x

,, x

)совпадает с функцией, которая является

1

2

 

1

2

 

двойственной к ней, то такая функция называется самодвойственной.

Пример 1

1.Двойственные функции: 1* = 0 , (x1 x2 )* = x1 & x2 , (x1 x2 )* = x1 x2 , (x1 | x2 )* = x1 x2 .

2.Самодвойственные функции: x , x , x1x2 x1x3 x2 x3 .

Справедлив следующий принцип двойственности. Если в формуле F , представляющей функцию f , все знаки функций заменить на двойственные им, то полученная формула F* будет представлять

функцию

f * , двойственную к f .

 

 

Пример 2

 

 

Пусть

логическая функция задается формулой f =(x y)(z t ).

Используя

принцип

двойственности, построим формулу, реализующую двойственную функцию

к данной.

Так как

(x y)* = x & y , (x y)* = x y , (x y)* = x y , то получаем f * = (x & y) (x y) = (x | y) (x y) .

3.Булева алгебра логических функций

иэквивалентные преобразования в ней

3.1.Разложение функций по переменным

Обозначим xt следующую функцию x t x t . Тогда легко проверить, что выполняются равенства

 

 

 

 

 

 

x

t

x, t =

0,

 

 

 

x

t

1, x =t,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

 

 

 

 

 

 

=

 

 

t.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x, t =1,

 

 

 

 

 

0, x

 

 

 

 

 

 

Теорема 1

 

 

 

 

f (x1,, xn ) может быть представлена в следующем виде:

 

 

Всякая логическая функция

 

 

f (x

,..., x , x

 

,..., x ) =

 

xt1

...xtm

f (t

,...,t

m

, x

 

,, x

 

),

 

 

 

 

 

 

 

 

 

 

 

1

m m+1

 

n

(t1,...,tm ) 1

m 1

 

m+1

n

(3.1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где дизъюнкция берется по всем 2m наборам значений переменных t

,...,t

m

.

 

 

 

Доказательство

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Равенство (3.1)

проверяется подстановкой в обе части произвольного набора (t1,,tm ,tm+1,,tn ).

Поскольку xt

=1 ,

только когда x =t , то среди

2m

наборов (t

 

,...,t

m

)

только та конъюнкция

xt1

...xtm

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

1

m

равна 1, для которой x

=t ,, x

 

=t

m

. Все остальные конъюнкции xt1

...xtm

равны 0.

 

 

 

 

 

 

1

1

m

 

 

 

 

 

 

 

 

 

 

 

1

 

m

 

 

 

 

Представление логической функции (3.1) называется разложением по переменным x1,..., xm.

 

При m =1 получаем разложение функции по одной переменной

 

 

 

 

 

 

 

 

 

 

f (x1,..., xn ) = x1 f (0, x2 ,..., xn ) x1 f (1, x2 ,..., xn ) .

 

(3.2)

 

 

 

 

 

 

 

 

 

При m = n разложение имеет вид

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xt1

...xtn ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (x ,..., x

) =

(t

 

 

 

 

 

(3.3)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

n

 

f

,...,t

n

)=1 1

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

где

дизъюнкция

берется

 

 

по

 

 

всем

 

 

 

единичным

 

наборам

функ-

ции

f .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Существует другое разложение по переменным, в котором в отличие от (3.1) дизъюнкции меняются на конъюнкции, а конъюнкции на дизъюнкции.

Теорема 2

Всякая логическая функция f (x1,, xn ) может быть представлена в следующем виде:

18

 

 

 

 

 

 

 

 

 

 

 

 

 

t1 ... x

 

 

 

 

,,x )),

 

 

 

 

 

 

 

 

 

 

 

 

 

f (x ,...,x

,x

,...,x ) =

&

 

(x

tm f (t ,...,t

,x

(3.4)

 

 

 

 

 

 

 

 

 

 

 

 

1

m

m+1

 

 

 

 

n

 

(t ,...,t )

1

m

1 m

m+1

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где конъюнкция берется по всем 2m наборам значений переменных t

,...,t

m

.

 

 

 

 

 

 

 

Доказательство

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

проверяется

подстановкой в обе

части равенства

(3.4)

произвольного набора

Равенство

 

(3.4)

 

(t ,, t

m

, t

m+1

,, t

n

). Поскольку

xt = 0 , только когда

x =t , то среди 2m

 

наборов (t

,...,t

m

) только та

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

дизъюнкция

 

x

t1

 

 

... x

tm

x

t1

...

x

tm

равна

0,

для

которой

x

=t ,, x

=t

m

.

Все

остальные

 

 

 

 

 

 

1

 

 

 

 

 

 

m

1

 

 

m

 

 

 

 

 

1

1

 

 

m

 

 

 

 

 

 

t1

... x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

дизъюнкции x

tm равны 1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

При m =1 получаем разложение функции по одной переменной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (x1,..., xn ) = (x1 f (0, x2 ,..., xn )) & (x1 f (1, x2 ,..., xn )) . (3.5)

При m = n разложение имеет вид

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

... x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (x ,..., x

) =

&

(x

t1

tn )

.

 

(3.6)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

n

f (t1,...,tn )=0

1

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В равенствах (3.3) и (3.6) произвольная логическая функция представлена в виде формулы, содержащей знаки функций дизъюнкции, конъюнкции и отрицания.

3.2. Булева алгебра функций

Формулы, содержащие кроме переменных только знаки функций дизъюнкции, конъюнкции и отрицания называются булевыми формулами.

Теорема 3

Всякая логическая функция может быть представлена булевой формулой, т. е. как суперпозиция конъюнкции, дизъюнкции и от-рицания.

Доказательство

Для всякой функции, кроме константы 0, таким представлением может служить ее разложение по все переменным. Константу 0 можно представить формулой xx .

Пусть функция

f1

задана формулой

F1 ,

а функция f2

формулой

F2 .

Подстановка

F1 и F2 в

дизъюнкцию x x

2

дает формулу F

F

. Если взять

F ′ = F

и

F ′ = F , то

F

F

будет

1

1

2

 

1

1

2

2

1

2

 

эквивалентна формуле F1 F2 . При этом обе эти формулы представляют одну и ту же логическую функцию, которую мы обозначим f1 f2. Таким образом, дизъюнкцию можно рассматривать как бинарную операцию на множестве логических функций, которая каждой паре логических функций f1 и f2 независимо от формул, которыми они представлены, однозначно ставит в соответствие функцию

f1 f2.

Аналогично можно рассматривать конъюнкцию и отрицание как операции над логическими функциями.

_

Если рассматривать множество логических функций Р2 и три операции (P2 ; ,&, ) , то алгебра

_

(P2 ; ,&, ) называется булевой алгеброй логических функций.

_

Операции булевой алгебры (P2 ; ,&, ) называют булевыми операциями.

 

 

3.3. Основные свойства булевых операций

1.

Ассоциативность:

 

x1(x2 x3 ) = (x1x2 )x3 ,

(x1 x2 ) x3 = x1 (x2 x3 );

2.

Коммутативность:

 

x1x2 = x2 x1 ,

x1 x2 = x2 x1;

3.

Дистрибутивность:

 

x1 (x2 x3 ) = x1 x2 x1 x3 , x1 (x2 x3 ) =(x1 x2 ) (x1 x3 ) ;

4.

Идемнотентность:

 

 

 

19

x x = x ,

 

x x = x ;

5.

Двойное отрицание:

 

 

x

= x ;

6.

Свойства констант:

 

x & 0 = 0 ;

x &1 = x ,

 

x 1 =1 ,

 

x 0 = x ;

0 =1,

 

 

1 = 0 ;

 

 

 

 

 

7. Законы де Моргана:

 

 

 

 

 

 

 

 

 

 

 

x1 & x2 =

x

1 x2 ,

 

x1 x2

=

x

1 &

x

2 ;

8.

Закон противоречия:

x &

x

= 0 ;

9. Закон «исключенного третьего»: x x =1.

Все эти равенства остаются справедливыми при подстановке вместо переменных любых логических функций и, следовательно, любых формул, представляющих эти функции. При этом необходимо соблюдать следующее правило подстановки формулы вместо переменной: при подстановке формулы F вместо переменной x все вхождения переменной x в исходной равенство должны быть одновременно заменены формулой F.

Это правило подстановки позволяет получить из приведенных соотношений новые эквивалентные соотношения.

Если какая-либо формула F содержит F1 в качестве подформулы, то замена F1 на эквивалентную

формулу даст Fэквивалентную F.

В этом заключается правило замены подформул, которое позволяет, используя эквивалентные соотношения, получать формулы, эквивалентные данной.

Преобразования формул, использующие эквивалентные соотношения и правило замены,

называются эквивалентными преобразованиями.

Эквивалентные преобразования являются мощным средством доказательства эквивалентности формул.

Рассмотрим некоторые основные эквивалентные преобразования в булевой алгебре. Отметим, что в булевой алгебре принято опускать скобки в следующих двух случаях:

а)

при последовательном выполнении нескольких

конъюнкций или дизъюнкций, например,

x1(x2 x3 ) = x1x2 x3 или x1 (x2 x3) = x1 x2 x3 ;

у конъюнкции: например, вместо

б)

если они являются внешними скобками

(x1(x2 x3 )) (x4 x5 ) пишут x1(x2 x3 ) x4 x5.

Оба соглашения совершенно аналогичны общепринятому опусканию скобок для умножения в арифметических формулах.

Рассмотрим некоторые эквивалентности, позволяющие делать упрощения в формулах в процессе эквивалентных преобразований:

а) Поглощение:

x xy = x ;

x(x y) = x .

Доказательство первого

равенства: x xy = x &1 xy = = x(1 y)= x &1 = x . Второе равенство

сводится к первому, если применить дистрибутивный закон в левой части.

б) Склеивание: xy x y = x.

Доказательство: xy x y = x(y y )= x &1 = x .

в) Обобщенное склеивание: xz yz xy = xz yz .

Доказательство:

xz yz xy = xz yz xyz xyz = xz(1 y) yz (1 x) = xz yz .

г) x xy = x y .

Доказательство: x xy = (x x) & (x y) =1& (x y) = x y .

д) x1 f (x1, x2 ,...xn ) = x1 f (0, x2 ,...xn ) .

Равенство д) проверяется подстановкой двух возможных значений переменной x1 : 0 или 1.

4. Нормальные формы

Разложение логической функции f (x1,..., xn ) по всем переменным в виде

f (x

,..., x ) =

 

 

xt1

...xtn ,

(4.1)

1

n

f (t ,...,t

n

)=1 1

n

 

 

 

1

 

 

 

20

называется совершенной дизъюнктивной нормальной формой (СДНФ).

Из того, что для любой логической функции существует разложение по переменным, следует, что любая логическая функция, кроме 0, может быть представлена в виде СДНФ. Из построения СДНФ, видно, что такое представление однозначно.

Для построения СДНФ можно использовать таблицу функции. Так как в представлении (4.1)

участвуют только единичные наборы, и xt = x , только когда t =1, и xt = x , только когда t = 0 , то для каждого единичного набора составляется конъюнкция переменных по следующему правилу: переменная входит в конъюнкцию без отрицания, если в наборе она равна 1, и с отрицанием, если в наборе ее значение равно 0. СДНФ есть дизъюнкция построенных таким образом конъюнкций.

Пример 1

Пусть дана таблица функции трех переменных.

x1

x2

x3

f

0

0

0

1

0

0

1

0

0

1

0

0

0

1

1

1

1

0

0

0

1

0

1

1

1

1

0

0

1

1

1

1

Требуется построить СДНФ этой функции. У этой функции четыре единичных набора: (000), (011), (101), (111). Для каждого из этих наборов

составим соответственно по изложенному выше правилу конъюнкции

переменных: x1x2 x3 , x1x2 x3 , x1x2 x3 , x1x2 x3 . Взяв дизъюнкцию этих конъюнкций, получим СДНФ

fСДНФ = x1x2 x3 x1x2 x3 x1x2 x3 x1x2 x3 .

Разложение логической функции f (x1,..., xn ) по всем переменным в виде

 

 

 

 

 

 

... x

 

 

 

f (x

,..., x ) =

&

(x

t1

 

tn )

(4.2)

1

n

f (t1,...,tn )=0

1

 

n

 

 

 

 

 

 

 

 

 

 

называется совершенной конъюнктивной нормальной формой (СКНФ).

Аналогично, как для СДНФ, справедливо утверждение о том, что любая логическая функция, кроме 1, может быть однозначно представлена в виде СКНФ.

Также для построения СКНФ можно использовать таблицу функции. Так как в представлении (4.2)

участвуют только нулевые наборы, и xt = x , только когда t = 0 , и xt = x , только когда t =1, то для каждого нулевого набора составляется дизъюнкция переменных по следующему правилу: переменная входит в дизъюнкцию без отрицания, если в наборе она равна 0, и с отрицанием, если в наборе ее значение равно 1. СКНФ есть конъюнкция построенных таким образом дизъюнкций.

Пример 2

Для функции, заданной в Примере 1, требуется построить СКНФ. Нулевые наборы: (001), (010),

(100), (110). Составим дизъюнкции переменных: x1 x2 x3 , x1 x2 x3 , x1 x2 x3 , x1 x2 x3 . Конъюнкция этих дизъюнкций есть СКНФ данной функции:

fСКНФ =(x1 x2 x3) & (x1 x2 x3) & (x1 x2 x3) & (x1 x2 x3).

Элементарной конъюнкцией называется конъюнкция переменных или их отрицаний, в которых каждая переменная встречается не более одного раза. Число переменных, входящих в элементарную конъюнкцию, называется рангом элементарной конъюнкции. По определению константа 1 считается элементарной конъюнкцией ранга 0.

Примеры элементарных конъюнкций: x1 , x3 , x3x4 , x1x2 x3 .

Дизъюнктивной нормальной формой (ДНФ) называется формула, имеющая вид дизъюнкции элементарных конъюнкций.

Примеры ДНФ: x1x2 x1x2 x3 , x2 x1x2 x4 .

Конъюнкции, входящие в ДНФ, называются слагаемыми. Число слагаемых в ДНФ называется

длиной ДНФ.

Основные отличия СДНФ от ДНФ:

а) если в СДНФ в каждой конъюнкции присутствуют все переменные функции с отрицанием или без отрицания, то в конъюнкциях, входящих в ДНФ, могут отсутствовать некоторые переменные;

б) для каждой логической функции существует только одна СДНФ, в то время как ДНФ может быть не единственной для одной и той же логической функции.

Пример 3

Следующие две ДНФ эквивалентны: x2 x1x2 x3 = x2 x1x3 . Им соответствует СДНФ

x1x2 x3 x1x2 x3 x1x2 x3 x1x2 x3 x1x2 x3 .

Приведение логической функции к СДНФ можно осуществить двумя способами:

21

1)с помощью таблиц истинности;

2)с помощью эквивалентных преобразований; сначала строят ДНФ, а затем СДНФ.

При использовании эквивалентных преобразований для приведения к ДНФ выполняется следующая последовательность действий:

1)с помощью эквивалентных преобразований все подформулы выражаются в виде суперпозиции дизъюнкции, конъюнкции, отрицания;

2)все отрицания «спускают до переменных» с помощью двойного отрицания x = x и законов де Моргана;

3)раскрывают скобки с использованием закона дистрибутивности: x (y z)= xy xz ;

4) с помощью эквивалентностей x x = x , x x = x ,

xx = 0 ,

 

x x =1 удаляются лишние

конъюнкции и повторения переменных в конъюнкциях;

 

 

 

 

 

5) с помощью эквивалентностей x 0 = 0 , x 1 =1 , x 0 = x ,

 

0

=1,

1

= 0 удаляются константы.

Для перехода от ДНФ к СДНФ используется правило «расщепления»: Kx Kx = K .

Если из формулы F1 с помощью некоторых эквивалентных соотношений можно получить формулу F2 , то F1 можно получить из F2 , использую те же эквивалентные соотношения. То есть всякое

эквивалентное преобразование обратимо. Используя это замечание, можно доказать следующую теорему.

Теорема 4

Для любых двух эквивалентных формул F1 и F2 существует эквивалентное преобразование F1 в

F2 .

Доказательство

Преобразуем F1 и F2 в СДНФ. Поскольку F1 и F2 эквивалентны, то их СДНФ совпадают. Обратив преобразование от СДНФ к F2 , получим эквивалентное преобразование от F1 кF2 :

F1 СДНФ F2 .

Элементарной дизъюнкцией называется дизъюнкция переменных или их отрицаний, в которых каждая переменная встречается не более одного раза.

Примеры элементарных дизъюнкций: x1 , x3 , x3 x4 , x1 x2 x3 .

Конъюктивной нормальной формой (КНФ) называется формула, имеющая вид конъюнкции элементарных дизъюнкций.

Примеры КНФ: (x1 x2 ) & (x1 x2 x3 ) , x2 & (x1 x2 x4 ) . Основные отличия СКНФ от КНФ:

а) если в СКНФ в каждой дизъюнкции присутствуют все переменные функции с отрицанием или без отрицания, то в дизъюнкциях, входящих в КНФ, могут отсутствовать некоторые переменные;

б) для каждой логической функции существует только одна СКНФ, в то время как КНФ может быть не единственной для одной и той же логической функции.

Пример 4

Следующие две КНФ эквивалентны: x2 (x1 x2 x3 )= = x2 (x1 x3 ). Им соответствует СКНФ

(x1 x2 x3 ) (x1 x2 x3 ) (x1 x2 x3 ) (x1 x2 x3 ) (x1 x2 x3 ).Для одной логической функции переход от КНФ к ДНФ можно осуществить с помощью эквивалентных преобразований. Для этого выполняется следующая последовательность действий:

1)с помощью дистрибутивного закона переходят к конъюнкциям: x (y z)= xy xz ;

2)удаляются лишние конъюнкции и повторения переменных в конъюнкциях с помощью

эквивалентностей: A AB = A , A A = A , A A = A ;

3) удаляются лишние константы с помощью эквивалентностей: A 1 = A , A 0 = A . Приведение логической функции к СКНФ можно осуществить двумя способами:

1)с помощью таблиц истинности;

2)с помощью эквивалентных преобразований; сначала строят КНФ, а затем СКНФ.

При использовании эквивалентных преобразований для приведения к КНФ выполняется следующая последовательность действий:

1)

с помощью эквивалентных преобразований все подформулы выражаются в виде суперпозиции

дизъюнкции, конъюнкции, отрицания;

2)

все отрицания с помощью двойного отрицания и законов де Моргана «спускаются до

переменных»;

3)

с помощью закона дистрибутивности x yz =(x y) (x z) переходят к конъюнкции

дизъюнкций;

4) удаляются лишние дизъюнкции и переменные в них с помощью эквивалентностей: A A = A , x x = x , x x =1;

22

5) удаляются лишние константы в элементарных дизъюнкциях: A 0 = A , A 1 =1 , A 1 =1 .

Переход от КНФ к СКНФ осуществляется с использованием эквивалентности A =(A x) (A x ). Рассмотрим последовательность действий для перехода от ДНФ к КНФ:

1) с помощью дистрибутивного

закона x yz =(x y) (x z) переходят к

конъюнкциям

элементарных дизъюнкций;

с помощью законов A A = A , A (A B)= A и лишние

2) удаляются лишние дизъюнкции

переменные в дизъюнкциях x x = x , x x =1;

 

3) удаляются лишние константы в элементарных дизъюнкциях: A 0 = A , A 1 =1 ,

A 1 =1 .

5.Минимизация логических функций

Вданном разделе рассматривается проблема минимизации логических функций как задача нахождения среди всех ДНФ, эквивалентных данной функции, той, которая содержит минимальное вхождение букв.

5.1. Основные определения

Импликантой функции f (x1,, xn ) называется такая элементарная конъюнкция K над множеством {x1,, xn}, что

K f (x1,, xn )= f (x1,, xn ) .

Пример 1

1.Формула поглощения x xy = x , xy импликанта.

2.Рассмотрим функцию трех переменных, заданную в виде таблицы. СДНФ этой функции задается формулой

x1

x2

x3

f

u = x1x2 x3 x1x2 x3 x1x2 x3 x1x2 x3 x1x2 x3.Любая элементарная конъюнкция в

0

0

0

1

формуле u является импликантой. Элементарные конъюнкции x x

 

,

x x

 

, x x

 

 

 

 

 

 

 

1

2

 

1

2

2

3

0

0

1

0

тоже являются импликантами.

 

 

 

 

 

 

 

 

0

1

0

0

 

 

 

 

 

 

 

Импликанта K функции

f называется простой импликантой, если после

0

1

1

0

1

0

0

1

отбрасывания

любой буквы

из K получается

конъюнкция, не

 

являющаяся

 

 

 

 

импликантой.

 

 

 

 

 

 

 

 

 

1

0

1

1

 

x1 (x2 x3 ) x1x2 ,

x1x3 простые

импликанты;

1

1

0

1

Например,

для функции

1

1

1

1

x1x2 x3 импликанта, но не простая.

 

 

 

 

 

 

 

Пример 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Упростим формулу u в примере 1, сделав слияние по переменной x1 в первых двух конъюнкциях и

по

x3

в двух последних. В результате получим u = x2 x3 x1x2 x3 x1x2 = = x2 x3 x1 (x2 x3 x2 ) , так

как

x2 x3 x2 = x2 x3 ,

то u = x2 x3 x1 (x2 x3 )= x2 x3 x1 (

 

)= x1 x2 x3 . Из формулы x1 x2 x3

x2 x3

видно,

что функция f

существенно зависит от переменных x1 , x2 , x3 . Поэтому в конъюнкции x2 x3

нельзя отбросить какую-либо переменную так, чтобы получилась снова импликанта. Таким образом, x1 , x2 x3 простые импликанты.

Дизъюнкция всех простых импликант функции называется сокращенной ДНФ. Справедлива следующая теорема.

Теорема 1

Любая логическая функция представима и при том однозначно в виде сокращенной ДНФ.

Для рассмотренной в примерах 1 и 2 функции сокращенной ДНФ является x1 x2 x3 , так как в любой другой импликанте, соответствующей единичному набору, могут быть удалены переменные.

Дизъюнктивная нормальная форма называется минимальной, если она содержит наименьшее число букв среди всех ДНФ, эквивалентных ей.

Дизъюнктивная нормальная форма называется тупиковой, если отбрасывание любой конъюнкции или буквы приводит к ДНФ, которая не эквивалентна исходной ДНФ.

23

Определенные выше ДНФ сокращенная, тупиковая и минимальная находятся в следующем соотношении. Тупиковая ДНФ получается из сокращенной путем удаления некоторых слагаемых. Минимальная ДНФ находится среди тупиковых.

5.2. Геометрическая интерпретация ДНФ

Множество всех наборов (α1,,αn ) можно рассматривать как множество вершин n-мерного куба. Например, при n =3

(001)

(011)

(101)

(111)

 

(000)

(010)

 

 

(100)

 

(110)

Рис.2.1. Геометрическая интерпретация всех наборов функции трех переменных

 

Пусть

σi

,,σi

принимают фиксированные значения 0 или 1,

i1 <i2 <…<ir n .

Множество

 

 

 

 

1

 

 

r

 

 

 

 

i

,αi

i

 

αi

i , называется (n r )-мерной гранью.

вершин куба

(α1,,αn ) таких, что αi

,,

 

Пример 3

 

 

 

 

 

 

1

1

2

 

2

r

r

 

 

 

 

 

 

 

 

 

 

 

i1 =1 ,

σi

 

 

 

 

 

 

 

 

 

1.

Пусть в трехмерном кубе r =1,

 

=1. Тогда соответствующая грань будет образована

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

вершинами (100), (101), (110), (111). Ее размерность равна 2.

 

 

 

 

 

2.

r = 2 ,

i1 = 2 ,

i2 =3 ,

 

σ2 = 0 ,

σ3 =1 .

Соответствующая грань размерности

1

образована

вершинами (001) и (101).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пусть

 

 

f

(x1,, xn )

 

 

произвольная

логическая

функция.

 

Обозначим

N

f

=

(α ,,α

n

)| f

(α ,,

α

n

)=1 множество единичных наборов. Если в качестве

f

рассмотреть

 

 

{

1

 

 

1

 

}

 

 

 

 

 

 

 

 

 

 

 

элементарную конъюнкцию

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

K (x ,, x

)

= xσ1 xσ2 xσr ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

n

 

i1

i2

ir

 

 

 

то множество NK называется интервалом r-го ранга.

Легко видеть,

что интервал r-го ранга NK

представляет собой

(n r )-мерную грань.

Таким образом,

интервал представляет собой множество

наборов, в которых компоненты, соответствующие переменным элементарной конъюнкции, принимают фиксированные значения, а остальные компоненты равны 0 или 1. Интервалы обозначаются наборами, в которых указываются фиксированные значения переменных, а остальные

компоненты помечаются знаком «».

Пример 4

Конъюнкциям K1 (x1, x2 , x3 )= x2 x3 , K2 (x1, x2 , x3 )= x1 соответствуют интервалы

NK1 ={(000),(100)}, NK2 ={(100),(101),(110),(111)}.

Этим интервалам соответствуют обозначения (00), (1 − −).

Если f (x1,, xn )= g (x1,, xn ) h(x1,, xn ), то:

1)Ng N f , Nh N f ;

2)N f = Ng N f .

24