1632
правки
Изменения
м
Утверждение '''теоремы Лаутемана'{{Лемма| statement = <tex>\mathrm{BPP} = \mathrm{coBPP}</tex>| proof =Рассмотрим <tex>L \in \mathrm{BPP}</tex>. Существует такая программа <tex>p</tex>, что <tex>P(p(x) = [x \in L]) \geqslant \frac{2}{3}</tex>. Покажем, что <tex>\overline{L} \in \mathrm{BPP}</tex>. Для этого рассмотрим следующую программу: <tex>p'(x):</tex> <tex>return (1 - p(x));</tex><tex>P(p' (Sipser–Lautemann theorem или Sipser–Gács–Lautemann theoremx) состоит в том, что класс = [x \in \overline{L}]) = P(p(x) = [Класс x \in L]) \geqslant \frac{2}{3}</tex>. Таким образом <tex>\overline{L} \in \mathrm{BPP}</tex>.#<tex>L \in \mathrm{BPP} \Rightarrow \overline{L} \in \mathrm{BPP | } \Rightarrow L = \overline{\overline{L}} \in \mathrm{coBPP}</tex>. Получаем <tex>\mathrm{BPP]] содержится в классах [[Классы Sigma_i и Pi_i|} \subset \mathrm{coBPP}</tex>.#<mathtex>L \in \mathrm{coBPP} \Rightarrow \overline{L} \in \mathrm{BPP} \Rightarrow L = \overline{\Sigma_2overline{L}} \in \mathrm{BPP}</mathtex> и . Получаем <mathtex>\Pi_2mathrm{coBPP} \subset \mathrm{BPP}</mathtex>]] [[Полиномиальная иерархия | полиномиальной иерархии]].}}
rollbackEdits.php mass rollback
==Теорема==
{{ Теорема
| about = Лаутеман| statement = <tex>\mathrm{BPP} \subset \mathrm{\Sigma_2 } \cap \mathrm{\Pi_2}</tex>
| proof =
Из того, что класс <tex>\mathrm{BPP}</tex> замкнут относительно дополнения и <tex>\mathrm{co}\Sigma_2 } = \mathrm{\Pi_2}</tex>, следует, что достаточно доказать включение <tex>\mathrm{BPP} \subset \mathrm{\Sigma_2}</tex>.
<tex>\mathrm{BPP}</tex> можно определить как множество таких языков <tex>L</tex>, что <tex>x \in L \Leftrightarrow \exists</tex> тогда и только тогда, когда существует «много» таких вероятностных лент <tex>y: R</tex>, что <tex>M(x,y)</tex>, где <tex>M</tex> — [[Вероятностные вычисления. Вероятностная машина Тьюринга | вероятностная машина Тьюринга]] для <tex>L</tex>. <tex>\mathrm{\Sigma_2}</tex> определяется как — множество таких языков <tex>\{ L \bigm| </tex>, что <tex>x \in L \Leftrightarrow \exists </tex> тогда и только тогда, когда существует такой <tex>y \forall </tex>, что для любого <tex>z </tex> <tex>R(x, y, z)\}</tex>. Таким образом, необходимо уметь записывать ««существует много» с помощью кванторов <tex>\exists</tex> много» с помощью кванторов , <tex>\exists\forall</tex>.
Рассмотрим язык <tex>G = \{0, 1\}^t</tex> для некоторого <tex>t</tex>. Определим операцию <tex>\oplus</tex> над словами из этого языка как побитовое исключающее или.
Назовем <tex>X</tex>, содержащееся в <tex>G</tex>, <tex>k</tex>-большим, если существует такой набор <tex>\{g_i\}_{i=1}^{k}\subset G</tex> такой, что <tex>\bigcup\limits_{i=1}^{k} g_i \oplus X = GU</tex>. Иначе будем называть <tex>X</tex> — <tex>k</tex>-маленьким.
Если <tex>|X| < \frac{2^t}{k}</tex>, то <tex>X</tex> является <tex>k</tex>-маленьким(так как <tex>k</tex> копий <tex>X</tex> не смогут покрыть <tex>G</tex>). Найдем достаточное условие, при котором <tex>X</tex> является <tex>k</tex>-большим.
Воспользуемся утверждением, что если вероятность <tex>P(x \in A) > 0</tex>, то существует <tex>x</tex> из <tex>A</tex>. Для этого
выберем случайно набор <tex>\{g_i\}_{i=1}^{k}\subset G</tex>.
<tex>P(\bigcup\limits_{i=1}^{k} g_i \oplus X \not = G) = P(\exists y \not \in \bigcup\limits_{i=1}^{k} g_i \oplus X) = P(\bigvee\limits_{i=1}^{2^t} y_i \not \in \bigcup\limits_{j=1}^{k} g_j \oplus X) </tex> <tex>\leqslant 2^t P(y \not \in \bigcup\limits_{i=1}^{k} g_i \oplus X) = 2^t P(\bigwedge\limits_{i=1}^{k} y \oplus g_i \not \in X) = 2^t \left(P(y \not \in X)\right)^k = 2^t \left(1 - \frac{|X|}{2^t}\right)^k</tex>.
Если <tex>2^t\left(1 - \frac{|X|}{2^t}\right)^k < 1</tex>, то существует такой набор <tex>\{g_i\}_{i=1}^{k}\subset G</tex>, такой что <tex>\bigcup\limits_{i=1}^{k} g_i \oplus X = G</tex>, то есть <tex>X</tex> — <tex>k</tex>-большое.
Рассмотрим язык <tex>L \in \mathrm{BPP}</tex>. Существует Тогда существует вероятностная машина Тьюринга <tex>Mm</tex>, такая что <tex>P(Mm(x) = [x \in L]) \geqslant 1 - \frac{2}{3}</tex>. Пусть <tex>m</tex> использует <tex>r(n)</tex> бит случайной ленты. По аналогии c [[Классы BPP и PP|доказательством]] <tex>\mathrm{BPP} = \mathrm{BPP_{strong}}</tex>, построим машину <tex>M</tex>, которая запускает <tex>m</tex> достаточное число раз, чтобы получить вероятность ошибки <tex>\frac{1}{2^{p(n)}}</tex>, где <tex>p(n)</tex> это некоторый полином, который будет определен определён позднее. Пусть Будет достаточно <tex>c p(n)^2</tex> запусков. Соответственно, <tex>M</tex> использует <tex>t(n) = c r(n)p(n)^2</tex> бит случайной ленты, <tex>P(M(x) = [x \in L]) \geqslant 1 - \frac{1}{2^{p(n)}}</tex>.
Зафиксируем <tex>x</tex>. Возьмем <tex>G = \{0, 1\}^{rt(n)}</tex>. Рассмотрим множество <tex>A_x = \{r \in G \bigm| M(x,r) = 1\}</tex>. Подберем теперь <tex>p(n)</tex> и <tex>k</tex> так, чтобы <tex>x \in L \Leftrightarrow A_x</tex> — <tex>k</tex>-большое.
Если <tex>x \in L</tex>, то <tex>P(A_xM(x) = 1) = \frac{|A_x|}{2^{rt(n)}} \geqslant 1 - \frac{1}{2^{p(n)}} \Rightarrow |A_x| \geqslant 2^{rt(n)} \left( 1 - \frac{1}{2^{p(n)}} \right)</tex>. Потребуем Значит <tex>2^{rt(n)} \left( 1 - \frac{|A_x|}{2^{rt(n)}} \right)^k \leqslant 2^{rt(n) - kp(n)} < 1</tex>, чтобы . Чтобы в этом случае <tex>A_x</tex> было бы <tex>k</tex>-большимпотребуем <tex>2^{t(n) - kp(n)} < 1</tex>.
Если <tex>x \not \in L</tex>, то <tex>P(A_xM(x) = 1) = \frac{|A_x|}{2^{rt(n)}} \leqslant \frac{1}{2^{p(n)}} \Rightarrow |A_x| \leqslant 2^{rt(n) - p(n)}</tex>. Потребуем Чтобы в этом случае <tex>A_x</tex> было бы <tex>k</tex>-маленьким потребуем <tex>2^{rt(n) - p(n)} < \frac{2^{rt(n)}}{k}</tex>, чтобы <tex>A_x</tex> было бы <tex>k</tex>-маленьким.
Выберем <tex>p(n)</tex> так, чтобы <tex>\frac{rt(n)}{p(n)} < 2^{p(n)} - </tex> (то есть <tex>c r(n) p(n) < 2^{p(n)}</tex> ) и <tex>k = \lceil \frac{rt(n)}{p(n)} \rceil + 1 = c r(n) p(n) + 1</tex>. Получаем <tex>\frac{rt(n)}{p(n)} < k < 2^{p(n)}</tex>, то есть <tex>x \in L \Leftrightarrow A_x</tex> — <tex>k</tex>-большое.
Таким образом, <tex>x \in L \Leftrightarrow \exists \{g_i\}_{i=1}^{k} \subset G</tex> : <tex>\forall y \bigvee\limits_{i=1}^{k} y \in g_i \oplus A_xG</tex>, то есть <tex>x \in L \Leftrightarrow \exists \{g_i\}_{i=1}^{k} \forall y left( \bigvee\limits_{i=1}^{k} y \oplus in g_i \in oplus A_x\right) </tex>. Заметив, то естьчто <tex>x y \in L g_i \oplus A_x \Leftrightarrow y \exists \{oplus g_i\}_{i=1}^{k} in A_x \forall y \bigvee\limits_{i=1}^{k} Leftrightarrow M(x, y \oplus g_i)</tex>,а, значит, получаем <tex>L \in \Sigma_2</tex>, <tex>\mathrm{BPP} \subset \mathrm{\Sigma_2}</tex> и <tex>\mathrm{BPP} \subset \mathrm{\Sigma_2 } \cap \mathrm{\Pi_2}</tex>.
}}
== См. также ==
*[[Вероятностные вычисления. Вероятностная машина Тьюринга]]
*[[Классы PH, Σ и Π]]
*[[Классы BPPweak и BPPstrong]]
== Литература ==
* ''Sanjeev Arora, Boaz Barak''. [http://www.cs.princeton.edu/theory/complexity Computational Complexity: A Modern Approach]
[[Категория: Теория сложности]]