Скачиваний:
109
Добавлен:
12.03.2015
Размер:
2.07 Mб
Скачать

Глава 1. Минимизация функций алгебры логики в классе днф1.

Из известных методов минимизации булевых функций в данной главе рассматриваются наиболее простые и распространенные в базисе {-,&}.

I Геометрический метод.

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

В геометрической интерпретации изобразим область определения произвольной булевой функции трех переменных множеством вершин трехмерного куба. Элементам куба можно поставить во взаимо-однозначное соответствие конъюнкции различного ранга: вершинам куба – конъюнкции третьего ранга, ребрам – второго, граням – первого. Ранг – число букв, образующих конъюнкцию. Каждый геометрический эквивалент меньшей размерности покрывается всеми геометрическими эквивалентами большей размерности (рис. 1-1).

Т

x1x2x3

ак, например, конъюнкцииипокрываются конъюнкцией(две вершины-ребро); конъюнкции ,,,покрываются либо двумя конъюнкциямии, либоилибо только(четыре вершины –либо два ребра, либо одна грань).

Б

рис. 1-1

улевую функцию зададим множеством вершин трехмерного куба, где она принимает единичные значения (зачерненные вершины куба на рис. 1-1) Запись функции в некоторой ДНФ соответствует нахождению покрытия, где- ранги покрывающих интервалов. Интервал -го ранга – подмножество вершин куба, соответствующее конъюнкции-го ранга. Задача о нахождении минимальной ДНФ соответствует нахождению такого покрытия, в котором сумма рангов всех покрывающих интервалов является минимальной, т.е.- минимально, ибо рангсовпадает с числом букв, входящий в интервал.

Для функций ина приведенных рис. 1-2 минимальными формами будут,илиДля второй функции задача решается неоднозначно.

Рис. 1-2

Пример 1-1: Минимизировать функцию, заданную следующей таблицей истинности

Таблица 1-2

x1

0

0

0

0

1

1

1

1

x2

0

0

1

1

0

0

1

1

x3

0

1

0

1

0

1

0

1

f(x1, x2, x3)

1

0

1

1

0

0

1

1

Ее формула в СДНФ имеет вид:

.

x3

Отметим на рис. 1-3 вершины, соответствующие конъюнкциям, входящим в СДНФ данной функции.

З

Рис. 1-3

x2

x1

x2

аметим, что четыре вершины лежат в одной грани, а две на одном ребреОткуда следует, что минимальная форма функции и есть сумма этих интервалов , т.е.. Другого варианта решения здесь не может быть. Задача решается однозначно.

2 Метод неопределенных коэффициентов.

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

Представим функцию в виде следующей ДНФ:

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

(1)

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

Рассмотрев все уравнения, в правой части которых стоят нули, и приравняв все коэффициенты этих уравнений нулю, в остальных уравнениях вычеркивают вошедшие в них нулевые коэффициенты. Удобно полученную систему переписать в более сокращенной форме, оставив в ней уравнения, в правой части которых стоят единицы, убрав при этом из этих уравнений нулевые коэффициенты. Затем выбирают в системе самые короткие уравнения. В этих уравнениях приравнивают единице коэффициенты, определяющие конъюнкции наименьшего возможного ранга (это возможно, т.к. дизъюнкция равна единице при обращении в единицу хотя бы одного члена). При этом надо выбрать такие конъюнкции наименьшего ранга, которые чаще встречаются в уравнениях системы. Остальные коэффициенты можно положить равными 0 или 1. Затем рассматривают оставшиеся уравнения и в них выбирают коэффициенты, соответствующие конъюнкциям наименьшего ранга по тому же принципу, и т.д.

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

Пример 1-2. Минимизировать функцию (см. пример 1-1).

Составим систему (обратите внимание на то, что она имеет стандартный вид, лишь в правой части изменяются значения в зависимости от таблицы истинности функции). Для удобства записи системы слева помещают координаты вершин (область определения функции). Верхние индексы коэффициентов комбинируют соответственно из записанных координат вершин с учетом взятых нижних индексов. Например, для второй вершины (0,0,1) верхним индексом для коэффициента будет 00; для- 01 и т.д.

Из уравнений 2, 5, 6 в силу свойств дизъюнкции вытекает, что

Удобно вычеркнуть уравнения, в правой части которых стоят нули, а в остальных уравнениях вычеркнуть коэффициенты равные нулю.

После этого система примет вид:

(2)

В системе (2) в силу свойства дизъюнкции можно приравнять единице коэффициент, тогда 2, 3, 4 и 5 уравнения этой системы превращаются в тождества, из первого же уравнения системы возьмем. Все остальные коэффициенты во всех уравнениях положим равными нулю.

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

Итак, мы нашли , остальные коэффициенты равны нулю. Отсюда минимальная форма данной функции:

Этот метод является громоздким, практически не используется, но мы рассмотрели его здесь с целью обоснования последующих методов.