Научная статья на тему 'Быстрый алгоритм построения векторов коэффициентов поляризованных полиномов k-значных функций'

Быстрый алгоритм построения векторов коэффициентов поляризованных полиномов k-значных функций Текст научной статьи по специальности «Математика»

CC BY
205
32
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
K-ЗНАЧНАЯ ФУНКЦИЯ / ПОЛЯРИЗОВАННЫЙ ПОЛИНОМ / БЫСТРЫЙ АЛГОРИТМ / K-VALUED FUNCTION / POLARIZED POLYNOMIAL / FAST ALGORITHM

Аннотация научной статьи по математике, автор научной работы — Селезнева Светлана Николаевна, Маркелов Николай Константинович

Предложен быстрый алгоритм построения векторов коэффициентов поляризованных полиномов k-значных функций по векторам их значений (при простых k). Получены формулы подсчета по значениям k-значных функций коэффициентов их поляризованных полиномов.

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

Похожие темы научных работ по математике , автор научной работы — Селезнева Светлана Николаевна, Маркелов Николай Константинович

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

The fast algorithm for building the polarized polynomial coefficients' vectors of k-valued functions by their values is proposed (for prime k). The formulas for polarized polynomial coefficients of k-valued functions by their values are obtained.

Текст научной работы на тему «Быстрый алгоритм построения векторов коэффициентов поляризованных полиномов k-значных функций»

УЧЕНЫЕ ЗАПИСКИ КАЗАНСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА

Том 151, кн. 2

Физико-математические пауки

2009

УДК 519.7

БЫСТРЫЙ АЛГОРИТМ ПОСТРОЕНИЯ ВЕКТОРОВ КОЭФФИЦИЕНТОВ ПОЛЯРИЗОВАННЫХ ПОЛИНОМОВ к-ЗНАЧНЫХ ФУНКЦИЙ

С.Н. Селезнева, Н.К. Маркелов

Аннотация

Предложен быстрый алгоритм построения векторов коэффициентов поляризованных полиномов к-зна^ых функций то векторам их значений (при простых к). Получены формулы подсчета по значениям к-значных функций коэффициентов их поляризованных полипомов.

к

ритм.

Одним из способов задания k-значных функций являются полиномы. Обычные и поляризованные полиномы являются каноническими формами записи функций [1, 2].

Известны быстрые алгоритмы нахождения векторов коэффициентов обычных и поляризованных полиномов булевых функций по векторам их значений [3. 4]. Ю.В. Таранниковым1 предложен быстрый алгоритм нахождения вектора коэффициентов обычных полиномов k-значных функций (при простых k > 3) по векторам их значений. В настоящей статье нами предложен аналогичный быстрый алгоритм нахождения векторов коэффициентов поляризованных полиномов k-значных функций (при простых k > 3) по векторам их значений.

Кроме того, памп найдены явные формулы подсчета значений коэффициентов

k

функций формулы подсчета значений коэффициентов обычных полиномов можно найти в [5].

Пусть k > 2, Ek = {0,1,..., k — 1}. Назовем k-значной функцией отображение fn : ЕП ^ Efc, n = 0,1,... Множество всех k-значных функций обозначим как Pk , множество в сех k-значных функций, зависящих от переменных xi,... ,xn, обозначим как ■

Будем рассматривать сложение и умножение по mod k.

Пусть 6 = (d1,... ,dn) е ЕП ■ Поляризованным полиномом по вектору поляризации 6 назовем полином

Е

cf(a) (xi + di)ai ••• (xn + dn)an,

n

a=(a1,...,an)eEjn

в котором cf (a) е Ek - некоторые коэффициенты и (xi + di)ai - степени, то есть (xi + di)ai = (xi + di) (xi + di) ••• (xi + di), (xi + di)0 = 1.

ai раз

Если 6 = (0,..., 0), то поляризованный по вектору 6 полином - обычный полином по mod k. В этом случае в коэффициентах будем опускать верхний индекс 6.

Если k - простое число, то каждая функция f (xn) G РЩ однозначно задается полиномом по mod k [1], и для каждой функции f(xn) G РЩ существует единственный полипом, поляризованный по произвольному вектору 6 из ЕЩ [2] .

k

Назовем вектором коэффициентов поляризованного по вектору поляризации S G ЕЩ полинома функции f (xn) G РЩ вектор значений функции cf (xn).

