Протокол Голдвассер-Сипсера для оценки размера множества — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Новая страница: «==Определение== Рассмотрим множество <tex>S \subseteq \left\{ 0, 1 \right\} ^m</tex>, для которого существует ...»)
 
(Описание протокола)
(не показано 19 промежуточных версий 2 участников)
Строка 1: Строка 1:
==Определение==
+
==Описание протокола==
Рассмотрим множество <tex>S \subseteq \left\{ 0, 1 \right\} ^m</tex>, для которого существует сертификат проверки на принадлежность. Протоколом Голдвассера-Сипсера является двухуровневый [[Интерактивные протоколы. Класс IP. Класс AM| интерактивный протокол]], в котором <tex>V</tex> старается принять множество <tex>S</tex>, если <tex>|S| \ge K</tex>, и отвергнуть, если <tex>|S| \le \frac{K}{2}</tex>.
+
Рассмотрим множество <tex>S \subseteq \left\{ 0, 1 \right\} ^m</tex>, для которого существует сертификат проверки на принадлежность. Протоколом Голдвассер-Сипсера является двухуровневый [[Интерактивные протоколы. Класс IP. Класс AM| интерактивный протокол]], в котором <tex>V</tex> старается принять множество <tex>S</tex>, если <tex>|S| \ge K</tex>, и отвергнуть, если <tex>|S| \le \frac{K}{2}</tex>.
  
Протокол устроен следующим образом:
+
Выберем <tex>k</tex> так, чтобы <tex>2^{k - 2} \le K \le 2^{k - 1}</tex>. Тогда протокол устроен следующим образом:
  
Выберем <tex>k</tex> так, чтобы <tex>2^{k - 2} \le K \le 2^{k - 1}</tex>.
+
<tex>V:</tex> Отправляет <tex>P</tex> случайным образом выбранные <tex>h : \left\{ 0, 1 \right\} ^ m \rightarrow \left\{ 0, 1 \right\} ^ k</tex> из [[Семейство универсальных попарно независимых хеш-функций| семейства универсальных попарно независимых хеш-функций]] <tex>H_{m, k}</tex> и <tex>y</tex> из <tex>\left\{ 0, 1 \right\} ^ k</tex>.
  
<tex>V:</tex> Отправляет <tex>P</tex>, случайным образом выбиранные <tex>h : \left\{ 0, 1 \right\} ^ m \rightarrow \left\{ 0, 1 \right\} ^ k</tex> из [[Семейство универсальных попарно независимых хеш-функций| семейства универсальных попарно независимых хеш-функций]] <tex>H_{m, k}</tex> и <tex>y</tex> из <tex>\left\{ 0, 1 \right\} ^ k</tex>.
+
<tex>P:</tex> Пытается найти <tex>x \in S</tex>, такой что <tex>h(x) = y</tex>. Отправляет <tex>V</tex> найденный <tex>x</tex> и сертификат <tex>c</tex>, подтверждающий принадлежность <tex>x</tex> множеству <tex>S</tex>.
  
<tex>P:</tex> Пытается <tex>x \in S</tex>, такой что <tex>h(x) = y</tex>. Отправляет <tex>V</tex> найденный <tex>x</tex> и сертификат <tex>c</tex> принадлежности <tex>x</tex> множеству <tex>S</tex>.
+
<tex>V:</tex> Если верно, что <tex>x \in S</tex> и <tex>h(x) = y</tex>, то множество <tex>S</tex> принимается. В противном случае <tex>V</tex> отвергает множество <tex>S</tex>.
 +
 
 +
==Оценки вероятностей==
 +
