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

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

.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆

zyx
,
zyx
,
zyx
,
В общем виде СДНФ и СКНФ записываются выражениями (6.32) и (6.33),
Пример 6.6. Пусть логическая функция P(x, y, z) задана следующей таб-
Решение. По таблице истинности находим, что функция P(x, y, z) прини-
zyx
,
zyx
,
zyx
,
xyz
.
zyx
,
zyx
,
xyz
.
zyx
,
zyx
,
xyzzyxzyxzyxzyxP
СДНФ
),,(
.
zyx
,
zyx
,
xyzzyxzyxzyxzyxP
СДНФ
),,(
.
))()()((),,( zyxzyxzyxzyxzyxP
СКНФ
.
содержит наименьшее число букв по сравнению со всеми ДНФ/КНФ, су­ществующими для данной функции. При помощи правил развертыва­ния элементарных конъюнкций и дизъюнкций, ДНФ и КНФ могут быть преобразованы в СДНФ и СКНФ.
В общем виде СДНФ и СКНФ записываются выражениями (6.32) и (6.33), которые могут быть слишком громоздкими. Для их упрощения используется более компактная числовая форма записи, предусматри­вающая только перечисление десятичных эквивалентов двоичных на­боров, на которых функция принимает значение единицы (для СДНФ) или нуля (для СКНФ), соединив их знаками дизъюнкции (для СДНФ) и конъюнкции (для СКНФ).
Пример 6.6. Пусть логическая функция P(x, y, z) задана следующей таблицей истинности (табл. 6.3). Требуется представить ее в виде СДНФ и СКНФ.
Решение. По таблице истинности находим, что функция P(x, y, z) принимает единичные значения на четырех входных наборах аргумен­тов. Данным наборам аргументов соответствуют следующие четыре минтерма:
Тогда в виде СДНФ данная логическая функция будет представлена в следующем виде:
,
,
,
.
.
По аналогии представим данную логическую функцию в виде СКНФ. В итоге получим:
Таблица 6.3
Входные наборы
z y x
0 0 0 0 x + y + z 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1
Значение
функции
-81-
для СДНФ для СКНФ
минтерм макстерм
y z
x
xyz
x
+ y + z
x y
z
x
+ y +
x +
xyz
.
y
+
z z

1
, a2, …, an) пере-
 
В геометрическом смысле каждый двоичный набор (a1, a2, …, an) переменных логической функции можно рассматривать как n-мерный вектор, определяющий точку n-мерного пространства. Исходя из этого, все множество наборов, на которых определена функция n переменных, представляется в виде вершин n-мерного куба. Отмечая точками вер­шины, в которых функция имеет единичные значения, получают ее гео­метрическое представление, например, так, как показано на рис. 6.7, а.
а б в
Рис. 6.7. Геометрическое и кубическое представление функции
Y = (3, 4, 5, 6, 7): a — 0-кубы; б — 1-кубы; в — 2-куб
На основе геометрических представлений строятся кубические представления логических функций, в которых используются элемен­ты n-мерных кубов. Геометрически каждому набору (a ветствует вершина n-мерного куба с данными координатами. Каждую вершину, на которой функция принимает единичное значение, приня-
,a2, …, an) соот-
1
то называть 0-кубом (нулевым кубом). Множество 0-кубов образует ну- левой кубический комплекс К нулевой кубический комплекс имеет вид К
. Например, для функции Y = V(3, 4, 5, 6, 7)
0
= (011, 100, 101, 110, 111)
0
и в данном случае состоит из пяти 0-кубов, каждый из которых соот­ветствует определенной вершине трехмерного куба (рис. 6.7, а).
Если два 0-куба из комплекса К
различаются только по одной ко-
0
ординате, то они образуют один 1-куб (единичный куб). Он представля- ется общими элементами 0-кубoв, а на месте координаты, по которой различаются 0-кубы, указывается символ «-», обозначающий независи­мую координату. Например, два 0-куба: 100, 101 различаются только по третьей координате и, следовательно, образуют единичный куб 10-, ко- торому соответствует ребро трехмерного куба. Все множество единич­ных кубов функции образует единичный кубический комплекс К
-82-
1.

Для функции Y = V(3, 4, 5, 6, 7) он состоит из пяти 1-кубов: K1 = {-11, 10-, 1-0, 1-1, 11-} и определяет все множество ребер, на которых функция Y принимает единичные значения (рис. 6.7, б).
Если два единичных куба из комплекса K
имеют общую незави-
1
симую координату и различаются только по одной координате, то они образуют один 2-куб (двоичный куб). Его запись состоит из общих компонент 1-кубов, а координата, принимающая различные значения в 1-кубах, обозначается в 2-кубе как независимая координата «-» (про­бел). Например, два единичных куба 1-0 и 1-1 образуют один двоичный куб 1--. Для рассматриваемой функции Y двоичный комплекс имеет вид К
= {1--} и состоит из одного двоичного куба, соответствующего грани
2
трехмерного куба (рис. 6.7, в). Размерность куба определяется числом независимых координат (символов «-»).
Объединение кубических комплексов К
x
, …, xn) образует кубический комплекс функции К(f). Для рассматрива-
2
, К1, …, Кn функции f(x1,
0
емого примера комплекс К(f) соответствует объединению комплексов К
, К1 и К2.
0
В отличие от аналитических форм записи логических функций, в которых используется большой набор индексированных букв и ма­тематических знаков, кубические представления позволяют задавать логические функции в виде множества кубов, компонентами которых являются только три символа; 0, 1, -. Ограниченное число символов в записи функций позволяет использовать кубические представления в ЭВМ при решении задач автоматизированного логического проекти­рования комбинационных автоматов.
-83-


Целью минимизации логических функций является получение бо­лее простых аналитических выражений, что в свою очередь позволит осуществить более простую реализацию соответствующего комбина­ционного автомата.
Для рассмотрения вопроса минимизации необходимо сформули­ровать следующие определения.
Совершенной дизъюнктивной нормальной формой (СДНФ) логической функции f(x конъюнкций максимального ранга, соответствующих наборам входных переменных, на которых значение логической функции равно 1.
Дизъюнктивной нормальной формой (ДНФ) логической фун­кции f(x
, …, xn) называется дизъюнкция элементарных конъюнкций
1
функции, ранг хотя бы одной из которых меньше максимального ранга.
Сокращенной дизъюнктивной нормальной формой логичес­кой функции f(x
, …, xn) называется такая ДНФ, реализующая f(x1, …, xn),
1
которая состоит из элементарных конъюнкций, ранг хотя бы одной из которых меньше максимального ранга и которые не могут быть более склеены между собой. Такие элементарные конъюнкции принято на­зывать импликантами.
Тупиковой дизъюнктивной нормальной формой логической функции f(x
, …, xn) называется такая ДНФ, реализующая f(x1, …, xn), в ко-
1
торой ни одна из импликант не является лишней, то есть ни одна из импликант не может быть удалена из формулы.
Кратчайшей дизъюнктивной нормальной формой логичес­кой функции f(x
, …, xn) называется такая ДНФ, реализующая f(x1, …, xn),
1
в которой количество импликант минимально по сравнению с другими ДНФ, реализующими функцию f(x
Минимальной дизъюнктивной нормальной формой логичес­кой функции f(x
, …, xn) называется такая ДНФ, реализующая f(x1, …, xn),
1
, …, xn) называется дизъюнкция элементарных
1
, …, xn).
1
-84-

Исходная таблица истинности
Тупиковая ДНФ функции
Кратчайшая и минимальная
в которой минимально количество букв переменных по сравнению с другими ДНФ, реализующими функцию f(x
, …, xn).
1
Общую схему минимизации логических функций можно проил­люстрировать следующим образом:
СДНФ логической функции
Сокращенная ДНФ функции
ДНФ функции
Задача минимизации логических функций осложнена следующи­ми обстоятельствами:
1. Общее количество ДНФ логической функции f(x
от n-переменных, определяется величиной 2
n
3
. Число 3 определяется тем,
, …, xn), зависящей
1
что возможны три исхода: любая логическая переменная может входить в ДНФ со значением инверсии, без знака инверсии, может не входить в элементарную конъюнкцию, то есть |D| = 2 тва D, состоящего из объектов ДНФ логической функции f(x
n
3
, где |D| — мощность множес-
, …, xn) [22].
1
2. Среди множества D содержится одна единственная СДНФ ло­гической функции f(x ей сокращенных и тупиковых ДНФ, реализующих функцию f(x
, …, xn) и некоторое количество тождественных
1
, …, xn).
1
В настоящее время не существует какого-либо способа определения об­щего количества тождественных ДНФ, реализующих одну и ту же логи­ческую функцию.
3. Вид тождественной ДНФ логической функции существенно за­висит от формы записи СДНФ и порядка преобразований, производи­мых над СДНФ логической функции.
Все известные на сегодня способы минимизации логических функ-
ций могут быть поделены на две большие группы:
1) методы минимизации одновыходных (одиночных) логических функций;
-85-

