Вероятностные вычисления. Вероятностная машина Тьюринга — различия между версиями
(→Соотношение вероятностных классов) |
(→Соотношение вероятностных классов) |
||
| Строка 66: | Строка 66: | ||
== Соотношение вероятностных классов == | == Соотношение вероятностных классов == | ||
{{Теорема | {{Теорема | ||
| − | |statement = <tex>\mathrm{P} \subset \mathrm{ZPP} = \mathrm{RP} \cap \mathrm{coRP}</tex> | + | |statement = <tex>\mathrm{P} \subset \mathrm{ZPP} = \mathrm{RP} \cap \mathrm{coRP}</tex>. |
|proof = | |proof = | ||
Утверждение <tex>\mathrm{P} \subset \mathrm{ZPP}</tex> является очевидным, так как программы, разрешающие <tex>\mathrm{P}</tex>, удовлетворяют ограничениям класса <tex>\mathrm{ZPP}</tex>. | Утверждение <tex>\mathrm{P} \subset \mathrm{ZPP}</tex> является очевидным, так как программы, разрешающие <tex>\mathrm{P}</tex>, удовлетворяют ограничениям класса <tex>\mathrm{ZPP}</tex>. | ||
| Строка 107: | Строка 107: | ||
{{Теорема | {{Теорема | ||
| − | |statement = <tex>\mathrm{RP} \subset \mathrm{NP} \subset \mathrm{PP} \subset \mathrm{PS}</tex> | + | |statement = <tex>\mathrm{RP} \subset \mathrm{NP} \subset \mathrm{PP} \subset \mathrm{PS}</tex>. |
|proof = | |proof = | ||
Покажем, что <tex>\mathrm{RP} \subset \mathrm{NP}</tex>. Если в разрешающей программе для <tex>L \in \mathrm{RP}</tex> заменить все вызовы ''random''() на недетерминированный выбор, то получим программу с ограничениями <tex>\mathrm{NP}</tex>, разрешающую <tex>L</tex>. | Покажем, что <tex>\mathrm{RP} \subset \mathrm{NP}</tex>. Если в разрешающей программе для <tex>L \in \mathrm{RP}</tex> заменить все вызовы ''random''() на недетерминированный выбор, то получим программу с ограничениями <tex>\mathrm{NP}</tex>, разрешающую <tex>L</tex>. | ||
| Строка 134: | Строка 134: | ||
{{Теорема | {{Теорема | ||
|statement = | |statement = | ||
| − | <tex>\mathrm{RP} \subset \mathrm{BPP}</tex> | + | 1. <tex>\mathrm{RP} \subset \mathrm{BPP}</tex>;<br> |
| + | 2. <tex>\mathrm{coRP} \subset \mathrm{BPP}</tex>. | ||
|proof = | |proof = | ||
Пусть <tex>p</tex> — программа для <tex>L \in RP</tex>. Программу <tex>q</tex> для <tex>\mathrm{BPP}</tex> определим следующим образом: | Пусть <tex>p</tex> — программа для <tex>L \in RP</tex>. Программу <tex>q</tex> для <tex>\mathrm{BPP}</tex> определим следующим образом: | ||
| Строка 142: | Строка 143: | ||
'''return''' u '''or''' v | '''return''' u '''or''' v | ||
Пусть <tex>x \in L</tex>. В этом случае вероятность ошибки равна <tex>\operatorname{P}(u = 0, v = 0) = \operatorname{P}(u = 0) \cdot \operatorname{P}(v = 0) \le 1/4</tex>. | Пусть <tex>x \in L</tex>. В этом случае вероятность ошибки равна <tex>\operatorname{P}(u = 0, v = 0) = \operatorname{P}(u = 0) \cdot \operatorname{P}(v = 0) \le 1/4</tex>. | ||
| + | |||
Пусть <tex>x \notin L</tex>. Тогда <tex>u = 0, v = 0</tex> и <tex>q</tex> вернет правильный ответ. | Пусть <tex>x \notin L</tex>. Тогда <tex>u = 0, v = 0</tex> и <tex>q</tex> вернет правильный ответ. | ||
| + | |||
| + | Аналогично доказывается, что <tex>\mathrm{coRP} \subset \mathrm{BPP}</tex>. | ||
}} | }} | ||
| − | |||
== См. также == | == См. также == | ||
Версия 03:21, 31 мая 2012
Вероятностные вычисления — один из подходов в теории вычислительной сложности, в котором программы получают доступ к случайным битам. Мы рассмотрим классы сложности, для которых разрешающие программы могут делать односторонние, двусторонние ошибки или работать за полиномиальное время лишь в среднем случае.
Содержание
Основные определения
| Определение: |
| Вероятностная лента — бесконечная последовательность битов, распределение которых подчиняется некоторому вероятностному закону (обычно считают, что вероятность нахождения или в каждой позиции равна ). |
| Определение: |
| Вероятностная машина Тьюринга (ВМТ) — обобщение детерминированной машины Тьюринга. Переходы в ВМТ могут осуществляться с учетом информации, считанной с вероятностной ленты. |
Используя тезис Черча-Тьюринга, ВМТ можно сопоставить программы, имеющие доступ к случайным битам. Обращение к очередному биту можно трактовать как вызов специальной функции random(). При этом также будем предполагать, что вероятностная лента является неявным аргументом программы или ВМТ, т.е. , где — вероятностная лента.
Введем вероятностное пространство , где пространство элементарных исходов — множество всех вероятностных лент, — сигма-алгебра подмножеств , — вероятностная мера, заданная на . Покажем, что любой предикат от ВМТ является событием.
| Теорема: |
— предикат от ВМТ: . |
| Доказательство: |
|
Считаем, что фиксирован. , прочитала ровно первых символов с вероятностной ленты. , — префикс . как счетное объединение множеств, при этом . |
Вероятностные сложностные классы
| Определение: |
| (от zero-error probabilistic polynomial) — множество языков , для которых :
1) ; |
| Определение: |
| (от randomized polynomial) — множество языков , для которых :
1) ; |
Заметим, что константа в пункте 2 определения может быть заменена на любую другую из промежутка , поскольку требуемой вероятности можно добиться множественным запуском программы.
Определим также как дополнение к .
можно рассматривать как вероятностный аналог класса , предполагая, что вероятность угадать сертификат в случае его существования не менее .
| Определение: |
| (от bounded probabilistic polynomial) — множество языков , для которых :
1) ; |
Аналогично сделанному выше замечанию, константу можно заменить на любое число из промежутка . Замена константы на сделало бы данный класс равным .
| Определение: |
| (от bounded probabilistic polynomial) — множество языков , для которых :
1) ; |
Соотношение вероятностных классов
| Теорема: | ||
. | ||
| Доказательство: | ||
|
Утверждение является очевидным, так как программы, разрешающие , удовлетворяют ограничениям класса . Покажем, что . Для этого определим вспомогательный класс .
Сначала докажем, что . 1) . Пусть — случайная величина, равная времени работы программы для , . Запишем неравенство Маркова: . Подставляем . Тогда, если запустить программу для с ограничением по времени , она не успеет завершиться с вероятностью, не превышающей . В этом случае программа для вернет , а иначе — результат программы . Заметим, что работает полиномиальное время, так как ограничено некоторым полиномом по определению класса . 2) . Будем запускать программу p для , пока не получим ответ, отличный от . Математическое ожидание количества запусков не превышает . Значит, новая программа будет в среднем работать за полиномиальное время, что и требуется для класса . Теперь покажем, что . 1) . Достаточно вместо возвращать . 2) . Достаточно вместо возвращать . 3) . Пусть программа ошибается на словах из языка с вероятностью не более , ошибается на словах не из языка с аналогичной вероятностью. Вычислим значения и . Вернем , если . Вернем , если . В противном случае вернем . Вероятность вывести есть . | ||
| Теорема: |
. |
| Доказательство: |
|
Покажем, что . Если в разрешающей программе для заменить все вызовы random() на недетерминированный выбор, то получим программу с ограничениями , разрешающую . Покажем, что . Пусть — разрешающая программа для языка . Она используют не более чем полиномиальное количество вероятностных бит, так как сама работает за полиномиальное время. Тогда программа для будет перебирать все участки вероятностных лент нужной полиномиальной длины и запускать на них . Ответом будет или в зависимости от того, каких ответов оказалось больше. Теперь докажем, что . Приведем программу с ограничениями класса , которая разрешает . Пусть функция infair_coin() моделирует нечестную монету, а именно возвращает единицу с вероятностью , где мы определим позже, и ноль с вероятностью . Пусть также — верификатор сертификатов для . Тогда будет выглядеть следующим образом: q(x): c <- случайный сертификат (полиномиальной длины) return V(x, c) ? 1 : infair_coin() Необходимо удовлетворить условию . Пусть . В этом случае вернет и результат работы программы будет зависеть от нечестной монеты. Она вернет с вероятностью . Пусть . Тогда по формуле полной вероятности , где — вероятность угадать правильный сертификат. Заметим, что поскольку все сертификаты имеют полиномиальную длину и существует хотя бы один правильный сертификат, не более чем экспоненциально мала. Найдем из неравенства : ; ; . Достаточно взять . Из сделанного выше замечания следует, что работу функции infair_coin() можно смоделировать с помощью полиномиального количества вызовов random(). Таким образом, мы построили программу , удовлетворяющую ограничениям класса . |
| Теорема: |
1. ; 2. . |
| Доказательство: |
|
Пусть — программа для . Программу для определим следующим образом: q(x): u <- p(x) v <- p(x) return u or v Пусть . В этом случае вероятность ошибки равна . Пусть . Тогда и вернет правильный ответ. Аналогично доказывается, что . |