Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПТЦА ч2 КЛ.doc
Скачиваний:
27
Добавлен:
20.08.2019
Размер:
16.45 Mб
Скачать

7.3.2 Цена покрытия кубов

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

Цена покрытия r-куба, соответствующего терму функции n переменных, определяется как разность (n – r) и соответствует количеству букв в минимизированном терме.

Например. 3-куб 11Х0ХХ имеет цену 6 – 3 = 3. Этому кубу соответствует терм x1x2 , содержащий три буквы.

Применяют два способа вычисления цены покрытия.

Цена СA покрытия - есть сумма цен всех термов входящих в покрытие:

CA = Σp(n – r),

где p - число термов в покрытии.

Цена СB покрытия - есть цена СA, увеличенная на число термов р в покрытии:

CB = CA + p.

Например, покрытие C = имеет цену:

CA=(n–r1)+(n–r2)+(n–r3)=2+2+4=8; CB=8+3=11.

Покрытие имеющее минимальную цену СA называется минимальным покрытием комплекса. ДНФ определенная по минимальному покрытию, называется минимальной ДНФ (МДНФ).

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

Рассматриваемый метод применим для минимизации функций алгебры логики от любого числа аргументов. Однако, для простоты изложения примем n=3.

В общем случае, любую ФЛ можно представить в виде универсальной ДНФ с неопределенными коэффициентами вида, например, . Верхний индекс отражает значения переменных в терме, нижний – индексы переменных, входящих в терм. По коэффициенту можно записать сам терм. Например, =x1 x3. Каждому коэффициенту можно присвоить значение 0 или 1, получая, таким образом, необходимый терм ДНФ.

Запишем ДНФ в общем, универсальном виде.

f(x1,x2,x3)= x1+ + x2+ + x3+ + + x1x2+ x1 + x2+ + x1x3+ x1 + + x3+ + x2x3+ x2 + x3+ + + x1x2x3+ x1x2 + x1 x3+ x1 + x2x3+ + x2 + x3+ (7.2)

Здесь представлены все возможные конъюнктивные члены, которые могут входить в нормальную дизъюнктивную форму представления функции f(x1,x2,x3).

Коэффициенты k с различными индексами являются неопределенными и их значение {0,1} подбираются так, чтобы получающаяся после этого НДФ соответствовала заданной ЛФ и была минимальной.

Критерием минимальности является минимальное количество букв в записи НДФ.

Если теперь задавать всевозможные наборы значений аргументов <x1,x2,x3> и приравнивать полученное после этого выражение (отбрасывая из 7.2 нулевые конъюнкции) значению функции на выбранных наборах, то получим систему уравнений для определения коэффициентов k.

Тогда, из 7.2 получим уравнения 7.3:

1=f0(0,0,0)= + + + + + +

0=f1(0,0,1)= + + + + + +

0=f2(0,1,0)= + + + + + +

0=f3(0,1,1)= + + + + + +

1=f4(1,0,0)= + + + + + + (7.3)

1=f5(1,0,1)= + + + + + +

1=f6(1,1,0)= + + + + + +

1=f7(1,1,1)= + + + + + +

При этом, учитываем следующие свойства:

х = 0; и x1+ x2+…+ хn=1, если любое xi=l, а также,

x1 + x2 + … + хn = 0, если x1=x2=…=хn=0.

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

Если fi = 0 на соответствующем наборе переменных, то все коэффициенты, входящие в данное уравнение, равны 0.

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

Можно сформулировать следующий алгоритм нахождения минимальных ДНФ по методу неопределенных коэффициентов.

  1. Выбрать очередное уравнение, в котором fi=0. Приравнять все коэффициенты этой строки к 0.

  1. Если нулевых уравнений fi нет, то перейти к п.З.

  1. Просмотреть уравнения, где fi=1, и вычеркнуть из них коэффициенты, встречающиеся ранее в уравнениях fi=0.

  2. Переписать уравнения, с не вычеркнутыми коэффициентами.

  3. Выбрать очередное уравнение fi=1 и вычеркнуть максимально возможное количество коэффициентов так, чтобы ранг оставшихся термов был минимальным.

  4. Записать минимальное уравнение.

  5. Конец.

Метод неопределенных коэффициентов наиболее подходит к ДНФ и непригоден к КНФ. Для большого числа n эффективность падает из-за большого числа функций.

Возьмем, для примера, значения функций системы уравнений 7.3.

f(x)= (0,4,5,6,7)=x1x2x3+x1x2 +x1 x+x1 + .

Находим в системе уравнений 7.3 функции, равные 0. Из нулевых функций определяем нулевые коэффициенты:

= = = = = = = = =

= = = = = = =0

П

+ + + = 1

+ + + = 1

+ + + = 1

+ + + + = 1

+ = 1

осле вычеркивания неопределенных коэффициентов равных 0, система уравнений примет вид:

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

= = = = = = = = =0

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

Отсюда, после склеивания одинаковых уравнений, находим МДНФ заданной функции

f(x1,x2,x3)= (7,6,5,4,0)=x1+ .

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