|
|
(не показано 6 промежуточных версий 5 участников) |
Строка 6: |
Строка 6: |
| # <tex>T(p, x) \le poly(|x|)</tex> для любой [[Вероятностные вычисления. Вероятностная машина Тьюринга |вероятностной ленты]]. | | # <tex>T(p, x) \le poly(|x|)</tex> для любой [[Вероятностные вычисления. Вероятностная машина Тьюринга |вероятностной ленты]]. |
| }} | | }} |
| + | <tex>\mathrm{BPP}</tex> — сложностный класс, допускающий двусторонние ошибки. |
| + | Константу <tex>2/3</tex> можно заменить на любое число из промежутка <tex>(1/2, 1)</tex>, так как требуемой вероятности можно добиться множественным запуском <tex>p</tex>. Замена константы на <tex>1/2</tex> сделала бы данный класс равным <tex>\Sigma^*</tex> (программа, возвращающая результат функции ''random''(), подошла бы для любого языка). |
| | | |
| {{Определение | | {{Определение |
Строка 15: |
Строка 17: |
| <tex>\mathrm{PP}</tex> также допускает двусторонние ошибки, но является более широким по сравнению с <tex>\mathrm{BPP}</tex>. | | <tex>\mathrm{PP}</tex> также допускает двусторонние ошибки, но является более широким по сравнению с <tex>\mathrm{BPP}</tex>. |
| | | |
− | <tex>\mathrm{BPP}</tex> — сложностный класс, допускающий двусторонние ошибки.
| |
− | Константу <tex>2/3</tex> можно заменить на любое число из промежутка <tex>(1/2, 1)</tex>, так как требуемой вероятности можно добиться множественным запуском <tex>p</tex>. Замена константы на <tex>1/2</tex> сделала бы данный класс равным <tex>\Sigma^*</tex> (программа, возвращающая результат функции ''random''(), подошла бы для любого языка).
| |
| | | |
| {{Определение | | {{Определение |
Строка 47: |
Строка 47: |
| # <tex>\mathrm{BPP_{strong}} \subseteq \mathrm{BPP} </tex> <br> Это следует из определений <tex>\mathrm{BPP}</tex> и <tex>\mathrm{BPP_{strong}}</tex>. | | # <tex>\mathrm{BPP_{strong}} \subseteq \mathrm{BPP} </tex> <br> Это следует из определений <tex>\mathrm{BPP}</tex> и <tex>\mathrm{BPP_{strong}}</tex>. |
| # <tex>\mathrm{BPP} \subseteq \mathrm{BPP_{strong}}</tex> <br> Пусть <tex>L \in \mathrm{BPP}</tex>. Тогда <tex>\exists p : P(p(x)=[x \in L]) \ge \frac {2}{3}</tex>. <br> Построим ВМТ <tex>p_1</tex>, которая для входа <tex>x</tex> запускает <tex>p(x)</tex> <tex>n</tex> раз, и принимает <tex>x</tex>, если больше половины запусков принимают его. <br> Подберем <tex>n</tex>, такое, что <tex>P(p_1(x)=[x \in L]) \ge 1 - \frac {1}{2^{q(|x|)}}</tex> и <tex>T(p_1(x)) \le poly(|x|)</tex>. <br> Проводя рассуждения, аналогичные изложенным в доказательстве <tex>\mathrm{BPP_{weak}} \subseteq \mathrm{BPP}</tex>, получаем, что <tex>1 - \mathrm{e}^{- 2n \left( {p - \frac{1}{2}} \right)^2} \ge 1 - \frac {1}{2^{q(|x|)}}</tex>, где <tex>p = \frac {2} {3}</tex>. Отсюда <tex>n \ge \frac {{q(|x|)} \ln 2}{2({\frac {2}{3} - \frac {1}{2}})^2} </tex>. Возьмем <tex>n = \lceil 18 {q(|x|)} \ln 2 \rceil </tex>, тогда неравенство <tex>T(p_1(x)) \le poly(|x|)</tex> будет выполнено. | | # <tex>\mathrm{BPP} \subseteq \mathrm{BPP_{strong}}</tex> <br> Пусть <tex>L \in \mathrm{BPP}</tex>. Тогда <tex>\exists p : P(p(x)=[x \in L]) \ge \frac {2}{3}</tex>. <br> Построим ВМТ <tex>p_1</tex>, которая для входа <tex>x</tex> запускает <tex>p(x)</tex> <tex>n</tex> раз, и принимает <tex>x</tex>, если больше половины запусков принимают его. <br> Подберем <tex>n</tex>, такое, что <tex>P(p_1(x)=[x \in L]) \ge 1 - \frac {1}{2^{q(|x|)}}</tex> и <tex>T(p_1(x)) \le poly(|x|)</tex>. <br> Проводя рассуждения, аналогичные изложенным в доказательстве <tex>\mathrm{BPP_{weak}} \subseteq \mathrm{BPP}</tex>, получаем, что <tex>1 - \mathrm{e}^{- 2n \left( {p - \frac{1}{2}} \right)^2} \ge 1 - \frac {1}{2^{q(|x|)}}</tex>, где <tex>p = \frac {2} {3}</tex>. Отсюда <tex>n \ge \frac {{q(|x|)} \ln 2}{2({\frac {2}{3} - \frac {1}{2}})^2} </tex>. Возьмем <tex>n = \lceil 18 {q(|x|)} \ln 2 \rceil </tex>, тогда неравенство <tex>T(p_1(x)) \le poly(|x|)</tex> будет выполнено. |
− | }}
| |
− |
| |
− | {{Теорема
| |
− | |statement =
| |
− | <tex>\mathrm{RP} \cup \mathrm{coRP} \subset \mathrm{BPP}</tex>.
| |
− | |proof =
| |
− | Пусть <tex>p</tex> — программа для <tex>L \in \mathrm{RP}</tex>. Программу <tex>q</tex> для <tex>\mathrm{BPP}</tex> определим следующим образом:
| |
− | <tex>q</tex>(x)
| |
− | u <- <tex>p</tex>(x)
| |
− | v <- <tex>p</tex>(x)
| |
− | '''return''' u '''or''' v
| |
− | Пусть <tex>x \in L</tex>. В этом случае вероятность ошибки равна <tex>\operatorname{P}(u = 0, v = 0) = \operatorname{P}(u = 0) \cdot \operatorname{P}(v = 0) \le 1/4</tex>.
| |
− |
| |
− | Пусть <tex>x \notin L</tex>. Тогда с вероятностью <tex>1</tex> будет верно <tex>u = 0, v = 0</tex> и <tex>q</tex> вернет правильный ответ.
| |
− |
| |
− | Аналогично доказывается, что <tex>\mathrm{coRP} \subset \mathrm{BPP}</tex>.
| |
| }} | | }} |
| | | |
Строка 68: |
Строка 52: |
| * [[Вероятностные вычисления. Вероятностная машина Тьюринга]] <br> | | * [[Вероятностные вычисления. Вероятностная машина Тьюринга]] <br> |
| * [http://en.wikipedia.org/wiki/Chernoff_bound Неравенство Чернова] | | * [http://en.wikipedia.org/wiki/Chernoff_bound Неравенство Чернова] |
| + | * [http://en.wikipedia.org/wiki/PP_(complexity) Wikipedia — PP compexity class] |
| + | * [http://en.wikipedia.org/wiki/Bounded-error_probabilistic_polynomial Wikipedia — BPP complexity class] |
| | | |
− | [[Категория: Теория сложности]] | + | [[Категория:Классы сложности]] |
| + | [[Категория:Теория формальных языков]] |
Определения
Определение: |
[math]\mathrm{BPP}[/math] (от bounded probabilistic polynomial) — множество языков [math]L[/math], для которых существует такая ВМТ [math]p[/math], что для любого [math]x[/math]:
- [math]P(p(x) = [x \in L]) \ge 2/3[/math];
- [math]T(p, x) \le poly(|x|)[/math] для любой вероятностной ленты.
|
[math]\mathrm{BPP}[/math] — сложностный класс, допускающий двусторонние ошибки.
Константу [math]2/3[/math] можно заменить на любое число из промежутка [math](1/2, 1)[/math], так как требуемой вероятности можно добиться множественным запуском [math]p[/math]. Замена константы на [math]1/2[/math] сделала бы данный класс равным [math]\Sigma^*[/math] (программа, возвращающая результат функции random(), подошла бы для любого языка).
Определение: |
[math]\mathrm{PP}[/math] (от probabilistic polynomial) — множество языков [math]L[/math], для которых [math]\exists p \forall x[/math]:
- [math]\operatorname{P}(p(x) = [x \in L]) \gt 1/2[/math];
- [math]\forall r \operatorname{T}(p, x) \le poly(|x|)[/math].
|
[math]\mathrm{PP}[/math] также допускает двусторонние ошибки, но является более широким по сравнению с [math]\mathrm{BPP}[/math].
Определение: |
[math]\mathrm{BPP_{weak}}[/math] — класс языков [math]L[/math], для которых существует такая ВМТ [math]p[/math], что для любого [math]x[/math]:
- [math]P(p(x)=[x \in L]) \ge \frac {1}{2} + \frac {1} {q(|x|)}[/math], где [math]q[/math]-полином и [math]q(|x|) \ge 3[/math];
- [math]T(p, x) \le poly(|x|)[/math] для любой вероятностной ленты.
|
Определение: |
[math]\mathrm{BPP_{strong}}[/math] — класс языков [math]L[/math], для которых существует такая ВМТ [math]p[/math], что для любого [math]x[/math]:
- [math]P(p(x)=[x \in L]) \ge 1 - \frac {1} {2^{q(|x|)}}[/math], где [math]q[/math]-полином и [math]q(|x|) \ge 3[/math];
- [math]T(p, x) \le poly(|x|)[/math] для любой вероятностной ленты.
|
Теорема
Теорема: |
[math]\mathrm{BPP} = \mathrm{BPP_{weak}} = \mathrm{BPP_{strong}}[/math]. |
Доказательство: |
[math]\triangleright[/math] |
В доказательстве будет использоваться неравенство Чернова:
[math]\forall p : \frac {1} {2} \le p \le 1: \sum\limits_{i = \lfloor \frac{n}{2} \rfloor + 1}^n \binom{n}{i}p^i (1 - p)^{n - i} \ge 1 - \mathrm{e}^{- 2n \left( {p - \frac{1}{2}} \right)^2}[/math]
- Докажем, что [math]\mathrm{BPP} = \mathrm{BPP_{weak}}[/math]
- [math]\mathrm{BPP} \subseteq \mathrm{BPP_{weak}}[/math]
Это следует из определений [math]\mathrm{BPP}[/math] и [math]\mathrm{BPP_{weak}}[/math].
- [math]\mathrm{BPP_{weak}} \subseteq \mathrm{BPP}[/math]
Пусть [math]L \in \mathrm{BPP_{weak}}[/math]. Тогда [math]\exists p : P(p(x)=[x \in L]) \ge \frac {1}{2} + \frac {1} {q(|x|)}[/math]. Построим ВМТ [math]p_1[/math], которая для входа [math]x[/math] запускает [math]p(x)[/math] [math]n[/math] раз, и принимает [math]x[/math], если больше половины запусков принимают его. Подберем [math]n[/math], такое, что [math]P(p_1(x)=[x \in L]) \ge \frac {2}{3}[/math] и [math]T(p_1(x)) \le poly(|x|)[/math]. Вероятность [math]P[/math] того, что [math]p_1(x)[/math] даст правильный результат равна вероятности, что больше половины запусков [math]p(x)[/math] дадут правильный результат. Тогда по схеме Бернулли [math]P = \sum\limits_{i = \lfloor \frac{n}{2} \rfloor + 1}^n \binom{n}{i}p^i (1 - p)^{n - i}[/math], где [math]p=\frac {1}{2} + \frac {1} {q(|x|)}[/math] — вероятность, что запуск [math]p(x)[/math] даст правильный ответ. По неравенству Чернова : [math] P \ge 1 - \mathrm{e}^{- 2n \left( {p - \frac{1}{2}} \right)^2} [/math]. То есть для того, чтобы [math]P(p(x)=[x \in L]) \ge \frac {2}{3}[/math] достаточно подобрать такое [math]n[/math], что [math]1 - \mathrm{e}^{- 2n \left( {p - \frac{1}{2}} \right)^2} \ge \frac {2}{3}[/math]. Получаем, что [math]n \ge \frac {\ln 3} {2(p - \frac {1} {2})^2} = \frac {{q(|x|)}^2 \ln 3}{2} [/math]. Возьмем [math]n = \lceil \frac {{q(|x|)}^2 \ln 3}{2} \rceil [/math], тогда неравенство [math]T(p_1(x)) \le poly(|x|)[/math] будет выполнено.
- Докажем, что [math]\mathrm{BPP} = \mathrm{BPP_{strong}}[/math]
- [math]\mathrm{BPP_{strong}} \subseteq \mathrm{BPP} [/math]
Это следует из определений [math]\mathrm{BPP}[/math] и [math]\mathrm{BPP_{strong}}[/math].
- [math]\mathrm{BPP} \subseteq \mathrm{BPP_{strong}}[/math]
Пусть [math]L \in \mathrm{BPP}[/math]. Тогда [math]\exists p : P(p(x)=[x \in L]) \ge \frac {2}{3}[/math]. Построим ВМТ [math]p_1[/math], которая для входа [math]x[/math] запускает [math]p(x)[/math] [math]n[/math] раз, и принимает [math]x[/math], если больше половины запусков принимают его. Подберем [math]n[/math], такое, что [math]P(p_1(x)=[x \in L]) \ge 1 - \frac {1}{2^{q(|x|)}}[/math] и [math]T(p_1(x)) \le poly(|x|)[/math]. Проводя рассуждения, аналогичные изложенным в доказательстве [math]\mathrm{BPP_{weak}} \subseteq \mathrm{BPP}[/math], получаем, что [math]1 - \mathrm{e}^{- 2n \left( {p - \frac{1}{2}} \right)^2} \ge 1 - \frac {1}{2^{q(|x|)}}[/math], где [math]p = \frac {2} {3}[/math]. Отсюда [math]n \ge \frac {{q(|x|)} \ln 2}{2({\frac {2}{3} - \frac {1}{2}})^2} [/math]. Возьмем [math]n = \lceil 18 {q(|x|)} \ln 2 \rceil [/math], тогда неравенство [math]T(p_1(x)) \le poly(|x|)[/math] будет выполнено.
|
[math]\triangleleft[/math] |
См. также