Сложностный класс BPP — различия между версиями
Miron (обсуждение | вклад) (объединение двух статей в одну) |
|||
Строка 19: | Строка 19: | ||
Число <tex>\frac{2}{3}</tex> в определении выбрано произвольно: если вместо него выбрать любое число, строго большее <tex>\frac{1}{2}</tex>, то получится тот же самый класс. Это верно, поскольку если есть машина Тьюринга, распознающая язык с вероятностью ошибки <tex>p</tex>, то точность можно сколь угодно хорошо улучшить за счёт относительно небольшого прироста времени. Если мы запустим машину <tex>k=|x|</tex> раз подряд, а в качестве результата возьмём результат большинства запусков, то вероятность ошибки упадёт до <tex>\left(2 \sqrt{p(1-p)} \right)^k</tex>, а время останется равным <tex>poly(|x|)</tex>. Здесь <tex>k</tex> запусков машины рассматриваются как схема Бернулли с <tex>k</tex> испытаниями и вероятностью успеха <tex>1-p</tex>, а формула, выражающая ошибку, — вероятность неудачи не менее чем в половине случаев. Если теперь запустить машину <tex>k^{2}</tex> раз подряд, то время все еще будет <tex>poly(|x|)</tex>, а вероятность ошибки упадёт до <tex>\left(2 \sqrt{p(1-p)} \right)^{k^2}</tex>. Таким образом, с ростом показателя многочлена, оценивающего время, точность растёт экспоненциально, и можно достичь любого нужного значения. | Число <tex>\frac{2}{3}</tex> в определении выбрано произвольно: если вместо него выбрать любое число, строго большее <tex>\frac{1}{2}</tex>, то получится тот же самый класс. Это верно, поскольку если есть машина Тьюринга, распознающая язык с вероятностью ошибки <tex>p</tex>, то точность можно сколь угодно хорошо улучшить за счёт относительно небольшого прироста времени. Если мы запустим машину <tex>k=|x|</tex> раз подряд, а в качестве результата возьмём результат большинства запусков, то вероятность ошибки упадёт до <tex>\left(2 \sqrt{p(1-p)} \right)^k</tex>, а время останется равным <tex>poly(|x|)</tex>. Здесь <tex>k</tex> запусков машины рассматриваются как схема Бернулли с <tex>k</tex> испытаниями и вероятностью успеха <tex>1-p</tex>, а формула, выражающая ошибку, — вероятность неудачи не менее чем в половине случаев. Если теперь запустить машину <tex>k^{2}</tex> раз подряд, то время все еще будет <tex>poly(|x|)</tex>, а вероятность ошибки упадёт до <tex>\left(2 \sqrt{p(1-p)} \right)^{k^2}</tex>. Таким образом, с ростом показателя многочлена, оценивающего время, точность растёт экспоненциально, и можно достичь любого нужного значения. | ||
+ | |||
+ | ==Эквивалентность определений== | ||
+ | Требуется доказать, что <math>~BPP_{strong} = BPP= BPP_{weak}</math>.<br> | ||
+ | Для доказательства обоих равенств потребуется неравенство Чернова:<br> | ||
+ | <center><math>\forall p > 1/2:~ \sum_{\mathcal{b}\frac{n}{2}\mathcal{c}+1}^{n}[{{{n\choose i}} p^{i}(1-p)^{n-i}] \geq 1 - e^{-2n(p-1/2)^2}}</math></center> | ||
+ | |||
+ | ===Доказательство <math>~BPP_{strong} = BPP</math>=== | ||
+ | Очевидно, что <math>~BPP_{strong} \subset BPP</math>.<br> | ||
+ | Докажем обратное включение. Пусть <math>L \in BPP</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_{2}</math>==== | ||
+ | Машина <math>m_{2}</math> будет работать таким образом: | ||
+ | запустим <math>~N_{str}(p(|x|),m_{1})</math> раз машину <math>m_{1}</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}(p|x|,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>P(m_{2}(x) = [x \in L]) = \sum_{\mathcal{b}\frac{N_{str}}{2}\mathcal{c}+1}^{N_{str}}[{N_{str}\choose i} p^{i}(1-p)^{N_{str}-i}]</math>. Тогда, по неравенству Чернова: <math>P(m_{2}(x) = [x \in L]) \geq 1 - e^{-2N_{str}(p-1/2)^2}</math>. Достаточно подобрать такое <math>N_{str}</math>, чтобы <math>1 - e^{-2N_{str}(p-1/2)^2} \geq 1 - 2^{-p(|x|)}</math>. Несложными преобразованиями получаем <math>N_{str} \geq \frac{p(|x|) \ln 2}{2(p-1/2)^2}</math>, т.е. можем выбрать <math>N_{str} \in poly(|x|)</math> | ||
+ | |||
+ | |||
+ | ===Доказательство <math>~BPP_{weak} = BPP</math>=== | ||
+ | Очевидно, что <math>~BPP \subset BPP_{weak}</math>.<br> | ||
+ | Докажем обратное включение. Пусть <math>L \in BPP_{weak}</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_{2}</math>==== | ||
+ | Машина <math>m_{2}</math> будет работать таким образом: | ||
+ | запустим <math>~N_{str}(p(|x|),m_{1})</math> раз машину <math>m_{1}</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}(p|x|,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>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:59, 15 апреля 2010
Определение класса PP
Классом вероятностная машина Тьюринга.
(от англ. probabilistic, polynomial) называется множество языков, для которых существует вероятностная машина Тьюринга такая, что вероятность того, что ее выходное значение совпадает с принадлежностью входа данным языкам больше и время ее работы ограничено полиномом от длины входа. В этом определениях - этоНо это очень широкий класс, поэтому вводится класс
.Определение класса BPP
Классом вероятностная машина Тьюринга.
(от англ. bounded-error, probabilistic, polynomial) называется множество языков, для которых существует вероятностная машина Тьюринга такая, что вероятность того, что ее выходное значение совпадает с принадлежностью входа данным языкам больше и время ее работы ограничено полиномом от длины входа. , где -Очевидно, класс
.Также существуют два эквивалентных определения
:
Число в определении выбрано произвольно: если вместо него выбрать любое число, строго большее , то получится тот же самый класс. Это верно, поскольку если есть машина Тьюринга, распознающая язык с вероятностью ошибки , то точность можно сколь угодно хорошо улучшить за счёт относительно небольшого прироста времени. Если мы запустим машину раз подряд, а в качестве результата возьмём результат большинства запусков, то вероятность ошибки упадёт до , а время останется равным . Здесь запусков машины рассматриваются как схема Бернулли с испытаниями и вероятностью успеха , а формула, выражающая ошибку, — вероятность неудачи не менее чем в половине случаев. Если теперь запустить машину раз подряд, то время все еще будет , а вероятность ошибки упадёт до . Таким образом, с ростом показателя многочлена, оценивающего время, точность растёт экспоненциально, и можно достичь любого нужного значения.
Эквивалентность определений
Требуется доказать, что
Для доказательства обоих равенств потребуется неравенство Чернова:
Доказательство
Очевидно, что
Докажем обратное включение. Пусть , тогда существует
ВМТ . Построим ВМТ ,
используя заданные и . Если нам это удастся, то .
Построение
Машина
будет работать таким образом: запустим раз машину , запоминая результат каждого запуска. Вернем , если больше половины запусков вернули . Иначе вернем . Если таково, что , то искомая машина построена.Построение
При запуске машины
. Тогда, по неравенству Чернова: . Достаточно подобрать такое , чтобы . Несложными преобразованиями получаем , т.е. можем выбрать
Доказательство
Очевидно, что
Докажем обратное включение. Пусть , тогда существует
ВМТ . Построим ВМТ ,
используя заданные и . Если нам это удастся, то .
Построение
Машина
будет работать таким образом: запустим раз машину , запоминая результат каждого запуска. Вернем , если больше половины запусков вернули . Иначе вернем . Если таково, что , то искомая машина построена.Построение
При запуске машины
. Тогда, по неравенству Чернова: . Достаточно подобрать такое , чтобы . Несложными преобразованиями получаем , т.е. можем выбрать .