Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Теория автоматов. Учебное пособие
.pdf
Метод минимизации логических функций с помощью карт Карно
заключается в следующем: на карту Карно наносятся единичные и нулевые значения логических функций. Для получения ДНФ логической
функции рассматриваются единичные значения функции, а для получения КНФ — нулевые.
Пусть с помощью карты Карно задана логическая функция f(x
, …, xn),
1
необходимо найти ее тупиковую ДНФ. Тогда задача минимизации решается следующим образом: среди единичных значений логической
функции f(x
киваются прямоугольники (и/или квадраты) с числом клеток 2
, …, xn), предварительно нанесенных на карту Карно, отыс-
1
k
, где
k = (n – 1), …, 0. Задача минимизации состоит в том, чтобы все единичные значения логической функции покрыть минимальным количеством прямоугольников максимальной площади, величина которых рав-
k
на 2
. Для формирования тупиковых ДНФ в каждом прямоугольнике
находится соответствующая импликанта, которая является одинаковой
для всех объединенных клеток карты Карно. Найденные из каждого
прямоугольника импликанты соединяются знаком дизъюнкции.
Если необходимо найти тупиковую КНФ логической функции
f(x
, …, xn), то задача минимизации решается следующим образом: сре-
1
ди нулевых значений логической функции f(x
, …, xn), предварительно
1
нанесенных на карту Карно, отыскиваются прямоугольники (квадраты)
с числом клеток 2
k
, где k = (n – 1), …, 0. Задача минимизации состоит
в том, чтобы все нулевые значения логической функции покрыть минимальным количеством прямоугольников максимальной площади,
величина которых равна 2
k
. Для формирования тупиковых КНФ в каждом прямоугольнике находят элементарные дизъюнкции логических
переменных, которые являются общими для всех выделенных клеток
карты Карно. Найденные из каждого прямоугольника дизъюнкции соединяются знаком конъюнкции.
При применении метода минимизации логических функций с помощью карт Карно необходимо помнить о том, что карты Карно обладают свойством цилиндричности, т.е. клетки, расположенные по краям
карт Карно, являются соседними в каждом столбце и каждой строке.
-91-

