П/поли

Набор задач, решаемых с помощью малых схем

В теории вычислительной сложности P/poly — это класс сложности , представляющий проблемы, которые могут быть решены с помощью небольших схем. Точнее, это набор формальных языков, которые имеют семейства схем полиномиального размера. Его также можно эквивалентно определить в терминах машин Тьюринга с советами , дополнительной информацией, поставляемой машине Тьюринга вместе с ее входными данными, которая может зависеть от длины входных данных, но не от самих входных данных. В этой формулировке P/poly — это класс задач принятия решений , которые могут быть решены полиномиальной машиной Тьюринга со строками советов длины, полиномиальной по размеру входных данных. [1] [2] Эти два различных определения делают P/poly центральным для сложности схем и неоднородной сложности .

Например, популярный тест Миллера-Рабина на простоту можно сформулировать как алгоритм P/poly : «совет» — это список значений-кандидатов для проверки. Можно заранее вычислить список значений таким образом, что каждое составное n -битное число будет наверняка иметь свидетель a в списке. [3] Например, чтобы правильно определить простоту 32-битных чисел, достаточно проверить . [4] [5] Существование коротких списков свидетелей-кандидатов следует из того факта, что для каждого составного n три из четырех значений-кандидатов успешно определяют, что n является составным. Из этого следует простой аргумент подсчета, аналогичный аргументу в доказательстве, приведенном ниже, показывающий, что существует подходящий список значений-кандидатов для каждого размера входных данных, и, что более важно, что большинство достаточно длинных списков значений-кандидатов будут работать правильно, хотя поиск списка, который гарантированно будет работать, может быть затратным. [3] О ( н ) {\displaystyle O(n)} а { 2 , 7 , 61 } {\displaystyle а\в \{2,7,61\}} Б П П П / п о л у {\displaystyle {\mathsf {BPP}}\subset {\mathsf {P/поли}}}

P/poly , в отличие от других классов полиномиального времени, таких как P или BPP , обычно не считается практическим классом для вычислений. Действительно, он содержит все неразрешимые унарные языки , ни один из которых не может быть решен в общем случае реальными компьютерами. С другой стороны, если длина входных данных ограничена относительно небольшим числом, а строки советов короткие, его можно использовать для моделирования практических алгоритмов с отдельной дорогостоящей фазой предварительной обработки и быстрой фазой обработки, как в примере Миллера–Рабина.

Формальное определение

Класс сложности P/poly можно определить в терминах SIZE следующим образом:

П / п о л у = с Н С я З Э ( н с ) , {\displaystyle {\mathsf {P/поли}}=\bigcup _{c\in \mathbb {N} }{\mathsf {SIZE}}(n^{c}),}

где — множество задач принятия решений , которые могут быть решены семействами схем, имеющими не более вентилей. С я З Э ( н с ) {\displaystyle {\mathsf {РАЗМЕР}}(n^{c})} н с {\displaystyle n^{c}}

В качестве альтернативы можно определить с помощью машин Тьюринга, которые «принимают советы». Такая машина имеет для каждого n строку советов , которую ей разрешено использовать в своих вычислениях всякий раз, когда вход имеет размер n . Чтобы визуализировать эту эквивалентность, представьте, что совет для каждого n — это описание булевой схемы, имеющей n входов, и машина Тьюринга оценивает эту булеву схему на входах длины n . П / п о л у {\displaystyle {\mathsf {P/поли}}} α н {\displaystyle \альфа _{n}}

Пусть будут функциями. Класс языков, разрешимых за время T(n) машинами Тьюринга с советом, обозначаемый , содержит каждый язык L такой, что существует последовательность строк с и TM M, удовлетворяющая Т , а : Н Н {\displaystyle T,a:\mathbb {N} \rightarrow \mathbb {N} } а ( н ) {\displaystyle а(н)} Д Т я М Э ( Т ( н ) ) / а ( н ) {\displaystyle {\mathsf {DTIME}}(T(n))/a(n)} { α н } н Н {\displaystyle \{\alpha _{n}\}_{n\in \mathbb {N} }} α н { 0 , 1 } а ( н ) {\displaystyle \альфа _{n}\in \{0,1\}^{a(n)}}

М ( х , α н ) = 1 х Л {\displaystyle M(x,\alpha _{n})=1\Leftrightarrow x\in L}

для каждого , где на входе машина M работает не более шагов. [6] х { 0 , 1 } н {\displaystyle x\in \{0,1\}^{n}} ( x , α n ) {\displaystyle (x,\alpha _{n})} O ( T ( n ) ) {\displaystyle O(T(n))}

