Научная статья на тему 'Об одном методе построения полинома Жегалкина'

Об одном методе построения полинома Жегалкина Текст научной статьи по специальности «Математика»

CC BY
10708
639
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Об одном методе построения полинома Жегалкина»

Алехина М.А., Пичугина П.Г. ОБ ОДНОМ МЕТОДЕ ПОСТРОЕНИЯ ПОЛИНОМА ЖЕГАЛКИНА

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

Преобразование произвольной формулы алгебры логики: сначала строим дизъюнктивную нормальную форму (ДНФ) или конъюнктивную нормальную форму (КНФ), а затем — полином Жегалкина, используя известные соотношения

x = x ©1, x v y = xy = (x © 1)(y © 1) ©1 = xy © x © y . (1)

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

3) На значениях исходной функции f (x, x2,..., xn) = (f, f2, f,..., fn ) , строим треугольник Паскаля, складывая каждый раз соответствующие значения функции по модулю 2. Тогда числа на левой стороне полученного треугольника определяют коэффициенты полинома Жегалкина при монотонных конъюнкциях, соответствующих наборам переменных. Напомним, что элементарная конъюнкция называется монотонной, если она не содержит отрицаний переменных. Константа 1 (т. е. элементарная конъюнкция нулевого ранга) считается

по определению монотонной конъюнкцией.

Пример 1. Продемонстрируем предложенные методы построения полинома Жегалкина, если

f (x,y,z) = (x v y)(y v xz) .

Преобразуем логическую формулу (xvy)(y v xz) , используя формулы (1):

(x v y)(y v xz) = (xy © x © y)((y ©1)xz © (y ©1) © xz) = (xy © x © yXyZ © xz © y ©1© xz) =

= (xy © x © y)(xyz © y ©1) = xyxyz © xyy © xy © xxyz © xy © x © yxyz © yy © y = xyz © xy © x .

Таким образом, полином Жегалкина P(x, y, z) для данной функции имеет вид P(x, y, z) = xyz © xy © x . Теперь построим его методом неопределенных коэффициентов. Для этого запишем нашу функцию в виде многочлена с неопределенными коэффициентами:

f (x, y, z) = Axyz © Bxy © Cxz © Dyz © Ex © Fy © Gz © H , (2)

где A, B, C, D, E, F, G, H e{0,1}.

Таблица истинности нашей функции выглядит следующим образом:

x У z x V y y xz y V xz f = (x V y)( y V xz)

0 0 0 0 1 0 1 0

0 0 1 0 1 0 1 0

0 1 0 1 0 0 0 0

0 1 1 1 0 0 0 0

1 0 0 1 1 0 1 1

1 0 1 1 1 1 1 1

1 1 0 1 0 0 0 0

1 1 1 1 0 1 1 1

Чтобы определить неизвестные коэффициенты, подставим соответствующие значения переменных в правую и левую части формулы (2) и получим систему:

Н = 0 в 0 Н = 0

Р 0 Н = 0 •

В 0 Р 0 в 0 Н = 0

Е 0 Н = 1

С 0 Е 0 в 0 Н = 1

В 0 Е 0 ^ 0 Н = 0

А 0 В 0 С 0 В 0 Е 0 ^ 0 в 0 Н = 0

Решая систему, находим коэффициенты:

Н = 0 в = 0 Р = 0 •

В = 0 Е = 1 С = 0 В = 1 А = 1