Известен быстрый алгоритм построения вектора коэффициентов полинома Жс-галкина булевых функций [3]. В.П. Супруном [4] найден быстрый алгоритм построения векторов коэффициентов поляризованных полиномов булевых функций. Ю.В. Таранниковым2 был найден быстрый алгоритм построения вектора коэффи-

k

В следующей теореме 1 мы предлагаем аналогичный быстрый алгоритм вычис-

k

Теорема 1. Пусть k - простое число, f (xn) G РЩ, fj(x2,..., xn) = = f (i, X2,... , x„), i G Ek, S = (di,..., dn) и S' = (d2,..., d„).

Тогда если n = 1, mo

cf (0)= f (-di), fc-i

f (j) = i(k-1)-j f (i - di), если j = 1,...,k - 2,

c

i=i

fc-i

cf (k - 1) = -E f (i - di),

i=0

и при n > 2

cf (0, X2, ...,!„) = cf_di (X2, . . .,!„),

fc-i

cf (j>2,...,x„) = i(k-i)-j cfj-di (x2,...,xn), гели j = 1, ...,k - 2,

i

fc-i

cf (k - 1,x2,...,xn) = cfi-dl (x2

сумма векторов берется покоординатно.

Доказательство. Вначале докажем вспомогательное утверждение. Лемма 1. Для каждого простого числа к

у1 Гк - 1, в = к - 1,

=|0, в = 1.....к - 2.

к — 1

Доказательство. Если в = к — 1, то ^ гк—1 = к — 1 по малой теореме Ферма.

¿=1

Для в = 1,..., к — 2 проведем доказательство индукцией по значению в.

к—1 к(к — 1)

Базис индукции. Если в = 1, то ^ % =--- = 0 ввиду простоты к.

¿=1 2

Индуктивный переход. Допустим, что лемма верна для всех в, в = 1,..., т—1 < < к — 2. Проверим ее справедливость для в = 'т. С учетом индуктивного предположения получаем

к—1 к—1 т+1

т+1 — гт+1) = ^^ V""4 С гт+1—3 =

0 = кт+1 =^((г + 1)т+1 — гт+1) = £

т+1

¿=0 3=1

т+1 к—1 к—1

= £ ст+1 £ ¿т+1—3 = ('+1)^

3 = 1 ¿=0 ¿=0

Так как т + 1 = 0, то

к—1

Лемма 1 доказана. □

Теперь докажем теорему.

1. Вначале рассмотрим обычные полиномы, то есть предположим, что вектор поляризации 6 = (0, ..., 0). Доказательство этого пункта отлично от обоснования алгоритма Ю.В. Таранникова для обычных полиномов. Пусть

/ (х1, Х2,...,хп) = х'1—1дк—1(х2, ...,хп)+-----+ Х1д1(х2, ...,хп)+ до(х2,..., хп),

где дк—1,...,д1,до — полиномы от переменных х2,... ,хп (или константы, если п = 1).

Несложно заметить, что д0(х2,..., хп) = / (0, х2,..., хп).

00 = 1

к — 1 к — 1 к—1

(г,х2,...,хп) = £ £3дз(х2,...,хп) =

¿=0 ¿=0 3=0

к—1 к—1

У^дз (х2, ...,хп)^2 г3 = (к — 1)дк—1(х2,.. .,хп).

3=0 ¿=0 к—1

Откуда, дк—1(х2,...,хп) = — ^ / (г, х2,..., хп) ■

¿=0

Пусть теперь 1 < з < к — 2. Рассмотрим функцию

Нх1, . . . , хп) х1 /(х1: ... : хп )

