Вероятностные вычисления. Классы RP, coRP, ZPP, BPP/Задачи/mc-amplification — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
Строка 1: Строка 1:
 
* <tt>A</tt> — Монте-Карло алгоритм с вероятностью правильного вычисления f(x): <m>\frac{1}{2}+p\left(|x|\right)</m>
 
* <tt>A</tt> — Монте-Карло алгоритм с вероятностью правильного вычисления f(x): <m>\frac{1}{2}+p\left(|x|\right)</m>
  
Сколько <tt>k(|x|)</tt> повторений вызова <tt>A</tt> надо сделать, чтобы добится вероятности правильного вычисления большей <tt>(1-q)</tt>?
+
Сколько <tt>k(|x|)</tt> повторений вызова <tt>A</tt> надо сделать, чтобы добиться вероятности правильного вычисления большей <tt>(1-q)</tt>?
  
 
Если:
 
Если:
Строка 7: Строка 7:
 
* <m>p\left(|x|\right)=\frac{1}{\log_2{|x|}}</m>
 
* <m>p\left(|x|\right)=\frac{1}{\log_2{|x|}}</m>
  
[[Category:Нерешенные задачи]]
+
[[Category:На проверку]]
 
<!--Вообще-то, решения уже есть-->
 
<!--Вообще-то, решения уже есть-->
 +
 +
<latex>
 +
 +
Решение (Василий Бунаков, 974 гр.)
 +
\smallskip
 +
 +
Пусть $f(x)$ принимает значения 0 или 1, и алгоритм А возвращает правильный ответ с вероятностью $P = 0.5 + p(|x|)$.
 +
Пусть происходит $k$ вызовов алгоритма А, и решение принимается на основе большинства результатов.
 +
Тогда вероятность правильного вычисления по оценке Чебышева:
 +
\begin{align*}
 +
& P_{true} \geq 1 - \exp(-2(P-0.5)^2 k)
 +
\end{align*}
 +
Чтобы вероятность правильного вычисления была больше $1-q$, достаточно потребовать, чтобы:
 +
\begin{align*}
 +
&1 - \exp(-2(P-0.5)^2 k) \geq 1 - q\\
 +
& k \geq \frac{-0.5 \ln q}{(P-0.5)^2}\\
 +
& k = \left\lceil \frac{-0.5 \ln q}{(P-0.5)^2} \right\rceil
 +
\end{align*}
 +
  При $P = 0.5 + p(|x|) = 0.5 + \frac{1}{|x|}$ получается, что $$k = \lceil -0.5 {|x|}^2 \ln q \rceil;$$
 +
  при $P =  0.5 + \frac{1}{\log |x|}$ число повторений вызова алгоритма равно $$k = \lceil -0.5 {(\log |x|)}^2 \ln q \rceil.$$
 +
 +
<\latex>

Версия 00:19, 26 декабря 2014

  • A — Монте-Карло алгоритм с вероятностью правильного вычисления f(x):

Сколько k(|x|) повторений вызова A надо сделать, чтобы добиться вероятности правильного вычисления большей (1-q)?

Если: