- не подходит, поскольку оно
равно 1 не только на 0100 матрицы единиц, но и на наборах 0101, 0110, 0111
матрицы нулей;
- не подходит, поскольку равно 1
на всех наборах матрицы нулей;
-не подходит, т.к. равно 1 на
наборах 0101, 1101 матрицы нулей;
- не подходит, т.к. равно 1 на
наборе 0110;
-не подходит, т.к. равно 1 на
наборе 0101, 0110, 0111;
- не подходит, т.к. равно 1 на
наборе 0101;
- не подходит, т.к. равно 1 на
наборе 0110;
- не подходит, т.к. равно 1 на
наборах 0101 и 1101;
- не подходит, т.к. равно 1 на
наборе 0110;
-подходит, поскольку не равно 1 ни на одном наборе матрицы нулей и покрывает
наборы 0100, 0000 матрицы единиц.
Вписываем
в МДНФ
и удаляем наборы 0100 и 0000 из матрицы единиц: ![]()
![]()
, 
Выписываем набор 0001 матрицы единиц и аналогично ищем кратчайшее произведение равное единице на этом наборе:
- не подходит, поскольку дает
значение 1 наборам 0101, 0110, 0111 матрицы нулей;
-подходит, поскольку не равно 1
ни на одном наборе матрицы нулей и покрывает наборы 0001, 1001 матрицы единиц.
Вписываем
в МДНФ и удаляем наборы 0001 и 1001 в
матрице единиц:
,
![]()
,
.
Выписываем набор 1110 и, поочередно рассматривая
претенденты
, находим кратчайшее произведение
равное 1 на наборах 1110 и 1100 и равное
нулю на всех наборах матрицы нулей. Вычеркиваем наборы 1110 и 1100 из матрицы
единиц. Поскольку матрица единиц пуста – минимизация закончена. МДНФ имеет вид:
.
Замечание: если искать покрытие матрицы единиц функцией Шеффера с минимальным числом аргументов, то получим минимальную форму в базисе Шеффера. Естественно, что следует учитывать особенности этой функции:
- если претендент, покрывающий набор матрицы единиц и равный нулю на всех наборах матрицы нулей состоит из одного аргумента, он должен записываться в минимальную форму с дополнительным отрицанием;
- если претендент покрывает все наборы матрицы единиц и
равен нулю на всех наборах матрицы нулей, то он записывается с общим
отрицанием. Для рассмотренного примера претенденты, которые входят в
минимальную форму:
,
,
, а минимальное выражение ![]()
Видно, что при работе алгоритма многократно проверяются уже отвергнутые претенденты, что сильно увеличивает время, затрачиваемое на минимизацию. Рассмотрим модификацию алгоритма свободного от этого недостатка на примере получения МДНФ.
Рассматривается матрица нулей и формируется очередь допустимых претендентов, описываемых одним аргументом. Допустимым будет претендент, который равен нулю на всех наборах матрицы нулей. Если допустимый претендент покрывает хотя бы один набор матрицы единиц, он вписывается в формулу, а покрываемые наборы исключаются из матрицы единиц. Если – нет, то претендент в формулу не входит и рассматривается следующий допустимый претендент из очереди. Если все наборы матрицы единиц удалены, работа алгоритма закончена, если же нет, рассматривается следующий допустимый претендент из очереди, а если очередь пуста, то формируется новая очередь допустимых претендентов, зависящих уже от двух аргументов и т.д.
Алгоритм получения МДНФ:
1) Задать длину претендента
;
2) Рассматривая матрицу нулей сформировать очередь всех
допустимых претендентов длины
;
3) Если очередь пуста, принять
и
перейти к пункту 2, иначе – к пункту 4;
4) Взять первого допустимого претендента из очереди и проверить покрывает ли он хотя бы один набор в матрице единиц. Если – нет, то допустимый претендент удалить из очереди и перейти к пункту 3, если – да, то перейти к пункту 5.
5) Включить допустимый претендент в формулу, представляющую собой сумму претендентов;
6) Исключить наборы, покрываемые претендентом из матрицы единиц;
7) Исключить претендент из очереди;
8) Если матрица единиц не пуста, то перейти к пункту 3, иначе – конец.
В рассматриваемом примере претенденты
недопустимы, поскольку обращают в единицу
один или несколько наборов матрицы нулей.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.