Важность P/poly

P/poly является важным классом по нескольким причинам. Для теоретической информатики существует несколько важных свойств, которые зависят от P/poly :

  • Если NPP/poly , то PH ( полиномиальная иерархия ) схлопывается до . Этот результат — теорема Карпа–Липтона ; кроме того, NPP/poly подразумевает AM = MA [7] Σ 2 P {\displaystyle \Sigma _{2}^{\mathsf {P}}}
  • Если PSPACEP/poly , то даже PSPACE = MA . P S P A C E = Σ 2 P Π 2 P {\displaystyle {\mathsf {PSPACE}}=\Sigma _{2}^{\mathsf {P}}\cap \Pi _{2}^{\mathsf {P}}}
Доказательство: Рассмотрим язык L из PSPACE . Известно, что существует интерактивная система доказательства для L , где действия доказывающего могут быть выполнены машиной PSPACE . По предположению, доказывающий может быть заменен схемой полиномиального размера. Следовательно, L имеет протокол MA : Мерлин отправляет схему в качестве доказательства, а Артур может сам смоделировать протокол IP без какой-либо дополнительной помощи.
  • Если P #PP/poly , то P #P = MA . [8] Доказательство аналогично предыдущему, основано на интерактивном протоколе для перманента и #P-полноте перманента .
  • Если EXPTIMEP/poly , то (теорема Мейера) даже EXPTIME = MA . E X P T I M E = Σ 2 P Π 2 P {\displaystyle {\mathsf {EXPTIME}}=\Sigma _{2}^{\mathsf {P}}\cap \Pi _{2}^{\mathsf {P}}}
  • Если NEXPTIMEP/poly , то NEXPTIME = EXPTIME , даже NEXPTIME = MA . Наоборот, NEXPTIME = MA подразумевает NEXPTIMEP/poly [9]
  • Если EXP NPP/poly , то (Бурман, Хомер) [10] E X P N P = Σ 2 P Π 2 P {\displaystyle {\mathsf {EXP^{NP}}}=\Sigma _{2}^{\mathsf {P}}\cap \Pi _{2}^{\mathsf {P}}}
  • Известно, что MA EXP , экспоненциальная версия MA , не содержится в P/poly .
Доказательство: Если MA EXPP/poly , то PSPACE = MA (см. выше). При заполнении EXPSPACE = MA EXP , поэтому EXPSPACE P /poly , но это можно доказать ложным с помощью диагонализации.

Одной из самых интересных причин, по которой P/poly важен, является свойство, что если NP не является подмножеством P/poly , то PNP . Это наблюдение было в центре многих попыток доказать PNP . Известно, что для случайного оракула A , NP A не является подмножеством P A ​​/poly с вероятностью 1. [1]

P/poly также используется в области криптографии . Безопасность часто определяется «против» противников P/poly . Помимо включения большинства практических моделей вычислений, таких как BPP , это также допускает возможность того, что противники могут выполнять тяжелые предварительные вычисления для входных данных до определенной длины, как при построении радужных таблиц .

Хотя не все языки в P/poly являются разреженными языками , существует полиномиальное по времени сведение по Тьюрингу любого языка в P/poly к разреженному языку. [11]

Вероятностный полином с ограниченной ошибкой содержится в P/poly

Теорема Адлемана утверждает, что BPPP/poly , где BPP — это множество задач, решаемых рандомизированными алгоритмами с двусторонней ошибкой за полиномиальное время. Более слабый результат был первоначально доказан Леонардом Адлеманом , а именно, что RPP/poly ; [12] и этот результат был обобщен до BPPP/poly Беннеттом и Гиллом. [ 13] Варианты теоремы показывают, что BPL содержится в L/poly , а AM содержится в NP/poly .

Доказательство

Пусть L — язык в BPP , а M ( x , r ) — алгоритм с полиномиальным временем, который определяет L с ошибкой ≤ 1/3 (где x — входная строка, а r — набор случайных битов).

Постройте новую машину M ' ( x , R ), которая запускает M 48 n раз и принимает большинство голосов по результатам (где n — длина входных данных, а R — последовательность из 48 n независимо случайных r s). Таким образом, M ' также является полиномиальной и имеет вероятность ошибки ≤ 1/ e n по границе Чернова (см. BPP ). Если мы можем исправить R, то мы получим алгоритм, который является детерминированным.

