Теорема Шамира — различия между версиями
Строка 2: | Строка 2: | ||
'''[[Класс IP|IP]]''' = '''[[Класс PS|PS]]''' | '''[[Класс IP|IP]]''' = '''[[Класс PS|PS]]''' | ||
== Доказательство == | == Доказательство == | ||
− | === | + | === IP ⊂ PS === |
− | Рассмотрим язык <tex>L \in IP</tex>. Чтобы | + | Рассмотрим язык <tex>L \in IP</tex>. Чтобы детерминированная машина Тьюринга <tex>m</tex> могла установить принадлежность слова <tex>x</tex> языку <tex>L</tex>, ей нужно перебрать все ответы <tex>P</tex> и вероятностные ленты <tex>V</tex>, просимулировав <tex>V</tex> с этими данными и посчитав вероятность допуска. Ясно, что эти действия потребуют не более <tex>p(|x|)</tex> памяти, а значит <tex>L \in PS</tex>. |
− | === | + | === PS ⊂ IP === |
Докажем, что язык <tex>TQBF \in IP</tex>. Этого достаточно, так как <tex>TQBF \in PSC</tex>. | Докажем, что язык <tex>TQBF \in IP</tex>. Этого достаточно, так как <tex>TQBF \in PSC</tex>. | ||
Версия 19:08, 19 мая 2010
Содержание
Формулировка
Доказательство
IP ⊂ PS
Рассмотрим язык
. Чтобы детерминированная машина Тьюринга могла установить принадлежность слова языку , ей нужно перебрать все ответы и вероятностные ленты , просимулировав с этими данными и посчитав вероятность допуска. Ясно, что эти действия потребуют не более памяти, а значит .PS ⊂ IP
Докажем, что язык
. Этого достаточно, так как .Введем следующую арифметизацию булевых формул с кванторами:
Результат этого выражения будет ненулевым в том и только в том случае, если исходная формула была истинна.
Рассмотрим пример:
Для записи этого числа нужно
бит. Если , это число невозможно передать за полиномиальное относительно длины исходной формулы время. Чтобы избежать таких больших чисел, приходится проводить все операции по какому-нибудь простому модулю .Начало интерактивного протокола:
- P выбирает простое и и посылает их V ( посылается вместе с его сертификатом простоты).
- V проверяет на простоту, а на неравенство нулю.
Хотелось бы воспользоваться протоколом из доказательства принадлежности #SAT к классу IP, лишь проверяя в случае, когда по произведение. К сожалению, сразу этот протокол применить нельзя, потому что произведение может увеличить степень полинома в два раза. Поэтому потребуем, чтобы между появлением переменной и первым ее использованием было не более одного квантора . Для этого заменим все суффиксы вида на . От такого преобразования количество переменных увеличится лишь в полином от их первоначального количества раз, сама формула тоже увеличится не более, чем полиномиально. Теперь можно использовать протокол из #SAT, передаваться будут полиномы не выше второй степени.