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

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

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

 

В частности, если

 

f

имеет ДНФ

U = K1 Kl , то NKi N f ,

(i =1,,l ). Таким образом, весь

интервал

NK

i

 

располагается внутри множества

N f

и

N f = NK NK

2

NK

l

, т. е. интервалы,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N f .

1

 

 

 

 

 

соответствующие ДНФ,

покрывают

множество

Верно и обратное утверждение: всякому

покрытию множества N f

интервалами, расположенными внутри множества N f , соответствует ДНФ

функции

f .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример 5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рассмотрим две ДНФ таблично заданной функции в примере 1

 

 

 

 

 

 

 

x1x2 x3 x1x2 x3 x1x2 x3 x1x2 x3 x1x2 x3 и

x1 x2 x3 .

Этим двум ДНФ соответствуют два покрытия:

N f

 

 

= = NK

 

NK

2

NK

3

NK

4

NK

5

 

и N f

= NK

NK, где

NK ={(000)}, NK

2

={(100)},

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

1

2

 

 

1

 

 

 

NK

3

={(101)},

 

NK

4

={(110)}

,

 

NK

5

={(111)},

 

NK={(100), (101), (110), (111)},

NK=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

2

=

{(

000

, 100

)}

. Первое покрытие состоит из пяти интервалов ранга 3, второе из интервала ранга 1 и

 

 

 

) (

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

интервала ранга 2.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

l

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

обозначим ri

 

 

 

 

 

Для некоторого покрытия множества интервалами

N f = NKi

 

ранг интервала

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i=1

 

 

 

 

 

 

 

l

NKi (i =1,,l) и, по определению, он равен рангу конъюнкции. Число r = ri назовем рангом

i=1

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

для

данного

множества

N f

такое

покрытие

интервалами,

принадлежащи-

ми N f , чтобы его ранг был минимальным.

Интервал NK , содержащийся в N f , называется максимальным, если не существует интервала

NKтакого, что:

1)NK NKN f ;

2)ранг интервала NKменьше ранга интервала NK .

Таким образом, простой импликанте функции f соответствует максимальный интервал. Сокращенной ДНФ соответствует покрытие множества N f из максимальных интервалов.

5.3.Методы построения сокращенной и тупиковых ДНФ

5.3.1.Алгоритм Квайна

Алгоритм Квайна строит сокращенную ДНФ по СДНФ. На первом этапе к СДНФ применяется операция неполного склеивания: xK xK = K xK xK . После того, как операция применена к каждой паре конъюнкций из СДНФ, к которой она применима, с помощью операции поглощения K xK = K удаляются те конъюнкции ранга n, которые можно удалить таким образом. В результате

получается

некоторая ДНФ

D1 . Если проведено k 1

этапов, то на (k +1)-м этапе операции

неполного

склеивания и

поглощения применяются

к конъюнкциям ранга n k для

ДНФ Dk . В результате получится ДНФ Dk+1 . Алгоритм Квайна заканчивает работу, если Dk+1 = Dk .

Пример 6

Применим алгоритм Квайна к СДНФ функции из примера 1.

u= x1x2 x3 x1x2 x3 x1x2 x3 x1x2 x3 x1x2 x3 =

=x2x3 x1x2x3 x1x2x3 x1x2 x1x2x3 x1x2x3 x1x2 x1x2x3 x1x2x3. D1 = x2 x3 x1x2 x1x2 = x2 x3 x1 x1x2 x1x2 = x2 x3 x1.

D2 = x2 x3 x1.

5.3.2. Карта Карно

25

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

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

Пример 7

Рассмотрим карту Карно для функции f (x1, x2 , x3, x4 ) со значениями (1110 0101 0100 1101)

х3х4 00

01

11

10

х1х2

 

 

 

 

00

1

1

 

1

01

 

1

1

 

11

1

1

1

 

10

 

1

 

 

Рис. 2.2. Пример построения карты Карно

Максимальными являются интервалы:

(00 0) , (000) , (−−01) , (1 1) , (110) .

Сокращенная ДНФ имеет вид

x1x2 x4 x1x2 x3 x3x4 x2 x4 x1x2 x3 .

5.3.3. Таблица Квайна для построения тупиковых ДНФ

Строки этой таблицы соответствуют простым импликантам функции f , а столбцы наборам из множества N f . На пересечении строки, соответствующей импликанте I и столбца,

