Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тихомирова Л.С. Методы минимизации булевых функций.doc
Скачиваний:
138
Добавлен:
02.05.2014
Размер:
1.86 Mб
Скачать

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

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

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

Так, например, конъюнкции ипокрываются конъюнкцией(две вершины – ребро);

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

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

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

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

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

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

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

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

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

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

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

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

(1)

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

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

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

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

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

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

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

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

(2)

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

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

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

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