Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по дискретной математике.doc
Скачиваний:
35
Добавлен:
23.09.2019
Размер:
453.12 Кб
Скачать
  1. Минимизация булевых функций с помощью карты Карно.

Поясним, что карта Карно - это схематическое представление булевой функции в виде дизъюнктивной формы. Карта состоит из прямоугольника, который разбивает на клетки. Для заданного числа переменных, от которых зависит функция, все клетки карты Карно представляют собой всевозможные слагаемые, которые участвуют в СДНФ. Эти слагаемые располагаются в клетках карты таким образом, чтобы ближайшие соседние клетки (кроме диагональных) содержали слагаемые., которые отличаются друг от друга одним сомножителем и каждый раз новым. Требование для слагаемых “отличаться друг от друга одним сомножителем и каждый раз новым” также выполняется и для границ карты. Здесь имеется в виду возможность “сшивания границ”, при которой последняя правая колонка карты становится предшествующей первой левой колонке, а также верхняя строка считается последующей за нижней строкой.

Задача 2. Для булевой функции F(01010101 ), заданной вектором значений, определить: 1 ) СДНФ, которую затем минимизировать по карте Карно

Сднф мы уже получили ( z) ( y z) ( x z) ( x y z)

Составим теперь для данной функции F карту Карно, с помощью которой мы минимизируем (сократим) найденную СДНФ. Существуют различные способы конструирования карт Карно (см. указанную литературу ), одним из которых мы сократим полученную нами СДНФ. В клетку карты мы будем вписывать 1, если на пересечении соответствующего столбца и строки стоят сомножители слагаемого, которое присутствует в СДНФ. Если же какое-либо слагаемое отсутствует, то клетку оставляем пустой. Заполним карту Карно для данной функции F от 3-х переменных.

yz z y

1

1

1

1

x

Напомним, что карты Карно предназначены для минимизации булевых функций. Приведем правило минимизации булева выражения: 1. Изолируем все единицы, которые не имеют ближайших соседей— единиц. Слагаемые, отвечающие таким единицам, не упрощаются. 2. Выделяем те единицы, которые имеют только по одной соседней клетке, содержащей единицу, т.е. блок из 2-х соседних единиц. Такие пары заменяем слагаемыми, которые содержат в качестве сомножителей элементы, общие для обеих клеток. 3. Выделяем те единицы, которые могут быть объединены в блок из 4-х соседних единиц. Такие блоки соответствуют слагаемым, которые содержат в качестве сомножителей элементы, общие для всех четырех клеток. 4. Выделяем те единицы, которые могут быть локализованы в блок из 8-ми соседних единиц. Их мы заменяем слагаемыми, которые содержат в качестве сомножителей элементы, общие для всех восьми клеток. 5. Оставшиеся единицы по возможности присоединяем к выделенным блокам.

Действуем в соответствии с нашим правилом.

В данном случае изолированных единиц нет, групп только из 2-х соседних единиц также нет, поэтому мы обводим кружком блок из 4-х соседних единиц. Заменяем его одним слагаемым, состоящим из элементов, общих для всех четырех клеток, те.z. Таким образом, мы сократили полученную нами СДНФ для данной функции F(x,y,z) по карте Карно, те. минимизированная форма имеет следующий вид: F(x,y,z) = z.