Теорема Шамира — различия между версиями
AndrewD (обсуждение | вклад) |
|||
| Строка 1: | Строка 1: | ||
| + | {{Теорема | ||
| + | |author=Шамир | ||
| + | |statement=<tex>\mathrm{IP} = \mathrm{PS}</tex> | ||
| + | |proof= | ||
| + | * <tex>\mathrm{IP} \subset \mathrm{PS}</tex> | ||
| + | Рассмотрим язык <tex>L \in \mathrm{IP}</tex>, а также ''Verifier'' и ''Prover'', соответствующие этому языку. Так как ''Verifier'' ограничен полиномиальным временем работы, то можно считать, что размер вероятностной ленты, размер ответов ''Prover'' 'а и количество дополнительной памяти, используемой ''Verifier'' 'ом тоже ограничены некоторым полиномом. Построим программу, которая будет перебирать все возможные вероятностные ленты и для каждой из них будет симулировать работу ''Verifier'' 'а, перебирая все возможные ответы ''Prover'' 'а, а затем вернет наиболее часто встречающийся результат, возвращаемый ''Verifier'' 'ом. Данная программа использует полиномиальное количество дополнительной памяти. Значит <tex>L \in \mathrm{PS}</tex>. Поэтому <tex>\mathrm{IP} \subset \mathrm{PS}</tex> | ||
| + | * <tex>\mathrm{PS} \subset \mathrm{IP}</tex> | ||
| + | }} | ||
| + | |||
== Формулировка == | == Формулировка == | ||
'''[[Класс IP|IP]]''' = '''[[Класс PS|PS]]''' | '''[[Класс IP|IP]]''' = '''[[Класс PS|PS]]''' | ||
| Строка 9: | Строка 18: | ||
Введем следующую арифметизацию булевых формул с кванторами: | Введем следующую арифметизацию булевых формул с кванторами: | ||
* <tex>\lnot x \to 1-X</tex> | * <tex>\lnot x \to 1-X</tex> | ||
| − | * <tex>x \land y \to XY</tex> | + | * <tex>x \land y \to XY</tex>x |
* <tex>x \lor y \to X+Y-XY = 1-(1-X)(1-Y)</tex> | * <tex>x \lor y \to X+Y-XY = 1-(1-X)(1-Y)</tex> | ||
* <tex>\exists x \varphi(x) \to \sum\limits_{X=0}^{1} A_\varphi(X)</tex>, где <tex>A_\varphi</tex> — полином, получившийся в результате арифметизации <tex>\varphi</tex> | * <tex>\exists x \varphi(x) \to \sum\limits_{X=0}^{1} A_\varphi(X)</tex>, где <tex>A_\varphi</tex> — полином, получившийся в результате арифметизации <tex>\varphi</tex> | ||
Версия 16:46, 3 июня 2012
| Теорема (Шамир): |
| Доказательство: |
|
Рассмотрим язык , а также Verifier и Prover, соответствующие этому языку. Так как Verifier ограничен полиномиальным временем работы, то можно считать, что размер вероятностной ленты, размер ответов Prover 'а и количество дополнительной памяти, используемой Verifier 'ом тоже ограничены некоторым полиномом. Построим программу, которая будет перебирать все возможные вероятностные ленты и для каждой из них будет симулировать работу Verifier 'а, перебирая все возможные ответы Prover 'а, а затем вернет наиболее часто встречающийся результат, возвращаемый Verifier 'ом. Данная программа использует полиномиальное количество дополнительной памяти. Значит . Поэтому |
Содержание
Формулировка
Доказательство
IP ⊂ PS
Рассмотрим язык . Чтобы детерминированная машина Тьюринга могла установить принадлежность слова языку , ей нужно перебрать все ответы и вероятностные ленты , просимулировав с этими данными и посчитав вероятность допуска. Ясно, что эти действия потребуют не более памяти, а значит .
PS ⊂ IP
Докажем, что язык . Этого достаточно, так как .
Введем следующую арифметизацию булевых формул с кванторами:
- x
- , где — полином, получившийся в результате арифметизации
Результат этого выражения будет ненулевым в том и только в том случае, если исходная формула была истинна.
Рассмотрим пример:
Для записи этого числа нужно бит. Если , это число невозможно передать за полиномиальное относительно длины исходной формулы время. Чтобы избежать таких больших чисел, приходится проводить все операции по какому-нибудь простому модулю .
Начало интерактивного протокола:
- P выбирает простое и и посылает их V ( посылается вместе с его сертификатом простоты).
- V проверяет на простоту, а на неравенство нулю.
Хотелось бы воспользоваться протоколом из доказательства принадлежности #SAT к классу IP, проверяя в случае, когда связан квантором , и для квантора . К сожалению, сразу этот протокол применить нельзя, потому что произведение может увеличить степень полинома в два раза, а это может потребовать передачи по протоколу полиномов экспоненциальной длины, что не уложится по времени.
Поэтому потребуем, чтобы между появлением переменной и первым ее использованием было не более одного квантора . Для этого заменим все суффиксы вида на . Это преобразование не изменит выполнимости формулы, количество ее переменных увеличится лишь в полином от их первоначального количества раз, а сама формула тоже увеличится не более, чем полиномиально. Теперь можно использовать протокол из #SAT для получившейся формулы, передаваться будут полиномы константной степени.