abccabcbacbacbacbacbaF
),,(
.
abccabcbacbacbacbacbaF
),,(
.
ab
0 1 1 1 0
1 1 0 1 1
abccabcbacbacbacbacbaF
),,(
.
ab
c
00
01
11
10
0 1 1 1 0 1 1 0 1
1
k
, где k = (n
ab
0 1 1 1 0
1 1 0 1 1
abccabcbacbacbacbacbaF
),,(
.
ab
c
00
01
11
10
0 1 1 1 0 1 1 0 1
1
k
, где k = (n
ab
c
00
01
11
10
0 1 1 1 0 1 1 0 1
1
cba
. Общей у них является импликанта ba, так как в
cba
cba
)( ccba
ba
,
Минимизируем с помощью данного метода логическую функцию
F(a, b, c), СДНФ которой определяется соотношением (7.1):
СДНФ
.
Построим для функции F(a, b, c) карту Карно (рис. 7.1).
00 01 11 10
c
Рис. 7.1. Карта Карно функции F(a, b, c)
Определим максимальный размер прямоугольника, которым можно покрыть клетки карты. Величина прямоугольников вычисляется как
k
2
, где k = (n – 1), (n – 2), …, 0, а n — число аргументов, от которых зависит
логическая функция. В нашем случае n = 3, следовательно, максимальный размер прямоугольника равен 2
моугольника (или квадрата), состоящего из четырех единиц, стоящих
3–1
= 22 = 4. В карте Карно нет пря-
рядом, поэтому объединять клетки карты можно только по две, например, так, как показано на рис. 7.2.
00 01 11 10
c
Рис. 7.2. Объединение ячеек карты Карно
для функции F(a, b, c) (1 вариант)
Минтермы функции образуют в карте три группы. Одна группа состоит из двух минтермов
та
, так как в соответствии с теоремами алгебры логики имеем:
a
b
a
+
b c
и
c. Общей у них является импликан-
a
b
=
то есть переменная c из этой группы может быть исключена [23].
Вторая группа состоит из двух минтермов
a
но,
bc + abc = bc, то есть переменная a из этой группы может быть
исключена.
-92-
,
=
bc и abc, следователь-
a

F(a, b, c):
ДНФТупиковая
1
.
(7.8)
F(a, b, c):
accbbacbaF
ДНФТупиковая
),,(
.
(7.8)
F(a, b, c):
accbbacbaF
ДНФТупиковая
),,(
1
.
(7.8)
для функции F(a, b, c) (2 вариант)
ДНФТупиковая
2
.
(7.9)
F(a, b, c):
accbbacbaF
ДНФТупиковая
),,(
.
(7.8)
abcbcacbaF
ДНФТупиковая
),,(
.
(7.9)
ab
00 – 1 0 1
01 – 1 1 1
11 0 1 – 0
10 1 0 1 0
Третья группа состоит из двух минтермов abc и abc, следовательно,
b
abc + a
c = b, то есть переменная b из этой группы может быть исклю-
чена.
Объединяя знаком дизъюнкции найденные из каждого прямоугольника импликанты, получаем тупиковую ДНФ функции F(a, b, c):
. (7.8)
accbbacbaF
),,(
Объединить клетки карты Карно можно и другим образом (рис. 7.3),
Рис. 7.3. Объединение ячеек карты Карно
для функции F(a, b, c) (2 вариант)
тогда получим еще одну тупиковую ДНФ, реализующую функцию
F(a, b, c) (7.9):
. (7.9)
abcbcacbaF
),,(
Пусть частично определенная логическая функция R(a, b, c, d) зада-
на с помощью карты Карно (рис. 7.4).
Рис. 7.4. Карта Карно частично определенной
логической функции R(a, b, c, d)
cd 00 01 11 10
-93-

ab
00 1 1 0 1
01 1 1 1 1
11 0 1 1 0
10 1 0 1 0
ab
cd
00
01
11
10
00 1 1 0 1
01 1 1 1 1
11 0 1 1 0
10 1 0 1 0
ab
cd
00
01
11
10
00 1 1 0 1
01 1 1 1 1
11 0 1 1 0
10 1 0 1 0
Рис. 7.5. Доопределенная карта Карно
логической функции R(a, b, c, d)
Рис. 7.6. Объединение ячеек карты Карно
логической функции R(a, b, c, d)
dbaabccbdbcadcbaR
МДН Ф
),,,(
. (7.10)
00
01
11
10
1 1 0
1
1 1 1
1
0 1 1 0 1 0 1
0
dbaabccbdbcadcbaR
),,,(
. (7.10)
n
, (7.11)
Для представления функции R(a, b, c, d) в виде минимальной ДНФ
целесообразно следующее доопределение логической функции (рис. 7.5).
cd 00 01 11 10
Рис. 7.5. Доопределенная карта Карно
логической функции R(a, b, c, d)
Доопределяем функцию единицами и нулями так, чтобы при составлении ДНФ было минимальное число импликант наименьшего
ранга, т.е. покрываем все единичные значения функции минимальным
числом прямоугольников максимального размера так, как показано на
рис. 7.6.
Рис. 7.6. Объединение ячеек карты Карно
логической функции R(a, b, c, d)
В результате минимизации получим минимальную ДНФ логической функции R(a, b, c, d):
Сравнение эффективности минимизированных форм часто проводят по способу Шеннона. Этот способ базируется на введении такого
понятия, как цена схемы — Ц. Цену схемы можно рассчитать по следующей формуле:
где K
— количество входов у j-го элемента, i — количество элементов.
ji
. (7.10)
-94-
, (7.11)
KЦ
ji
1,
ji

Оценим полученную минимизированную ДНФ логической функции (7.10) по формуле (7.11). Элементов «И» в выражении присутствует
5 (2 элемента по 2 входа, 3 элемента по 3 входа), элементов «ИЛИ» — 1
(1 элемент на 5 входов), элементов «НЕ» — 4 (4 элемента по 1 входу),
следовательно:
Ц = 2 · 2 + 3 · 3 + 1 · 5 + 4 · 1 = 22 входа.
Затем оценим СДНФ функции R(a, b, c, d), воспользовавшись картой Карно (рис. 7.5). Потребуется элементов «И» — 11 (11 элементов по
4 входа), элементов «ИЛИ» — 1 (1 элемент на 11 входов), элементов
«НЕ» — 4 (4 элемента по 1 входу), следовательно:
Ц = 11 · 4 + 1 · 11 + 4 · 1 = 59 входов.
Для минимизации логических функций, зависящих от большого
числа переменных, применяют машинные методы минимизации. Самым распространенным методом является метод Квайна — Мак-Класки. Он базируется на кубическом представлении логических функций
в сочетании с методом Квайна, однако, исходная логическая функция
не требует обязательного представления ее в СДНФ. Достоинствами
этого метода являются:
- использование числового представления логических функций
и реализация алгоритма минимизации на ЭВМ;
- в этом методе практически отсутствуют ограничения на число ло-
гических переменных, от которых зависит минимизируемая функция.
Метод Квайна — Мак-Класки базируется на следующих основных
этапах:
1.Нахождение простых импликант (из кубического представления
функции).
2.Построение таблицы покрытий матрицы Квайна.
3.Отыскание минимального покрытия логической функции.
4.Получение минимальной формы логической функции.
Более подробно этот материал изложен в [24], [25].
-95-

Минимизация в широком смысле слова — такое преобразование
логических выражений, которое упрощает их в смысле некоторого критерия. Целью минимизации одиночных логических функций является
сокращение ранга и числа элементарных конъюнкций, входящих в исходную ДНФ логической функции. В результате минимизации по таким
критериям могут быть получены кратчайшие и/или минимальные тупиковые дизъюнктивные нормальные формы, обеспечивающие минимальную структурную сложность при реализации логической функции
в элементных базисах И, ИЛИ, НЕ; И-НЕ; ИЛИ-НЕ и прочее.
Минимизация одиночных логических функций может быть осуществлена методом Квайна, методом Квайна — Мак-Класски, методами
Закревского, а также с помощью карт Карно и т.п.
При минимизации системы логических функций, зависящих от
одних и тех же логических аргументов, используют методы функциональной декомпозиции системы логических функций. Суть такой
минимизации заключается в представлении исходной системы логических функций в виде тождественной системы из функционально связанных логических функций, каждая из которых зависит от меньшего
числа аргументов и одновременно является сложным аргументом для
последующей логической функции. Такие методы минимизации очень
сложны для ручной реализации и не всегда возможны.
При реализации системы логических функций наиболее эффективен метод группой минимизации, который легко реализуется и состоит
в следующем: в системе логических уравнений отыскиваются группы
одинаковых элементарных конъюнкций. Для каждой группы одинаковых элементарных конъюнкций вводится фиктивная переменная
с каким-либо индексом (например, Z
гические уравнения переписываются в терминах фиктивных переменных. Затем на логической схеме реализуют элементарные конъюнкции,
соответствующие каждой фиктивной переменной и их дизъюнкции
в соответствии с уравнениями, содержащими фиктивные переменные.
Рассмотрим метод групповой минимизации системы логических
функций на примере.
Пусть система логических функций задана таблицей истинности
(табл.7.4).
, …, ZS). Далее все исходные ло-
1
-96-

Таблица 7.4
x y z
f1(x, y, z)
f2(x, y, z)
f3(x, y, z)
0 0 0 1 1
0
0 0 1 1 1
1
0 1 0 0 0
0
0 1 1 1 1
0
1 0 0 1 0
1
1 0 1 0 0
1
1 1 0 0 0
0
1 1 1 0 1
0
(7.12)
Таблица 7.4
z
f1(x, y, z)
f2(x, y, z)
f3(x, y, z)
0 1 1
0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 0 0 0 1 0 1 0
zyxzyxzyxzyxf
xyzyzxzyxzyxzyxf
zyxyzxzyxzyxzyxf
),,(
),,(
),,(
(7.12)
zyxb
;
zyxb
4
;
zyxb
;
xyzb
5
;
yzxb
;
zyxb
6
.
(7.13)
Таблица 7.4
x y z f1(x, y, z) f2(x, y, z) f3(x, y, z)
0 0 0 1 1 0
0 0 1 1 1 1
0 1 0 0 0 0
0 1 1 1 1 0
1 0 0 1 0 1
1 0 1 0 0 1
1 1 0 0 0 0
1 1 1 0 1 0
Представим систему логических функций в виде СДНФ (7.12):
СДНФ
1
СДНФ
2
СДНФ
3
Для каждой группы одинаковых элементарных конъюнкций вводим фиктивные переменные:
x
b1 =
b
b
y z
; b4 = x
x
y
=
z; b5 = xyz;
2
= xyz; b6 = xyz.
3
),,(
),,(
),,(
y
z
;
zyxyzxzyxzyxzyxf
. (7.12)
xyzyzxzyxzyxzyxf
zyxzyxzyxzyxf
Перепишем все исходные логические уравнения (7.12) в терминах
фиктивных переменных, получим (7.13):
СДНФ
СДНФ
СДНФ
),,(
),,(
),,(
bbbbzyxf
43211
. (7.13)
bbbbzyxf
53212
bbbzyxf
6423
Реализуем элементарные конъюнкции, соответствующие каждой
фиктивной переменной и их дизъюнкции в соответствии с уравнениями (7.13) на логической схеме (рис. 7.7).
-97-

x y z
1
1
&
& & &
1
1
b
b
b
b
f
f
1
1
&
2
3
4
b
5
b
6
&
Рис. 7.7. Реализация минимизированной системы
функций логической схемой
1
1
2
f
3
-98-

Любую логическую функцию в алгебре логики можно представить
в виде СДНФ и СКНФ, используя три элементарные логические функции: инверсию, конъюнкцию и дизъюнкцию. Данный набор представляет собой полный функциональный набор.
Система функций алгебры логики f
онально полной, если любая логическая функция от произвольного
числа n — аргументов может быть представлена суперпозицией функций f
, f2, …, f
1
m.
Система логических функций, обладающая функциональной полнотой, называется функциональным базисом, а набор элементов, ре-
ализующих эти функции, называется элементным базисом.
Минимальным базисом называется такой базис из f
которого удаление хотя бы одной из функций f
превращает систему функций f
, f2, …, fm в неполную.
1
Если осуществить преобразования над логическими функциями,
заданными СДНФ и СКНФ по правилам де Моргана, взяв от них двойное отрицание, то получим функционально полные базисы, состоящие
из одной или двух элементарных функций.
Функциональной полнотой обладают следующие элементные базисы:
1) И, ИЛИ, НЕ (основной базис);
2) И, НЕ;
3) ИЛИ, НЕ;
4) И-НЕ;
5) ИЛИ-НЕ;
6) 1, И, ⊕.
, f2, …, fm называется функци-
1
, f2, …, fn, для
входящих в этот базис,
i,
1
-99-

