- •Минимизация логических функций
- •Определение: Преобразование логических функций с целью упрощения их аналитического представления называются минимизацией.
- •Метод непосредственных преобразований логических функций
- •Если некоторая логическая функция φ (в частном случае элементарное произведение) равна нулю на
- •Дизъюнкция всех простых импликант называется сокращенной дизъюнктивной нормальной формой (СкДНФ) логической функции.
- •Метод получения сокращенной дизъюнктивной нормальной формы логической функции называется методом Квайна.
- •Этапы преобразования ФАЛ по методу Квайна :
- •Пример. Минимизировать функцию, заданную в СДНФ:
- •Для поиска тупиковых форм функции пользуются методом
- •Вначале из всех простых импликант выбираются существенные импликанты, которые только одни покрывают какие-
- •Первичные
- •Метод Квайна-Мак-Класки.
- •Этап 3.
- •Последовательность выполнения шагов этапа 3
- •Этап 4.
- •Этап 5. Найти существенные импликанты функции.
- •Этап 6. Найти тупиковые дизъюнктивные нормальные формы и выбрать из них минимальные ДНФ.
- •МИНИМИЗИРУЮЩИХ КАРТ (КАРТЫ КАРНО ИЛИ ДИАГРАММЫ ВЕЙЧА)
- •Диаграмма Вейча для функции 3-х переменных
- •Если данную таблицу рассматривать как цилиндр, образованный соединением первой и последней колонок, то
- •Получение минимальной ДНФ с помощью диаграмм Вейча сводится к отысканию минимального числа m-кубов
- •Пример. Минимизировать функцию, заданную в СДНФ:
- •Неполностью определенные ФАЛ
- •ПРИМЕР. Получить методом диаграмм Вейча минимимальную дизъюнктивную нормальную форму неполностью определенной ФАЛ, заданой
- •Получим МКНФ этой же функции:
Вначале из всех простых импликант выбираются существенные импликанты, которые только одни покрывают какие- либо конституенты единицы данной функции (в колонке матрицы только один символ покрытия).
Существенные импликанты обязательно включаются во все тупиковые формы.
Затем находятся покрытия остальных конституент единицы простейшими импликантами.
Первичные |
|
|
|
Конституэты единицы |
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
импликанты |
x |
|
z |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
xyz |
xy |
|
z |
xyz |
|||||||||||
y |
xyz |
|
|||||||||||||||||
|
|||||||||||||||||||
|
|||||||||||||||||||
x _ z |
+ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
+ |
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||
x |
|
|
_ |
+ |
|
|
|
|
|
|
|
|
|
|
+ |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
y |
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||
_ y z |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
+ |
|
|
+ |
|
+ |
+ |
|
|||||||||
|
|
|
|
|
|
|
|
|
|||||||||||
_ |
|
|
z |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
y |
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||
Тупиковые формы:
f (x,y,z)1 x z y z y z f (x,y,z)2 x y y z y z
Минимальные формы:
f(x, y, z)МДНФ1 x z y z y z
f(x, y, z)МДНФ2 x y y z y z
-существенная импликанта
-существенная импликанта
Метод Квайна-Мак-Класки.
1.Каждая конъюнкция в СДНФ представляется своим двоичным набором., где переменной, входящей в произведение в прямом виде ставится в соответствие единица («1»), в инверсном – нуль («0»).
2.Вся совокупность номеров наборов разбивается на группы в зависимости от числа единиц, имеющихся в номерах наборов (0-группа, 1-группа, 2-группа и т.д.).
3.Сравниваются элементы двух соседних группы, отличающиеся на одну единицу.
При этом устанавливается возможность склейки двух наборов из этих групп, делается необходимая пометка и пишется результат склейки.
4.Процесс продолжается до тех пор, пока возможны склейки.
5.Все несклееные наборы, а также конечные результаты склейки дают простые импликанты.
ПРИМЕР. f(a,b,c,d)СДНФ = (3,7,8,10,11,12,15)
Решение
Этап 1.
Выписать двоичное представление наборов, образующих СДНФ данной функции:
(0011, 0111, 1000, 1010, 1011, 1100, 1111)
Этап 2.
Разбить полученные двоичные коды на группы, содержащие одинаковое количество единиц в коде. Для ФАЛ, зависящих от n переменных, таких групп может быть n+1 (ни одной единицы в коде, одна единица, две единицы, ... , n единиц в коде). Расположить группы по возрастанию (или убыванию) количества единиц. Если количество получившихся групп меньше n+1, то отсутствующие группы пометить как пустые:
- - - -
1000
0011
1010
1100
0111
1011
1111
Этап 3.
Сравнить каждый код из одной группы с каждым кодом из соседних групп. Если найдены два кода, отличающиеся только в одном разряде (то есть они могут “склеиваться”), то пометить эти коды каким- либо особым символом, например " * ", и в новую группу поместить код, сохраняющий значение в совпадающих разрядах и имеющий какой-либо особый символ, например "-", на месте несовпадающего разряда. При этом образуется n-1 новая группа кодов. Если код попадает в несколько “склеек”, то он символом * может помечаться только один раз.
Эта процедура повторяется для вновь образованных групп до тех пор, пока возможна процедура “склеивания“ элементов соседних групп. Максимальное возможное число шагов на этом этапе равно n. На всех шагах, начиная со второго, необходимо следить за тем, чтобы два “склеиваемых” кода представляли собой термы, зависящие от одних и тех же логических переменных, то есть знаки "-" у них должны находиться в одних и тех же позициях. При появлении в одной группе нескольких одинаковых импликант для дальнейшего анализа следует оставить лишь одну из них.
Последовательность выполнения шагов этапа 3
- - - - |
- - - - |
|
|
- - - - |
|||
1000* |
10-0 |
|
|
- - - - |
|||
|
1-00 |
|
|
|
|||
0011* |
0-11* |
|
|
--11 |
|||
1010* |
|
|
|
-011* |
|
|
--11 |
|
|
|
|||||
1100* |
|
|
|
101- |
|
|
|
|
|
|
|
|
|
||
0111* |
|
|
|
-111* |
|
|
|
1011* |
|
|
|
1-11* |
|
|
|
1111* |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
шаг 1 |
шаг 2 |
|||
|
|
|
|
||||
Этап 4.
Составить импликантную матрицу.
Первичные |
|
Конституэты единицы |
|
||||
|
|
|
|
|
|
|
|
импликанты |
0011 |
0111 |
1000 |
1010 |
1011 |
1100 |
1111 |
--11 |
+ |
+ |
|
|
+ |
|
+ |
10-0 |
|
|
+ |
+ |
|
|
|
1-00 |
|
|
+ |
|
|
+ |
|
101- |
|
|
|
+ |
+ |
|
|
-111 |
|
+ |
|
|
|
|
+ |
Этап 5. Найти существенные импликанты функции.
Для рассматриваемой функции существенными импликантами будут - -11 и 1-00, так как только первичная импликанта --11 позволяет покрыть минтерм 0011 исходного набора, а первичная импликанта 1-00 необходима для покрытия минтерма 1100.
Первичные |
|
|
Конституэты единицы |
|
|
||
|
|
|
|
|
|
|
|
импликанты |
0011 |
0111 |
1000 |
1010 |
1011 |
1100 |
1111 |
--11 |
+ |
+ |
|
|
+ |
|
+ |
10-0 |
|
|
+ |
+ |
|
|
|
1-00 |
|
|
+ |
|
|
+ |
|
101- |
|
|
|
+ |
+ |
|
|
-111 |
|
+ |
|
|
|
|
+ |
Этап 6. Найти тупиковые дизъюнктивные нормальные формы и выбрать из них минимальные ДНФ.
Рассматриваемая функция имеет две различные тупиковые, они же минимальные дизъюнктивные формы:
f1МДНФ = c d v a c d v a b d
- -1 1 1- 0 0 1 0 - 0 f2МДНФ = c d v a c d v a b с
- -1 1 1- 0 0 1 0 1 -
МИНИМИЗИРУЮЩИХ КАРТ (КАРТЫ КАРНО ИЛИ ДИАГРАММЫ ВЕЙЧА)
Карты Карно (их разновидностью являются диаграммы Вейча) являются графическим представлением таблиц истинности. Поэтому они строятся или по таблице истинности анализируемой функции, или же по ее СНДФ.
Диаграммы Вейча представляет собой прямоугольник, разбитый на квадраты, число которых равно общему числу наборов для данной функции n переменных, т.е. оно равно 2n. Так, для функции 3-х переменных квадратов будет 8, 4-х - 16 и т.д.
Каждый квадрат соответствует определенному набору или терму, причем наборы располагаются так, чтобы соседние наборы или термы, как по горизонтали, так и по вертикали, отличались бы только значением одной переменной: в одном квадрате она с инверсией, а в другом, соседнем - без. Причем, надо учесть, что квадраты, расположенные на противополжных концах каждой строки или столбца, также являются соседними.
Функцию в СНДФ наносят на карту, отмечая, например, знаком 1 квадраты, соответствующие тем наборам, на которых функция равна единице, т.е. в СНДФ функции есть соответствующий минтерм. Остальные квадраты отмечаются знаком 0.
