УЧЕНЫЕ ЗАПИСКИ КАЗАНСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА
Том 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;
к— 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