Вероятностные вычисления. Вероятностная машина Тьюринга — различия между версиями
(→Соотношение вероятностных классов) |
(→Соотношение вероятностных классов) |
||
| Строка 87: | Строка 87: | ||
1) <tex>\mathrm{ZPP} \subset \mathrm{ZPP}_1</tex>. | 1) <tex>\mathrm{ZPP} \subset \mathrm{ZPP}_1</tex>. | ||
| − | Пусть <tex>X</tex> — случайная величина, равная времени работы программы <tex>p</tex> для <tex>\mathrm{ZPP}</tex>. Запишем | + | Пусть <tex>X</tex> — случайная величина, равная времени работы программы <tex>p</tex> для <tex>\mathrm{ZPP}</tex>, <tex>X > 0</tex>. Запишем [http://ru.wikipedia.org/wiki/Неравенство_Маркова неравенство Маркова]: |
| − | <tex>\operatorname{P}(X > k \operatorname{E}[X]) \le 1/k</tex> | + | <tex>\operatorname{P}(X > k \operatorname{E}[X]) \le 1/k</tex>. |
| − | ... | + | |
| + | Подставляем <tex>k = 2</tex>. Тогда, если запустить программу <tex>p</tex> для <tex>ZPP</tex> с ограничением по времени <tex>2E[X]</tex>, она не успеет завершиться с вероятностью, не превышающей <tex>1/2</tex>. В этом случае программа <tex>q</tex> для <tex>\mathrm{ZPP}_1</tex> вернет <tex>?</tex>, а иначе — результат программы <tex>p</tex>. Заметим, что <tex>q</tex> работает полиномиальное время, так как <tex>E[X]</tex> ограничено некоторым полиномом по определению класса <tex>\mathrm{ZPP}</tex>. | ||
2) <tex>\mathrm{ZPP_1} \subset \mathrm{ZPP}</tex>. Будем запускать программу p для <tex>\mathrm{ZPP_1}</tex>, пока не получим ответ, отличный от <tex>?</tex>. Математическое ожидание количества запусков <tex>p</tex> не превышает <tex>\sum\limits_{k = 0}^\infty \frac{k}{2^k} = 2</tex>. Значит, новая программа будет в среднем работать за полиномиальное время, что и требуется для класса <tex>\mathrm{ZPP}</tex>. | 2) <tex>\mathrm{ZPP_1} \subset \mathrm{ZPP}</tex>. Будем запускать программу p для <tex>\mathrm{ZPP_1}</tex>, пока не получим ответ, отличный от <tex>?</tex>. Математическое ожидание количества запусков <tex>p</tex> не превышает <tex>\sum\limits_{k = 0}^\infty \frac{k}{2^k} = 2</tex>. Значит, новая программа будет в среднем работать за полиномиальное время, что и требуется для класса <tex>\mathrm{ZPP}</tex>. | ||
Версия 02:20, 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(). Таким образом, мы построили программу , удовлетворяющую ограничениям класса . |
| Теорема: |
| Доказательство: |
| ... |