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

Теория автоматов. Учебное пособие

.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
максимального ранга, на которой значение логической функции рав-
1х2x3
— элементарная
4321
xxxx
и
4321
xxxx
явля-
4321
xxxx
явля-
2(x1
, х2, х3) = x1х2x3 — элементарная
4321
xxxx
и
4321
xxxx
явля-
1
.
,
43243214321
xxxxxxxxxxx
22121
xxxxx
2(x1
, х2, х3) = x1х2x3 — элементарная
4321
xxxx
и
4321
xxxx
явля-
1
.
43243214321
22121
xxxxx
4321
xxxx
и
4321
xxxx
явля-
1
.
,
43243214321
xxxxxxxxxxx
22121
xxxxx
43243214321
4321
xxxx
и
4321
xxxx
явля-
1
.
,
43243214321
xxxxxxxxxxx
22121
xxxxx
;))((
43243214321
xxxxxxxxxxx
24242
( xxxxx
но 1. Логическая сумма всех минтермов равна 1.
Конституента нуля (макстерм) — логическая функция от n ар­гументов, которая принимает значение, равное нулю, только на одном наборе аргументов. На остальных наборах функция равна единице. Макстерм можно также определить как элементарную дизъюнкцию максимального ранга, на которой значение логической функции равно 0. Логическое произведение всех макстермов равно 0.
ментарные конъюнкции/дизъюнкции одного и того же ранга, если они являются функциями одних и тех же переменных и отличаются только знаком отрицания (инверсии) одной из переменных. Например, конъ-
юнкции ции одних и тех же переменных и отличаются знаком инверсии только одной переменной х
правила преобразования логических выражений.
логическую сумму двух соседних элементарных конъюнкции некото­рого ранга r можно заменить одной элементарной конъюнкцией ранга r-1, являющейся общей частью исходных слагаемых. Это правило яв-
ляется следствием распределительного закона. Например,
логическое произведение двух соседних элементарных дизъюнкций ранга r можно заменять одной элементарной дизъюнкцией ранга r-1, являющейся общей частью исходных дизъюнкций. Это правило являет­ся следствием распределительного закона и применяется для упроще­ния логических выражений. Например:
Соседние элементарные конъюнкции/дизъюнкции — две эле-
На основе законов алгебры логики могут быть сформулированы
Правило склеивания для соседних элементарных конъюнкций:
Правило склеивания для соседних элементарных дизъюнкций:

и
.
1
,
xxxxxxx
являются соседними, так как они — функ-
.
;))((
xxxxxxxxxxx
))(
.
Правило поглощения для элементарных конъюнкций: дизъюнк­цию двух элементарных конъюнкций разных рангов, из которых одна является собственной частью другой, можно заменить конъюнкцией,
-71-

21214321
,
21214321
xxxxxxxx
21211
21211
,
21214321
xxxxxxxx
,
21211
xxxxx
21211
xxxxx
.
21214321
2422
,
21214321
xxxxxxxx
,
21211
xxxxx
21211
xxxxx
.
,))((
21214321
xxxxxxxx
2422
)( xxxx
.
212121 nnn
; (6.25)
,
21214321
xxxxxxxx
,
21211
xxxxx
21211
xxxxx
.
,))((
21214321
xxxxxxxx
2422
)( xxxx
.
),...,,0(),...,,1(),...,,(
212121 nnn
xxfxxxfxxxxf
; (6.25)
, (6.26)
,
21214321
xxxxxxxx
,
21211
xxxxx
21211
xxxxx
.
,))((
21214321
xxxxxxxx
2422
)( xxxx
.
),...,,0(),...,,1(),...,,(
212121 nnn
xxfxxxfxxxxf
; (6.25)
)],...,,1()][,...,,0([),...,,(
212121 nnn
xxfxxxfxxxxf
, (6.26)
212111 nn
; (6.27)
,
21214321
xxxxxxxx
,
21211
xxxxx
21211
xxxxx
.
,))((
21214321
xxxxxxxx
2422
)( xxxx
.
),...,,0(),...,,1(),...,,(
212121 nnn
xxfxxxfxxxxf
; (6.25)
)],...,,1()][,...,,0([),...,,(
212121 nnn
xxfxxxfxxxxf
, (6.26)
),...,,0,1(),...,,,(
212111 nn
xxfxxxxxfx
; (6.27)
212111 nn
(6.28)
,
21214321
xxxxxxxx
,
21211
xxxxx
21211
xxxxx
.
,))((
21214321
xxxxxxxx
2422
)( xxxx
.
),...,,0(),...,,1(),...,,(
212121 nnn
xxfxxxfxxxxf
; (6.25)
)],...,,1()][,...,,0([),...,,(
212121 nnn
xxfxxxfxxxxf
, (6.26)
),...,,0,1(),...,,,(
212111 nn
xxfxxxxxfx
; (6.27)
);,...,,1,0(),...,,,(
212111 nn
xxfxxxxxfx
(6.28)
212111 nn
(6.29)
212111 nn
. (6.30)
),...,,1,0(),...,,,(
212111 nn
xxfxxxxxfx
. (6.30)
1
x
— на нуль. В соотношениях (6.28) и (6.30),
имеющей меньший ранг. Это правило является следствием распреде­лительного закона. Например,
,
xxxxxxxx
кроме того, справедливы выражения:
Правило поглощения для элементарных дизъюнкций: логическое произведение двух элементарных дизъюнкций разных рангов, из кото­рых одна является общей частью другой, можно заменить дизъюнкци­ей, имеющей меньший ранг. Это правило является следствием распре­делительного закона и находит широкое применение для упрощения логических функций. Например,
,
xxxxx
xxxxx
.
,))((
xxxxxxxx
)( xxxx
.
В алгебре логики существуют две теоремы разложения:
и четыре соотношения, позволяющие упрощать логические функции:
; (6.25)
),...,,0(),...,,1(),...,,(
xxfxxxfxxxxf
)],...,,1()][,...,,0([),...,,(
xxfxxxfxxxxf
212121 nnn
),...,,0,1(),...,,,(
xxfxxxxxfx
; (6.27)
, (6.26)
);,...,,1,0(),...,,,(
xxfxxxxxfx
Из соотношений (6.27) и (6.29) следует, что в функции f все пере-
менные х ях (6.28) и (6.30), наоборот, все переменные х
следует заменить на единицу, а
1
-72-
— на нуль. В соотношени-
нужно заменить на нуль,
1
(6.28)
(6.29)
),...,,0,1(),...,,,(
xxfxxxxxfx
;
),...,,1,0(),...,,,(
xxfxxxxxfx
. (6.30)

),...,,1,0(),...,,,(
212111 nn
xxfxxxxxfx
. (6.30)
1
x
— на нуль. В соотношениях (6.28) и (6.30),
),...,,1,0(),...,,,(
212111 nn
xxfxxxxxfx
. (6.30)
1
x
— на нуль. В соотношениях (6.28) и (6.30),
1
нужно заменить на нуль, а переменные
1
x
— на
3231211
Y
.
),...,,1,0(),...,,,(
212111 nn
xxfxxxxxfx
. (6.30)
1
x
— на нуль. В соотношениях (6.28) и (6.30),
1
нужно заменить на нуль, а переменные
1
x
— на
)(
3231211
xxxxxxxY
.
213221
Y
),...,,1,0(),...,,,(
212111 nn
xxfxxxxxfx
. (6.30)
1
x
— на нуль. В соотношениях (6.28) и (6.30),
1
нужно заменить на нуль, а переменные
1
x
— на
)(
3231211
xxxxxxxY
.
.)(
)01()(
213221
323213231211
xxxxxx
xxxxxxxxxxxxY
)
3231211
Y
.
),...,,1,0(),...,,,(
212111 nn
xxfxxxxxfx
. (6.30)
1
x
— на нуль. В соотношениях (6.28) и (6.30),
1
нужно заменить на нуль, а переменные
1
x
— на
)(
3231211
xxxxxxxY
.
.)(
)01()(
213221
323213231211
xxxxxx
xxxxxxxxxxxxY
)(
3231211
xxxxxxxY
.
313231
Y
а переменные некоторых соотношений.
Пример 6.1. Упростить логическое выражение
Решение. Воспользовавшись соотношением (6.27), получим:
Пример 6.2. Упростить логическое выражение
Решение. Воспользовавшись соотношением (6.28), получим:
— на единицу. Рассмотрим примеры использования
(


.
)(
xxxxxxx
.)(
xxxxxx
xxxxxxx
.
.)(
xxxxxx
)01()(
xxxxxxxxxxxx
323213231211
)10()(
xxxxxxxxxxxx
323213231211
На отдельных этапах анализа и синтеза комбинационных авто­матов используются различные формы их представления (задания): словесная, табличная, аналитическая, числовая, геометрическая и ку­бическая. Задать логическую функцию — значит указать значения, ко­торые принимает функция (т.е. 1, или 0, или неопределенное значение) при всех возможных комбинациях входных наборов.
 
весного описания.
тогда, когда обе переменные одновременно ложны.
Любая логическая функция может быть представлена в виде сло-
Пример 6.3. Функция f от двух переменных истинна тогда и только
-73-

Пример 6.4. Функция g от трех переменных истинна только тогда, когда одновременно истинны не менее двух аргументов.
Функция g определена (задана) достаточно лаконично, но вместе с тем недостаточно определенно. Для полной определенности данную функцию нужно было бы задать следующим образом: функция истин­на тогда, когда одновременно истинны аргумент первый и второй, или когда истинны аргумент первый и третий, или когда истинны аргумент второй и третий, или когда истинны все три аргумента.
Таким образом, словесное описание логических функций услож­няется по мере увеличения числа аргументов, что может приводить к неоднозначности задания функции. Однако и при небольшом числе аргументов словесное описание логической функции может выглядеть в форме, достаточно трудной для понимания. Рассмотрим в качестве примера следующую арабскую мудрость, которая выражает целесооб­разность общения между людьми.
Пример 6.5.
«Если не знает, и не знает, что он не знает,
тот глуп — избегай его.
Если не знает, и знает, что он не знает,
ученик — научи его.
Если знает, и не знает, что он знает,
тот спит — разбуди его.
Если знает, и знает, что он знает,
мудрец — учись у него».
Эта арабская мудрость может интерпретироваться как логическая функция двух аргументов (знает/не знает, знает/не знает), которая ре­комендует не общаться только с глупцами.
Словесная форма задания логических функций наиболее часто ис­пользуется на начальном этапе проектирования комбинационных ав­томатов.
 
Логическую функцию можно представить в табличной форме (таб­лицей истинности или картой Карно). Принцип построения таблиц ис-
-74-

тинности рассмотрен в п.6.3. В табл. 6.1 представлена в табличной фор­ме логическая функция из примера 6.2.
Таблица 6.1
Таблица истинности функции f
х
х
2
f
1
0 0 1 0 1 0 1 0 0 1 1 0
В табл. 6.2 задана в табличной форме логическая функция g от трех переменных из примера 6.3.
Таблица 6.2
Таблица истинности функции g
х
х
2
х
1
0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1
g
0
Карта Карно — это прямоугольник, разбитый на квадраты, чис­ло которых равно числу входных наборов логической функции, т.е. 2
n
Каждая клетка карты соответствует одному входному набору. Клетки размечают так, чтобы наборы, которые соответствуют смежным мин­термам (макстермам), располагались бы в соседних ячейках карты Кар­но. Координатами каждой клетки карты Карно являются комбинации переменных из всех возможных входных наборов логической функции.
Для двух переменных карта Карно представляет собой квадрат, разделенный на четыре ячейки, по одной на каждый входной набор.
-75-
.

2
. Следовательно, располо-
1, x2
) =
21
xx
= 1
x2
x2
0 1 0
1
21
xx
21
xx
Строки карты связаны с переменной x1, столбцы — с переменной х2. Следовательно, расположенная слева вверху ячейка соответствует
x
входному набору (0, 0) или минтерму ( внизу ячейка — входному набору (1, 1) или макстерму (
x
·
), а расположенная справа
1
2
x
+
1
x
). Тако-
2
го рода карта называется картой Карно на две переменные (рис. 6.2). Представление логической функции на карте Карно производится в со-
x
ответствии, с таблицей истинности. Если функция F(x
1, x2
) =
·
1
x
= 1 на
2
входном наборе (0, 0), то этот факт отражается на карте Карно записью в левую верхнюю ячейку единицы (рис. 6.2, а). Остальные ячейки ос­таются незаполненными. Карта Карно может заполняться нулями в те ячейки, на входных наборах которых функция равна нулю. На рис. 6.2, б приведен пример такого заполнения карты Карно.
0 1
x1
1 1 0 0
f =
а б
Рис. 6.2. Изображение функции f на карте Карно
0 0
x1
f =
Карта Карно (табл. 6.1 и рис. 6.2), содержит все 2n возможных входных наборов и значения функции, соответствующие каждому из наборов.
В случае трех переменных карта Карно (рис. 6.3) содержит восемь ячеек, по одной для каждого входного набора, указанного внутри ячей­ки. Переменная x и x
— с четырьмя столбцами. Таким образом, любые две рядом распо-
3
связана с двумя строками карты, а переменные x2
1
ложенные ячейки являются соседними и их координаты отличаются только одной переменной. Кроме того, соседними являются ячейки, стоящие в первом и последнем столбцах карты.
Поскольку для четырех переменных существует 16 входных набо­ров, карта Карно разделена на 16 ячеек (рис. 6.4). Каждая ячейка прону­мерована в соответствии с десятичным номером входного набора. Кар­та Карно обладает свойством цилиндричности: смежными являются минтермы, расположенные в двух крайних столбцах, и расположенные в двух крайних строках.
-76-

x2x3
00
01
11
10
x2x3
00
01
11
10
1
0
000
001
011
010
1
100
101
111
110
5
.
x3 x4
00
01
11
10
x2x3
00
01
11
10
x1
0
000
001
011
010
1
100
101
111
110
Рис. 6.3. Карта Карно для функции трех переменных
5
.
6
. Для логических функций с числом переменных n > 6 карты
x3 x4
00
01
11
10
x1x2
00 0 1 3 2
01 4 5 7 6
11
12
13
15
14
10 8 9
11
10
Рис. 6.4. Карта Карно для функции четырех переменных
x3 x4
x3 x4
00
01
11
10
00
01
11
10
Рис. 6.3. Карта Карно для функции трех переменных
В случае пяти переменных целесообразно использовать две 16-яче­ечные карты (рис. 6.4), а не одну 32-ячеечную (рис. 6.5). Каждая из ука­занных на рис.6.4 карт связана с одним из значений переменкой x
0 000 001 011 010
x1
1 100 101 111 110
.
5
00 0 1 3 2
01 4 5 7 6
x1x2
11 12 13 15 14
Рис. 6.4. Карта Карно для функции четырех переменных
00 0 3 7 5
01 9 11 15 13 01 8 10 14 12
x1x2
10 8 9 11 10
00 0 2 6 4
x1x2
11 25 27 31 29 11 24 26 30 28
10 17 19 23 21 10 16 18 22 20
а б
Рис. 6.5. Представление функции пяти переменных
на двух 16-ячеечных картах Карно при x
(а) и при
5
В случае шести переменных потребуется уже четыре 16-ячеечные карты. Каждая карта должна быть связана с одной из четырех возмож-
и x6. Для логических функций с числом
5
-77-
ных комбинаций переменных х
x
(б)
5

Рис. 6.5. Представление функции пяти переменных
5
(а) и при x5 (б)
x3 x4 x5
000
001
011
010
110
111
101
100
переменных n > 6 карты Карно становятся громоздкими и неудобными для практического применения.
Карты Карно наиболее эффективны не для первичного задания ло­гических функций, а для упрощения (минимизации) аналитических вы­ражений, задающих логические функции. Методы минимизации логичес­ких функций будут рассмотрены в отдельном разделе данного пособия.
00
01
x1x2
11
10
Рис. 6.6. Карта Карно для функции пяти переменных
 
Табличные способы задания логических функций становятся весь­ма громоздкими с увеличением числа аргументов. Так, уже при вось­ми аргументах количество строк в таблице истинности или количество клеток карты Карно равно 256. Аналитические формы представления логических функций более компактны и наглядны, и позволяют очень просто синтезировать комбинационные автоматы из ограниченного количества логических элементов, реализующих логические опера­ции умножения (конъюнкцию), сложения (дизъюнкцию) и отрицания (инверсию). В то же время аналитические формы логических функций позволяют выполнять различные их математические преобразования с целью получения более простых соотношений или для каких-либо других целей.
Аналитический способ предусматривает запись логической фун­кции в форме логического выражения, показывающего, какие логи­ческие операции над аргументами должны выполняться и в какой последовательности. Сложные функции от многих аргументов могут
-78-

,
0
n
i
(6.31)
,),...,,(
12
0
21
n
i
iin
mfxxxF
(6.31)
0
i
(6.32)
,),...,,(
12
0
21
n
i
iin
mfxxxF
(6.31)
.),...,,(
12
0
21
n
i
iin
mfxxxF
(6.32)
12
0
n
i
(6.33)
быть представлены в форме «функций от функций», т.е. выражаться че­рез более простые функции от меньшего числа аргументов. Так, если z = z(x, y); x = x(a, b); y = y(c, d), то z = z(a, b, c, d). Операция замены ар­гументов одной функции другими, более простыми функциями носит название суперпозиции функции. Многократное использование при­нципа суперпозиции дает возможность получить функции желаемого числа аргументов.
Для аналитического задания логических функций используются так называемые нормальные формы.
В алгебре логики существует две самые распространенные аналити­ческие формы представления функции: совершенная дизъюнктивная нор-
мальная форма (СДНФ) и совершенная конъюнктивная нормальная форма (СКНФ). Каждая логическая функция имеет одну СДНФ и одну СКНФ.
СДНФ логической функции может быть получена путем много­кратного применения теоремы разложения (6.25) к некоторой функции n аргументов для каждой ее переменной x
(i = 1…n). Применяя теорему
i
разложения, получим
12
),...,,(
21
mfxxxF
(6.31)
iin
где fi — значение логической функции на i-м входном наборе аргумен­тов; m
— i-й минтерм или i-я элементарная конъюнкция максимально-
i
го ранга.
Из (6.31) следует, что СДНФ логической функции — это дизъюн­кция конституент единицы (минтермов), соответствующих наборам входных переменных, для которых функция равна единице. Совершен­ная дизъюнктивная нормальная форма записывается для истинного значения логической функции. В то же время относительно логической функции можно сказать, что она истинна тогда, когда не ложна. Такое утверждение можно формализовать следующим образом:
n
Применяя к (6.32) правило де Моргана, получим:
21
21
-79-
12
(6.32)
.),...,,(
mfxxxF
iin
,)(),...,,(
MfxxxF
(6.33)
iin

где fi — значение логической функции на i-м входном наборе аргумен­тов; M
— i-й макстерм или i-я элементарная дизъюнкция максималь-
i
ного ранга.
Представление логической функции в виде (6.33) называется со- вершенной конъюнктивной нормальной формой (СКНФ).
СКНФ логической функции — это конъюнкция конституент нуля (макстермов), соответствующих входным наборам, для которых функ­ция равна нулю.
Рассмотрим алгоритмы перехода от табличного описания логичес­кой функции к ее аналитическому описанию (СДНФ, СКНФ).
Алгоритм перехода от таблицы истинности логической функ­ции к ее записи в виде СДНФ:
1) выбрать в таблице истинности такие входные наборы, на кото-
рых функции обращаются в единицу;
2) по каждому такому набору составить элементарные конъюнк-
ции максимального ранга (минтермы);
3) в минтермы записать не инвертированными переменные, за­данные единицей в таблице истинности, а инвертированными — те пе­ременные, которые в таблице истинности заданы нулем;
4) полученные минтермы соединить между собой знаками дизъ­юнкции.
Алгоритм перехода от таблицы истинности логической функ-
ции к ее записи в виде СКНФ:
1)выбрать в таблице истинности такие входные наборы, на кото­рых функция имеет нулевые значения;
2) по каждому такому набору составить элементарные дизъюнк­ции максимального ранга (макстермы);
3)в макстермы записать не инвертированными переменные, за­данные нулем в таблице истинности, а инвертированными — те пере­менные, которые в таблице истинности заданы единицей;
4)полученные макстермы соединить между собой знаками конъ­юнкции.
Помимо двух основных (СДНФ и СКНФ) аналитических форм пред­ставления функций в алгебре логики существуют дизъюнктивные и ко­нъюнктивные нормальные формы (ДНФ и КНФ), а также минимальные дизъюнктивные и конъюнктивные нормальные формы (МДНФ и МКНФ).
ДНФ/КНФ — это дизъюнкция/конъюнкция элементарных конъ­юнкций/дизъюнкций, ранг хотя бы одной из которых отличается от максимального ранга. ДНФ/КНФ называется минимальной, если она
-80-