= хк—1дк—1 (х2,... ,хп) +-----+ х1д[(х2,.. .,хГ1) + д'0(х2,.. .,хГ1),

где д'к—1,...,д1, д0 — полиномы от переменных х2,... ,хп (или константы, если п = 1).

Заметим, что д'к—1(х2,..., хп) = дз(х2,..., хп). По уже доказанному

к—1 к—1 д'к—1(х2, .. . ,хп) = —£ д(г,х2,...,хп) = —£ г(к—1)—3 / (г,х2, .. . ,хп),

¿=0 ¿=0

к—1

откуда д3 (х2,...,хГ1) = — «( к—1)—3 / (г,х2,... ,хГ1), з = 1,...,к — 2.

¿=1

Теперь пусть п = 1. Тогда каждая из функций дк—1 является кон-

стантой и с/ (?) = , ? = к — 1,..., 1,0. Тогда по доказанному

с/ (0)= / (0);

к-1

с/(?) = — Е 1—''/(О, ? = 1,..., к — 2;

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

к— 1

с/(к — 1) = — £ /(»).

¿=о

Если п > 2, то с/ (?, х2,..., ж„) = с3з- (х2 ,...,!„). Откуда по доказанному с/(0, Х2,..., ж„) = с/0 (х2,..., ж„);

к—1

с/ (?,Х2 ,...,!„) = — Е гк 1 7 с/ (Ж2,...,Ж„), ? = 1,...,к — 2;

к-1

с/ (к — 1,Х2, ...,Хп) = — Е с/г (х2, .. . ,Хп ).

¿=о

2. Теперь рассмотрим произвольный вектор поляризации 3 = (¿1;..., ¿п). Воспользуемся тем, что поляризованный по вектору 3 = (¿1,..., ¿п) полином функции /(х1,..., ж„) является обычным полиномом для функции

0(ЖЬ...,ЖП) = / (Х1 — ¿1,...,Ж„ — ¿„).

Тогда при п =1

с/ (0) = сд (0)= 5(0) = / (—¿1); к-1 к-1 с/(?) = с3 (?) = — Е гк—1—75(г) = — Е гк—1—7/(г — ¿1), ? = 1, .. ., к — 2; ¿=1 ¿=1 к-1 к-1 с/(к — 1) = с3(к — 1) = — Е 5(г) = — Е /(г — ¿1).

¿=о ¿=о

При п > 2 положим 3' = (¿2,..., ¿п). Тогда

с/ (0, Ж2,...,ж„) = с3(0,Ж2,...,хп) = с3о (ж2,...,ж„) =

= с/_^1 (Х2 — ¿2, . . . ,Хп — ¿„) = (Х2, . . .,!„);

к-1

с/ (?,Х2,. .. ,Ж„) = сд (?, Ж2,...,Ж„) = — Е гк 1 7 с3г (Ж2,...,Ж„)

¿=1

к-1

= — Е гк—1—'7с/г_а1 (Х2 — ¿1, .. ., Ж„ — ¿„) =

^ П "П У

¿=1

к-1

— Е гк—1—7с/;_й1 (Х2,..., *п), ? = 1,..., к — 2;

k-1

с/ (k - 1j x2j ■ ■ ■ j xn) — cg (k - 1j x2j ■ ■ ■ j xn) — ] cgi (x2j ■ ■ ■ :

k-1 k-1

— -£ C/i-dj (x2 - d2j...,xn - dn) — -£ c/i-dl (x2j ■ ■ ■ j xn).

i=0 i=0

Теорема 1 доказана. □

В соответствии с доказанными в теореме 1 свойствами для функции f (xi, ■■■, xn) вектор коэффициентов ее поляризованного по вектору 6 полинома с/ может быть рекурсивно найден по вектор у ее значений f. Несложно подсчитать, что при этом будет затрачено O(N log N) битовых операций, где N — kn длина векторов.

Известна формула подсчета значений коэффициентов обычных полиномов булевых функций по их значениям [5]: если f(x1,... ,xn) £ Pn , то для каждого набора а — (a1, ■ ■ ■, an) £ En верно

С/ (а) — £ f (b1J ■ ■ ■,bn)j

р-фАа

где в —(b1,...jbn) £ En.

В следующей теореме 2 мы предлагаем формулы подсчета коэффициентов поляризованных полиномов k-значных функций по их значениям.

Сначала введем несколько определений. Для набора а — (a1, . . . ,an) £ En обозначим как I(а) множество индексов его ненулевых координат,

I(а) — {г : оц — 0}

Число ненулевых координат набора а назовем его весом и обо значим |а|,

|а| — |I (а)1

Теорема 2. Пусть k - простое число, f (x1, . . . ,xn) £ Pn, 6 — (d1, ..dn) £ £ Ekn

Тогда для каждого набора а — (a1,... ,an) £ En верно равенство

с/ (а) — (-1)1а £ m b,k-1-4 f (b1 - dn,...jbn - dn), f3.I{f})CI{a) \ai = 0 )

где в — (b1, ■ ■ ■ ,bn) £ En (полагаем, что произведение П по пустому множеству индексов равно 1 и 00 — 1).