Пусть <tex>p = \frac{K}{2^k}</tex>. Если <tex>|S| \le \frac{K}{2}</tex>, тогда <tex>|h(S)| \le \frac{p\cdot2^k}{2}</tex>. Отсюда получаем, что <tex>P[y \in h(S)] \le \frac{p}{2}</tex>. Необходимо показать, что в случае <tex>|S| \ge K</tex>, <tex>V</tex> будет принимать <tex>S</tex> с вероятностью различимо большей <tex>\frac{p}{2}</tex>.
 +
 
 +
{{Утверждение
 +
|statement=
 +
Если <tex>K \le |S| \le 2^{k - 1}</tex>, то <tex>P[\exists x \in S \bigm| h(x) = y] \ge \frac{3}{4}\cdot\frac{|S|}{2^k}</tex>, где <tex>h</tex> случайным образом выбрано из <tex>H_{m, k}</tex>, а <tex>y~-</tex> из <tex>\left\{0,1\right\}^k</tex>.
 +
|proof=
 +
Покажем, что для каждого <tex>y \in \left\{0,1\right\}^k</tex> и случайно выбранной функции <tex>h \in H_{m,k}</tex> справедливо <tex>P[\exists x \in S \bigm| h(x) = y] \ge \frac{3}{4} p</tex>.
 +
 
 +
Для каждого <tex>x \in S</tex> определим [[Вероятностное пространство, элементарный исход, событие|событие]] <tex>E_x = \left\{h \in H_{m, k} \bigm| h(x) = y\right\}</tex>. Тогда <tex>P[\exists x \in S \bigm| h(x) = y] = P[\bigcup \limits_{x \in S}E_x]</tex>, что [[Формула включения-исключения | формуле включения-исключения]] не меньше, чем <tex>\sum \limits_{x \in S}P[E_x] - \sum\limits_{x_1 \ne x_2 \in S}P[E_{x_1} \cap E_{x_2}]</tex>. Поскольку выбирались <tex>h \in H_{m, k}</tex>, то <tex>P[E_x] = \frac{1}{2^k}</tex> и <tex>P[E_{x_1} \cap E_{x_2}] = \frac{1}{2^{2k}}</tex>. Тогда <tex>P[\bigcup \limits_{x \in S}E_x] \ge \frac{|S|}{2^k} - \frac{1}{2}\cdot\frac{|S|^2}{2^{2k}} \ge \frac{3}{4}\cdot\frac{|S|}{2^k} \ge \frac{3}{4}p</tex>.
 +
}}
 +
Стоит отметить, что если <tex>|S| > 2^{k - 1}</tex>, то <tex>P</tex> может выбрать <tex>C \subseteq S</tex> так, чтобы <tex>K \le |C| \le 2^{k - 1}</tex>. А значит, в качестве нижней оценки <tex>P[\exists x \in S \bigm| h(x) = y]</tex>  в этом случае можно использовать <tex>\frac{3}{4}p</tex>.
  
<tex>V:</tex> Если верно, что <tex>x \in S</tex> и <tex>h(x) = y</tex>, то множество <tex>S</tex> принимается. В противном случае <tex>V</tex> отвергает множество <tex>S</tex>.
+
Итого:
 +
# если <tex>|S| \le \frac{K}{2}</tex>, то <tex>P[V(|S| \ge K) = 1] \le \frac{p}{2}</tex>.
 +
# если <tex>|S| \ge K</tex>, то <tex>P[V(|S| \ge K) = 1] \ge \frac{3}{4}p</tex>.
 +
 
 +
==Источники==
 +