Подставляя найденные значения А, В, С, В, Е, В, О, Н в формулу (2), получим полином Жегалкина того же вида, что и в первом случае: /(х,у,'£) = (хVу)(уVх£) = ху.z©ху©х .

Для реализации третьего метода, зададим исходную функцию набором ее значений /(х,у,г) = (00001101) . На строке значений функции построим треугольник Паскаля, складывая попарно по модулю 2 соседние значения фун кции:

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

Сравнивая предложенные методы построения полинома Жегалкина, студенты (да и преподаватели тоже) отдают предпочтение последнему методу, обосновывая выбор быстротой получения результата и простотой алгоритма построения треугольника Паскаля. Изучая соответствующую данной тематике научную и научнометодическую литературу, мы не нашли строгого доказательства построения полинома Жегалкина с использованием треугольника Паскаля. Поэтому предлагаем свое доказательство для функций двух, трех и четырех переменных (исходя из тех соображений, что на практических занятиях со студентами другие случаи, как правило, не рассматриваются), т. е. п =2, 3, 4.

п=2. Проведем доказательство для булевой функции двух переменных /(х,х2) . Полином Жегалкина для

этой функции в общем виде будет выглядеть следующим образом: / (х, х2) = ахх ® ах ® ах ® аА , (3)

где а1 е {0,1}, I = 1,4 . Таблица истинности данной функции имеет вид:

х1 х2 Л ( x1, х2)

0 0 /1

0 1 /2

1 0 /з

1 1 /4

Значения функции / (1=1,2,3,4) можно определить, подставляя в соотношение (3) всевозможные набо-

Л = а4

ры значений переменных:

Решая систему относительно а,а,а,а, получим:

(4)

а4 = А а3 = /1 0 /2 а2 = /1 0 /3

а1 = Л 0 /20 /30 /4

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

Видим, что числа на левой стороне треугольника в точности определяет коэффициенты полинома Жегалкина, найденные при решении системы (см. соотношения (4)).

п=3. Теперь возьмем функцию трех переменных / (х, х2, х3) и представим ее полином Жегалкина с неопределенными коэффициентами а е {0,1}, I = 1,8 :

/(х, х2, х) = аххх ® ахх ® ахх ® ахх ® ах ® ах ® ах ® а • (5)

Строим таблицу истинности исходной функции:

х1 х2 хз

0 0 0 /1

0 0 1 /2

0 1 0 /з

0 1 1 /4

1 0 0 /5

1 0 1 /б

1 1 0 /7

1 1 1 /8

Используя таблицу истинности и соотношение (5), составим систему:

А = а8

/2 = а7 ® а8

/з = а6 ® а8

/4 = а4 ® аб ® а7 ® а8 .

/5 = а5 ® а8

/ = а ® а ® а ® а8 /7 = а2 а^ аб а8

/8 = а1 ® а2 ® аз ® а4

Решим эту систему и получим

а8 = /1 а7 = /1 0 /2 а6 = /1 0 /3

а4 = / 0 /2 0 /3 0 /4 (6)

а5 = /1 0 /5 а3 = /1 0 /2 0 /5 0 /6 а2 = ./і 0 /3 0 /5 0 /7

, а1 = Л 0 /2 0 /3 0 /4 0 /5 0 /6 0 /7 0 /8

Построим треугольник Паскаля, используя условные обозначения: / = і , /і 0 /, =і+л:

Сравнивая'полученные значения на левой стороне треугольника с найденными выше коэффициентами (б), видим, что они равны.

п=4. Проведем доказательство для функции четырех переменных

/ (х1, х2, Л3, х4) = (/1, /2, /3, /4, /5, /6, /7, /8, /9, /10,/11, /12, /1з, /14, ^5 , /16) * Представим функцию Ї в виде многочлена с неопределенными коэффициентами а Є {0,1}, і = 1,16 .

/(х!, х2, х3, х4 ) = а^хххх^ 0 ах!х2х3 0 ах!х3х4 0 ах!х2х4 0 0ах2х3х4 0 а6х{х2 0 ахх 0 ахіх4 0 а9х2хъ 0 (7)

0ашх2х4 0 апхзх4 0 апх1 0 а1зх2 0 аихз 0 а15х4 0 а16.

Используя таблицу истинности функции Ї и формулу (7), получим систему:

/1 = а16

/2 = а15 0 а16

/з = а14 0 а16

/4 = ап 0 а14 0 а15 0 а16

/5 = а1з 0 а16

/6 = а10 0 а1з 0 а15 0 а16

/7 = а9 0 аи 0 аи 0 а16

/ = а 0 а 0 Оо 0 0і 0 аз 0 а4 0 а15 0 а1б

/9 = а12 0 а16

/10 = а8 0 а12 0 а15 0 а16

/11 = а7 0 а12 0 а14 0 а16

/2 = а 0 а 0 а 0 аі 0 а2 0 0 а 0 а1б

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

/1з = а6 0 а12 0 а1з 0 а16

/ 4 = а 0 а 0 а 0 ао 0 аг 0 аз 0 а 0 а1б / 5 = а 0 а 0 а 0 а 0 а2 0 а 0 а4 0 а1б

/ б = а 0 а 0 а 0 а 0 а 0 а 0 а 0 а 0 а 0 ао 0 аі 0 аг 0 а 0 а4 0 а 0 аб ■

Решим эту систему относительно коэффициентов а,і = 1,16 , и получим систему (8).

а16 = / а15 = Л 0 /2

а14 = / 0 /з % = / 0 /2 0 /з 0 /4

а1з = /0 /5

а10 = /0 /20 /50 /6

0) = У!0 /з0 /50 /7 (8)

а5 = Л 0 /2 0 /з 0 /4 0 /5 0 /6 0 /7 0 Л

а = / 0 /9

а = / 0 /2 0 /9 0 /10 а7 = Л 0 Л 0 /9 0 /11

а = / 0 /2 0 Л 0 Л 0 /9 0 /10 0 /11 0 /12 а6 = / 0 /2 0 /5 0 /6

а9 = / 0 /5 0 /9 0 /1з

а4 = Л 0 /2 0 /5 0 /6 0 /9 0 Л) 0 /1з 0 /14

