Вероятностные вычисления. Классы RP, coRP, ZPP, BPP/Задачи/mc-amplification — различия между версиями
Материал из DISCOPAL
StasFomin (обсуждение | вклад) |
Bunakov (обсуждение | вклад) |
||
Строка 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>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> |
Версия 21:19, 25 декабря 2014
- A — Монте-Карло алгоритм с вероятностью правильного вычисления f(x):
Сколько k(|x|) повторений вызова A надо сделать, чтобы добиться вероятности правильного вычисления большей (1-q)?
Если: