Классы BPP и PP — различия между версиями
Miron (обсуждение | вклад) (Закончены доказательства.) |
Miron (обсуждение | вклад) |
||
Строка 18: | Строка 18: | ||
[[Вероятностная машина Тьюринга|ВМТ]] <math>m_{1}: T(m_{1},x) = Poly(|x|) \and P(m_{1}(x) = [x \in L]) > 2/3</math>. Построим [[Вероятностная машина Тьюринга|ВМТ]] <math>m_{2}: T(m_{2},x) = Poly(|x|) \and P(m_{2}(x) = [x \in L]) >1 - 2^{-p(|x|)}</math>, | [[Вероятностная машина Тьюринга|ВМТ]] <math>m_{1}: T(m_{1},x) = Poly(|x|) \and P(m_{1}(x) = [x \in L]) > 2/3</math>. Построим [[Вероятностная машина Тьюринга|ВМТ]] <math>m_{2}: T(m_{2},x) = Poly(|x|) \and P(m_{2}(x) = [x \in L]) >1 - 2^{-p(|x|)}</math>, | ||
используя заданные <math>m_{1}</math> и <math>~p(|x|)</math>. Если нам это удастся, то <math>L \in BPP_{strong} \Rightarrow BPP \in BPP_{strong} \Rightarrow ~BPP_{strong} = BPP</math>. | используя заданные <math>m_{1}</math> и <math>~p(|x|)</math>. Если нам это удастся, то <math>L \in BPP_{strong} \Rightarrow BPP \in BPP_{strong} \Rightarrow ~BPP_{strong} = BPP</math>. | ||
− | =====Построение <math>m_{2}</math>===== | + | =====Построение <math>~m_{2}</math>===== |
Машина <math>m_{2}</math> будет работать таким образом: | Машина <math>m_{2}</math> будет работать таким образом: | ||
запустим <math>~N_{str}(p(|x|),m_{1})</math> раз машину <math>m_{1}</math>, запоминая результат каждого запуска. | запустим <math>~N_{str}(p(|x|),m_{1})</math> раз машину <math>m_{1}</math>, запоминая результат каждого запуска. | ||
Вернем <math>1</math>, если больше половины запусков вернули <math>1</math>. Иначе вернем <math>0</math>. | Вернем <math>1</math>, если больше половины запусков вернули <math>1</math>. Иначе вернем <math>0</math>. | ||
Если <math>N_{str}</math> таково, что <math>P(m_{2}(x) = [x \in L]) >1 - 2^{-p(|x|)} \and N_{str} \in poly(|x|)</math>, то искомая машина построена. | Если <math>N_{str}</math> таково, что <math>P(m_{2}(x) = [x \in L]) >1 - 2^{-p(|x|)} \and N_{str} \in poly(|x|)</math>, то искомая машина построена. | ||
− | ======Построение <math>N_{str}(p|x|,m_{1})</math>====== | + | ======Построение <math>~N_{str}(p|x|,m_{1})</math>====== |
При запуске машины <math>m_{2}</math> все запуски <math>m_{1}</math> можно считать независимыми, причем каждый запуск | При запуске машины <math>m_{2}</math> все запуски <math>m_{1}</math> можно считать независимыми, причем каждый запуск | ||
<math>m_{1}</math> возвращает правильный ответ с вероятностью <math>p \geq 2/3 > 1/2</math>. Тогда по схеме Бернулли вероятность того, что больше половины запусков вернули правильный ответ, т.е <math>P(m_{2}(x) = [x \in L])</math>:<br> | <math>m_{1}</math> возвращает правильный ответ с вероятностью <math>p \geq 2/3 > 1/2</math>. Тогда по схеме Бернулли вероятность того, что больше половины запусков вернули правильный ответ, т.е <math>P(m_{2}(x) = [x \in L])</math>:<br> | ||
Строка 34: | Строка 34: | ||
[[Вероятностная машина Тьюринга|ВМТ]] <math>m_{1}: T(m_{1},x) = Poly(|x|) \and P(m_{1}(x) = [x \in L]) > 1/2 + 1/p(|x|)</math>. Построим [[Вероятностная машина Тьюринга|ВМТ]] <math>m_{2}: T(m_{2},x) = Poly(|x|) \and P(m_{2}(x) = [x \in L]) >2/3</math>, | [[Вероятностная машина Тьюринга|ВМТ]] <math>m_{1}: T(m_{1},x) = Poly(|x|) \and P(m_{1}(x) = [x \in L]) > 1/2 + 1/p(|x|)</math>. Построим [[Вероятностная машина Тьюринга|ВМТ]] <math>m_{2}: T(m_{2},x) = Poly(|x|) \and P(m_{2}(x) = [x \in L]) >2/3</math>, | ||
используя заданные <math>m_{1}</math> и <math>~p(|x|)</math>. Если нам это удастся, то <math>L \in BPP \Rightarrow BPP_{weak} \in BPP \Rightarrow ~BPP_{weak} = BPP</math>. | используя заданные <math>m_{1}</math> и <math>~p(|x|)</math>. Если нам это удастся, то <math>L \in BPP \Rightarrow BPP_{weak} \in BPP \Rightarrow ~BPP_{weak} = BPP</math>. | ||
− | =====Построение <math>m_{2}</math>===== | + | =====Построение <math>~m_{2}</math>===== |
Машина <math>m_{2}</math> будет работать таким образом: | Машина <math>m_{2}</math> будет работать таким образом: | ||
запустим <math>~N_{str}(p(|x|),m_{1})</math> раз машину <math>m_{1}</math>, запоминая результат каждого запуска. | запустим <math>~N_{str}(p(|x|),m_{1})</math> раз машину <math>m_{1}</math>, запоминая результат каждого запуска. | ||
Вернем <math>1</math>, если больше половины запусков вернули <math>1</math>. Иначе вернем <math>0</math>. | Вернем <math>1</math>, если больше половины запусков вернули <math>1</math>. Иначе вернем <math>0</math>. | ||
Если <math>N_{weak}</math> таково, что <math>P(m_{2}(x) = [x \in L]) > 2/3) \and N_{weak} \in poly(|x|)</math>, то искомая машина построена. | Если <math>N_{weak}</math> таково, что <math>P(m_{2}(x) = [x \in L]) > 2/3) \and N_{weak} \in poly(|x|)</math>, то искомая машина построена. | ||
− | ======Построение <math>N_{weak}(p|x|,m_{1})</math>====== | + | ======Построение <math>~N_{weak}(p|x|,m_{1})</math>====== |
При запуске машины <math>m_{2}</math> все запуски <math>m_{1}</math> можно считать независимыми, причем каждый запуск | При запуске машины <math>m_{2}</math> все запуски <math>m_{1}</math> можно считать независимыми, причем каждый запуск | ||
<math>m_{1}</math> возвращает правильный ответ с вероятностью <math>p = 1/2 + 1/p(|x|) > 1/2</math>. Тогда по схеме Бернулли вероятность того, что больше половины запусков вернули правильный ответ, т.е <math>P(m_{2}(x) = [x \in L])</math>:<br> | <math>m_{1}</math> возвращает правильный ответ с вероятностью <math>p = 1/2 + 1/p(|x|) > 1/2</math>. Тогда по схеме Бернулли вероятность того, что больше половины запусков вернули правильный ответ, т.е <math>P(m_{2}(x) = [x \in L])</math>:<br> | ||
<math>P(m_{2}(x) = [x \in L]) = \sum_{\mathcal{b}\frac{N_{weak}}{2}\mathcal{c}+1}^{N_{weak}}[{N_{weak}\choose i} p^{i}(1-p)^{N_{weak}-i}]</math>. Тогда, по неравенству Чернова: <math>P(m_{2}(x) = [x \in L]) \geq 1 - e^{-2N_{weak}(p-1/2)^2}</math>. Достаточно подобрать такое <math>N_{weak}</math>, чтобы <math>1 - e^{-2N_{weak}(p-1/2)^2} \geq 2/3</math>. Несложными преобразованиями получаем <math>N_{weak} \geq \frac{\ln 3}{2(1/2 +1/p(|x|)-1/2)^2} = \frac{p(|x|)^2 \ln 3}{2}</math>, т.е. можем выбрать <math>N_{weak} \in poly(|x|)</math>. | <math>P(m_{2}(x) = [x \in L]) = \sum_{\mathcal{b}\frac{N_{weak}}{2}\mathcal{c}+1}^{N_{weak}}[{N_{weak}\choose i} p^{i}(1-p)^{N_{weak}-i}]</math>. Тогда, по неравенству Чернова: <math>P(m_{2}(x) = [x \in L]) \geq 1 - e^{-2N_{weak}(p-1/2)^2}</math>. Достаточно подобрать такое <math>N_{weak}</math>, чтобы <math>1 - e^{-2N_{weak}(p-1/2)^2} \geq 2/3</math>. Несложными преобразованиями получаем <math>N_{weak} \geq \frac{\ln 3}{2(1/2 +1/p(|x|)-1/2)^2} = \frac{p(|x|)^2 \ln 3}{2}</math>, т.е. можем выбрать <math>N_{weak} \in poly(|x|)</math>. |
Версия 14:53, 15 апреля 2010
Содержание
Определения
где -- вероятностная машина Тьюринга.
Существуют альтернативные определения класса :
где ВМТ, а -- полином.
--где ВМТ, а -- полином.
--Эквивалентность определений
Требуется доказать, что
Для доказательства обоих равенств потребуется неравенство Чернова:
Доказательство
Очевидно, что
Докажем обратное включение. Пусть , тогда существует
ВМТ . Построим ВМТ ,
используя заданные и . Если нам это удастся, то .
Построение
Машина
будет работать таким образом: запустим раз машину , запоминая результат каждого запуска. Вернем , если больше половины запусков вернули . Иначе вернем . Если таково, что , то искомая машина построена.Построение
При запуске машины
. Тогда, по неравенству Чернова: . Достаточно подобрать такое , чтобы . Несложными преобразованиями получаем , т.е. можем выбрать
Доказательство
Очевидно, что
Докажем обратное включение. Пусть , тогда существует
ВМТ . Построим ВМТ ,
используя заданные и . Если нам это удастся, то .
Построение
Машина
будет работать таким образом: запустим раз машину , запоминая результат каждого запуска. Вернем , если больше половины запусков вернули . Иначе вернем . Если таково, что , то искомая машина построена.Построение
При запуске машины
. Тогда, по неравенству Чернова: . Достаточно подобрать такое , чтобы . Несложными преобразованиями получаем , т.е. можем выбрать .