Алгебра логики
.pdf
|
В частности, если |
|
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 NK′ N 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 . Так как ai1…is
принимают значения 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