Сложностный класс BPP — различия между версиями
Miron (обсуждение | вклад) (замена math на tex) |
м (rollbackEdits.php mass rollback) |
||
(не показаны 4 промежуточные версии 3 участников) | |||
Строка 22: | Строка 22: | ||
Докажем обратное включение. Пусть <tex>L \in BPP</tex>, тогда существует | Докажем обратное включение. Пусть <tex>L \in BPP</tex>, тогда существует | ||
[[Вероятностная машина Тьюринга|ВМТ]] <tex>m_{1}: T(m_{1},x) = Poly(|x|) \wedge P(m_{1}(x) = [x \in L]) > 2/3</tex>. Построим [[Вероятностная машина Тьюринга|ВМТ]] <tex>m_{2}: T(m_{2},x) = Poly(|x|) \wedge P(m_{2}(x) = [x \in L]) >1 - 2^{-p(|x|)}</tex>, | [[Вероятностная машина Тьюринга|ВМТ]] <tex>m_{1}: T(m_{1},x) = Poly(|x|) \wedge P(m_{1}(x) = [x \in L]) > 2/3</tex>. Построим [[Вероятностная машина Тьюринга|ВМТ]] <tex>m_{2}: T(m_{2},x) = Poly(|x|) \wedge P(m_{2}(x) = [x \in L]) >1 - 2^{-p(|x|)}</tex>, | ||
− | используя заданные <tex>m_{1}</tex> и <tex>p(|x|)</tex>. Если нам это удастся, то <tex>L \in BPP_{strong} \Rightarrow BPP \ | + | используя заданные <tex>m_{1}</tex> и <tex>p(|x|)</tex>. Если нам это удастся, то <tex>L \in BPP_{strong} \Rightarrow BPP \subset BPP_{strong} \Rightarrow BPP_{strong} = BPP</tex>. |
====Построение <tex>m_{2}</tex>==== | ====Построение <tex>m_{2}</tex>==== | ||
Машина <tex>m_{2}</tex> будет работать таким образом: | Машина <tex>m_{2}</tex> будет работать таким образом: | ||
Строка 38: | Строка 38: | ||
Докажем обратное включение. Пусть <tex>L \in BPP_{weak}</tex>, тогда существует | Докажем обратное включение. Пусть <tex>L \in BPP_{weak}</tex>, тогда существует | ||
[[Вероятностная машина Тьюринга|ВМТ]] <tex>m_{1}: T(m_{1},x) = Poly(|x|) \wedge P(m_{1}(x) = [x \in L]) > 1/2 + 1/p(|x|)</tex>. Построим [[Вероятностная машина Тьюринга|ВМТ]] <tex>m_{2}: T(m_{2},x) = Poly(|x|) \wedge P(m_{2}(x) = [x \in L]) >2/3</tex>, | [[Вероятностная машина Тьюринга|ВМТ]] <tex>m_{1}: T(m_{1},x) = Poly(|x|) \wedge P(m_{1}(x) = [x \in L]) > 1/2 + 1/p(|x|)</tex>. Построим [[Вероятностная машина Тьюринга|ВМТ]] <tex>m_{2}: T(m_{2},x) = Poly(|x|) \wedge P(m_{2}(x) = [x \in L]) >2/3</tex>, | ||
− | используя заданные <tex>m_{1}</tex> и <tex>p(|x|)</tex>. Если нам это удастся, то <tex>L \in BPP \Rightarrow BPP_{weak} \ | + | используя заданные <tex>m_{1}</tex> и <tex>p(|x|)</tex>. Если нам это удастся, то <tex>L \in BPP \Rightarrow BPP_{weak} \subset BPP \Rightarrow BPP_{weak} = BPP</tex>. |
====Построение <tex>m_{2}</tex>==== | ====Построение <tex>m_{2}</tex>==== | ||
Машина <tex>m_{2}</tex> будет работать таким образом: | Машина <tex>m_{2}</tex> будет работать таким образом: | ||
− | запустим <tex>N_{ | + | запустим <tex>N_{weak}(p(|x|),m_{1})</tex> раз машину <tex>m_{1}</tex>, запоминая результат каждого запуска. |
Вернем <tex>1</tex>, если больше половины запусков вернули <tex>1</tex>. Иначе вернем <tex>0</tex>. | Вернем <tex>1</tex>, если больше половины запусков вернули <tex>1</tex>. Иначе вернем <tex>0</tex>. | ||
Если <tex>N_{weak}</tex> таково, что <tex>P(m_{2}(x) = [x \in L]) > 2/3) \wedge N_{weak} \in poly(|x|)</tex>, то искомая машина построена. | Если <tex>N_{weak}</tex> таково, что <tex>P(m_{2}(x) = [x \in L]) > 2/3) \wedge N_{weak} \in poly(|x|)</tex>, то искомая машина построена. |
Текущая версия на 19:16, 4 сентября 2022
Определение класса BPP
Классом вероятностная машина Тьюринга.
(от англ. bounded-error, probabilistic, polynomial) называется множество языков, для которых существует вероятностная машина Тьюринга такая, что вероятность того, что ее выходное значение совпадает с принадлежностью входа данным языкам больше и время ее работы ограничено полиномом от длины входа. , где -Очевидно, класс
.Также существуют два эквивалентных определения
:
Число в определении выбрано произвольно: если вместо него выбрать любое число, строго большее , то получится тот же самый класс. Это верно, поскольку если есть машина Тьюринга, распознающая язык с вероятностью ошибки , то точность можно сколь угодно хорошо улучшить за счёт относительно небольшого прироста времени. Если мы запустим машину раз подряд, а в качестве результата возьмём результат большинства запусков, то вероятность ошибки упадёт до , а время останется равным . Здесь запусков машины рассматриваются как схема Бернулли с испытаниями и вероятностью успеха , а формула, выражающая ошибку, — вероятность неудачи не менее чем в половине случаев. Если теперь запустить машину раз подряд, то время все еще будет , а вероятность ошибки упадёт до . Таким образом, с ростом показателя многочлена, оценивающего время, точность растёт экспоненциально, и можно достичь любого нужного значения.
Эквивалентность определений
Требуется доказать, что
Для доказательства обоих равенств потребуется неравенство Чернова:
Доказательство
Очевидно, что
Докажем обратное включение. Пусть , тогда существует
ВМТ . Построим ВМТ ,
используя заданные и . Если нам это удастся, то .
Построение
Машина
будет работать таким образом: запустим раз машину , запоминая результат каждого запуска. Вернем , если больше половины запусков вернули . Иначе вернем . Если таково, что , то искомая машина построена.Построение
При запуске машины
. Тогда, по неравенству Чернова: . Достаточно подобрать такое , чтобы . Несложными преобразованиями получаем , т.е. можем выбрать
Доказательство
Очевидно, что
Докажем обратное включение. Пусть , тогда существует
ВМТ . Построим ВМТ ,
используя заданные и . Если нам это удастся, то .
Построение
Машина
будет работать таким образом: запустим раз машину , запоминая результат каждого запуска. Вернем , если больше половины запусков вернули . Иначе вернем . Если таково, что , то искомая машина построена.Построение
При запуске машины
. Тогда, по неравенству Чернова: . Достаточно подобрать такое , чтобы . Несложными преобразованиями получаем , т.е. можем выбрать .