logo
ДМ 2012 / +Конспект лекций / ДМ_РБ_Конспект 2010

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

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

f(x1,x2,x3) = k11x1 k01x1 k12x2 k02x2 k13x3 k03x3 k1112x1x2 k1012x1x2 k12x1x2 k0112x1x2 k0012x1x2 k1113x1x3 k1013x1x3 k0013x1x3 k1123x2x3 k1023x2x3 k0123x2x3 k0023x2x3 k111123x1x2x3 k110123x1x2x3 k101123x1x2x3 k100123x1x2x3 k011123x1x2x3 k010123x1x2x3 k001123x1x2x3 k000123x1x2x3

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

f(0,0,0) = k01k02k03k0012k0023k000123

f(0,0,1) = k01k02k13k0012k0113k0123k001123

……………………………………………

f(1,1,1) = k11k12k13k1112k1113k1123k111123

f(x1,x2,x3) = 0  1

Задание некоторой функции определяет значение первых частей системы: если f= 0 на соответствующем наборе переменных, то все коэффициенты входящие в уравнение, будут равны нулю. Это следует из свойства дизъюнкции. Тогда и в уравнении, где функция принимает единичное значение, надо вычеркивать все нулевые коэффициенты. Из оставшихся коэффициентов надо выбрать такой, который определяет темп наименьшего, и приравнять его к единице. А остальные коэффициенты приравнять к 0. Т.о. единичные коэффициенты определяют искомую ДНФ для системы уравнений.

Рассмотрим f(x1,x2,x3) =F(0,2,4,7), так называется десятичная форма записи для логического выраженияf(x1,x2,x3)= ,, ,x2, x1,, x1,x2,x3

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

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

k0023k0013k000123=1

k0013k000123=1

k0023k000123=1

k000123=1

В модифицированной системе вычеркивают коэффициенты максимального ранга. Оставшиеся коэффициенты позволяют получить минимальную форму:

f*(x1,x2,x3)= ,, x1,x2,x3