Если определено как , то имеем: Bad ( x ) {\displaystyle {\mbox{Bad}}(x)} { R : M ( x , R )  is incorrect } {\displaystyle \{R:M{'}(x,R){\text{ is incorrect}}\}}

x Prob R [ R Bad ( x ) ] 1 e n . {\displaystyle \forall x\,{\mbox{Prob}}_{R}[R\in {\mbox{Bad}}(x)]\leq {\frac {1}{e^{n}}}.}

Размер входных данных равен n , поэтому существует 2 n возможных входных данных. Таким образом, по объединенной границе вероятность того, что случайное R плохо по крайней мере для одного входного значения x, равна

Prob R [ x R Bad ( x ) ] 2 n e n < 1. {\displaystyle {\mbox{Prob}}_{R}[\exists x\,R\in {\mbox{Bad}}(x)]\leq {\frac {2^{n}}{e^{n}}}<1.}

Другими словами, вероятность того, что R плохо для некоторого x, меньше 1, поэтому должно быть R, которое хорошо для всех x . Возьмем такое R в качестве строки-совета в нашем алгоритме P/poly .

Ссылки

  1. ^ ab Lutz, Jack H.; Schmidt, William J. (1993), «Размер схемы относительно псевдослучайных оракулов», Theoretical Computer Science , 107 (1): 95– 119, doi :10.1016/0304-3975(93)90256-S, MR  1201167
  2. ^ Конспект лекций по вычислительной сложности Питера Бро Милтерсена (PDF) , архивировано из оригинала (PDF) 23.02.2012 , извлечено 25.12.2009
  3. ^ ab Goldreich, Oded ; Wigderson, Avi (2002), "Дерандомизация, которая редко бывает неправильной, исходя из краткого совета, который обычно хорош", в Rolim, José DP; Vadhan, Salil P. (ред.), Randomization and Approximation Techniques, 6th International Workshop, RANDOM 2002, Cambridge, MA, USA, 13-15 сентября 2002 г., Proceedings , Lecture Notes in Computer Science, т. 2483, Springer, стр.  209–223 , doi :10.1007/3-540-45726-7_17, ECCC  TR02-39
  4. ^ Колдуэлл, Крис, «2.3: Сильная вероятная простота и практический тест», Нахождение простых чисел и доказательство простоты
  5. ^ Йешке, Герхард (1993), «О сильных псевдопростых числах с несколькими основаниями», Математика вычислений , 61 (204): 915–926 , doi : 10.2307/2153262 , MR  1192971; см. стр. 926.
  6. ^ Арора, Санджив ; Барак, Боаз (2009), Вычислительная сложность. Современный подход , Cambridge University Press , ISBN 978-0-521-42426-4, Збл  1193.68112
  7. ^ Арвинд, Викраман; Кёблер, Йоханнес; Шёнинг, Уве ; Шулер, Райнер (1995), «Если NP имеет схемы полиномиального размера, то MA = AM», Теоретическая информатика , 137 (2): 279– 282, doi : 10.1016/0304-3975(95)91133-B , MR  1311226
  8. ^ Бабай, Ласло ; Фортнау, Лэнс ; Лунд, Карстен (1991), «Недетерминированное экспоненциальное время имеет двухдоказательные интерактивные протоколы», Computational Complexity , 1 (1): 3– 40, doi :10.1007/BF01200056, MR  1113533, заархивировано из оригинала 2012-03-31 , извлечено 2011-10-02
  9. ^ Импальяццо, Рассел ; Кабанец, Валентайн; Вигдерсон, Ави (2002), «В поисках простого свидетеля: экспоненциальное время против вероятностного полиномиального времени» (PDF) , Журнал компьютерных и системных наук , 65 (4): 672– 694, doi :10.1016/S0022-0000(02)00024-7, MR  1964649
  10. ^ Заметка о коллапсе Карпа-Липтона для экспоненциальной иерархии
  11. ^ Цзинь-И Цай. Лекция 11: P/poly, разреженные множества и теорема Махани. CS 810: Введение в теорию сложности. Университет Висконсин–Мэдисон. 18 сентября 2003 г.
  12. ^ Адлеман, Л. М. (1978), «Две теоремы о случайном полиномиальном времени», Труды девятнадцатого ежегодного симпозиума IEEE по основам компьютерной науки , стр.  75–83 , doi :10.1109/SFCS.1978.37
  13. ^ Чарльз Х. Беннетт, Джон Гилл. Относительно случайного оракула A, P A ≠ NP A ≠ co-NP A с вероятностью 1. [1]Значок открытого доступа
Retrieved from "https://en.wikipedia.org/w/index.php?title=P/poly&oldid=1273472728"