а2 = Л 0 Уз 0 /5 0 /7 0 /9 0 /11 0 /1з 0 /15

а = /0 /20 /з0 /40 /50 /60 /70 /80 /90

0/10 0 /11 0 /12 0 /1з 0 /14 0 /15 0 /16.

Нетрудно проверить равенство коэффициентов из системы (8) со значениями на левой стороне треугольника Паскаля, построенного для набора значений данной функции

Щ,/2,/з,/4,/5,/6,/7,/8,/9,Л),/11,/12,/1з,/14,/15,/16) •

Треугольник Паскаля приведен не полностью, выписана лишь интересующая нас левая часть:

2 3 4 5 6 7

1+2 2+3 3+4 4-5 5+6 6+7

1+3 2-4 3+5 4+6 5-7

1+2+3+4 2+3+4+5 3+4+5+6 4+3+6+7

1+5 2+6 3+7 4-8

1+2+5+6 2—3+6+7 3+4+7+8

10 11 12 13 14 15 16

4151819

1+3+5+7 2+4+6+8 3+5+7+9 4+6+8+10

1+2+3+4+5+6+7+8 2+3+4+5+6+7+8+9 3+4+5+6+7+8+9+10

1+9 2-10 3+11

1+2+9+10 2-3+10+11 3+4+11+12

1+3+9+11 2-4+10+12 3+5+11-13

1+2+3+4+9+10+11+12 2+3+4+5+10+11+12+13 3+4+5+6+11+12+13+14

1+5+9+13 2+6+10+14 3+7+11+15

1+2+5+6+9+10+13+14 2+3+6+7+10+11-14+16

1+3+7+9+11+13+15 2+4+6+8+10+12+14+16

1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16.

Таким образом, для булевой функции / (х1,..., хп) при п =2, 3, 4 нами представлено обоснование (доказательство) возможности использования треугольника Паскаля для построения полинома Жегалкина.

В заключении проиллюстрируем способ построения полинома Жегалкина с использованием треугольника Паскаля на примере.

Пример 2. Представить полиномом Жегалкина функцию f ( х1, х2, х ) = ( 01110 010 ) .

Решение. Запишем наборы значений переменных х1, х2, х3 в лексикографическом порядке для определения монотонных конъюнкций (слева, в скобках, приведены соответствующие монотонные конъюнкции) и построим

треугольник Паскаля на значения:': функции (справа) .

000 (1) 00 1 (л.)

0 1 О Jx2)

0 11 (Ж2Х3)

1 по ,«

1 0 1 1 1 1

1 (.Tl-Ts)

0..

1 (л-даз)

На левой стороне треугольника Паскаля получены коэффициенты полинома при соответствующих конъюнкциях. Таким образом, f= Х3 Ф Х2 Ф Х2Х3 Ф Х1Х3 .

ЛИТЕРАТУРА

1. Кузнецов О.П., Адельсон-Вельский Г.М. Дискретная математика для инженера. - М.: Энергоатомиз-

дат, 1988.

2. Гаврилов Г.П., Сапоженко А.А. Задачи и упражнения по дискретной математике. - М.: Физматлит,

2004. - 414 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.