2) методы минимизации системы логических функций, зависящих от n-аргументов.
Среди методов первой группы выделяют следующие методы: пря- мые аналитические преобразования логических функций, визуальные методы минимизации с помощью специальных таблиц, машинно-ори­ентированные методы минимизации.
Все методы минимизации одновыходных логических функций ба­зируются на следующих операциях:
a
1. a · K +
· K = K — склеивание, где a — переменная, К— элементар-
ная конъюнкция.
a
2. a · K +
3. a · K
4. K
1
· K = a · K + a · K + K — неполное склеивание.
+ a · K2 = a · K1 + a · K2 + K1K2 — обобщенное склеивание.
1
· K2 + K1 = K1 + — поглощение.

    
Одним из первых таких, строго формализованных, методов явля­ется метод Квайна. Сущность этого метода состоит в следующем: если над минтермами исходной СДНФ произвести сначала все возможные операции неполного склеивания, а затем над полученным выражением все возможные операции поглощения, то в результате многократно вы­полненных таких преобразований будет получена сокращенная ДНФ.
Проиллюстрируем применение метода Квайна для минимизации логической функции F(a, b, c), заданной следующей таблицей истиннос- ти (табл. 7.1):
a b c F(a, b, c)
0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1
-86-
Таблица 7.1
KKaKa
— склеивание, где a — переменная, К — элемен-
KKaKaKaKa
— неполное склеивание.
212121
KKKaKaKaKa
— обобщенное склеива-
1121
KKKK
— поглощение.
Таблица 7.1
a b c
F(a, b, c)
0 0 0 1 0 0 1
1
0 1 0
1
0 1 1
0
1 0 0
0
1 0 1 1 1 1 0
1
1 1 1
1
СДНФ
. (7.1)
54321
. (7.2)
6
54321
),,( abccabcbacbacbacbacbaF
СДНФ
. (7.2)
Таблица 7.2
конъюнкций
Импликанты, полученные
в результате склеивания
(если склеивание возможно)
1–2
bacbacba
1–3
cacbacba
1–4
не склеиваются
1–5
не склеиваются
1–6
не склеиваются
2–3
не склеиваются
2–4
cbcbacba
2–5
не склеиваются
2–6
не склеиваются
3–4
не склеиваются
3–5
cbcabcba
3–6
не склеиваются
4–5
не склеиваются
4–6
acabccba
5–6
ababccab
abaccbcbcabacbaF
),,(
. (7.3)

Выпишем СДНФ функции F(a, b, c):
Пронумеруем каждую конъюнкцию из (7.1) следующим образом:
СДНФ
),,( abccabcbacbacbacbacbaF
. (7.1)
abccabcbacbacbacbacbaF
),,(
6
. (7.2)
Затем склеиваем (если это возможно) каждый из членов выраже­ния (7.2) с последующими членами и записываем полученные импли­канты так, как показано в табл. 7.2.
Таблица 7.2
Номера склеиваемых
конъюнкций
1–2 1–3 1–4 не склеиваются 1–5 не склеиваются 1–6 не склеиваются 2–3 не склеиваются 2–4 2–5 не склеиваются 2–6 не склеиваются 3–4 не склеиваются 3–5 3–6 не склеиваются 4–5 не склеиваются 4–6 5–6
Импликанты, полученные
в результате склеивания
(если склеивание возможно)
+ abc =
abc
+ abc =
abc
c + abc = bc
ab
ab ac
+ abc = b
abc
c + abc = ac
a
b
+ abc = ab
ab
c
c
Соединяя полученные импликанты знаками дизъюнкции, получа­ем сокращенную ДНФ логической функции F(a, b, c):
ДНФСо кр
.
Используя метод Квайна для минимизации логических функций необходимо помнить о том, что в этом методе используется операция
. (7.3)
-87-

неполного склеивания. Если в СДНФ, реализующей логическую фун­кцию, присутствует конъюнкция, которая не может быть склеена ни с одной последующей конъюнкцией, то эта конъюнкция должна быть включена в полученную в результате минимизации сокращенную ДНФ.

После получения сокращенной ДНФ, к ней может быть многократ­но применен метод Квайна, в результате чего будет получена некоторая тупиковая форма, тождественная исходной ДНФ. Более часто применя­ют другой метод: метод испытания импликант в сокращенной ДНФ ло­гической функции.
Существо метода состоит в следующем: из формулы, являющейся сокращенной ДНФ, выбирается испытуемая импликанта (можно про­извольным образом). Выбранная импликанта приравнивается к 1. Да­лее определяются значения логических переменных, обращающих в 1 испытуемую импликанту. Из сокращенной ДНФ удаляется испытуемая импликанта, а в оставшуюся часть сокращенной ДНФ подставляются найденные значения логических переменных, обращающих в 1 испы­туемую импликанту. Если в результате такой подстановки значение логической функции равно единичному значению, то испытуемая имп­ликанта является лишней (избыточной) и может быть удалена из сокра­щенной ДНФ логической функции. После удаления лишней импликанты также испытываются все импликанты, входящие в сокращенную ДНФ.
Рассмотрим метод испытания импликант на примере.
Пусть логическая функция F(a, b, c), представлена в виде сокращен- ной ДНФ, полученной по методу Квайна (7.3).
Испытаем импликанты в (7.3). Первой будем испытывать импли­канту
ких переменных:
из формулы испытуемую импликанту, получим:
и должна быть удалена из формулы.
.
a
b
Импликанта
1.
= 1, при a = 0, b = 0.
a
b
Подставляя найденные значения в (7.3), предварительно исключив
1 ·
+ 1 · c + 0 · c + 0 · c + 0 · 0 = 1 ⇒ импликанта
c
Таким же образом испытаем оставшиеся в формуле импликанты.
обращается в 1 при следующих значениях логичес-
a
b
является лишней
a
b
-88-

bbbb 00010
импликанта ca не является лишней. Остав-
caca 01000
импликанта cb не является лишней. Остав-
110001 aaa
импликанта cb является лишней и должна
11100 bb
импликанта ac является лишней и должна быть
импликанта ab не является лишней. Оставляем ее в
ДНФТупиковая
1
.
(7.4)
bbbb 00010
импликанта ca не является лишней. Остав-
caca 01000
импликанта cb не является лишней. Остав-
110001 aaa
импликанта cb является лишней и должна
11100 bb
импликанта ac является лишней и должна быть
ab
не является лишней. Оставляем ее в
abcbcacbaF
ДНФТупиковая
),,(
1
.
(7.4)
ДНФТупиковая
2
.
(7.5)
2.
= 1, при a = 0, c = 0.
a
c
· 0 + b · 1 + 0 · 0 + 0 · b = b ⇒ импликанта
b
Оставляем ее в формуле.
3.
с = 1 при b = 0, c = 1.
b
a
· 0 + 0 · 0 + 1 · c + a · 0 = a ⇒ импликанта bc не является лишней.
Оставляем ее в формуле.
4. b
= 1, при b = 1, c = 0.
c
a
· 1 + 0 · 0 + a · 0 + a · 1 = 1 ⇒ импликанта bc является лишней
и должна быть удалена из формулы.
5. ac = 1, при a = 1, c = 1.
0 · 0 + быть удалена из формулы.
6. ab = 1, при a = 1, b = 1.
0 · в формуле.
После испытания импликант получаем одну из тупиковых ДНФ ло­гической функции F(a, b, c):
· 1 + 1 · b = 1 ⇒ импликанта ac является лишней и должна
b
c
+ 0 · c = 0 ⇒ импликанта ab не является лишней. Оставляем ее
не является лишней.
a
c
Если начать испытание импликант в (7.3) не с первой импликанты, а с какой-либо другой, выбранной произвольным образом, то можно получить некоторое количество тождественных сокращенных и тупи­ковых ДНФ, реализующих функцию F(a, b, c). В частности, если начать испытание импликант с последней импликанты в (7.3), то полученная тупиковая ДНФ для логической функции F(a, b, c) будет иметь вид:
. (7.4)
abcbcacbaF
),,(
accbbacbaF
),,(
. (7.5)

  
Данные методы основаны на графическом представлении логи­ческих функций и способности человека быстро зрительно отыскивать некоторые геометрические фигуры. Одним из таких способов является метод импликантных матриц.
-89-

abccabcbacbacbacbacbaF
),,(
.
abccabcbacbacbacbacbaF
),,(
.
j
— импликанты из выражения
Таблица 7.3
cba
cba
cba cba
cab
abc
X X
X X
X X
X X
X
X
X
X
abcbcacbaF
ДНФТупиковая
),,(
1
; (7.6)
abccabcbacbacbacbacbaF
),,(
.
j
— импликанты из выражения
Таблица 7.3
cba
cba
cba cba
cab
abc
X X
X X
X X
X X
X
X
X
X
abcbcacbaF
ДНФТупиковая
),,(
1
; (7.6)
ДНФТупиковая
2
. (7.7)
Импликантная матрица — это таблица, столбцы которой содер­жат элементарные конъюнкции (минтермы) СДНФ логической функ­ции, а строки — найденные по методу Квайна импликанты.
Проиллюстрируем данный метод на примере рассматриваемой нами ранее логической функции F(a, b, c), СДНФ которой определяется соотношением (7.1):
СДНФ
.
Составим для этой функции импликантную матрицу (табл. 7.3), в которой K из выражения (7.3).
— элементарные конъюнкции из (7.1), а Uj — импликанты
i
Таблица 7.3
K
i
U
j
ab
ac
c
b
b
c
ac
ab
ab
abc
X X
X X
X X
с
abc
X X
abc
ab
c
X X
X X
abc
В импликантной матрице ставим «X» на пересечении тех строк и столбцов матрицы, в которых импликанта может поглотить конъюнк­цию. Для получения тупиковой ДНФ необходимо выбрать минималь­ное число таких импликант U все элементарные конъюнкции K
, которые в совокупности поглотили бы
j
. В результате этих действий получим
i
две тупиковые формы логической функции F(a, b, c).
-90-
; (7.6)
accbbacbaF
),,(
. (7.7)