соответствующего набору α , стоит 1, если I (α)=1 и 0, если I (α)= 0 . Минимальное покрытие

столбцов таблицы строками так, чтобы в него попали все единицы, соответствует тупиковой ДНФ. Минимальной ДНФ соответствует покрытие, обладающее минимальной суммой рангов конъюнкций, соответствующих строкам, вошедшим в покрытие. Для построения всех тупиковых ДНФ функции f

составим КНФ K ( f ) по следующему правилу: поставим в соответствие столбцу α элементарную

дизъюнкцию Dα = K1 K2 Ks ,

 

где Ki i =(1,, s) все такие простые импликанты f , что

K

i

(α)=1 . Положим

K ( f )= & D

 

. Раскрывая

скобки с помощью закона дистрибутивности и

 

 

α

α

 

 

применяя эквивалентности A A = A и A A B = A , получим из КНФ K ( f ) ДНФ M ( f ), слагаемые

которой соответствуют тупиковым ДНФ функции

f .

 

 

Пример 8

 

 

 

 

 

26

Рассмотрим

f

=(x1 x2 x3 ) (x1 x2 x3 ).

Сокращенная

ДНФ

функции

f :

x1x2 x1x3 x1x2 x2 x3 x1x3 x2 x3 . Составим таблицу Квайна.

 

 

 

Простые

 

 

 

 

Единичный набор

 

 

 

 

 

 

 

импликанты

 

(001)

 

(010)

 

(100)

(011)

(101)

 

(110)

 

 

 

 

K1 = x1x2

 

0

 

0

 

1

0

1

 

0

 

 

 

 

K2 = x1x3

 

0

 

0

 

1

0

0

 

1

 

 

 

 

K3 = x1x2

 

0

 

1

 

0

1

0

 

0

 

 

 

 

K4 = x2 x3

 

0

 

1

 

0

0

0

 

1

 

 

 

 

K5 = x1x3

 

1

 

0

 

0

1

0

 

0

 

 

 

 

K6 = x2 x3

 

1

 

0

 

0

0

1

 

0

 

 

 

 

Тогда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

K(f )=(K5 K6 ) (K3 K4 ) (K1 K2 ) (K3 K5 ) (K1 K5 ) (K2 K4 )и

 

 

 

 

 

 

 

 

M(f )= K1K4K5 K2K3K6 K1K2K3K5 K1K3K4K6 K2K4K5K6.

Функция

f

имеет пять тупиковых

ДНФ. Из них две ДНФ x1x2 x2 x3 x1x3 и x1x3 x1x3 x2 x3 ,

соответствующие слагаемым K1K4K5 и

K2K3K6 , являются минимальными.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6. Полнота системы логических функций

 

 

 

 

 

 

 

Любая

логическая

функция

может быть выражена в виде формулы

через

функции

системы

{&, , }. Существуют ли другие системы функций, обладающие таким свойством?

 

 

 

Система

логических функций {f1,,

fs ,} называется

функционально

полной,

если любая

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

 

 

Теорема 1

 

 

 

 

 

U ={f1, f2 ,},

 

 

 

{g1, g2 ,}. Пусть система U полна и

Пусть даны две системы функций из P2

B =

каждая

ее

функция

может

быть

выражена

в

виде

формулы

 

через

функции

систе-

мы B . Тогда система B является полной.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Опираясь на эту теорему, можно установить полноту следующих систем:

 

 

 

 

 

1. Система

{&, }

является

полной.

Для

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

возьмем

 

U ={&, ,} и B ={&, }.

Функция

 

x1 x2 выражается

через

функции

системы

 

B

с

помощью

закона

де

Моргана

x1 x2 =

x1 & x2

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Аналогично можно показать, что система { , }является полной.

 

 

 

 

 

 

 

3. Система {}| является полной, так как x1 = x1 | x1 и x1 x2 =

 

= (x1 | x2 ) | (x1 | x2 ) .

 

 

x1 | x2

 

 

4. Система {0,1,&, } является полной, так как x = x 1 и x1x2 = x1 & x2 .

 

 

 

 

 

Формула, построенная из констант 0,1 и функций

x1x2

и

x1 x2 ,

 

после раскрытия скобок и

несложных

 

преобразований

переходит

в

полином

по

mod 2 ,

 

т. е. выражение вида

