Теорема Шамира — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 3: Строка 3:
 
== Доказательство ==
 
== Доказательство ==
 
# <tex>IP \subset PS</tex>
 
# <tex>IP \subset PS</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>.
+
Рассмотрим язык <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>.
 
# <tex>PS \subset IP</tex>
 
# <tex>PS \subset IP</tex>
 
Докажем, что язык <tex>TQBF \in IP</tex>. Этого достаточно, так как <tex>TQBF \in PSC</tex>.
 
Докажем, что язык <tex>TQBF \in IP</tex>. Этого достаточно, так как <tex>TQBF \in PSC</tex>.
Строка 18: Строка 18:
 
  <tex>\varphi=\forall x_1 \forall x_2 \cdots \forall x_{k-1} \exists x_k (x_k \lor \lnot x_k)</tex>
 
  <tex>\varphi=\forall x_1 \forall x_2 \cdots \forall x_{k-1} \exists x_k (x_k \lor \lnot x_k)</tex>
 
  <tex>A_\varphi = \prod\limits_{X_1=0}^{1}\prod\limits_{X_2=0}^{1}\cdots \prod\limits_{X_{k-1}=0}^{1}\sum\limits_{X_k=0}^1(1-X_k(1-X_k)) = 2^{2^{(k-1)}}</tex>
 
  <tex>A_\varphi = \prod\limits_{X_1=0}^{1}\prod\limits_{X_2=0}^{1}\cdots \prod\limits_{X_{k-1}=0}^{1}\sum\limits_{X_k=0}^1(1-X_k(1-X_k)) = 2^{2^{(k-1)}}</tex>
Для записи этого числа нужно <tex>2^{(k-1)}</tex> бит. Если <tex>k \gg \log|\varphi|</tex>, его невозможно передать за полиномиальное относительно длины исходной формулы время.
+
Для записи этого числа нужно <tex>2^{(k-1)}</tex> бит. Если <tex>k \gg \log|\varphi|</tex>, это число невозможно передать за полиномиальное относительно длины исходной формулы время. Чтобы избежать таких больших чисел, приходится проводить все операции по какому-нибудь простому модулю <tex>p</tex>.
 +
 
 +
Итак, интерактивный протокол.
 +
 
 +
* ''P'' выбирает простое <tex>p</tex> и <tex>k \equiv A_\psi \pmod{p}</tex> и посылает их ''V'' (<tex>p</tex> посылается вместе с его сертификатом простоты).
 +
* ''V'' проверяет <tex>p</tex> на простоту, а <tex>k</tex> на неравенство нулю.

Версия 16:01, 19 мая 2010

Формулировка

IP = PS

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

  1. [math]IP \subset PS[/math]

Рассмотрим язык [math]L \in IP[/math]. Чтобы детерменированная машина Тьюринга [math]m[/math] могла установить принадлежность слова [math]x[/math] языку [math]L[/math], ей нужно перебрать все ответы [math]P[/math] и вероятностные ленты [math]V[/math], просимулировав [math]V[/math] с этими данными и посчитав вероятность допуска. Ясно, что эти действия потребуют не более [math]p(|x|)[/math] памяти, а значит [math]L \in PS[/math].

  1. [math]PS \subset IP[/math]

Докажем, что язык [math]TQBF \in IP[/math]. Этого достаточно, так как [math]TQBF \in PSC[/math].

Введем следующую арифметизацию булевых формул с кванторами:

  • [math]\lnot x \to 1-X[/math]
  • [math]x \land y \to XY[/math]
  • [math]x \lor y \to X+Y-XY = 1-(1-X)(1-Y)[/math]
  • [math]\exists x \varphi(x) \to \sum\limits_{X=0}^{1} A_\varphi(X)[/math]
  • [math]\forall x \varphi(x) \to \prod\limits_{X=0}^{1} A_\varphi(X)[/math]

Результат этого выражения будет ненулевым в том и только в том случае, если исходная формула была истина.

Рассмотрим пример:

[math]\varphi=\forall x_1 \forall x_2 \cdots \forall x_{k-1} \exists x_k (x_k \lor \lnot x_k)[/math]
[math]A_\varphi = \prod\limits_{X_1=0}^{1}\prod\limits_{X_2=0}^{1}\cdots \prod\limits_{X_{k-1}=0}^{1}\sum\limits_{X_k=0}^1(1-X_k(1-X_k)) = 2^{2^{(k-1)}}[/math]

Для записи этого числа нужно [math]2^{(k-1)}[/math] бит. Если [math]k \gg \log|\varphi|[/math], это число невозможно передать за полиномиальное относительно длины исходной формулы время. Чтобы избежать таких больших чисел, приходится проводить все операции по какому-нибудь простому модулю [math]p[/math].

Итак, интерактивный протокол.

  • P выбирает простое [math]p[/math] и [math]k \equiv A_\psi \pmod{p}[/math] и посылает их V ([math]p[/math] посылается вместе с его сертификатом простоты).
  • V проверяет [math]p[/math] на простоту, а [math]k[/math] на неравенство нулю.