УДК 519.612:632.4 А.В. Бухман1
О СЛОЖНОСТИ РАСПОЗНАВАНИЯ СОХРАНЕНИЯ ФУНКЦИЯМИ МНОГОЗНАЧНЫХ ЛОГИК, ЗАДАННЫХ ПОЛИНОМАМИ, НЕКОТОРЫХ МНОЖЕСТВ
Рассматриваются функции fc-значной логики для простых чисел к. Построены полиномиальные алгоритмы для распознавания сохранения функциями fc-значной логики, заданных полиномами по модулю к, множеств вида Е(1х1) и E(lxl) \ {0}, где Е(д(х)) — область значений функции д{х). Найдена оценка количества множеств, сохранение которых можно распознать предложенными алгоритмами.
Ключевые слова: функция многозначной логики, полиномиальный алгоритм, полином по модулю к.
1. Введение. Одной из важнейших задач теории fc-значных функций является задача распознавания полноты некоторой системы функций. Система функций полна, если любая функция fc-значной логики может быть выражена суперпозицией функций из этой системы [1]. Критерий полноты системы функций для к ^ 3 был получен A.B. Кузнецовым в [2]. В соответствии с этим критерием предполагается проверить, содержится ли система функций в предполных классах, которых конечное число. Все предполные классы были описаны в работах [3-7]. Предполные классы можно описать в терминах сохранения предикатов. Предикаты, задающие предполные классы, разделены на 6 семейств: Р, О, L,
/•;. с, в.
Интересен вопрос о построении быстрых алгоритмов распознавания принадлежности функции к предполным классам. Случай, когда функция задается вектором значений, был рассмотрен в работах
B.Б. Алексеева, Н.Р. Емельянова (см., например, [8]). При этом на вход алгоритму подается набор кп чисел 0— 1. Случай, когда функция задается в виде полинома при к = 2, был рассмотрен
C.Н. Селезневой в [9], при к ^ 3 — в [10, 11] для семейств предикатов Р, О, L, Е, В. При этом на вход алгоритму подается полином функции, который представляет собой слово длины О (In), где I — длина полинома, п — количество переменных функции.
1 Факультет ВМК МГУ, асп., e-mail: antvbxQgmail.com * Работа поддержана РФФИ, грант 10-01-00768-а.
В данной работе рассматриваются некоторые предполные классы из семейства С. А именно классы функций, сохраняющих множества. Функция будет подаваться на вход алгоритма в виде полинома.
2. Основные определения. Пусть к > 2 — некоторое натуральное число, /•.'/, {О.....к - I |.
Определение 1. Функцией к-значной логики, зависящей от п переменных, будем называть
отображение вида / : Ек ^ Ек.
Множество всех функций &-значной логики будем обозначать Рк. Множество всех функций &-знач-ной логики, зависящих от п переменных будем обозначать Рк .
Обычным образом [12] вводится операция суперпозиции над функциями из Рк.
Определение 2. Пусть С Рк. Множество С} называется замкнутым классом, если всякая функция, полученная в результате суперпозиции любых функций из С}, принадлежит С}.
Определение 3. Функция /(х\,... ,хп) € Рк сохраняет множество £ С /•,'/.. если для любых а,!,...,ат € £ будет верно /(аь ...,ат) € £.
Теорема 1 [12]. Множество всех функций, сохраняющих подмножество £ С /•,'/,.. есть замкнутый класс.
Теорема 2 [3]. Если £ С /•,'/,.. £ ф Ф и £ ф /•.'/,.. то класс функций из /'/.. сохраняют,их множество £, есть предполный класс в Рк.
В данной работе рассматривается задание функции в виде полиномов.
Определение 4. Мономом над переменными х\,...,хп называется либо 1, либо выражение вида
' ' ' хц '
где 1 ^ ¿1 ,■■■ ,ц ^ п, 1 ^ Зъ ■ ■ ■ ,31 ^ А; — 1, все переменные различны.
Равенство мономов рассматривается с точностью до перестановки сомножителей.
Определение 5. Полиномом называется сумма по модулю к конечного числа различных мономов с ненулевыми коэффициентами из /•,'/. или 0 (можно понимать как сумму нулевого числа мономов). Длиной полинома называется число его слагаемых. Длину нулевого полинома будем считать равной 0.
Равенство полиномов рассматривается с точностью до перестановки слагаемых.
Справедлива следующая теорема.
Теорема 3 [1]. Пусть к — простое число. Для любой функции к-значной логики существует единственный полином, который ее реализует.
На вход алгоритма будем подавать запись функции в виде полинома в некотором конечном алфавите, например {ж,+,А,0,1}. Будем записывать моном следующим образом: вначале идет запись в двоичной системе счисления коэффициента, далее для каждой переменной пишем х, за которым будет следовать запись индекса этой переменной в двоичном виде, далее идет знак А, за которым следует двоичная запись степени этой переменной. Полином будем записывать в виде записей мономов, где между соседними мономами будет стоять знак +. Далее будет обозначать длину записи (количество символов) полинома N.
Можно рассматривать формальную алгоритмическую модель, например, машину Тьюринга, и сложность оценивать в тактах работы этой машины. Цель данной работы состоит в том, чтобы показать существование полиномиальных алгоритмов для рассматриваемых задач. Мы не будем выписывать формально программы для машины Тьюринга. Мы будем описывать алгоритмы, используя в качестве элементарных операций следующие: сравнение переменных, перемножение мономов, сложение мономов, стирание записи монома (в случае, если в ходе преобразований у него окажется нулевой коэффициент), возведение монома в степень. Заметим, что каждая из данных операций выполнима за полиномиальное (относительно длины записи аргументов) время на машине Тьюринга. Если мы построим полиномиальный алгоритм для наших задач используя в качестве элементарных операций приведенные выше, то мы сможем построить и полиномиальный алгоритм для машины Тьюринга.
3. О распознавании принадлежности функции классу сохранения множества Е(1хг). Пусть д(х) € /'/,• обозначим
Е(д(х)) = {у€Ек:Зх€Ек д(х) = у}.
Утверждение 1. Пусть к — простое число, I € ^\{0}, гб{1,...,А; —1},£ = Е(1хг) и фе(х) — некоторая функция, которая равна 0 на множестве £ и не равна нулю вне этого множества.
Функция /(х\,... ,х„) € Рк сохраняет множество £ тогда и только тогда, когда
Ф£и(1х\,...,1 <)) = о. (1)
Доказательство. Необходимость. Пусть / сохраняет множество £. Тогда для любого набора («1,..., ап) € верно, что 1а* € £, ] = 1,..., п. Следовательно, гфе(/(1а\,..., 1агп)) = 0.
Достаточность. Пусть верно (1), но / не сохраняет множество £. Тогда найдутся
(¡1 € ..., ап £ £,
такие, что /(ах,..., ап) ^ £. Пусть Ъ\,..., Ьп € /•-'/, таковы, что 1Щ = а^, где ] = 1,..., п. Но тогда 'Фе(1(Щ-1 ■ ■ ■ -,1Ьгп)) ф 0. Приходим к противоречию с (1).
Основываясь на утверждении 1, можно предложить следующий алгоритм распознавания свойства функции, заданной полиномом, сохранять множество Е(1хг).
Теорема 4. Для любого простого числа к, любого I € Ек\ {0} и любого г € {1,..., А; — 1} можно построить детерминированный полиномиальный алгоритм, который по полиному функции / € Рк будет распознавать, сохраняет ли эта функция множество £ = Е(1хг).
Доказательство. Воспользуемся утверждением 1. Построим алгоритм для проверки условия (1).
Пусть на вход алгоритма подается полином Pf функции / от п переменных, длина записи которого N.
Шаг 1. Каждую переменную х^, где j = 1,... ,п, заменим на и в полученном выражении приведем подобные слагаемые. Операция приведения подобных слагаемых требует просмотра всех слагаемых полинома и выполнения сложения тех мономов, которые отличаются только коэффициентами. Это можно сделать за 0(Н2) элементарных операций над полиномами.
Шаг 2. Находим полином функции 1р£(/(1х\,... ,1хгп)). Для этого в полином функции ф£ вместо переменной подставляем полином функции /(1х\,..., 1хгп), раскрываем скобки, приводим подобные слагаемые. Подстановка в один полином другого может потребовать возведения полинома в степень. Так как мы находимся в Рк и подставляем в полином функции одной переменной, то в результате может получиться сумма мономов, длина которой 0(Мк~г) (сложность ее получения тоже 0(Мк~г)). Далее в полученном полиноме приводим подобные слагаемые, что можно сделать со сложностью 0(Ы2к~2).
Шаг 3. Если полученный полином не равен 0, то выдаем ответ "нет". В противном случае ответ — "да".
Окончательно сложность полученного алгоритма равна 0(Ы2к~2).
Оценим, сколько подмножеств можно распознать, основываясь на алгоритме из теоремы 4. Для этого докажем ряд вспомогательных утверждений.
Обозначим (а, Ь) наибольший общий делитель чисел а и Ь.
Утверждение 2. Пусть к — простое число. Тогда верно, что Е(х') = Е(х^'к~1У).
Доказательство. Заметим, что (к — 1, г/(г, А; — 1)) = 1. Известен факт (см. [13, теорема 7.21), что если (т, А; —1) = 1, то хт биективно отображает множество /•,"/,. на себя. Тогда Е(х) = Для любого а £ Ек найдется Ь € /•-'/,. такое, что а = Ъг^г'к~1\ Возведем обе части равенства в степень (г, А; — 1), получим = Ъг. Значит, Е(хМ'к~С Е(хг). Обратное включение показывается аналогично.
Замечание. Из доказанного утверждения следует, что количество различных множеств вида Е(хг), где г = 1,...,А; — 1, не превосходит количества делителей числа А; — 1.
Лемма 1. Пусть к — простое число. Количество различных множеств среди Е(хг), где % ^ 1,..., к 1, равно числу делителей к — 1.
Доказательство. Пусть г,^ — различные делители А; — 1. Не ограничивая общности будем считать, что I < у. Пусть ц — образующий элемент циклической группы •). Тогда дг € Е(хг).
Покажем, что дг ^ Е(х^). Всякий ненулевой элемент Ь из Е(хР) обладает свойством = 1.
При этом ф 1, так как ц — образующий. Значит, Е(хг) ф Е(х^) при 1 ф у.
Учитывая замечание к утверждению 2, получаем утверждение леммы.
Ведем считать, что запись а | Ь означает то, что а делит Ь.
Утверждение 3. Пусть к — простое число. Для любого г, такого, что г | (А; — 1), мощность множества Е(хг) равна 1 + (А; — 1)/г.
Доказательство. Пусть д — образующий элемент мультипликативной циклической группы (£^{0}, •). Рассмотрим элементы этой группы вида дтг, где т = 1,..., к — 1. В силу того, что элемент
q имеет порядок А; — 1 верно, что все qm% различны при m = 1,..., (А; — 1)/г. Если т > (к — 1)/г, то найдется такое m' G {1,..., А; — 1/г}, что qm% = qm 1. Значит, количество ненулевых элементов в Е(хг) равно (к — 1 )/i.
Рассмотрим далее функции вида 1хг. Зафиксируем г, а I пусть меняется от 1 до А; — 1. Если I ф О, то \Е(1х})\ = \Е(х%
Лемма 2. Пусть к — простое число. Для любого г, такого, что г | (А; — 1), среди множеств Е(1хг), где I = 1,... ,k — 1, ровно г различных.
Доказательство. Пусть q — образующий элемент мультипликативной циклической группы (Ек \ {0},-). Рассмотрим множества Е(1'хг), Е(1"хг). Представим V и I" в виде:
V = qh'+t'\ где О О' < г - 1,
I" = qh"+t"\ где О О" < г - 1.
Покажем, что Е(1'хг) = Е(1"х%) тогда и только тогда, когда Ы = h".
Необходимость. Докажем от противного. Пусть Е(1'хг) = Е(1"хг), но при этом предположим, что h' ф h". Тогда
gh' = qh'+t'i^-t'y = t>(q-t'y € Е(1'х*),
где q~f' — обратный к q*' элемент группы •). Значит, qh' G Е(1"хг), тогда qh' = qh"+ts. Следо-
вательно, 1 = qh ~h He ограничивая общности будем считать, что Ы > /г", тогда k — l\ (h' — h")+is. Так как (к — 1,г) = i, то получим i\ (h' — h"). Учитывая ограничения на h' и h", окончательно имеем Ы = h". Приходим к противоречию. Необходимость доказана.
Достаточность. Пусть Ы = /г", тогда l'l"~l = wz, где w G /•-'/,. Рассмотрим и G Е(1'хг), тогда
и = t'v'* = i'W = ¡"{v'wf G E{l"x%
таким образом, мы показали, что Е(1'хг) С Е(1"хг). Учитывая, что \Е(1'хг)\ = \Е(1"хг)\, получаем Е(1'хг) = Е(1"хг). Достаточность доказана.
Значит, при фиксированном г таком, что г | (А; — 1), среди множеств Е(1хг), где I — 1,..., к 1, ровно г различных.
Различных множеств вида Е(1хг), где г, / = 1,..., А; — 1, ровно ^^ d.
d\k — l
Собственных подмножеств множества Ек ровно 2к — 2. Количество множеств, которые можно распознать при применении функций вида 1хг, равно ^^ d.
d\k — l
4. О распознавании принадлежности функции классу сохранения множества Е(!хг)\0. Утверждение 4. Пусть к — простое число, I G Ек \ {0}, i G {1,..., к — 1}, £ = Е(1хг) \ {0} и фе(х) — любая функция, такая, что она принимает значение 0 тогда и только тогда, когда х G £. Функция f G сохраняет множество £ тогда и только тогда, когда
->фе(х*-1... x^filxl, ...,1х^) + 1- Ixl-1... ж*"1) = 0. (2)
Доказательство. Необходимость. Пусть / сохраняет множество £. Рассмотрим произвольный набор («1,..., ап) G ¡•'.¡'.. Если среди элементов ai,... ,ап есть 0, то
ф£(0- f(lx\,...,lxin) + l^Q) = Q.
Если среди а\,..., а,п нет 0, то
■ f(la\,..., К) + I- I) = ф£(Л1а\,..., 1а\,)).
Так как / сохраняет множество £, то верно (2). Достаточность. Пусть условие (2) верно. Рассмотрим ai,..., ап G Ek \ {0}. Верно, что
la\ G & ч » » » ч I О'/г)
G £.
Тогда, учитывая то, что в наборе нет 0, получаем
ф£( 1 • f(la\, ...,lai)+l^l) = ф£(/(1а\,..., *<)) = 0.
Значит, f(la\,..., 1агп) G £.
Теорема 5. Для любого простого числа к, любого I ^ {0} и любого г € {1,..., А; — 1} можно построить детерминированный полиномиальный алгоритм, который по полиному функции f €. Pk распознает, сохраняет ли эта функция множество £ = Е(1хг) \ {0}.
Доказательство. Воспользуемся утверждением 4. Построим алгоритм для проверки условия (2).
Пусть на вход алгоритма подается полином /'/• функции / от п переменных, длина записи которого N.
Шаг 1. По полиному / '/• строим полином функции
rpk — 1 rpk— 1 f(]„i 1 гЛ \ \ 1 __rpk — 1
.X/ ^ ... .X/ ^ X ' * * * ' IX / i ! ! ' х ... .Xi ^ .
Для этого каждое слагаемое полинома функции / умножаем на х\... xk_1, прибавляем I — lxk_1 ... ... хк~г и в полиноме функции / заменяем переменные Xj на 1х,\где j = 1,... ,п. Далее приводим подобные слагаемые (это можно сделать со сложностью 0(N2)). Сложность этого шага 0(N2), аналогично шагу 1 теоремы 4.
Шаг 2. Строим полином функции
'ФЕ... X^ J{Ix'-^j • • • jlx'y^ + l ... X^
Данный шаг можно выполнить со сложностью 0(N2k~2). Аналогично шагу 2 теоремы 4.
Шаг 3. Если полученный полином не равен 0, то выдаем ответ "нет". В противном случае ответ — "да".
Сложность построенного алгоритма 0(N2k~2).
5. Примеры. Приведем некоторые примеры применения полученных результатов. Теорема 6. Пусть £ С Е3. Существует детерминированный алгоритм, который для каждой функции / € Рз, заданной полиномом, распознает, сохраняет ли она множество £ и имеет полиномиальную сложность относительно длины записи полинома функции /.
Доказательство. Для множеств из одного элемента достаточно проверить значение функции на одном наборе. Это можно сделать с полиномиальной сложностью. Для множеств из двух элементов:
— множества {0,1} = Е(х2), {0,2} = Е(2х2) распознаются алгоритмом из теоремы 4;
— множество {1, 2} = Е(х) \ {0} распознается алгоритмом из теоремы 5. Других собственных подмножеств в множестве нет.
Теорема 7. Пусть к = 5. Для каждого из множеств
{0,1}, {0, 2}, {0, 3}, {0,4}, {0,1,4}, {0, 2, 3}, {1,4}, {2, 3}, {1, 2, 3,4}
существует полиномиальльный (относительно длины записи полинома функции / € Р5) детерминированный алгоритм, который распознает по полиному функции сохранение функцией / этого множества.
Доказательство. Заметим, что
{0,1} = Е(х4), {0, 2} = Е(2х4),
{0, 3} = Е(Зж4), {0,4} = Е(Ах4),
{0,1,4} = Е(х2), {0, 2, 3} = Е(2х2),
{1,4} = £(ж2)\{0}, {2, 3} = Е(2х2) \ {0}.
Далее применяем теоремы 4, 5. Получаем требуемые алгоритмы. Теорема 8. Пусть к ^ 3 — простое число. Для каждого из множеств
{1,..., к — 1}, {0,1},..., {0, А; — 1},
{О,-1,1}, {1,-1}, 1еЕк,
существует полиномиалълъный (относительно длины записи полинома функции) детерминированный алгоритм, который распознает по полиному функции сохранение функцией этого множества. Доказательство. Заметим, что
{1,..., А; — 1} = Е(х) \ {0},
{0,1} = Е(хк~1),..., {0, к - 1} = Е((к - I)®*"1),
{0,1, -1} = Е(1х(к~1)/2), {I, -1} = Е(1х(к~1)/2) \ {0},
|о,12,22,...,(^)2| = Е(х2), Далее применяем теоремы 4, 5.
СПИСОК ЛИТЕРАТУРЫ
1. Яблонский C.B. Введение в дискретную математику. М.: Наука, 1986.
2. Кузнецов A.B. О проблемах тождества и функциональной полноты алгебраических систем // Труды 3-го Всесоюзного матем. съезда. Т. 2. М.: Изд. АН СССР, 1956. С. 145-146.
3. Избранные труды C.B. Яблонского. М.: МАКС Пресс, 2004.
4. M ар ты ню к В. В. Исследование некоторых классов в многозначных логиках // Проблемы кибернетики. Вып. 3. М.: Гос. изд-во физ.-мат. лит-ры, 1960. С. 49-60.
5. Lo Czu Kai. Precompleteness of a set and rings of linear functions // Acta sei. N 2. Jilinesis: Natur Univ., 1963.
6. Rosenberg I. La structure des fonctions de plusieurs variables sur un ensemble fini // Comptes Rendus. 1965. 260. P. 3817-3819.
7. Rozenberg I. Über die funktionale Vollständigkeit in der mehrwertigen Logiken / / Rozpravy Cescko-slovenskë Academie vd. N 80. Praga: Rada matematickych a prirodnieh vëd., 1970. P. 3-93.
8. Алексеев В. Б., Емельянов H. Р. Метод построения быстрых алгоритмов в k-значной логике // Матем. заметки, 1985. 38. № 1. С. 148-156.
9. Селезнева С. Н. О сложности распознавания полноты множеств булевых функций, реализованных полиномами Жегалкина // Дискрет, матем. 1997. 9. № 4. С. 24-31.
10. Селезнева С.Н. Полиномиальный алгоритм для распознавания принадлежности реализованной полиномом функции k-значной логики предполным классам самодвойственных функций // Дискрет, матем. 1998. 10. № 3. С. 64-72.
11. Селезнева С.Н. Полиномиальный алгоритм распознавания свойства функций многозначных логик, представленных полиномом, сохранять рефлексивный и транзитивный предикат // Тезисы докладов XII Международной конференции "Проблемы теоретической кибернетики". М.: Изд-во МГУ, 1999. С. 207.
12. Яблонский C.B., Гаврилов Г.П., Набебин A.A. Предполные классы в многозначных логиках. М.: Изд-во МЭИ, 1997.
13. Лидл Р., Нидеррайтер Г. Конечные поля. Т. 2. М.: Мир, 1988.
Поступила в редакцию 20.12.10
ABOUT COMPLEXITY OF CHECKING PRESERVING SOME SETS BY MULTIPLE-VALUED FUNCTIONS, REPRESENTED BY POLYNOMIALS
Bukhman A. V.
Functions of k- valued logic are considered, when k is simple. Polynomial-time algorithm for checking if a k- valued function represented by polynomial preserves a set are constructed, for sets of the form E(lxl) and E(lxl) \ {0}, where E(g(x)) is range of function g{x). Number of sets which are preserved by functions and can be checked by the algorithms is evaluated.
Keywords: function of multiple-valued logic, polynomial-time algorithm, polynomial modulo k.