Теорема Шамира — различия между версиями
Строка 26: | Строка 26: | ||
Хотелось бы воспользоваться протоколом из [[Sharp SAT|доказательства принадлежности #SAT к классу IP]], проверяя <tex>A_i(1)\cdot A_i(0)=A_{i-1}(r_{i})</tex> в случае, когда <tex>x_i</tex> связан квантором <tex>\forall</tex>, и <tex>A_i(1)+A_i(0)=A_{i-1}(r_{i})</tex> для квантора <tex>\exists</tex>. К сожалению, сразу этот протокол применить нельзя, потому что произведение может увеличить степень полинома в два раза, а это может потребовать передачи по протоколу полиномов экспоненциальной длины, что не уложится по времени. | Хотелось бы воспользоваться протоколом из [[Sharp SAT|доказательства принадлежности #SAT к классу IP]], проверяя <tex>A_i(1)\cdot A_i(0)=A_{i-1}(r_{i})</tex> в случае, когда <tex>x_i</tex> связан квантором <tex>\forall</tex>, и <tex>A_i(1)+A_i(0)=A_{i-1}(r_{i})</tex> для квантора <tex>\exists</tex>. К сожалению, сразу этот протокол применить нельзя, потому что произведение может увеличить степень полинома в два раза, а это может потребовать передачи по протоколу полиномов экспоненциальной длины, что не уложится по времени. | ||
− | Поэтому потребуем, чтобы между появлением переменной и первым ее использованием было не более одного квантора <tex>\forall</tex>. Для этого заменим все суффиксы вида <tex>\forall x_{i+1} \tau(x_1, x_2, \ldots, x_i, x_{i+1})</tex> на <tex>\forall x_{i+1} \exists x_1',\ldots,x_i'(x_1=x_1')\land(x_2=x_2')\land \ldots \land(x_i=x_i')\land \tau(x_1', x_2', \ldots, x_i', x_{i+1})</tex>. Это преобразование не изменит выполнимости формулы, количество ее переменных увеличится лишь в полином от их первоначального количества раз, а сама формула тоже увеличится не более, чем полиномиально. Теперь можно использовать протокол из [[Sharp SAT|#SAT]], передаваться будут полиномы константной степени. | + | Поэтому потребуем, чтобы между появлением переменной и первым ее использованием было не более одного квантора <tex>\forall</tex>. Для этого заменим все суффиксы вида <tex>\forall x_{i+1} \tau(x_1, x_2, \ldots, x_i, x_{i+1})</tex> на <tex>\forall x_{i+1} \exists x_1',\ldots,x_i'(x_1=x_1')\land(x_2=x_2')\land \ldots \land(x_i=x_i')\land \tau(x_1', x_2', \ldots, x_i', x_{i+1})</tex>. Это преобразование не изменит выполнимости формулы, количество ее переменных увеличится лишь в полином от их первоначального количества раз, а сама формула тоже увеличится не более, чем полиномиально. Теперь можно использовать протокол из [[Sharp SAT|#SAT]] для получившейся формулы, передаваться будут полиномы константной степени. |
Версия 15:05, 20 мая 2010
Содержание
Формулировка
Доказательство
IP ⊂ PS
Рассмотрим язык
. Чтобы детерминированная машина Тьюринга могла установить принадлежность слова языку , ей нужно перебрать все ответы и вероятностные ленты , просимулировав с этими данными и посчитав вероятность допуска. Ясно, что эти действия потребуют не более памяти, а значит .PS ⊂ IP
Докажем, что язык
. Этого достаточно, так как .Введем следующую арифметизацию булевых формул с кванторами:
- , где — полином, получившийся в результате арифметизации
Результат этого выражения будет ненулевым в том и только в том случае, если исходная формула была истинна.
Рассмотрим пример:
Для записи этого числа нужно
бит. Если , это число невозможно передать за полиномиальное относительно длины исходной формулы время. Чтобы избежать таких больших чисел, приходится проводить все операции по какому-нибудь простому модулю .Начало интерактивного протокола:
- P выбирает простое и и посылает их V ( посылается вместе с его сертификатом простоты).
- V проверяет на простоту, а на неравенство нулю.
Хотелось бы воспользоваться протоколом из доказательства принадлежности #SAT к классу IP, проверяя в случае, когда связан квантором , и для квантора . К сожалению, сразу этот протокол применить нельзя, потому что произведение может увеличить степень полинома в два раза, а это может потребовать передачи по протоколу полиномов экспоненциальной длины, что не уложится по времени.
Поэтому потребуем, чтобы между появлением переменной и первым ее использованием было не более одного квантора #SAT для получившейся формулы, передаваться будут полиномы константной степени.
. Для этого заменим все суффиксы вида на . Это преобразование не изменит выполнимости формулы, количество ее переменных увеличится лишь в полином от их первоначального количества раз, а сама формула тоже увеличится не более, чем полиномиально. Теперь можно использовать протокол из