. Пусть a = b, следовательно,
aaay
— реализована опе-
aaay
— реализована опе-
aaay
— реализована опе-
&
a
a
bay
. Пусть a = b, следовательно,
aaay
— реализована опе-
aaay
— реализована опе-
— реализована опе-
a
aaay
— реализована опе-
babayz
— реализована опе-
&
a
a
&
a
b
ba
Дано
bay
. Пусть a = b, следовательно,
aaay
— реализована опе-
2. Докажем, что с помощью элемента И-НЕ может быть реализована опе-
Дано
bay
. Рассмотрим функцию
babayz
— реализована опе-
3. Докажем, что с помощью элемента И-НЕ может быть реализована опе-
Необходимо получить операцию ИЛИ —
bay
. Рассмотрим функ-
babayz
— реализована операция ИЛИ.
&
a
a
&
a
b
&
ba
aaay
— реализована опе-
babayz
— реализована опе-
bay
. Рассмотрим функ-
&
a
a
&
a
b
&
ba
&
a
b
&
ba
&
До определенного момента времени для доказательства функциональной полноты системы элементарных функций f
вался следующий эвристический прием.
Требовалось доказать, что если с помощью элементарных функций
f
, f2, …, fn могли быть реализованы логические функции основного ба-
1
зиса (И, ИЛИ, НЕ), то в этом случае система функций f
полной. Суть этого доказательства рассмотрим на примере логического
базиса, состоящего из элемента И-НЕ.
1.Докажем, что с помощью элемента И-НЕ может быть реализова-
на операция НЕ.
,f2, …, fn использо-
1
, f2, …, fn считалась
1
Дано
вана операция НЕ.
2.Докажем, что с помощью элемента И-НЕ может быть реализова-
на операция И.
Дано
вана операция И.
3.Докажем, что с помощью элемента И-НЕ может быть реализова-
на операция ИЛИ.
Необходимо получить операцию ИЛИ — y = a + b. Рассмотрим фун-
кцию
bay
. Пусть a = b, следовательно,
. Рассмотрим функцию
— реализована операция ИЛИ.
&
— реализо-
babayz
— реализо-
Следовательно, базис И-НЕ является полным.
-100-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
