Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания по дискретной математике.doc
Скачиваний:
106
Добавлен:
22.11.2018
Размер:
4.5 Mб
Скачать

2.4. Минимизация дизъюнктивных нормальных форм

2.4.1. Приведение к дизъюнктивной нормальной форме

Ранее определено, что всякая функция алгебры логики, отличная от 0, может быть представлена совершенной дизъюнктивной нормальной формой

Однако СДНФ обычно допускает упрощения, в результате которых получается формула, также реализующая , но содержащая меньшее число символов (термов).

Рассмотрим методы представления функций алгебры логики простейшими формулами в классе так называемых дизъюнктивных нормальных форм (ДНФ).

Введем ряд определений. Назовем выражение

элементарной конъюнкцией.

Дизъюнктивной нормальной формой (ДНФ) называется формула, имеющая вид дизъюнкции элементарных конъюнкций , в которой все различны.

В таком случае СДНФ (совершенная дизъюнктивная нормальная форма) – это ДНФ, в которой каждая конъюнкция содержит все переменные или их отрицания.

Количество первичных термов, которые образуют форму, задающую булеву функцию , называют сложностью этой формы. Например, для .

Минимальной (наименее сложной) ДНФ функции называется ДНФ, реализующая и содержащая наименьшее число термов по сравнению со всеми другими ДНФ, реализующими .

Существует тривиальный алгоритм построения минимальной ДНФ. Все ДНФ, составленные из переменных , упорядочиваются по возрастанию числа термов и по порядку для каждой ДНФ проверяется соотношение . Первая по порядку ДНФ, для которой это соотношение выполняется, есть, очевидно, минимальная ДНФ. Однако, уже при этот метод приводит к перебору огромного числа ДНФ, так как известно, что число различных элементарных конъюнкций, составленных из , равно . Число же всех возможных ДНФ, составленных из , т.е. мощность множества, из которого требуется сделать выбор, равно . Таким образом, тривиальный алгоритм построения минимальной ДНФ является чрезвычайно трудоемким, по крайней мере при ручной обработке.

Существуют различные способы повышения эффективности алгоритма синтеза минимальных ДНФ. Большинство из них заключается в том, что из множества всех элементарных конъюнкций некоторым, сравнительно нетрудоемким способом, удаляются конъюнкции, которые заведомо не входят в минимальные ДНФ. Это приводит к снижению мощности множества ДНФ, в котором находятся минимальные ДНФ заданной функции. Вторая группа способов связана с более экономичным перебором ДНФ из этого множества.

2.4.2. Геометрическая интерпретация задачи минимизации днф

Для каждой ДНФ функции выполняется соотношение .

Говорят, что с каждой ДНФ функции связано покрытие подмножества такими интервалами , что . Обозначим через ранг интервала . Тогда совпадает с числом символов в ДНФ. Задача отыскания минимальной ДНФ сводится, очевидно, к отысканию такого покрытия интервалами , чтобы выражение было минимальным.

Простейший известный нам способ покрытия – покрытие СДНФ. Здесь каждый . Для ранее рассмотренного графического примера имели

Графически, из рис. 2.2, получим покрытие .

2.4.3. Допустимые конъюнкции

При построении минимальных ДНФ для функции достаточно рассматривать только те интервалы , для которых , т.е. . Такие интервалы и соответствующие им конъюнкции называются допустимыми.

Возможен следующий способ повышения эффективности тривиального алгоритма. Выделяются все допустимые конъюнкции и к множеству этих конъюнкций {} применяется тривиальный алгоритм. Этот простой прием существенно увеличивает эффективность тривиального алгоритма.

Множество всех допустимых конъюнкций {}может быть получено путем удаления из числа конъюнкций «лишних». Заметим, что конъюнкции, обращающиеся в единицу в вершине , есть произведения некоторых из символов . Поэтому, если , то из списка всех конъюнкций следует удалить конъюнкций, составленных из сомножителей, входящих в множество . Иными словами, если некоторая нулевая вершина n–куба связана с конъюнкцией , то недопустимыми являются все конъюнкции, которые могут быть получены из данного набора символов.

Пример.

Рассмотрим функцию, заданную таблицей истинности 2.12.

Таблица 2.12.

0 0 0

1

1 0 0

0

0 0 1

1

1 0 1

1

0 1 0

1

1 1 0

0

0 1 1

0

1 1 1

1

Множество состоит из трех точек – (011), (100), (110). Составим таблицу коньюнкций, связанных с этими точками.

Таблица 2.13.

Точки множества

Конъюнкции, обращающиеся в единицу

в точках на

011

100

110

Все конъюнкции, указанные в данной таблице, должны быть удалены из множества 27 конъюнкций, составленных из переменных . После удаления останутся конъюнкции EMBED Equation.DSMT4 .