Научная статья на тему 'Линейная оценка схемной сложности распознавания полиномиальности функций над кольцом вычетов по составному модулю'

Линейная оценка схемной сложности распознавания полиномиальности функций над кольцом вычетов по составному модулю Текст научной статьи по специальности «Математика»

CC BY
56
11
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ФУНКЦИЯ НАД КОНЕЧНЫМ КОЛЬЦОМ / ПОЛИНОМ НАД КОНЕЧНЫМ КОЛЬЦОМ / ПОЛИНОМИАЛЬНАЯ ФУНКЦИЯ / АЛГОРИТМ / СХЕМА / СХЕМНАЯ СЛОЖНОСТЬ / FUNCTION OVER A FINITE RING / POLYNOMIAL OVER A FINITE RING / POLYNOMIAL FUNCTION / ALGORITHM / CIRCUIT / CIRCUIT COMPLEXITY

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

Доказано, что при каждом фиксированном составном числе k схемная сложность задачи, состоящей в распознавании полиномиальности произвольной функции f(x1…,xn) над кольцом вычетов по модулю k по вектору длины N=kn ее значений и в случае положительного ответа нахождения ее полиномиального задания, линейна.

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

Circuit complexity of recognizing polynomiality for functions over residue modulo composite number is linear

It is proved that for every fixed composite number k circuit complexity of a problem to recognize if an arbitrary function f(x1…,xn) over residue modulo k given by a vector of N=kn its values is polynomial and, if so, to find its polynomial representation is linear.

Текст научной работы на тему «Линейная оценка схемной сложности распознавания полиномиальности функций над кольцом вычетов по составному модулю»

УДК 519.7

С. Н. Селезнева1

ЛИНЕЙНАЯ ОЦЕНКА СХЕМНОЙ СЛОЖНОСТИ РАСПОЗНАВАНИЯ ПОЛИНОМИАЛЬНОСТИ ФУНКЦИЙ НАД КОЛЬЦОМ ВЫЧЕТОВ ПО СОСТАВНОМУ МОДУЛЮ*

Доказано, что при каждом фиксированном составном числе к схемная сложность задачи, состоящей в распознавании полиномиальности произвольной функции f(x 1,... ,х„) над кольцом вычетов по модулю к по вектору длины N = кп ее значений и в случае положительного ответа нахождения ее полиномиального задания, линейна.

Ключевые слова: функция над конечным кольцом, полином над конечным кольцом, полиномиальная функция, алгоритм, схема, схемная сложность.

1. Введение. Схемная сложность булевых и многозначных функций является одним из разделов теории сложности. Это понятие было введено в [1]. Там было показано, что схемная сложность "самой сложной" булевой функции от п переменных равна О О. Б. Лупановым в [2] было доказано, что схемная сложность (в базисе из конъюнкции, дизъюнкции и отрицания) "самой сложной" булевой функции от п переменных асимптотически равна Однако если известна более детальная информация о рассматриваемых функциях, то оценка сложности может уточняться. Отметим работы [3-7] об оценках схемной сложности некоторых функций.

Схему из функциональных элементов (СФЭ) можно рассматривать как формальную алгоритмическую модель. Отметим работы [8-11] о схемной сложности операций сложения и умножения двоичных чисел, умножения матриц.

Настоящая работа касается исследования схемной сложности распознавания свойств булевых и многозначных функций. В [12] изучена схемная сложность распознавания принадлежности булевых и многозначных функций по вектору их значений к некоторым предполным и замкнутым классам. В большинстве случаев получены линейные оценки сложности. В работе [13] исследована схемная сложность распознавания монотонности булевых и многозначных функций по вектору их значений, и в [14] показана линейность схемной сложности распознавания некоторых свойств булевых функций.

В настоящей работе рассматривается задача проверки полиномиальности fc-значных функций (функций над кольцами вычетов по модулю к). Известно, что каждая fc-значная функция может быть задана полиномом по модулю к в том и только в том случае, если к — простое число [15]. Если же к — составное число, то приобретает важность задача распознавания полиномиальности fc-знач-ных функций. Другими словами, а возможно ли заданную fc-значную функцию записать полиномом по mod к? В том случае, когда функция полиномиальна, нам также важно найти полином, задающий эту функцию. В [16] был предложен практически применимый алгоритм, который по вектору значений fc-значной функции f(xi,... ,жп), где к = рт, р — простое число, т ^ 2, определяет, задается ли / полиномом по модулю к, и в случае положительного ответа находит ее канонический полином, причем алгоритм имеет битовую сложность O(N), где N = кп — длина вектора значений функции. Там же отмечено, как этот алгоритм можно обобщить на случай произвольного составного числа при этом его сложность остается такой же.

1 Факультет ВМК МГУ, доц., к.ф.-м.н., e-mail: seleznQcs.msu.su

