Теорема Лаутемана — различия между версиями
Assaron (обсуждение | вклад) (→Формулировка) |
Assaron (обсуждение | вклад) (→Доказательство) |
||
Строка 8: | Строка 8: | ||
<tex>\mathrm{BPP}</tex> можно определить, как множество таких языков <tex>L</tex>, что <tex>x \in L \Leftrightarrow \exists</tex> «много» вероятностных лент <tex>y: R(x,y)</tex>. <tex>\Sigma_2</tex> определяется, как множество <tex>\{ L \mid x \in L \Leftrightarrow \exists y \forall z R(x, y, z)\}</tex>. Таким образом, необходимо уметь записывать «много» с помощью квантора <tex>\forall</tex>. | <tex>\mathrm{BPP}</tex> можно определить, как множество таких языков <tex>L</tex>, что <tex>x \in L \Leftrightarrow \exists</tex> «много» вероятностных лент <tex>y: R(x,y)</tex>. <tex>\Sigma_2</tex> определяется, как множество <tex>\{ L \mid x \in L \Leftrightarrow \exists y \forall z R(x, y, z)\}</tex>. Таким образом, необходимо уметь записывать «много» с помощью квантора <tex>\forall</tex>. | ||
− | Рассмотрим язык <tex>G</tex> — всех слов длины <tex> | + | Рассмотрим язык <tex>G</tex> — всех слов длины <tex>k</tex> над алфавитом <tex>{0, 1}</tex>, для некоторого <tex>k</tex>, значение которого будет получено позже. Определим операцию <tex>\oplus</tex> над славами из этого языка, как побитовое исключающее или. |
− | Назовем <tex>X</tex>, содержащееся в <tex>G</tex> большим, если существует набор <tex>g_1, g_2, \dots g_k</tex> | + | Назовем <tex>X</tex>, содержащееся в <tex>G</tex> большим, если существует набор <tex>g_1, g_2, \dots g_k</tex> такой, что <tex>\bigcup_{i=1}^{k} g_i \oplus X = G</tex>. |
Если <tex>k|X| < |G|</tex>, то <tex>X</tex> точное не является большим. Найдем достаточное условие, при котором <tex>X</tex> большой. | Если <tex>k|X| < |G|</tex>, то <tex>X</tex> точное не является большим. Найдем достаточное условие, при котором <tex>X</tex> большой. | ||
Строка 24: | Строка 24: | ||
Если <tex>|G|\left(1 - \frac{|X|}{|G|}\right)^k < 1</tex>, то существует набор <tex>\{g_i\}</tex>, что для любого <tex>y</tex> <tex>\bigwedge_{i=1}^{k} y \not \in g_i \oplus X</tex>, а из этого следует, что <tex>X</tex> большой. | Если <tex>|G|\left(1 - \frac{|X|}{|G|}\right)^k < 1</tex>, то существует набор <tex>\{g_i\}</tex>, что для любого <tex>y</tex> <tex>\bigwedge_{i=1}^{k} y \not \in g_i \oplus X</tex>, а из этого следует, что <tex>X</tex> большой. | ||
− | Рассмотрим язык <tex>L \in \mathrm{BPP}</tex>. | + | Рассмотрим язык <tex>L \in \mathrm{BPP}</tex>. Не уменьшая общности, можем считать, <tex>p(|x|)</tex> шагов и вероятность ошибки не превосходит |
+ | <tex>\frac{1}{3p(|x|)}</tex>, это следует из того, что если запускать программу несколько раз, то время работы растет линейно, а вероятность ошибки | ||
+ | экспоненциально уменьшается. Пусть его распознает машина <tex>M</tex>. | ||
− | <tex> | + | Зафиксируем <tex>x</tex>. Возьмем <tex>k = p(|x|)</tex>. Рассмотрим множество начал длины <tex>m</tex> вероятностных лент <tex>X</tex>, на которых |
+ | машина <tex>M</tex> выдает единицу, то есть <tex>X = \{y \in G \mid M(x,y) = 1\}</tex>. | ||
− | <tex>x \in L \Rightarrow \frac{| | + | Из того, что вероятность ошибки не превосходит <tex>\frac1{3k}</tex>, следует: |
+ | * <tex>x \in L \Rightarrow \frac{|X|}{|G|} \geqslant 1 - \frac1{3k}</tex> | ||
+ | * <tex>x \not \in L \Rightarrow \frac{|X|}{|G|} \leqslant \frac1{3k}</tex> | ||
− | <tex>x \not \in | + | Если <tex>x \in L</tex>, то: |
+ | * <tex>\frac{|X|}{|G|} \geqslant 1 - \frac1{3k}</tex>; | ||
+ | * <tex>1 - \frac{|X|}{|G|} \leqslant \frac1{3k}</tex>; | ||
+ | * <tex>|G|\left(1 - \frac{|X|}{|G|}\right)^k \leqslant |G| \frac1{3k}^k = \frac2{3k}^k < 1</tex>, что влечет за собой то, что <tex>X</tex> большой. | ||
+ | |||
+ | Если <tex>x \not \in</tex>, то <tex>\frac{|X|}{|G|} \leqslant \frac1{3k} < \frac1k</tex>, а значит <tex>X</tex> не является большим. | ||
+ | |||
+ | Таким образом, <tex>x \in L Leftrightarrow \exists k, g_1, g_2, \dots, g_k \forall y \bigvee_{i=1}^{m} y \in g_i \oplus X</tex>, а значит | ||
+ | <tex>L \in \Sigma_2</tex>, <tex>\mathrm{BPP} \subset \Sigma_2</tex> и <tex>\mathrm{BPP} \subset \Sigma_2 \cap \Pi_2</tex>, что и требовалось доказать. |
Версия 22:27, 9 апреля 2010
Формулировка
Теорема Лаутемана (Sipser–Lautemann theorem или Sipser–Gács–Lautemann theorem) утверждает, что класс BPP содержится в классах и полиномиальной иерархии.
Доказательство
Из того, что класс
замкнут относительно дополнения и следует, что достаточно доказать включение .можно определить, как множество таких языков , что «много» вероятностных лент . определяется, как множество . Таким образом, необходимо уметь записывать «много» с помощью квантора .
Рассмотрим язык
— всех слов длины над алфавитом , для некоторого , значение которого будет получено позже. Определим операцию над славами из этого языка, как побитовое исключающее или.Назовем
, содержащееся в большим, если существует набор такой, что .Если
, то точное не является большим. Найдем достаточное условие, при котором большой.Выберем случауно набор
.Для некотрого
:- ,
Если
, то существует набор , что для любого , а из этого следует, что большой.Рассмотрим язык
. Не уменьшая общности, можем считать, шагов и вероятность ошибки не превосходит , это следует из того, что если запускать программу несколько раз, то время работы растет линейно, а вероятность ошибки экспоненциально уменьшается. Пусть его распознает машина .Зафиксируем
. Возьмем . Рассмотрим множество начал длины вероятностных лент , на которых машина выдает единицу, то есть .Из того, что вероятность ошибки не превосходит
, следует:Если
, то:- ;
- ;
- , что влечет за собой то, что большой.
Если
, то , а значит не является большим.Таким образом,
, а значит , и , что и требовалось доказать.