Теорема Голдвассера, Сипсера — различия между версиями
(→Доказательство) |
(→Доказательство) |
||
Строка 9: | Строка 9: | ||
==Доказательство== | ==Доказательство== | ||
− | Заметим что | + | Заметим что, '''AM'''<tex>[f(n)+O(1)] \subset </tex> '''IP'''<tex>[f(n)]</tex> для любой функции <tex>f</tex>, так как открытые монетки "хуже" закрытых. |
+ | |||
+ | Докажем теперь, что '''IP'''<tex>[f(n)] \subset </tex> '''AM'''<tex>[f(n)+O(1)]</tex>. | ||
+ | Для этого докажем, что любой язык <tex>L</tex> из '''IP'''<tex>[f(n)]</tex> лежит также в '''AM'''<tex>[f(n)+O(1)]</tex>. | ||
+ | |||
+ | Пусть языку <tex>L</tex> соответствует верификатор <tex>V'</tex> для которого, в случае, если <tex>x \in L</tex>, существует прувер <tex>P'</tex> такой, что <tex>Pr(V'^{P'}(x) = 1) \ge 2/3</tex>. | ||
+ | Теперь мы хотим построить верификатор <tex>V</tex> из протокола Артура-Мерлина, использующий вероятностную ленту (доступную пруверу <tex>P</tex>) и <tex>V'</tex>. | ||
− | |||
Рассмотрим множество вероятностных лент <tex>R</tex> и его подмножество <tex>S \subset R</tex> - множество лент, на которых осуществляется допуск. В соответствии с протоколом, <tex>x \in L \Rightarrow P(V(x) = [x \in L]) \ge \frac{2}{3}</tex>, т.е. если слово принадлежит языку, то <tex>V</tex> должен вывести YES с достаточно большой вероятностью, а если <tex>x \notin L</tex>, то <tex>P(V(x) = [x \in L]) < \frac{1}{3}</tex>, т.е. если слово не принадлежит языку, то <tex>V</tex> разрешено ошибиться, но с достаточно малой вероятностью. Перефразируем эти условия так: | Рассмотрим множество вероятностных лент <tex>R</tex> и его подмножество <tex>S \subset R</tex> - множество лент, на которых осуществляется допуск. В соответствии с протоколом, <tex>x \in L \Rightarrow P(V(x) = [x \in L]) \ge \frac{2}{3}</tex>, т.е. если слово принадлежит языку, то <tex>V</tex> должен вывести YES с достаточно большой вероятностью, а если <tex>x \notin L</tex>, то <tex>P(V(x) = [x \in L]) < \frac{1}{3}</tex>, т.е. если слово не принадлежит языку, то <tex>V</tex> разрешено ошибиться, но с достаточно малой вероятностью. Перефразируем эти условия так: | ||
Строка 24: | Строка 29: | ||
Возьмем <tex>h \in H_{m,k}</tex> (<tex>H_{m,k}</tex> - [[Семейство универсальных попарно независимых хеш-функций|семейство универсальных попарно независимых хеш-функций]]), и <tex>y \in 2^k</tex>. Далее, отправим запрос <tex>P</tex> на получение <tex>s \in S</tex>, такого, что <tex>h(s)=y</tex>, и проверим, верно ли в действительности, что полученный <tex>s \in S</tex>. | Возьмем <tex>h \in H_{m,k}</tex> (<tex>H_{m,k}</tex> - [[Семейство универсальных попарно независимых хеш-функций|семейство универсальных попарно независимых хеш-функций]]), и <tex>y \in 2^k</tex>. Далее, отправим запрос <tex>P</tex> на получение <tex>s \in S</tex>, такого, что <tex>h(s)=y</tex>, и проверим, верно ли в действительности, что полученный <tex>s \in S</tex>. | ||
Пусть <tex>p=\frac{2K}{2^k}</tex>. | Пусть <tex>p=\frac{2K}{2^k}</tex>. | ||
− | * если <tex>|S|<K</tex> , то <tex>|h( | + | * если <tex>|S|<K</tex> , то <tex>|h(S)| < \frac{p \cdot 2^k}{2} = K \Rightarrow P(V(x) = [x \in L]) \le p/2</tex>, то есть в этом случае <tex>V</tex> ошибется с вероятностью не более <tex>\frac{1}{2}p</tex>; |
* если <tex>|S|>2K</tex>, и <tex>|S|<2^{k-1}</tex>, то поступим следующим образом. Мы хотим, чтобы выполнялось: <tex>P_{h,y}(\exists s: h(s)=y) \ge \frac{3}{4} \cdot \frac{|S|}{2K}</tex> . Обозначим как <tex>E_s</tex> событие <tex>h(s)=y</tex>. Рассмотрим <tex>y \in 2^m</tex>. <tex>P_{h}(\exists s: h(s)=y) = P_{h}(y \in \bigcup \limits_{s}h(s))= </tex> <tex> P_{h}(\bigcup \limits_{s}E_s) \ge \sum \limits_{j}P(E_s)-\sum \limits_{s_1 \ne s_2}P(E_{s_1} \bigcap E_{s_2})= \frac{|S|}{2^k}-\frac{1}{2}|S|^{2}\frac{1}{2^{2k}}=|S|\frac{1}{2^k}\left ( 1 - \frac{|S|}{2^{k+1}} \right )</tex> | * если <tex>|S|>2K</tex>, и <tex>|S|<2^{k-1}</tex>, то поступим следующим образом. Мы хотим, чтобы выполнялось: <tex>P_{h,y}(\exists s: h(s)=y) \ge \frac{3}{4} \cdot \frac{|S|}{2K}</tex> . Обозначим как <tex>E_s</tex> событие <tex>h(s)=y</tex>. Рассмотрим <tex>y \in 2^m</tex>. <tex>P_{h}(\exists s: h(s)=y) = P_{h}(y \in \bigcup \limits_{s}h(s))= </tex> <tex> P_{h}(\bigcup \limits_{s}E_s) \ge \sum \limits_{j}P(E_s)-\sum \limits_{s_1 \ne s_2}P(E_{s_1} \bigcap E_{s_2})= \frac{|S|}{2^k}-\frac{1}{2}|S|^{2}\frac{1}{2^{2k}}=|S|\frac{1}{2^k}\left ( 1 - \frac{|S|}{2^{k+1}} \right )</tex> | ||
Заметим, что <tex>|S|\frac{1}{2^k} > p</tex>, а <tex>\frac{|S|}{2^{k+1}} < \frac{1}{4}</tex>. Итак, действительно, <tex>P_{h}(\exists s: h(s)=y) > \frac{3}{4}p</tex>, т.е. в этом случае <tex>V</tex> примет слово с вероятностью <tex>\frac{3}{4}p > \frac{1}{2}p</tex>; | Заметим, что <tex>|S|\frac{1}{2^k} > p</tex>, а <tex>\frac{|S|}{2^{k+1}} < \frac{1}{4}</tex>. Итак, действительно, <tex>P_{h}(\exists s: h(s)=y) > \frac{3}{4}p</tex>, т.е. в этом случае <tex>V</tex> примет слово с вероятностью <tex>\frac{3}{4}p > \frac{1}{2}p</tex>; |
Версия 21:31, 3 июня 2010
Определение
Протокол Артура-Мерлина - интерактивный протокол доказательства, в котором (prover, Merlin) видит вероятностную ленту (verifier, Arthur)(т.н. public coins)
Определение
AM
- класс языков, распознаваемых с помощью интерактивного протокола доказательства Артура-Мерлина, причем количество запросов к не превышает .Формулировка теоремы
IP AM
Доказательство
Заметим что, AM
IP для любой функции , так как открытые монетки "хуже" закрытых.Докажем теперь, что IP
AM . Для этого докажем, что любой язык из IP лежит также в AM .Пусть языку
соответствует верификатор для которого, в случае, если , существует прувер такой, что . Теперь мы хотим построить верификатор из протокола Артура-Мерлина, использующий вероятностную ленту (доступную пруверу ) и .
Рассмотрим множество вероятностных лент и его подмножество - множество лент, на которых осуществляется допуск. В соответствии с протоколом, , т.е. если слово принадлежит языку, то должен вывести YES с достаточно большой вероятностью, а если , то , т.е. если слово не принадлежит языку, то разрешено ошибиться, но с достаточно малой вероятностью. Перефразируем эти условия так:
- , т.е. если слово принадлежит языку, то множество вероятностных лент, на которых слово будет допущено должно быть достаточно большим;
- , т.е. если слово не принадлежит языку, то множество вероятностных лент, на которых слово все же будет допущено, должно быть достаточно малым.
Число
выберем позже.Итак, есть множество
. Построим интерактивный протокол доказательства, такой что:- если , то с высокой вероятностью примет слово;
- если , то с высокой вероятностью не примет слово.
Выберем семейство универсальных попарно независимых хеш-функций), и . Далее, отправим запрос на получение , такого, что , и проверим, верно ли в действительности, что полученный . Пусть .
так, чтобы . Возьмем ( -- если , то , то есть в этом случае ошибется с вероятностью не более ;
- если , и , то поступим следующим образом. Мы хотим, чтобы выполнялось: . Обозначим как событие . Рассмотрим .
Заметим, что
, а . Итак, действительно, , т.е. в этом случае примет слово с вероятностью ;- если , то примет слово с вероятностью, большей, чем , так как с дальнейшим возрастанием мощности вероятность того, что примет слово только возрастет.
Теперь, выберем
: . Запустим построенный протокол доказательства некоторое константное количество раз для того, чтобы повысить точность, а именно добиться того, чтобы в случае, когда вероятность того, что ошибется была бы меньше .Итак, IP
AM . Теорема доказана.