* Работа поддержана РФФИ, гранты 10-01-00768-а, 12-01-00706-а.

В настоящей работе подробно рассматривается случай произвольного составного к. Приведено описание алгоритма, который по вектору значений fc-значной функции f(x\,... ,хп) определяет, задается ли эта функция полиномом по модулю к, в случае положительного ответа строит один из ее полиномов, причем алгоритм имеет битовую сложность O(N), где N = кп — длина вектора значений функции /. По описанному алгоритму строится последовательность СФЭ Sn, с линейной сложностью решающих исследуемую задачу. Заметим, что при распознавании полиномиальности важны все значения исходной функции. Поэтому тем самым доказывается, что схемная сложность задачи распознавания полиномиальности fc-значных функций при составных к линейна.

2. Основные понятия. Пусть к ^ 2, /•,'/,. = {0,1,..., к — 1}. Функция f(x\,..., хп) называется fc-значной, если / : —> Ек, где п = 0,1, 2,... . Множество всех fc-значных функций обозначим как 1%. множество всех fc-значных функций, зависящих от переменных х\,... ,хп, обозначим как Рf. Вектором значений функции f(x\,..., хп) назовем вектор Uf(a), а € /*//.'. длины кп ее значений на всевозможных наборах а €

Пусть Z — множество целых чисел; Z^ = Z/(к) = {0,1,..., А; — 1} — кольцо вычетов по модулю к, где к ^ 1. Функция f(x\,..., хп) € задается полиномом по модулю к, если найдется такой полином р(х i,...,xn) € Zk[xi,..., хп], что р(а) = /(а) для всех а € ЕМножество fc-значных функций, задающихся полиномами по модулю к, обозначим как Pol/;, и будем называть их полиномиальными.

Если к = рто, где р — простое число, т ^ 1, и /(ж i, ...,хп) € Pol/;, то найдутся такие коэффициенты с(а) ^ /•.]!. а е /•-].'. что

f(x 1, ...,хп) = ^ ^ с(а) ' • • • • • жпп, <j=(s1,...,sn)eE%

где xs,i — степени, = 1 (в случае простого числа к это следует из малой теоремы Ферма, для составного числа к это доказано в [17, 18] или, например, в [16]). Заметим [15], что Pol/; = Р^ тогда и только тогда, когда к — простое число.

В качестве алгоритмической модели рассмотрим схемы из функциональных элементов (СФЭ) в некотором полном в Р/; базисе. Сложностью L(S) СФЭ S назовем число функциональных элементов в ней. Под (битовой) сложностью алгоритма будем понимать сложность соответствующей СФЭ.

Известны быстрые алгоритмы построения по вектору значений fc-значной функции f(x\,..., хп) ее полинома по модулю к при простых к: для к = 2 алгоритм описан в книге Г. П. Гаврилова, А. А. Сапо-женко [19]; для произвольного простого числа к предложен Ю. В. Таранниковым в 2004 г. Сложность этих алгоритмов (в алгоритмической модели СФЭ) равна 0(N log N) битовых операций, где N = кп — длина вектора значений функции.

Д. Г. Мещаниновым в [20] описан алгоритм, проверяющий по вектору значений fc-значной функции f(x 1,...,жп) для к = рт, где р — простое число, т ^ 2, является ли функция / полиномиальной и в случае положительного ответа строящий какой-то ее полином. Сложность этого алгоритма равна 0(N log™ N) операций, где N = кп — длина вектора значений функции.

В [16] предложен алгоритм, проверяющий по вектору значений fc-значной функции f(x\,... ,хп) для к = рт, где р — простое число, т ^ 2, является ли функция / полиномиальной и в случае положительного ответа строящий ее канонический полином. Сложность этого алгоритма (в алгоритмической модели СФЭ) равна O(N) битовых операций, где N = кп — длина вектора значений функции. Там же отмечено, как этот алгоритм обобщается на случай произвольного составного числа и сложность его остается такой же.

В настоящей работе подробно опишем этот алгоритм для случая произвольного составного числа к.

3. О схемной сложности распознавания полиномиальности и построения полиномов

Теорема. Пусть к — фиксированное составное число. Для каждого натурального числа п можно построить такую СФЭ Sn с кп входами и(а), а € . и кп + 1 выходами v(a), а € . и z, что если на ее входах и(а) появляются значения f (а) произвольной функции f € I "! ■ то на ее выходе z выдается 1, если f € Pol^; и выдается 0 — иначе, в случае если z = 1, то на ее выходах v(a), а = (si,... ,sn) € /*//.'. выдаются коэффициенты какого-то ее полинома при мономах х'11 • ... • ж®п, причем для сложности последовательности СФЭ Si, S2, • • •, Sn,... верно L(Sn) = 0(kn).

