книги из ГПНТБ / Архаров В.И. Арифметические и логические основы цифровых вычислительных машин учеб. пособие
.pdfдим к минимальным дизъюнктивным формам отрицания заданной функции.
3-й шаг. От минимальных ДНФ отрицания заданной функции с помощью правила де Моргана переходим к КНФ, которые и яв ляются минимальными КНФ заданной функции.
Пример 8. Найти минимальную КНФ функции
F t = \ / ^ при / = 3, 6, 7, 11, 15. |
(6.12) |
В соответствии с первым шагом имеем
К1=--\Д / |
при / = |
3, 6, 7, 11, |
15. |
(6.13) |
Х,Х0 |
x , x D |
Х,Хд |
X, Х„ |
|
0 |
0 |
1 |
0 |
|
* з * г |
|
|
|
|
0 |
0 |
1 |
0 |
|
х з хг |
|
|
|
|
1 |
1 |
1 |
0 |
|
* 3 * 2 |
|
|
|
|
1 |
1 |
0 |
0 |
|
Х з*2 |
|
|
|
|
Рис. 40
Второй шаг —-минимизация формулы (6.13). Проведем миними зацию методом «усовершенствованного алгоритма Куайна». После первого склеивания членов выражения (6.13) и устранения элемен тарных поглощений получаем члены
ksk2, kgkn, kek7, k7ki5, kukig,
после склеивания которых и устранения элементарных поглощений находим два члена:
и k6k7.
Дальнейшее склеивание и поглощение невозможны, поэтому вы ражение
(6.14)
является сокращенной ДНФ функции и имеет вид
F = х4хгх0V х4х3х2х4. |
(6.15) |
В результате выполнения 3-го шага получаем
F1 = F1 = (x4\/x 1\/x о) {x4\J x3\J х2\/ хi). |
(6.16) |
151
Пример 9. Найти минимальную КНФ функции при пом сщи карты Карно (рис. 40).
В данном случае необходимо накрыть совокупность всех нуле вых квадратов карты минимальным количеством правильных пря моугольников (рис. 40).
Из карты видно, что других равноценных накрытий нет. Следо вательно, отрицание функции имеет единственную минимальную
ДНФ
F = Х3ХхV * 1 * 0 V * 3 * 2 * 1 .
а функция — единственную минимальную КНФ
F = (* 8 V X l ) (х 1 V * о ) (* 8 V * 2 V * l ) •
Минимизирующие карты
Минимизирующие карты составляются по правилу, которое можно сформулировать, пользуясь функцией трех переменных
(табл. 6-7).
Т а б л и ц а 6-7
ч |
но |
Д в о и |
ный мер |
0 0 0
001
0 1 0
011
100
101
п о
111
X |
У |
Z |
х + у |
X + Z |
||
X |
У |
г |
х + у |
X + |
Z |
|
X |
У |
г |
х + |
У |
X + |
Z |
X |
У |
Z |
Х + |
У |
X + |
Z |
X |
У |
Z |
х + |
У |
X + |
Z |
X |
У |
Z |
Х + |
У |
х + |
г |
X |
У |
Z |
х + |
у |
X —}- Z |
|
X |
У |
Z |
х + |
у |
X + |
Z |
X |
у |
Z |
х + |
У |
Х + |
Z |
У + |
2 |
|
X + |
У + |
2 |
и |
У + г - |
х + У + г |
/ о |
||||
У + |
г |
х |
+ |
У + |
z |
h |
У + |
г |
х |
+ |
У + |
г |
/ 2 |
У + |
г |
х |
+ |
У + |
2 |
/з |
У + |
г |
x |
+ |
y + |
z |
/4 |
У + |
г |
х |
+ |
У + |
г |
/б |
У + |
г |
x |
+ |
y + |
z |
/в |
У + |
г |
х + |
У + |
г |
fi |
Составляем Таблицу конституентов нуля, причем каждый пе ременной ставим в соответствие разряд двоичного номера строки: нулевому значению цифры разряда соответствует переменная без отрицания, а единице — переменная с отрицанием.
Определяем значения функции Д при kx = 0. Строки таблицы
(карты), содержащие Д = |
1, вычеркиваем, поскольку они соответст |
||
вуют конституентам нуля, |
не входящим в минимальную форму. Ком |
||
бинации переменных, соответствующие Д = |
1, нужно |
вычеркнуть |
|
не только "в г-й строке, но и в любой другой, |
так как |
они будут в |
|
разложении лишними. |
|
|
|
Незачеркнутые комбинации переменных будут встречаться толь |
|||
ко в тех_строках, где Д = |
0. В карте может оказаться несколько |
152
строк, в каждой из которых будет только одна незачеркнутая ком бинация (конституент), содержащая минимальное число перемен
ных. Такие комбинации условимся |
называть с у щ е с т в е н |
н ы м и и будем обводить их в карте |
рамками. Существенные ком |
бинации обязательно должны входить в окончательное выражение. В некоторых строках, где /) — 0, могут оказаться комбинации переменных, которые не зачеркнуты и не обведены рамкой. Такие комбинации назовем с в о б о д н ы м и . Одна из свободных ком бинаций, содержащая наименьшее число переменных, должна, войти в окончательное выражение функции. Все сводные комбина ции обводим общей рамкой, внутри которой могут оказаться и за
черкнутые, последние принимать во внимание не будем. |
p l>t |
|||||||||
Составляем |
минимальную форму |
функции f (х, |
у, z) |
|||||||
р 2, ■■• рп, |
где |
рп — обведенные |
рамкой различные |
комбинации |
||||||
переменных (конституенты). |
|
|
|
|
|
|||||
Пример 10. |
Пусть задана функция |
|
|
|
|
|||||
|
|
|
f (х, |
у, |
z) = xyz-\- xyz-f-xyz, |
|
|
|||
которая принимает значения f0 — /3 — f5 = |
1, а / х — f 2 = U — |
|||||||||
= /в -= U = |
0. Найдем минимальную КНФ функции при помощи |
|||||||||
минимизирующей карты (см. табл. 6-8). |
|
|
|
|||||||
|
|
|
|
|
|
|
|
Т а б л и ц а |
6-8 |
|
Двоичный. |
|
|
|
|
х + у |
|
y + z |
х + у + z |
|
|
номер |
|
|
|
|
|
|
|
|||
xyz |
|
|
|
|
|
|
|
|
|
|
Д М - |
|
|
- у — |
|
-х±у— x+z |
|
X +y+-Z- |
-f<r+- |
|
|
00/ |
|
|
-Г |
лг |
Л^'У' |
et+Z' |
|
\ x + y + ZI |
f , 0 |
|
0/0 |
|
|
Дг |
|
Л+f- |
ЛНгХГ [y+z |
z + y + z |
fz 0 |
|
|
-Ш4— |
|
|
|
|
|
X+Z— -y+-z— |
|
|
|
|
100 |
|
|
¥ |
-г |
|
|
|
x + y + z |
f, 0 |
|
дав |
|
|
|
|
- х + у - |
-x+z -у+1 |
X+y+Z— |
&■ |
|
|
но |
J r |
-г |
■ъ- |
х + у |
X + Z |
y + z |
z+y+z |
r,0 |
|
|
/н |
ДОг |
-г |
Дгг |
х + у |
JZ+ZT Jf+TT |
x + y + z |
f7 0 |
|
Согласно карте |
и сформулированному правилу пользования ею |
f(x, у |
, z) = (x + y)(x + z) (y + z) ( x + y + z ) . |
11 З а к а з N° 2437 |
153 |
Во второй строке свободная комбинация х -В у + z обведена рамкой.
Комбинации в колонке х + у -f z, не отмеченные рамкой, яв ляются неопределенными, и их в расчет можно не принимать, так как в этих строках уже использовались конституенты, обращающие Д в нуль. Одинаковые комбинации переменных, обведенные рамкой, достаточно записать один раз.
Рассмотренные минимизирующие карты соответствуют разло жению функции на конституенты нуля. Пользуясь теми же прави лами, можно составить минимизирующую карту разложения функ
ции на конституенты 1. |
Согласно (5.27) |
|
|
, 2«—1_ |
|
f (-^1» |
» ** * » %п) ~ V |
• |
Вминимизирующей карте разложения функции на конституенты
1вычеркиваются строчки, соответствующие значениям Д = 0, по скольку для этих строк произведения соответствующих конституентов на Д будут равны нулю. Остальные правила пользования кар той остаются теми же.
Покажем правила пользования картой на примере. Пусть за дана функция
f(x, у , z) = xyz-\-xyz-{-xyz-\-xyz.
Определим значения функции Д и составим минимизирующую карту (табл. 6-9):
Т а б л и ц а 6-9
Двоичный |
Конституенты |
xyz + xyz + xyz + хуг |
и |
|
|||||
номер |
разлож ен ия |
|
|||||||
000 |
х у г |
000 + |
0 1 0 + |
1 1 0 + |
1 1 1 |
/о = |
1 |
||
001 |
х у г |
0 0 1 + 0 1 1 + 1 1 1 + п о |
/1 = 1 |
||||||
0 1 0 |
х у г |
0 1 0 |
+ |
000 + |
1 00 + |
1 01 |
/2 = |
0 |
|
0 1 1 |
х у г |
0 1 1 + 0 0 1 + 1 0 1 + 100 |
/з = 0 |
||||||
1 00 |
х у г |
1 0 0 + 1 1 0 + 0 1 0 + 0 1 1 |
/4 = 0 |
||||||
1 0 1 |
х у г |
1 0 1 + 1 1 1 + 0 1 1 + 0 1 0 |
/5 = 1 |
||||||
п о |
х у г |
1 1 0 + |
100 + |
000 + |
001 |
/ . = |
0 |
||
111 |
х у г |
111 + |
101 + 0 0 1 |
+ 0 0 0 |
/7 = |
1 |
|||
Таким |
образом, /0 = /т = |
h |
= |
/7 = |
1. |
/ 2 |
= /3 = |
ft = |
/в = О |
(см. таблицу 6-10).
154
|
|
|
|
|
|
|
|
|
Т а б л и ц а 6 - 1 0 |
|
п |
X |
|
У |
|
Z |
Щ |
Х7. |
yz |
xyz |
|
|
X |
|
X |
|
X |
т |
|
ч |
ж |
xyz |
|
X |
|
ж |
|
X |
т |
|
ч |
yz |
xyz |
|
— |
— |
f--------- 1 |
L, |
|
|
|
•, ~ |
-1 |
|
|
л |
|
|
|
|
|||||
*S-**----- |
|
------ У |
1 |
|
--J;if------- |
|
~р~ |
|
||
|
X |
— |
“ |
|
|
|
|
|||
|
£ |
|
|
|
у£-------- |
|||||
Ъ-о |
X |
|
|
|
X |
ч |
|
|
[Ж! |
xyz |
'б ' |
|
|
У-------- |
|
ч |
|
УН, |
xyz |
||
f?~o |
X |
|
X |
|
X |
[Ж] |
н |
|||
Н а о с н о в а н и и |
м и н и м и з и р у ю щ е й |
к а р т ы |
и п р а в и л |
п о л ь з о в а н и я |
||||||
е ю м о ж н о |
з а п и с а т ь |
/ |
( х , |
у, |
г) — |
ху - f |
xz. |
|
|
|
Вопросы и задачи для самопроверки
1.Возможно ли применение алгоритма Куайна к переключательной функции» заданной в ДНФ?
2.Какие трудности возникают при работе с диаграммами Вейча в случае большого числа переменных?
3.Что такое импликанта переключательной функции?
4.В чем состоит усовершенствование алгоритма Куайна, предложенное МакКласки?
5.Опишите процесс заполнения импликантной таблицы.
6. Является ли представление функции с СДНФ единственным?
7.В чем состоит трудность построения МДНФ функций большого числа пе ременных?
8. Каким образом заполняется диаграмма Вейча при задании исходной функ
ции в ДНФ?
11*
Глава седьмая
ИСЧИСЛЕНИЕ П Р ЕД И КАТО В
§ 1. ОСНОВНЫЕ понятия л о г и к и ПРЕДИКАТОВ
При рассмотрении булевых функций мы имели дело с однород ными логическими функциями. Помимо логических функций по добного типа рассматриваются также и такие, в которых сама функ ция, как и раньше, принимает значение «1» или «О», а независимые переменные принимают значения из множества самого общего вида. Такие логические функции называют предикатами.
Для обозначения таких функций обычно применяют латинские буквы, что позволяет по форме записи отличать предикат (неодно родную логическую функцию) от сложного высказывания (одно родной логической функции), n-местный предикат можно записать в следующем виде:
y = P( xlt |
. . . , хп), |
где х х = {х11г . . . , х 1р), . . . , |
хп = {хп1, . . . , xng} — предмет |
ные переменные и их алфавиты. |
|
Подобный предикат представляет собой переменное высказыва ние, истинность или ложность которого определяется набором зна чений предметных переменных х х, х 2, хп. Если предикат р не яв ляется тождественно истинным или тождественно ложным, то на одних наборах значений предметных переменных он принимает значение «истина», а на других значение «ложно».
О п р е д е л е н и е , п-местным предикатом, определенным на множествах
М г, М 2, . . . , М п,
называется выражение, содержащее предметные переменные данных множеств и обращающееся в высказывание при замене последних лю быми элементами множеств М х, М 2, . . . , М п соответственно. Множества М х, М 2, . . . , М п называются базисными множествами предиката, их элементы — аргументами предиката соответст венно первыми, вторыми, . . . , п-ми. п-местный предикат [п>- 2], все базисные множества которого совпадают, называется однород
ным. п-местные предикаты, |
определенные на |
множествах |
М ъ |
||
М 2, . . . М п, содержащие предметные переменные х г, х 2, . . . |
, хп, |
||||
обозначаются А (хх, х 2, . . , х„), |
В {хх, х 2, |
. . , хп), |
С (хх, х 2 . . х) . . |
||
Если значение предиката |
А |
(хх, х 2, . |
. . , хп) для аргументов |
156
(х1; х 2, , хп) есть «истина», то говорят, что аргументы Ху, х 2, . . .
хп удовлетворяют данному предикату, в противном случае говорят, что аргументы не удовлетворяют данному предикату.
Два «-местных предиката, определенные на одних и тех же мно жествах Му, М 2, . . . , М п, называются равносильными, если зна чения их для любых аргументов совпадают, иначе говоря, если они удовлетворяются одними и теми же аргументами. Например, если х переменное, принимающее значение в множестве действительных чисел, то одноместные предикаты х > 2 и х — 2>-0 равносильны.
Так как предикаты представляют собой переменные высказыва ния, с ними можно производить все операции, применявшиеся при построении исчисления высказываний. Это открывает большие воз можности при построении сложных логических функций.
Пример 1. Пусть мы имеем предикаты
(7.1)
Из этих предикатов, за счет применения какой-нибудь операции
исчисления высказываний, можно получить новый предикат |
|
R (х,, x2) = P(xy)\JQ(xz). |
(7.2) |
Используя предикат |
(7.1) |
и логические переменные, можно по |
|
строить сложную функцию, например |
|
||
y = \ Q { x |
2) ^ [ P |
(ху)\/(х3[\ху)])=х3. |
(7.3) |
Наличие предметных переменных в предикате позволяет ввести ряд новых операций, специфических для исчисления предикатов. Построение указанных операций осуществляется с помощью так называемых кванторов. Применяются кванторы двух видов: кван тор общности и квантор существования.
Квантор общности — это оператор, приводящий в соответствие любому заданному одноместному предикату у = Р (х) такую дву значную логическую переменную г, которая принимает значение
«1» тогда и только тогда, когда у — 1 при всех значениях х |
= (хи , |
ху2, ■. ■Хур). Символически это записывается формулой г = |
у хР (х) |
в которой ух является символом квантора общности. Запись эта читается так: при любом х имеет место Р (х). Здесь х указывает ту переменную, на которую действует квантор у .
Квантор существования — это оператор, приводящий в соот ветствие любому одноместному предикату у — Р (х) такую двузнач ную логическую переменную г, которая принимает значение «О»
тогда и только |
тогда, когда у = 0 при всех значениях х ^ (х1Х, |
|||
х 12, |
. . . , |
х 1р). |
Символически это записывается формулой г = |
|
g хр (х), |
в которой дх является символом квантора существова |
|||
ния. |
Запись эта читается так: |
существует такое х, что имеет место |
||
у = |
Р (х), |
т. е. |
для данного |
х предикат Р является истинным. |
157
Здесь подразумевается, что объекты, о которых идет речь, принадлежат той или иной фиксированной предметной области М.
Если область М состоит из конечного числа объектов хх, х2, . |
. . , |
хп, выражение дхР (х) сводится к дизъюнкции Р (хх) V Р (х д> |
■■■ |
Р (хп), а выражение ухР (х) — конъюнкции |
|
Р (х 1)Д Р (х 2), Д . . . , / \ Р ( х п). |
(7.4) |
Это обстоятельство позволяет считать кванторы общности и сущест вования обобщенной конъюнкцией и обобщенной дизъюнкцией.
Использование операций исчисления высказываний и операций
связывания предметных переменных кванторами у |
и g дает воз |
|
можность получить систему тождеств: |
|
|
3 хР (х) = ухР (х) |
| |
п ^ |
ухР (х) = 3 хР (х) |
} |
|
Кванторы у и з можно применять к многоместным предикатам. Однократное применение квантора к одной из п переменных «-мест ного предиката порождает (п— 1) местный предикат. Это позволяет рассмотреть операции кванторов у , g над многоместными преди катами. В этом случае с помощью кванторов для каждого предиката можно построить новые предикаты с меньшим числом свободных переменных.
§ 2. ТОЖДЕСТВЕННЫЕ ПРЕОБРАЗОВАНИЯ В ИСЧИСЛЕНИИ ПРЕДИКАТОВ
Большое значение имеет тот факт, что над формулами исчисления предикатов можно осуществлять тождественные преобразования в соответствии с простыми и обозримыми правилами; в этом заклю чается оперативная функция, выполняемая исчислением.
Пусть формулы их |
[F, |
G, . . . , Н, х х...........хт1 и и, \F, G, . . . , |
|
Н , х х, . . . , х т] задают один и тот же оператор, |
перерабатывающий |
||
систему предикатов F, |
G, |
. . . , Н в предикат от |
аргументов хх, . . . |
х т\ в таком случае будем говорить, что их и и2 эквивалентны и обо значать это так: их экв и 2.
Пример 2. Следующие формулы попарно эквивалентны: |
|
||
(yz) Н (z)/\G(xx, |
х2)/\(3 у) F (х, |
у), |
|
{yz) Н (z)/\[G (хх, |
х2) V (Зу) F (х, |
у)}, |
|
1(г) Н (г) Д G (хх, х 2)] V [(Vz) н (z) А (ЗУ) F (*- У)\- |
С7-6) |
Это легко усматривается из эквивалентности формул алгебры логики:
A i f \ A 2f \ A z, А Х/\( А2У А 3), И 1Д Л 2)У(Т11Л^з)-
Переход от одной формулы исчисления предикатов к эквива лентной ей формуле мы будем называть тождественным преобразо ванием.
158
Преобразования, которые вытекают из свойств операций ал гебры логики и не затрагивают свойств кванторов, применимы и к формулам исчисления предикатов. Особого рассмотрения требуют те преобразования, которые основаны на специфических свойствах кванторов. Из самого смысла кванторов общности и существования вытекают следующие эквивалентности.
1. Эквивалентности с отрицанием:
дхА (х) экв у х А (х),
у А (х) экв дхА (х),
на основании которых можно заменять у квантором 3 и наоборот. Эти эквивалентности являются аналогами:
A \\J А% экв. ЛХД Л 2,
ЛХД Л 2 экв. л х\ / л 2.
Применяя 1-ю эквивалентность к 3 yF (х, у), получим
(ух) Н (2 ) Д (G (xlt х2) V yyF (х, у)).
2. |
Эквивалентности для операций — Д : |
|
||||
|
у х ( А х {х)[\ А 2(х)) |
экв ухА х (х) Д ухА 2 (х) , |
|
|||
|
у х у у А (х, |
у) экв |
у у у х А |
(х, у). |
|
|
3. |
Эквивалентности для |
операций — V : |
|
|||
|
З х ( А 1{х)\/А 2 (х)) |
экв ^ xA 1 {x) \ J 2 хА 2 (х),\ |
||||
|
3 х (Еу) А (х, у) |
экв дудхА( х , у). |
| |
|||
Эквивалентности |
(7.7) |
и |
(7.8) |
распространяются на любое |
число конъюнкций (дизъюнкций), а также они указывают на опре деленную перестановочность однотипных операций, т. е. на пере становочность у с Д . Пример формул, которые не являются экви валентными:
у х \А х (х) V Л 2 (х)], |
ухА х (х) V ухА 2 (х), |
|
ЗхА х (х) Д ЭхА 2 (*), |
з х (А х (*) Д Л |
2 (х)), |
Ух ЗуА (х, у), |
з у у х А (х, у). |
|
Отсюда, если Л , (х) есть предикат «х есть четное число», а Л 2 (а:) есть предикат «х есть нечетное число», то первая из формул истинна,
вто время как вторая ложна.
Впрактике иногда требуется вынести константу из под знака квантора и наоборот.
Рассмотрим более подробно данную операцию. Пусть имеем формулу
ух {F(x)\JX(t) ^ G(x)/\x(t)}.
159
Необходимо вынести из под знака квантора относительную кон станту х {t). Для этого мы сначала приводим подкванторное выра жение к конъюнктивной нормальной форме с тем, чтобы можно было воспользоваться эквивалентностями (7.7, 7.8). После замены им пликации дизъюнкцией и отрицанием и применения теоремы де Моргана мы имеем:
yxlF (x)/\x(t)]\J[G(x)/\X (0],
ут 1( Щ V G (т)] Л [T(F) V X (01 Д ;
тогда
Л Й о у с ( т ) ] Л и Г ) у х ( / ) ] ) .
Здесь конъюнктивный член X (/) V X (t) равен 1 и поэтому может быть вычеркнут. Применение (7.7) дает:
ут [F (т) V G (т)] Д ух l(F (т) V X (/)] Д ух [X (/) V G (т)].
Применяя (7.7) к каждому из последних двух конъюнктивных членов, имеем:
ух [F (т) V G (т)] Д [ут? (т) V* (01Л \х (0 V VxG (т)].
Аналогичным образом выносятся константы из области опреде ления квантора у , для этого подкванторное выражение представ ляют в виде дизъюнкции конъюнкций.
§ 3. ПРЕДИКАТЫ С ОГРАНИЧЕННЫМИ КВАНТОРАМИ
Наряду с обычными кванторами по предметам у и g пользуются и так называемыми ограниченными кванторами.
Рассмотрим следующие формулы: |
|
|
|
||
1. дтХ (т) с ограниченным |
сверху |
т< Д |
квантором |
существо |
|
вания соответствует словесному |
выражению «существует такое т, |
||||
меньшее /, |
для которого справедливо X (т)»; |
|
|
||
2. утХ |
(т) с ограниченным |
сверху |
т< Д |
квантором |
общности |
соответствует выражению «для всякого х, которое меньше t, спра ведливо х (т)».
Ограниченные кванторы выражаются обычными формулами исчисления предикатов с участием специального предиката «%<Ду». Подобные формулы имеют вид:
З т [ т < / Д Х ( т ) ] , у т [ т < / -> Х(т)].
При правилах вывода ограниченные кванторы могут обозна
чаться: |
|
ут; |
ут |
т < Н |
Q < t <X |
— двусторонний квантор. |
|
160