* ''Sanjeev Arora, Boaz Barak''. [http://www.cs.princeton.edu/theory/complexity Computational Complexity: A Modern Approach]
  
==Доказательство==
+
[[Категория: Теория сложности]]

Версия 12:43, 12 февраля 2017

Описание протокола

Рассмотрим множество [math]S \subseteq \left\{ 0, 1 \right\} ^m[/math], для которого существует сертификат проверки на принадлежность. Протоколом Голдвассер-Сипсера является двухуровневый интерактивный протокол, в котором [math]V[/math] старается принять множество [math]S[/math], если [math]|S| \ge K[/math], и отвергнуть, если [math]|S| \le \frac{K}{2}[/math].

Выберем [math]k[/math] так, чтобы [math]2^{k - 2} \le K \le 2^{k - 1}[/math]. Тогда протокол устроен следующим образом:

[math]V:[/math] Отправляет [math]P[/math] случайным образом выбранные [math]h : \left\{ 0, 1 \right\} ^ m \rightarrow \left\{ 0, 1 \right\} ^ k[/math] из семейства универсальных попарно независимых хеш-функций [math]H_{m, k}[/math] и [math]y[/math] из [math]\left\{ 0, 1 \right\} ^ k[/math].

[math]P:[/math] Пытается найти [math]x \in S[/math], такой что [math]h(x) = y[/math]. Отправляет [math]V[/math] найденный [math]x[/math] и сертификат [math]c[/math], подтверждающий принадлежность [math]x[/math] множеству [math]S[/math].

[math]V:[/math] Если верно, что [math]x \in S[/math] и [math]h(x) = y[/math], то множество [math]S[/math] принимается. В противном случае [math]V[/math] отвергает множество [math]S[/math].

Оценки вероятностей

Пусть [math]p = \frac{K}{2^k}[/math]. Если [math]|S| \le \frac{K}{2}[/math], тогда [math]|h(S)| \le \frac{p\cdot2^k}{2}[/math]. Отсюда получаем, что [math]P[y \in h(S)] \le \frac{p}{2}[/math]. Необходимо показать, что в случае [math]|S| \ge K[/math], [math]V[/math] будет принимать [math]S[/math] с вероятностью различимо большей [math]\frac{p}{2}[/math].

Утверждение:
Если [math]K \le |S| \le 2^{k - 1}[/math], то [math]P[\exists x \in S \bigm| h(x) = y] \ge \frac{3}{4}\cdot\frac{|S|}{2^k}[/math], где [math]h[/math] случайным образом выбрано из [math]H_{m, k}[/math], а [math]y~-[/math] из [math]\left\{0,1\right\}^k[/math].
[math]\triangleright[/math]

Покажем, что для каждого [math]y \in \left\{0,1\right\}^k[/math] и случайно выбранной функции [math]h \in H_{m,k}[/math] справедливо [math]P[\exists x \in S \bigm| h(x) = y] \ge \frac{3}{4} p[/math].

Для каждого [math]x \in S[/math] определим событие [math]E_x = \left\{h \in H_{m, k} \bigm| h(x) = y\right\}[/math]. Тогда [math]P[\exists x \in S \bigm| h(x) = y] = P[\bigcup \limits_{x \in S}E_x][/math], что формуле включения-исключения не меньше, чем [math]\sum \limits_{x \in S}P[E_x] - \sum\limits_{x_1 \ne x_2 \in S}P[E_{x_1} \cap E_{x_2}][/math]. Поскольку выбирались [math]h \in H_{m, k}[/math], то [math]P[E_x] = \frac{1}{2^k}[/math] и [math]P[E_{x_1} \cap E_{x_2}] = \frac{1}{2^{2k}}[/math]. Тогда [math]P[\bigcup \limits_{x \in S}E_x] \ge \frac{|S|}{2^k} - \frac{1}{2}\cdot\frac{|S|^2}{2^{2k}} \ge \frac{3}{4}\cdot\frac{|S|}{2^k} \ge \frac{3}{4}p[/math].
[math]\triangleleft[/math]

Стоит отметить, что если [math]|S| \gt 2^{k - 1}[/math], то [math]P[/math] может выбрать [math]C \subseteq S[/math] так, чтобы [math]K \le |C| \le 2^{k - 1}[/math]. А значит, в качестве нижней оценки [math]P[\exists x \in S \bigm| h(x) = y][/math] в этом случае можно использовать [math]\frac{3}{4}p[/math].

Итого:

  1. если [math]|S| \le \frac{K}{2}[/math], то [math]P[V(|S| \ge K) = 1] \le \frac{p}{2}[/math].
  2. если [math]|S| \ge K[/math], то [math]P[V(|S| \ge K) = 1] \ge \frac{3}{4}p[/math].

Источники