Доказательство. Опишем алгоритм, который для произвольной функции / € Р{.1 по вектору ее N = кп значений определяет, является ли она полиномиальной, и в случае положительного ответа строит какой-то ее полином. По приведенному описанию несложно построить соответствующую СФЭ Sn.

Пусть к — составное число, к = р™1 •... -р™г, где pi — попарно различные простые числа, nii ^ 1.

Если г = 1, т. е. к = рто, где р — простое число, т ^ 2, — воспользуемся алгоритмом из [16].

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

Шаг 1. Пусть di = г = 1,..., г.

Пусть а = (öi,..., ап) € и ß = (b\,..., Ьп) € Щ- Будем говорить, что наборы а и ß сравнимы по модулю di и обозначать а = /3(mod di), если

а 1 = bi(mod di),..., а,п = bn(mod (¿¿).

По свойствам полиномов над кольцами вычетов по модулю к если функция f {х,\,... ,х„) из Pol/;, то для любых наборов а,ß из из того, что а = ß(mod di), следует /(а) = /(/3)(mod di).

Выполним проверку этого необходимого условия полиномиальное™ для функции f(xi,...,xn). Для этого для каждого i, г = 1,... ,г, сравниваем значения функции / на наборах, сравнимых по модулю р™'1. Так как сравнимость наборов по модулю р™'1 задает отношение эквивалентности на множестве 1^1'. то проверку для каждого i можно выполнить со сложностью O(N). Значит, сложность шага 1 будет также O(N) битовых операций.

Если хотя бы однажды условие не выполняется, то / ^ Pol/;. Иначе, переходим к шагу 2.

Шаг 2. По китайской теореме об остатках сопоставим каждому элементу а € Е^ однозначный набор (öi, ..., аг) € Ерт1 х ... х Ертг, являющийся решением системы сравнений:

а = öj(mod р™'1),..., а = ar(mod р™г).

В силу выполненного условия шага 1 функции f(x\,... ,хп) € сопоставляется набор функций (/ь...,/г)еР% Х...ХР».

У1 У1

Теперь для каждого г, % = 1 ,...,г, надо проверить, задается ли функция fi(x\,..., хп) из -Р"™» полиномом по модулю p"li и в случае положительного ответа найти какой-то ее полином.

Воспользуемся известными алгоритмами.

Если nii = 1, то применим алгоритмы построения полиномов при простых pi (Г. П. Гаври-лов, A.A. Сапоженко [19], Ю.В. Таранников). Получим вектор коэффициентов полинома функции fi со сложностью 0{р™'1Пп). Если nii 2, то применим алгоритмы распознавания полиномиальности и построения полиномов при составных р"н (С.Н. Селезнева [16]). Если fi ^ Ро1р«ч, то / ^ Pol/;. Иначе, получим вектор коэффициентов канонического полинома функции fi со сложностью 0{р™'1П).

Сложность шага 2 равна O(N).

Шаг 3. Если все функции fi — полиномиальны (каждая по своему модулю), то по китайской теореме об остатках по набору коэффициентов с\ € Ертг,..., сг € Ертг при мономе X в полиномах функций /i,..., fr соответственно найдем коэффициент г ^ /•,'/. при мономе X в полиноме функции /, являющийся решением системы сравнений:

с = ci (mod р™1),..., с = cr (mod p"lr).

Выполнить шаг 3 можно со сложностью O(N).

По приведенному описанию алгоритма можно построить соответствующую СФЭ Sn, причем L(Sn) = 0(кп).

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

Заметим, что при распознавании полиномиальности важны все значения исходной функции /(жI,... ,хп), так как всегда можно найти функцию, отличающуюся от полиномиальной только на одном наборе значений переменных. Откуда заключаем, что схемная сложность задачи распознавания полиномиальности fc-значных функций при каждом фиксированном составном к по вектору их N = кп значений линейна.

В заключение рассмотрим примеры применения описанного алгоритма.

Пример 1. Рассмотрим /(ж) из Р\->:

ж 0 1 2 3 4 5 6 7 8 9 10 И

/ 0 10 9 3 4 6 9 7 0 6 1 3

Заметим, что 12 = 3 • 22.

Рассмотрим (¿1 = 3. Для удобства в таблице наборы значений переменной ж, сравнимые по модулю (¿1, и соответствующие им значения функции / выделим разными шрифтами. Тогда

ж 0 1 2 3 4 5 6 7 8 9 10 И и ж 0 1 2

/ 0 10 9 3 4 6 9 7 0 6 1 3 /i 0 1 0

При (¿2 = 4 получаем

ж 0 1 2 3 4 5 6 7 5 9 10 11 и ж 0 1 2 3

/ 0 10 9 3 4 6 9 7 0 6 1 3 h 0 2 1 3

Тогда ¡\(х) = 2х2 + 2ж, f2(x) $ Pol4, откуда /(ж) ^ Poli2. Пример 2. Рассмотрим д(ж) из Р\->:

ж 0 1 2 3 4 5 6 7 8 9 10 и

9 0 7 6 9 4 3 6 1 0 3 10 9

Заметим, что 12 = 3 • 22. При (¿1 = 3 получаем

ж 0 1 2 3 4 5 6 7 8 9 10 и и ж 0 1 2

/ 0 7 6 9 4 3 6 1 0 3 10 9 /i 0 1 0

При (¿2 = 4 получаем

ж 0 1 2 3 4 5 6 7 5 9 10 11 и ж 0 1 2 3

/ 0 7 6 9 4 3 6 1 0 3 10 9 h 0 2 1 3

Тогда gi(x) = 2ж2 + 2ж, = Зж, и д(ж) = 8ж2 + 11ж.

СПИСОК ЛИТЕРАТУРЫ

1. Shannon С.Е. А symbolie analysis of relay and switching eireuits // Trans. AIEE. 1938. 57. P. 713-723.

2. J1 у панов О. Б. Об одном методе синтеза схем // Изв. вузов. Радиофизика. 1958. 1. № 1. С. 120-140.

3. Редькин Н. П. Доказательство минимальности некоторых схем из функциональных элементов // Проблемы кибернетики. Вып. 23. М.: Наука, 1970. С. 83-101.

4. Резник В.И. Реализация монотонных функций схемами из функциональных элементов // ДАН СССР. 1961. 139. № 3. С. 566-569.

5. Сопруненко Е. П. О минимальной реализации некоторых функций схемами из функциональных элементов // Проблемы кибернетики. Вып. 15. М.: Наука, 1965. С. 117-134.

6. Schnorr С. Р. Zwei lineare untere Schranken für die komplexitat Boolescher funktionen // Computing. Archiv für Elektronischer Rechnen. 1974. 13. N 2. P. 155-171.

7. Ложкин С. А., Семенов А. А. Об одном методе сжатия информации и о сложности реализации монотонных симметрических функций // Изв. вузов. Математика. 1988. № 7. С. 44-52.

8. Редькин Н. П. О минимальной реализации двоичного сумматора // Проблемы кибернетики. Вып. 38. М.: Наука, 1981. С. 181-216.

9. Карацуба A.A., Офман Ю.П. Умножение многозначных чисел на автоматах // ДАН СССР. 1962. 145. № 2. С. 293-294.

10. Schönhage А., Strassen V. Schnelle multiplikation grober zahlen // Computing Archiv für Elektronisches Reshnen. 1971. 7. N 3-4. P. 281-292.

11. Fischer M.J., Meyer A.R. Boolean matrix multiplicationand transitive closure//IEEE Conference Record of the 12th Annual Symp. on Switching and Automata Theory. 1971. P. 129-131.

12. Алексеев В. Б. Ступенчатые билинейные алгоритмы и распознавание полноты в fc-значных логиках // Изв. вузов. Матем. 1988. № 7. С. 19-27.

13. Воронен ко А. А. О сложности распознавания монотонности // Матем. вопросы кибернетики. 1999. 8. С. 301-303.

14. Воронен ко А. А. О методе разложения для распознавания принадлежности инвариантным классам // Дискретная математика. 2002. 14. Вып. 4. С. 110-116.

15. Яблонский С.В. Функциональные построения в fc-значной логике // Труды МИАН. 1958. 51. С. 5-142.

16. Селезнева С.Н. Быстрый алгоритм построения для fc-значных функций полиномов по модулю к при составных к // Дискретная математика. 2011. 23. Вып. 3. С. 3-22.

17. Niven I., Warren L.J. A generalization of Fermat's theorem // Proc. of the American Math. Society. 8. N 2. 1957. P. 306-313.

18. Singmaster D. On polynomial functions (mod m) // J. of Number Theory. 1974. 6. P. 345-352.

19. Гаврилов Г.П., Сапоженко А. А. Сборник задач по дискретной математике. М.: Наука, 1977.

20. Мещанинов Д. Г. Метод построения полиномов для функций fc-значной логики // Дискретная математика. 1985. 7. Вып. 3. С. 48-60.

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

CIRCUIT COMPLEXITY OF RECOGNIZING POLYNOMIALITY FOR FUNCTIONS OVER RESIDUE MODULO COMPOSITE NUMBER IS LINEAR

Selezneva S. N.

It is proved that for every fixed composite number k circuit complexity of a problem to recognize if an arbitrary function f(xi,..., xn) over residue modulo k given by a vector of N = kn its values is polynomial and, if so, to find its polynomial representation is linear.

Keywords: function over a finite ring, polynomial over a finite ring, polynomial function, algorithm, circuit, circuit complexity.

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