2. Вероятностная Машина Тьюринга
Определение
Вероятностная машина Тьюринга аналогична
недетерминированной машине Тьюринга, только вместо
недетерминированного перехода в два состояния машина выбирает
один из вариантов с равной вероятностью.
Определение
Вероятностная машина Тьюринга представляет собой
детерминированную машину Тьюринга, имеющую дополнительно
источник случайных битов, любое число которых, например, она
может «заказать» и «загрузить» на отдельную ленту и потом
использовать в вычислениях обычным для МТ образом.
2 / 28
3. Классификация ВМТ
zero-error — ВМТ не допускающие ошибок (могут и не выдать
никакого ответа).
one-sided error — ВМТ с односторонними ошибками (могут произойти
и ложные срабатывания — ошибки второго рода).
two-sided error — ВМТ с двусторонними ошибками. Ошибки могут
быть и первого и второго рода, но вероятность
правильного ответа должна быть больше (чем больше,
1
тем лучше) 2 .
3 / 28
4. RP и coRP:«ВМТ с односторонней ошибкой»
Определение
Класс сложности RP (Random Polynomial-time) состоит из всех языков L, для
которых существует полиномиальная ВМТ M, такая, что:
1
x ∈L ⇒ P[M(x) = 1] ≥ ,
2
x ∈L
/ ⇒ P[M(x) = 0] = 1.
Определение
Класс сложности coRP (Complementary Random Polynomial-time) состоит из всех
языков L, для которых существует полиномиальная ВМТ M, такая, что:
x ∈L ⇒ P[M(x) = 1] = 1,
1
x ∈L
/ ⇒ P[M(x) = 0] ≥ .
2
4 / 28
5. RP и coRP через ДМТ
Определение
Класс сложности RP состоит из всех языков L, для которых существуют некий
полином p(·) и полиномиальная МТ M(x, y ), такая, что:
|{y : M(x, y ) = 1, |y | ≤ p(|x|)}| 1
x ∈L ⇒ ≥ ,
2p(|x|) 2
x ∈L
/ ⇒ ∀y , M(x, y ) = 0.
Определение
Класс сложности coRP состоит из всех языков L, для которых существуют некий
полином p(·) и полиномиальная МТ M(x, y ), такая, что:
x ∈L ⇒ ∀y , M(x, y ) = 1,
|{y : M(x, y ) = 0, |y | ≤ p(|x|)}| 1
x ∈L
/ ⇒ ≥ .
2p(|x|) 2
5 / 28
6. RP/coRP vs. N P/coN P
NP RP
1
x ∈ L ⇒ ∃y , M(x, y ) = 1 x ∈ L ⇒ доля y: M(x, y ) = 1 ≥ 2
x ∈ L ⇒ ∀y , M(x, y ) = 0
/ x ∈ L ⇒ ∀y , M(x, y ) = 0
/
Лемма
RP ⊆ N P.
Лемма
coRP ⊆ coN P.
6 / 28
8. Вероятностная амплификация
Лемма
˜ ˜
RP ⊆ C ⇒ C ≡ RP.
Доказательство.
Допустим L ∈ RP ⇒ ВМТ M(x) из определения «RP».
˜ ˜
Машина M: запустим на x M два раза, выдадим M: M1 (x) ∨ M2 (x).
1
Вероятность ошибки (x ∈ L, а M(x) = 0) pM < 2 .
˜
M ошибается при ошибке машины M на обоих запусках. Вероятность
такой ошибки будет
1 1 1
pM =
˜ · ≤ .
pM pM 4
˜ ˜
Для языка L, M удовлетворяет описанию C .
8 / 28
9. RP: Вероятностная амплификация
Определение
RP weak = {L : ∃ полиномиальная ВМТ M, и полином p(·) }:
1
x ∈ L ⇒ P[M(x) = 1] ≥
p(|x|)
x ∈ L ⇒ P[M(x) = 1] = 0
/
RP strong = {L : ∃ полиномиальная ВМТ M, и полином p(·) }:
x ∈ L ⇒ P[M(x) = 1] ≥ 1 − 2−p(|x|)
x ∈ L ⇒ P[M(x) = 1] = 0
/
Лемма
RP weak = RP strong = RP
9 / 28
10. RP: Вероятностная амплификация
Определение
RP weak = {L : ∃ полиномиальная ВМТ M, и полином p(·) }:
1
x ∈ L ⇒ P[M(x) = 1] ≥
p(|x|)
x ∈ L ⇒ P[M(x) = 1] = 0
/
RP strong = {L : ∃ полиномиальная ВМТ M, и полином p(·) }:
x ∈ L ⇒ P[M(x) = 1] ≥ 1 − 2−p(|x|)
x ∈ L ⇒ P[M(x) = 1] = 0
/
Лемма
RP weak = RP strong = RP
10 / 28
11. RP weak ∈ RP strong
Доказательство.
На x Mstrong запускает t раз Mweak , и возвращает Логическое ИЛИ от
всех результатов.
Вероятность ошибки (если x ∈ L):
t(|x|)
1
P(Mstrong (x) = 0) = (P(Mweak (x) = 0))t(|x|) = 1− .
p(|x|)
Необходимое «для разгона» количество запусков:
t(|x|)
1
1− ≤ 2−p(|x|) ,
p(|x|)
log 2 p(|x|)
t(|x|) ≥ − ≥ log 2 · p 2 (|x|).
1
log 1 − p(|x|)
11 / 28
12. BPP:«ВМТ с двусторонней ошибкой»
Определение
Класс сложности BPP (Bounded-Probability Polynomial-time) состоит
из всех языков L, для которых существует полиномиальная ВМТ M,
такая, что:
2
x ∈ L ⇒ P[M(x) = 1] ≥ ,
3
2
x ∈ L ⇒ P[M(x) = 0] ≥ .
/
3
12 / 28
13. Определение
∃ константа c, 0 < c < 1;
L ∈ BPP weak ⇐⇒ ∃ положительный полином p(·);
∃ полиномиальная ВМТ M;
1
x ∈ L ⇒ P[M(x) = 1] ≥ c +
p(|x|)
1
x ∈ L ⇒ P[M(x) = 1] < c −
/
p(|x|)
∃ положительный полином p(·);
L ∈ BPP strong ⇐⇒
∃ полиномиальная ВМТ M;
x ∈ L ⇒ P[M(x) = 1] ≥ 1 − 2−p(|x|)
x ∈ L ⇒ P[M(x) = 0] ≥ 1 − 2−p(|x|)
/
13 / 28
14. t независимых испытаний;
Mt — число осуществлений события A в t испытаниях.
Закон Больших Чисел для схемы Бернулли
Если событие A с одной и той же вероятностью p, тогда
Mt
−→ p
t
Mt p(1 − p)
∀ε > 0 P −p ≥ε ≤ .
t tε2
Оценка Чернова (Chernoff bounds)
1
Если событие A с одной и той же вероятностью p ≥ 2 , тогда
2
t 1
P Mt > ≥ 1 − exp −2 p − t .
2 2
14 / 28
15. BPP weak ⊆ BPP ⇒ BPP weak = BPP
M, вычислит p(|x|) и t = 6p 2 (|x|) раз запустит Mweak , и вернет
t
M(x) = Mt = Miweak > t · c
i=1
P1err = P(M(x) = 0|x ∈ L) = P(Mt < t · c)
1
E(Mt (x)|x ∈ L) = t · E Miweak (x) ≥ t · c + ,
p(|x|)
E(Mt )
Применяя теорему Бернулли и 0 ≤ t ≤ 1, получаем:
Mt E(Mt ) 1 p 2 (|x|) 1
P1err ≤ P − ≥ ≤ ≤ .
t t p(|x|) t 3
Аналогично оценивается P2err = P(M(x) = 1|x ∈ L).
/
15 / 28
16. BPP ⊆ BPP strong ⇒ BPP strong = BPP
Mstrong запускает t = 2p(|x|) + 1 раз BPP-машину M, решение — на
основе «большинства».
Если x ∈ L, то, согласно оценкам Чернова, вероятность правильного
ответа:
2
1
P(Mstrong (x) = 1) ≥ 1 − exp −2 p − ·t
2
2
2 1
= 1 − exp −2 − · (2p(|x|) + 1)
3 2
2p(|x|) + 1
= 1 − exp −
18
p(|x|)
> 1 − e− 9 > 1 − 2−p(|x|)
16 / 28
17. Неамплифицируемый класс PP
Определение
Класс сложности PP (Probability Polynomial-time) состоит из всех
языков L, для которых существует полиномиальная ВМТ M, такая,
что:
1
x ∈ L ⇒ P[M(x) = 1] > ,
2
1
x ∈ L ⇒ P[M(x) = 0] > .
/
2
17 / 28
18. Неамплифицируемый класс PP
Определение
L ∈ PP weak , если ∃ полиномиальная ВМТ M:
1
x ∈ L ⇒ P[M(x) = 1] >
2
1
x ∈ L ⇒ P[M(x) = 0] ≥
/
2
Лемма
PP weak = PP
Упражнение
Что будет, если в определении PP, в обоих неравенствах поставить
«≥»? Какой класс языков будет определен?
18 / 28
19. Неамплифицируемый класс PP
Определение
L ∈ PP weak , если ∃ полиномиальная ВМТ M:
1
x ∈ L ⇒ P[M(x) = 1] >
2
1
x ∈ L ⇒ P[M(x) = 0] ≥
/
2
Лемма
PP weak = PP
Упражнение
Что будет, если в определении PP, в обоих неравенствах поставить
«≥»? Какой класс языков будет определен?
19 / 28
20. Неамплифицируемый класс PP
Определение
L ∈ PP weak , если ∃ полиномиальная ВМТ M:
1
x ∈ L ⇒ P[M(x) = 1] >
2
1
x ∈ L ⇒ P[M(x) = 0] ≥
/
2
Лемма
PP weak = PP
Упражнение
Что будет, если в определении PP, в обоих неравенствах поставить
«≥»? Какой класс языков будет определен?
20 / 28
21. PP ⊆ PSPACE
Доказательство.
∀L ∈ PP, из MPP можно сделать M:
1 запускает MPP на x и всех 2p(|x|) возможных вероятностных
строках;
2 результат определяется по большинству результатов запусков.
Машина M будет
1 разрешать язык L;
2 потреблять не более полинома ячеек на ленте, т.к. каждый запуск
MPP может использовать один и тот же полиномиальный отрезок
ленты.
21 / 28
22. N P ⊆ PP
Доказательство.
Пусть для MNP |y | < p(|x|).
Сделаем из машины MNP машину MPP , которая будет использовать
p(|x|) + 1 случайных бит:
MPP (x, r1 , . . . , rp(|x|)+1 ) ≡ rp(|x|)+1 ∨ MNP (x, r1 , . . . , rp(|x|) )
x ∈ L ⇒ P(M(x) = 1) = 1 −p(|x|) 1
> 2.
2 +2
1
x ∈ L ⇒ P(M(x) = 0) =
/ 2.
Получаем L ∈ PP weak = PP.
22 / 28
23. Класс ZPP.«Вероятность без ошибок»
Определение
Класс сложности ZPP состоит из всех языков L, для которых существует
полиномиальная ВМТ M, возвращающая только ответы «0»,«1»,«?» («не
знаю»), причем:
1
x ∈ L ⇒ P[M(x) = 1] > ∧ P[M(x) = 1] + P[M(x) = «?»] = 1,
2
1
x ∈ L ⇒ P[M(x) = 0] >
/ ∧ P[M(x) = 0] + P[M(x) = «?»] = 1.
2
23 / 28
24. ZPP = RP ∩ coRP
Доказательство.
ZPP ⊆ RP, т.к. для любого языка L ∈ ZPP, из машины MZPP
можно сделать машину M из определения «RP»:
Answer = MZPP (x)
if Answer = «?» then
Answer = 0
end if
RETURN Answer
1
x ∈ L ⇒ P[MZPP (x) = 1] > 2 ⇒ P[M(x) = 1] ≥ 1 .
2
x ∈L⇒
/
P[M(x) = 0] = P[MZPP (x) = 0] + P[MZPP (x) = «?»] = 1.
Аналогично доказывается, что ZPP ⊆ coRP.
24 / 28
25. ZPP = RP ∩ coRP
Доказательство.
Покажем, что RP ∩ coRP ⊆ ZPP.
Изготовим машину M (ZPP) из MRP и McoRP :
if MRP (x) = 1 then
RETURN «1»
end if
if McoRP (x) = 0 then
RETURN «0»
end if
RETURN «?»
25 / 28
26. Упражнение
Класс сложности ZPP NotNull состоит из всех языков L, для которых
существует ВМТ M, всегда возвращающая правильные ответы (т.е.
никаких «не знаю»), причем ∃ полином p(n), что для времени работы
TM (x) машины M выполняется:
E TM (x) ≤ p(|x|).
Докажите, что ZPP NotNull = ZPP.
26 / 28