P = ai i

xi

xi , где сложение производится по mod 2 , т. е. ;

ai i

принимают значения 0 или

1

s

1

s

 

 

 

 

 

 

 

 

 

 

 

1

s

 

 

 

 

 

 

1s

1.Формулы такого вида называются полиномами Жегалкина.

Теорема 2

Любая логическая функция может быть выражена полиномом Жегалкина и при том однозначно.i i

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

То, что любая логическая функция может быть выражена полиномом Жегалкина, следует из полноты системы {0,1,&, }. Докажем однозначность. Число элементарных конъюнкций xi1 xis над

множеством {x1,, xn} равно числу подмножеств из n чисел {1,, n}, т. е. 2n . Так как ai1is

принимают значения 0 или 1, то общее число полиномов равно 22n , т.е. числу всех логических функций n переменных x1,, xn . Отсюда получаем единственность представления логических функций полиномами Жегалкина.

27

Пусть M − некоторое подмножество функций из P2 . Замыканием M называется множество всех логических функций, представляемых в виде формул через функции множества M . Замыкание множества M обозначается [M].

Пример 1

 

1.

Пусть M = P2 . Очевидно [M]= P2 .

 

2.

M = {1, x1 x2}. Замыканием этого множества будет класс

L всех линейных функций вида

f (x1,, xn )= = c0 c1x1 cn xn , где ci {0,1}, i = 0,, n .

 

Свойства замыкания:

 

1) [M] M ;

 

2) [[M]]=[M];

 

3) если M1 M2 , то [M1] [M2 ] ;

 

4) [M1 M2 ] [M2 ] [M2 ] .

 

Класс (множество) M называется замкнутым, если [M]= M .

С помощью понятия замыкания

можно сформулировать другое определение полноты. Система M полна, если [M]= P2 . Приведем

важнейшие замкнутые классы в алгебре логики.

 

1.

T0 класс всех логических функций, сохраняющих константу 0 ., т. е. f (0,,0) = 0 . К таким

функциям относятся, например, функции 0, x , x1 & x2 , x1 x2 , x1 x2 . Функции 1, x не принадлежат

кклассу T0 .

2.T1 класс всех логических функций, сохраняющих константу 1, т. е. f (1,,1) =1. К таким

функциям относятся, например, функции 1, x , x1 & x2 , x1 x2 . Функции 0, x не принадлежат к классу

T1.

3.

S

класс

самодвойственных

функций,

т. е. функций

f P

таких,

что

f * = f .

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

 

2

 

 

 

 

 

 

 

 

4.

M класс монотонных функций.

 

 

 

 

 

 

 

 

Для двух

наборов α =(α1,,αn )

и

β =(β1,,βn ) выполнено

отношение

α ≤β,

если

αi ≤βi

(i =1,, n). Это отношение есть частичный порядок на множестве наборов длины n.

 

 

Функция

f (x1,, xn ) называется монотонной,

если для любых

α , β таких, что

α ≤β, имеет

место неравенство

f (α)f (β).

 

 

 

 

 

 

 

 

Примеры монотонных функций: 0, 1, x1 & x2 , x1 x2 .

Функция,

имеющая

вид

5.

L

класс

всех

линейных

функций.

f (x1,, xn )= c0 c1x1 cn xn , где

ci {0,1}

( i = 0,, n ), называется линейной.

Линейными

являются функции 0,1, x , x ,

x1 x2 . Функции x1 & x2 , x1 x2 линейными не являются.

 

 

Пусть

A ={f1,,

fs ,}

 

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

 

система

функций

из P2 . Ответ на вопрос о полноте этой системы дает следующая теорема.

Теорема 3 (о функциональной полноте)

Для того чтобы система функций A была полной, необходимо и достаточно, чтобы она целиком не

содержалась ни в одном из пяти замкнутых классов T0 , T1, S ,

M ,

L .

 

 

Следствие 1. Всякий замкнутый класс

M функций из

P2

такой, что M ≠ P2 ,

содержится по

крайней мере в одном из классов T0 , T1, S ,

M , L .

 

 

 

 

Класс N функций из P2 называется предполным, если N неполный, а для любой функции

f P2

и f N класс {f } N полный.

 

 

 

 

 

Следствие 2. В алгебре логики существуют только пять предполных классов T0 , T1,

S , M ,

L .

28