МАТЕМАТИКА
Вестник Омского университета, 2006. № 2. С. 35-37. © А.Н. Рыбалов, 2006
УДК 510.52
ПРИМЕР DNP-ПОЛНОИ ПРОБЛЕМЫ В АЛГЕБРАИЧЕСКИХ СИСТЕМАХ*
А.Н. Рыбалов
Омский государственный университет им. Ф.М. Достоевского, кафедра математической логики и логического программирования 644077, Омск, пр. Мира, 55а1
Получена 14 марта 2006 г.
An example of complete problem in non-deterministic polynomial complexity class DNP over arbitrary algebraic structure is considered.
В работе [2] был предложен подход к сложности вычислений над произвольной алгебраической системой на основе вычислимости над списочной надстройкой из [1]. В отличие от классической теории вычислительной сложности в рамках этого похода возникают два аналога класса NP. Первый, DNP, определяется с помощью вычислительных устройств, которые могут делать недетерминированные ветвления. Второй, NР, связан с машинами, использующими так называемые подсказки из основного множества системы. В работе [2] приводится пример полной проблемы в классе NP, являющийся обобщением классической проблемы выполнимости булевых формул. В данной работе приводится пример полной проблемы в классе DNP.
Пусть 21 = {А, а) - произвольная алгебраическая система, HL(21) = (HL(A),a*) - её списочная надстройка. Для того чтобы определить полное множество в классе DNP, введем понятие вычислительной схемы.
Определение 1. Вычислительная схема £ — конечный набор переменных у i, г = 1,..., п и условных присваиваний (для каждого г > 1 ) :
¥>¿1 —Уг '■ = til, . . . , ifiiki —У i := Uki >
где (pu,..., (piki - бескванторные формулы сигнатуры а* от переменных yj, j < i с параметрами из HL(A), a tu,..., tiki - термы а* от переменных yj, j < i или элементы HL(A).
Значение переменных схемы £ на .г G HL(A) определим по индукции. Через ¡/¿(.г) будем обозначать значение переменной y¡ на х. Полагаем
*Работа выполнена при финансовой поддержке РФФИ (код проекта 04-01-00489)
1 e-mail: [email protected]
yi (х) = х. Пусть для г = 1,..., s — 1 < п значения Уг уже определены, a ys определяется присваиванием
¥>sl —> У a '■= tal, ■ ■ ■ , faks У a '■= t.sks-
Тогда ys(x) равно tSj от значений уже определенных переменных ук(х), к < s, где j - первый индекс, для которого (pSj истинно, если же такого j нет, значение ys(x) равно ys_i(.r). Значение £(.г) вычислительной схемы £ на .г - это значение ее последней переменной уп(х).
Определим теперь кодировку 7 вычислительных схем элементами HL(A). Пусть Ai,..., Ап -все условные присваивания схемы С. Тогда
7(<С) = (¿(Ai),..., á(An)),
где код 6(Ai) присваивания A¿
Vil —Уг '■= í¿i, • • •, Vik, —Уг '■= tik,
определим так:
6(Ai) = (l3((pii),a(tii),..., ß(ipik.),a(tiki)),
где а, /3 - кодировки соответственно термов и формул сигнатуры а*, определенные в [2].
Определение 2. Вычислительная схема £ называется гладкой, если для любого х £ HL(A), такого, что size(x) < size(7(С)), для каждой переменной у i из £ имеет место
size(yi(x)) < s¿^e(7(C)).
Определим теперь множество
CIR = {7(С) : £ - гладкая и З.г € Li ({0,1})
size(x) < size(--/(C)) и С(х) = 1}.
Напомним, что Li ({0,1}) - множество всех конечных списков глубины 1 из Ohl и 1 нь-
36
А.Н. Рыбалов
Лемма 1. Функция
{(1 ,£(у)), х = (у, 7(С)), С — гладкая и
(0),
иначе вычислима полиномиальной МНР. Доказательство. Полиномиальная МНР, вычисляющая нее, действует так. Сначала проверяет условие
.31ге(1геас1(х)) < ,31ге(1аИ(х)).
Если оно не выполняется, выдает (0). Иначе по коду схемы в 1аИ(х) слева направо заменяет коды присваиваний на значения соответствующих переменных. Самое последнее такое значение и будет значением схемы. Параллельно проверяется, является ли список 1аИ(х) кодом вычислительной схемы. Если нет, то МНР выдает (0). Также после вычисления значения очередной переменной схемы проверяется, будет ли его размер меньшим размера кода схемы. Если нет, то схема не является гладкой и МНР выдает (0).
Лемма 2. С/ЛеШР.
Доказательство. Недетерминирован-
ная МНР с подсказками, проверяющая множество за полиномиальное время, работает на входе в следующим образом. Сначала проверяет, является ли в кодом вычислительной схемы. Затем генерирует список-подсказку х из 1/1 ({0,1}) и проверяет, равно ли значение схемы 1 при помощи функции нее, которая полиномиальна по лемме 1.
Теорема 1. С1И — ОМР-полное множество.
Доказательство. По лемме 1 С1К <Е ВМР. Покажем, что любое множество П € поли-
номиально сводится к С1 К. Существует недетерминированная МНР с подсказками М и полином р, такие, что
в € П -ФФ- существует вычислительный путь г
машины М на в такой, что < р(згге(з))
и М на нем выдает 1.
Полиномиальную сводимость П к С1И будем строить, моделируя работу М на входе в при помощи подходящей гладкой вычислительной схемы €в.
Переменными схемы будут
• • • т 1 1т • • • т Т,
которые отвечают за содержимое регистров
, • • •, Яп
МНР М на г-м шаге, переменные yi, г = 1,..., Т, содержащие номер ¿-й выполняемой команды, и переменные gi, г = 1,..., Т, отвечающие за недетерминированный переход на г-м шаге. Здесь Т = p(size(s)) — это гарантирует, что схема смоделирует все шаги М. Кроме того, будет одна начальная переменная g, в которой записан вход схемы, и последняя переменная z, в которую будет записано значение схемы. В дальнейшем нужно перенумеровать все эти переменные в том порядке, в котором они будут появляться в схеме.
Объясним подробнее смысл переменных g и gi. В вычислительном пути М на s могут встречаться инструкции недетерминированного перехода if ? goto I. Будем говорить, что недетерминированный переход в этой команде совершился, если после ее выполнения управление перешло к команде с номером I. При моделировании работы М на s схемой £s на ее вход будет подаваться список х = (cti,..., ctfc), где значение ctj соответствует г-й инструкции недетерминированного перехода Iji в пути М на s следующим образом: ctj = 1, если переход в Iji совершился, иначе ctj = 0. Значение начальной переменной схемы g будет как раз а значение каждой gi^i будет равно значению tail(gi), если на шаге г + 1 выполняется инструкция недетерминированного перехода, и будет равно значению gi иначе. Таким образом, информация о том, какая команда выбирается при недетерминированном переходе, хранится в head(gi).
Начальной конфигурации МНР на s будут соответствовать присваивания:
(д = д) := s (д = д) —^1,2 := nil
(д = д) —■= nil (д = д) yi ■= 1 (д = д) gi ■= д
Они в переменную .ri i записывают вход s, а в переменные xi^ при i > 1 константу nil. В переменную yi записывается 1 - номер выполняемой команды.
Пусть ,..., Im - команды МНР М. Переход от г-й конфигурации к i + 1-й будет описываться набором присваиваний, соответствующих переменным xi+1j, j = 1,...,?г, yi+1 и gi+1. А именно: каждой переменной .rj+ij соответствует присваивание
('Уг = 1) —> xi+l,j '■= h,
(yi = m) —xi+1j := tm,
где ti, I = 1,... ,m следующим образом зависит от команды /; .
Пример DNP-полной проблемы в алгебраических системах
37
Если /; есть 11 Щ := с", где с - константа из НЬ(А), то U = с.
Если /; - это 11 Rj := Rk 11, то ti = x^fc .
Если Ii есть 11 Rj := f(Rkl ,...,Rkr)", где / - функция из а* , то tt = /(.rijfcl,... , ;rijfcJ.
Если Ii - другая команда, то ti = Xij .
Переменной yi+i соответствует присваивание
((■Уг = 1) Л ipi) ->■ yi+1 := ii, ({Уг = 1) Л —'V?!) i/i+1 := га + 1,
((Уг = т) Л ¥>т) Уг+1 ■=
[{■Уг = пг) Л —i/j+1 := Уг + 1,
где ipi,ti, I = 1,... ,т следующим образом зависят от команды /; .
Если /; - это 11 if Rk = Rs goto q 11, то (pi =
= (Xi,k = Xi,s) И ti = qHL.
Если Ii есть "if P(Rkl,...,Rks) goto q", где P - предикат из a to (pi = = P(xiM ,..., xitks) И ti = qHL .
Если Ii - 11 if ? goto q", то (pi = (head(gi) = = 1) и ti = qHL .
Если Ii - другая команда, то ¡pi = (yt = ¡/¿) и ti = yi + 1.
Эти присваивания описывают изменения содержимых регистров и определяют номер следующей выполняемой команды на г-м шаге согласно программе М.
Переменной gi^i соответствует присваивание
(■Уг = 1) Уг+1 := il,
('Уг = пг) gi+1 := tm,
где ti = tail(gi), если /; - команда недетерминированного перехода и ti = gi, если /; - другая команда.
В конце необходимо добавить присваивание
{У = У) z ■=
которое значением схемы делает содержимое регистра R\ на последнем шаге работы М. Заметим, что даже если машина остановится за К < Т шагов, то все равно значение xt,i будет равно значению хк,1 — результату работы, так как все условия в присваиваниях х^д при г > К будут ложными (М останавливается, если номер следующей команды больше т), а по определению
значения схемы, тогда значения .г^д при г > К равны значению хц,1 ■
Легко теперь увидеть, что х £ ¿^({ОД}) такой, что £3(х) = 1, существует тогда и только тогда, когда существует вычислительный путь М на .з, на котором выдает 1 за время, ограниченное Т = згге(з). А именно: список х строится по вычислительному пути М на .з так, как было описано выше. И наоборот, по х можно построить соответствующий вычислительный путь.
Заметим, что размер такого х не превосходит 2Т + 1, так как все его элементы либо 0, либо 1, а их число не больше длины вычислительного пути, которая не больше Т. Размер же кода схемы , как видно из ее построения, будет больше
2Т + 1.
Отметим, что размеры значений переменных схемы не превосходят вг^е(7(£8)). Действительно, значение каждой х^- есть содержимое регистра М, размер которого не больше Т. Размер значения каждой у^ есть номер команды, а потому не превосходит т + 1 — константы. Размеры же д1 не превосходят згге(х). Из всего этого следует, что схема — гладкая.
Из построения схемы видно, что сводимость ,з I—>■ у(<£я) будет полиномиальной.
[1] Aiua.ee И.В., Беляев В.Я., Мясников А.Г. Подходы к теории обобщенной вычислимости // Алгебра и логика. 32. № 4. 1993. С. 349-386.
[2] Рыболов А.П. Сложность вычислений в алгебраических системах // Сибирский математический журнал. Т. 45. 2004. № 6. С. 1365-1377.