Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 2-1_А.doc
Скачиваний:
307
Добавлен:
27.03.2016
Размер:
2.19 Mб
Скачать

1.5.4. Полиномы Жегалкина

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

Определение. Произведением над множеством переменных Х=(х1 , ... , хn ) называют выражение вида:

P = хi1 . . . хis,

где (хi1, ... , хis ) Х .

Определение. Полиномом Жегалкина булевой функции f(хn) называют выражение вида :

f =0 1 P1 ...  k Pk,

где (P1, ..., Pk) все возможные произведения над множеством переменных Х=(х1, ... , хn), 0 , 1 , ... , k - булевы константы (0 или 1), знак  означает сумму по модулю 2.

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

Полиномы Жегалкина задают разложение функций в базисном наборе {0, 1, , }. Функция  пороговая, функции (0, 1, ) - симметричные. В виде полинома Жегалкина может быть представлена любая булева функция. Рассмотрим первый метод определения полинома по таблице истинности функции.

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

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

1. Представляем полином в общем виде: f = 0 1 P1 ... k Pk, где (P1 ,..., Pk ) — все возможные (с точностью до перестановок) произведения над множеством переменных функции Х = (х1, ... , хn), 0, 1, ...,k —неопределенные коэффициенты.

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

Пример 5. Найти коэффициенты полинома Жегалкина функции f = (01101111).

х

у

z

f

0

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

0

0

1

1

0

1

1

1

1

0

1

1

1

1

1

Решение. Обозначим переменные функции через х,у,z и построим ее таблицу истинности.

В общем виде полином имеет вид:

f =0 1 х 2 у 3 z 4 ху 5хz 6уz 7хуz.

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

ШАГ 0. (х,у,z) = (0,0,0). f (0,0,0)=0 1·0  2·0  3·0  4· 0·0  5·0·0 6·0·0 7·0·0·0= 0. Отсюда следует: 0 =0.

ШАГ 1. (х,у,z) = (0,0,1). f (0,0,1)=1·0 2·0 3 ·1 4·0·0 5·0·1 6·0·1  7·0·0·1=1. Отсюда: 3 = 1.

ШАГ 2. (х,у,z) = (0,1,0). f(0,1,0)=1·0 2·1  1·0  4·0·1  5·0·0 6 ·1·0 7·0·1·0 =1. Получим: 2= 1.

ШАГ 3. (х,у,z) = (0,1,1). f (0,1,1) = 1·0 1·1 1·1 4 ·0·1 5·0·1 6 ·1·1 7·1·1 = 0. Получим: 6 = 0.

ШАГ 4. (х,у,z) = (1,0,0). f(1,0,0)=1·1 1·0 1·0 4·1·0 5·1·0 6 ·0·0 7·1·0·0 =1. Получим: 1 = 1.

ШАГ 5. (х,у,z) = (1,0,1). f (1,0,1) =1·1 1·0 1·1 4·1·0 5·1·1 0·0·1 7·1·0·1=1. Получим: 5 = 1.

ШАГ 6. (х,у,z) = (1,1,0). f (1,1,0) =1·1 1·1 1·0 4·1·1 1·1·0  1·1·0  7·1·1·0 =1. Получим: 4 = 1.

ШАГ 7. (х,у,z) = (1,1,1). f (1,1,1) =1·1 1·1 1·1  1·1·1 1·1·1  1·1·1  7·1·1·1 =1. Получим: 7 = 1.

Подставляя поочередно найденные значения коэффициентов 0, 3, 2, 6, 1, 5, 4, 7 в первоначальную формулу, получим искомое представление функции в виде полинома Жегалкина: f = х у z ху хz хуz.

В методе неопределенных коэффициентов используется прямое вычисление значений коэффициентов из уравнений. Для булевых функций c малым числом единиц в векторе значений проще использовать СДНФ либо СВНФ.

Метод построения полинома Жегалкина по СДНФ (СВНФ)

Для построения полинома для заданной булевой функции f(хn). выполняют следующие действия.

1. Вначале строят СДНФ (СВНФ) функции f(хn), в которых используется базисный набор {,,} ({ ,  }).

2. Преобразуются внутренние функции построенной формы. С использованием эквивалентных преобразований

а) х = х 1,

б) х у = 1 х у ху,

осуществляется переход к базису {0, 1, , } во всех внутренних функциях формы.

3. Заменяется внешняя функция формы. СДНФ и СВНФ представляют собой суммы конституент единицы, которые никогда не принимают значение 1 на одинаковых наборах. Поэтому для соединения данных конституент вместо эквивалентного правила x y = х у ху и вышеприведенной для функции Вебба формулы б) можно использовать неэквивалентные в общем случае правила замены:

 (К1 , ... , Кр ) = К1  ...  Кр ,

  ( К1 , ... , Кр ) = К1  ...  Кр .

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

а) х х = 0.

5. Полученная в итоге сумма произведений над множеством переменных Х=(х1, ... , хn) является искомым полиномом Жегалкина функции f(хn).

Пример 6. Построить полином Жегалкина для функции f = (01010010) из Примера 1 с использованием ее СДНФ.

Решение. Внутренние конъюнкции элементарных наборов и СДНФ будут следующие:

К 1 = x y z, К 2 = x y z , К 3 = x yz.

СДНФ имеет вид:

f =x y z x y z x yz =  (x y z , x y z, x yz).

Преобразуем внутренние конъюнкции, выполняя замену  х = х 1 и раскрывая скобки в произведениях:

К1 = (x 1) (y 1) z = (ху х у 1) z = х у z х z у z z,

К2 = (x 1) y z = х у z у z ,

К3 = x y (z 1) = х у z х у .

Заменяя внешнюю функцию логического сложения конституент единицы сложением по модулю 2, получим сумму произведений следующего вида:

f = х у z х z у z z х у z у z х у z х у .

Устраняя из нее парные слагаемые по правилу х х = 0, получим в итоге искомый полином Жегалкина:

f = z х у х z х у z.

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

ЗАДАЧИ

1. Привести пример задания одной и той же булевой функции при помощи двух различных ДНФ.

2. Построить СДНФ и СВНФ следующих функций:

а) ((х у) z)х; б) (х у)  z; в) (ху уz); г) (01101000); д) (1001101000001001); е) (0001001001010001) ; ж) (0100101000101001).

3. Построить СКНФ и СШНФ следующих функций:

а) ((х у) z); б) (ху) z; в) (ху уz); г) (11101001); д) (0111101011101101) ; е) (1011001101110111) ; ж) (1100110001011111).

4. Доказать эквивалентность в общем случае правил:

а) х = х  1;

б) х у = 1 х у х у;

в) x y = х у х у;

г) x х = 0.

5. Доказать справедливость для конституент К1 , ... , Кр СДНФ и СВНФ правил замены:

а)  (К1 , ... , Кр ) = К1 ... Кр ;

б)   ( К1 , ... , Кр ) = К1 ... Кр .

6. Построить методом неопределенных коэффициентов полиномы Жегалкина следующих функций: а)ху z; б) ( х у ) (у х); в) (х у)  (х у); г) (ху х) х у ; д) х (у z) ; е) (ху) (х z); ж) (х у) (х z).

7. Построить при помощи СДНФ полиномы Жегалкина функций 6а) — ж).

8. Построить при помощи СВНФ полином Жегалкина функций 6 а) —ж).

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]