Доказательство. 1. Вначале рассмотрим обычные полиномы, то есть предположим, что вектор поляризации 6 — (0,. ■ ■, 0).

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

Базис индукции: п — 1. Тогда для набора а — (a1) £ Ek, по теореме 1 получаем a1 — 0

с/ (a1)— f (0) — (-1) 1 a I f (0);

a1 — 1, ■ ■ ■ , k - 1

k-1

с/(a1) — - £ ik-1-a1 f (г) — (-1)1 а 1 £ bk-1-a1 f (b1).

i=0 p-.I(p)CI(a)

Индуктивный переход. Пусть для всех функций, зависящих не более чем от п — 1, п > 2, переменной, утверждение теоремы 2 верно. Рассмотрим функцию /(х1, ..., жп) € Р^ .

Пусть а = (а1,..., а„) € Е^ и а' = (а2,..., а„). Тогда по теореме 1 и с учетом индуктивного предположения получаем

1) если а1 = 0, то

с/(0, а2,. .., а„) = с/ (а2, .. ., а„) =

= (-1)И Е ( П 6?-1-а<) /о(Ь2,...,Ь„) =

= (-1)|а| Е ( П 6,--1-а<) /(0,Ь2,...,Ь„),

в:/(в)С/(0,а') \а* = 0 )

где в = (61,62,..., Ьп) € ЕП и в' = (62,...,6П).

2) если а1 = 0, то

к-1

С/(аь Я2,..., а„) = - Е 6 ?-1-а1 / (а2, ...,а„) = &1=0

= -Е6 к-1-а11(-1)|а'1 Е ( П 6?-1-аМ/Ь1 (62,...,6П)

Ь1=0 \ в':!(в')С/(а') \а* = 0,г>2 /

= (-1)н Е ( П 6?-1-ач /(61,62,...,6П),

где в = (61,62,..., 6п) € Е^ и в' = (62,...,6„).

2. Теперь рассмотрим произвольный вектор поляризации 3 = (¿1,..., ¿„). Воспользуемся тем, что поляризованный по вектору 3 = (¿1,..., ¿п) полином функции /(х1,..., ж„) является обычным полиномом для функции

0(ЖЬ...,Ж„) = / (Х1 - ¿1,...,Ж„ - ¿„).

Тогда для каждого набора а = (а1,...,а„) € ЕП по доказанному получаем с/(а) = сд(а) =

= (-1)Н Е (П 6?-1-аМ 5(61,..., 6п) =

= (-1)|а| Е ( П 6?-1-ач /(61 - ¿1,...,6„ - ¿„),

в:/(в)С/(а) \а;=0 /

где /3= (6Ь...,6П) еЕ£.

Теорема 2 доказана. □

Работа частично поддержана РФФИ (проекты Л*1' 07-01-00444 и 09-01-00701-а.)

Summary

S.N. Selezneva, N.K. Markelov. Fast Algorithm for Building Polarized Polynomial Coefficients' Vectors of fc-valued Functions.

The fast algorithm for building the polarized polynomial coefficients' vectors of fc-valued functions by their values is proposed (for prime fc). The formulas for polarized polynomial coefficients of fc-valued functions by their values are obtained.

Key words: fc-valued function, polarized polynomial, fast algorithm.

Литература

1. Яблонский С.В. Введение в дискретную математику. М.: М.: Высш. шк.. 2001. 384 с.

2. Селезнева G.H. О сложности представления функций многозначных логик поляризованными полипомами // Дискр. матем. 2001. Т. 14. Вып. 2. С. 48 53.

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

4. Супрун В.П. Табличный метод полиномиального разложения булевых функций // Кибернетика. 1987. ЛМ. С. 116 117.

5. Логачев О.А., Сальников А.А., Ягценко В.В. Булевы функции в теории кодирования и криптологии. М.: МЦНМО, 2004. 469 с.

Поступила в редакцию 24.04.09

Селезнева Светлана Николаевна кандидат физико-математических паук, доцент кафедры математической кибернетики факультета ВМК Московского государственного университета им. М.В. Ломоносова.

E-mail : s elezn Qcs.msu.su

Маркелов Николай Константинович студент кафедры математической кибернетики факультета ВМК Московского государственного университета им. М.В. Ломоносова.

E-mail: nord rkQbk.ru

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