- •Алгебра логики
- •Поразрядные операции
- •Основные законы алгебры логики
- •Т ождества
- •Правила поглощения и склеивания
- •Переход от табличной формы функции алгебры логики к аналитической Запись функции по единицам
- •Запись функции по нулям
- •Логические функции от двух аргументов
- •Стрелка Пирса
- •Функция следования (импликация от a к b)
- •Функция эквивалентность
- •Штрих Шеффера
- •Приоритет основных логических операций
- •Минимизация функций алгебры логики с помощью карт Карно
- •Правило записи функции по карте Карно по единицам
- •Запись функции по нулям
- •Правило записи функции по карте Карно по нулям
Минимизация функций алгебры логики с помощью карт Карно
Карты Карно представляют собой таблицы, в каждой клетке которых записано значение функции алгебры логики на определенном наборе значений аргументов. Столбцы и строки этой таблицы пронумерованы так, что каждая клетка соответствует одной комбинации значений агументов и так, что при переходе в соседнюю клетку меняется значение только одной переменной.
X |
Y |
Z |
F |
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 |
арисуем
карту Карно, соответствующую
приведенной в качестве примера
таблице истинности.
Карта Карно представляет собой квадрат или половинку квадрата. Количество клеток в карте равно количеству значений функции (в данном случае – 8).
Пронумеруем столбцы таблицы комбинациями значений X и Y, а строки – значениями Z. Начинать можно с любой комбинации, допустим с 00.
Обратите внимание, что при переходе из второго столбца в третий, изменяется только значение X, поэтому номер изменяется от 01 к 11.
Теперь каждой строчке таблицы истинности соответствует одна клетка карты Карно, например верхняя левая клетка – комбинации значений аргументов 000, а нижняя правая – комбинации 101. Расставив в карте Карно значения функции, соответствующие таблице истинности, получим карту, показанную на рисунке.
Правило записи функции по карте Карно по единицам
Для каждой прямоугольной группы единиц размером 2n записать произведение тех переменных, значение которых не изменяется при переходе из клеточки в клеточку в группе. Полученные произведения сложить.
Размер каждой группы должен быть максимально большим. Если объединяются две единички, то одна переменная сокращается, если 4 единички, то 2 переменные сокращаются и т.д., т.е. чем больше группы единиц, тем меньше функция.
Любая единичка может входить в любое количество групп.
П
ервой
выделенной группе соответствует
произведение YZ ( X
имеет разные значения для разных клеточек
в группе, поэтому X в это
произведение не входит).
Второй группе (вертикальной) соответствует произведение XY (Z изменяется при переходе со строки на строку, поэтому Z в это произведение не входит).
Аналогично, третьей группе соответствует поизведение XZ.
Получаем функцию:
Д
ля
большей наглядности, столбцы и строки,
соответствующие единичным значениям
аргументов, подчеркивают. Соответственно
записывают для каждой группы единиц
произведение тех переменных, которые
подчеркивают всю группу, например на
рисунке двум выделенным единицам
соответствует произведение
YZ.
Таблице истинности, которую мы использовали
в качестве примера, соответствует
функция
.
Попробуем упростить эту функцию
аналитически, для этого сгруппируем
произведения так, чтобы при вынесении
общей части за скобки в скобках оставалась
только одна переменная и ее отрицание
(
.
При этом произведение XYZ
необходимо использовать трижды. В
алгебре логики это возможно, поскольку
A&A = A.
Мы получаем тот же ответ, причем как аналитически мы трижды использовали произведение XYZ, так и в карте Карно мы трижды использовали единичку, соответствующую набору 111. Таким образом карта Карно является графическим отображением возможности минимизации функции, что делает этот процесс гораздо более наглядным.
С
оседними
являются не только клетки, расположенные
рядом, но и клетки на границах карты
Карно.
Для кары на рисунке функция будет иметь
вид:
(если
значение переменной равно нулю, она
записывается с отрицанием).
|
A |
B |
C |
D |
F |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
2 |
0 |
0 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
1 |
1 |
4 |
0 |
1 |
0 |
0 |
0 |
5 |
0 |
1 |
0 |
1 |
1 |
6 |
0 |
1 |
1 |
0 |
1 |
7 |
0 |
1 |
1 |
1 |
1 |
8 |
1 |
0 |
0 |
0 |
1 |
9 |
1 |
0 |
0 |
1 |
1 |
10 |
1 |
0 |
1 |
0 |
0 |
11 |
1 |
0 |
1 |
1 |
1 |
12 |
1 |
1 |
0 |
0 |
0 |
13 |
1 |
1 |
0 |
1 |
1 |
14 |
1 |
1 |
1 |
0 |
0 |
15 |
1 |
1 |
1 |
1 |
1 |
Пусть имеется таблица истинности, приведенная на рисунке.
CD\AB |
00 |
01 |
11 |
10 |
00 |
1 |
0 |
0 |
1 |
01 |
1 |
1 |
1 |
1 |
11 |
1 |
1 |
1 |
1 |
10 |
0 |
1 |
0 |
0 |
Единичные значения образуют 3 группы: из 2 единиц, из 4 единиц (на границах) и из 8 единиц.
Когда объединяют 2 единички, одна переменная сокращается ( в данном случае D).
Когда объединяют 4 единички, две переменные сокращается ( в данном случае A и D).
Когда объединяют 8 единичек, три переменные сокращаются ( в данном случае A, B и C).
В результате мы получаем функцию:
|
|
|
|
A |
|
|
C\AB |
00 |
01 |
11 |
10 |
|
0 |
0 |
0 |
1 |
0 |
C |
1 |
0 |
0 |
1 |
0 |
|
|
|
B |
|
|
Например, составим карту Карно для
функции:
Конъюнкции AB соответствует группа, показанная на рисунке (клеточки, в которых A и B равны 1).
|
|
|
A |
||
|
C\AB |
00 |
01 |
11 |
10 |
|
0 |
0 |
0 |
0 |
0 |
C |
1 |
1 |
1 |
0 |
0 |
|
|
|
B |
|
|
|
|
|
A |
||
|
C\AB |
00 |
01 |
11 |
10 |
|
0 |
0 |
0 |
0 |
0 |
C |
1 |
0 |
1 |
1 |
0 |
|
|
|
B |
|
|
|
|
|
A |
||
|
C\AB |
00 |
01 |
11 |
10 |
|
0 |
0 |
0 |
1 |
0 |
C |
1 |
1 |
1 |
1 |
0 |
|
|
|
B |
|
|
Объединив единички в 2 группы (чем меньше
количество групп, тем лучше), получим
минимальный вид функции:
Минимизировать аналитический вид функции с помощью карты Карно можно, только если она представлена в виде дизъюнкции конъюнкций или в виде конъюнкции дизъюнкций. Если функция содержит отрицания над выражениями, их необходимо убрать, используя законы де Моргана.
Пример:
Каждому произведению соответствуют следующие группы единиц:
|
|
|
a |
|
|
|
|
|
|
|
|
|
|
|
c |
|
|
1 |
1 |
|
|
1 |
1 |
|
|
|
a |
||
|
1 |
1 |
|
|
1 |
1 |
|
|
|
C |
|
|
|
|
|
|
|
|
|
|
|
a |
||
|
|
|
|
|
d |
|
|
1 |
1 |
|
|
1 |
1 |
|
|
|
|
|
|
ac
ad
|
|
|
|
|
|
1 |
|
|
1 |
1 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
|
|
|
|
|
|
|
|
1 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
1 |
Окончательный вид таблицы.
|
|
a |
|
||
|
1 |
1 |
|
1 |
|
1 |
1 |
1 |
1 |
d |
|
c |
|
|
1 |
1 |
|
1 |
1 |
1 |
1 |
|
|
|
|
b |
|
|
|
Минимальный вид функции:
