1. Структурная теория сложности
Эдуард Алексеевич Гирш
http://logic.pdmi.ras.ru/~hirsch
ПОМИ РАН
9 ноября 2008 г.
1 / 12
2. Классы RP, BPP, PP
L ∈ NP, если имеется п.о. п.п. R, такая, что ∀x ∈ {0, 1}∗
x ∈ L ⇒ ∀w (x, w ) ∈ R,
/ /
x ∈ L ⇒ ∃w (x, w ) ∈ R.
2 / 12
3. Классы RP, BPP, PP
L ∈ RP, если имеется п.о. п.п. R, такая, что ∀x ∈ {0, 1}∗
x ∈ L ⇒ ∀w (x, w ) ∈ R,
/ /
|{w | (x, w ) ∈ R}| 1
x ∈L ⇒ > .
|{всех w }| 2
2 / 12
4. Классы RP, BPP, PP
L ∈ RP, если имеется п.о. п.п. R, такая, что ∀x ∈ {0, 1}∗
x ∈ L ⇒ ∀w (x, w ) ∈ R,
/ /
|{w | (x, w ) ∈ R}| 1
x ∈L ⇒ > .
|{всех w }| 2
L ∈ BPP, если имеется п.о. п.п. R, такая, что ∀x ∈ {0, 1}∗
|{w | (x, w ) ∈ R}| 1
x ∈L ⇒
/ < ,
|{всех w }| 3
|{w | (x, w ) ∈ R}| 2
x ∈L ⇒ > .
|{всех w }| 3
2 / 12
5. Классы RP, BPP, PP
L ∈ RP, если имеется п.о. п.п. R, такая, что ∀x ∈ {0, 1}∗
x ∈ L ⇒ ∀w (x, w ) ∈ R,
/ /
|{w | (x, w ) ∈ R}| 1
x ∈L ⇒ > .
|{всех w }| 2
L ∈ BPP, если имеется п.о. п.п. R, такая, что ∀x ∈ {0, 1}∗
|{w | (x, w ) ∈ R}| 1
x ∈L ⇒
/ < ,
|{всех w }| 3
|{w | (x, w ) ∈ R}| 2
x ∈L ⇒ > .
|{всех w }| 3
L ∈ PP, если имеется п.о. п.п. R, такая, что ∀x ∈ {0, 1}∗
|{w | (x, w ) ∈ R}| 1
x ∈L ⇒
/ ≤ ,
|{всех w }| 2
|{w | (x, w ) ∈ R}| 1
x ∈L ⇒ > .
|{всех w }| 2 2 / 12
7. Понижение вероятности ошибки
RP: повторим k раз (или до первого ответа “да”);
1
Pr{k неудач} ≤ k .
2
BPP: повторим k раз и выдадим самый частый ответ;
Pr{ошибок более k/2} ≤ .
Факт (Chernoff inequality)
pk
eε pkε2
Pr{X > (1 + ε)pk} < ≤ e− 4 ,
(1 + ε)1+ε
где X = k xi , а xi
i=1 независимые случайные величины,
принимающие 1 с вероятностью p и 0 с вероятностью (1 − p).
Для нас xi наличие ошибки при i-м вычислении, p = 1 , ε = 1 .
3 2 3 / 12
8. Понижение вероятности ошибки
RP: повторим k раз (или до первого ответа “да”);
1
Pr{k неудач} ≤ k .
2
BPP: повторим k раз и выдадим самый частый ответ;
Pr{ошибок более k/2} ≤ 2−Ω(k) .
Факт (Chernoff inequality)
pk
eε pkε2
Pr{X > (1 + ε)pk} < ≤ e− 4 ,
(1 + ε)1+ε
где X = k xi , а xi
i=1 независимые случайные величины,
принимающие 1 с вероятностью p и 0 с вероятностью (1 − p).
Для нас xi наличие ошибки при i-м вычислении, p = 1 , ε = 1 .
3 2 3 / 12
9. BPP ⊂ P/poly
“Хорошая” подсказка для входа x не даёт ошибки.
Можно считать, что их 1 − 41n .
Подсказку, хорошую для всех x ∈ {0, 1}n , можно зашить в схему.
Покажем, что такая подсказка существует:
1
× 2n < 1.
4n
4 / 12
10. BPP ⊆ Σ2 P ∩ Π2 P
Теорема
BPP ⊆ Σ2 P.
Пусть вер. ошибки 21n , Ax = {w ∈ {0, 1}p(n) | R(x, w ) = 1}.
Для x ∈ L можно k копиями Ax покрыть все возможные
подсказки U = {0, 1}p(n) : что
k
∃{ti }k ∀r ∈ U
i=1 (r ∈ Ax ⊕ ti ), (1)
i=1
а для x ∈ L
/ нельзя из мощностных соображений.
5 / 12
11. BPP ⊆ Σ2 P ∩ Π2 P
Теорема
BPP ⊆ Σ2 P.
Пусть вер. ошибки 21n , Ax = {w ∈ {0, 1}p(n) | R(x, w ) = 1}.
Для x ∈ L можно k копиями Ax покрыть все возможные
подсказки U = {0, 1}p(n) : что
k
∃{ti }k ∀r ∈ U
i=1 (r ∈ Ax ⊕ ti ), (1)
i=1
а для x ∈ L нельзя из мощностных соображений.
/
Проверка r ∈ Ax ⊕ ti за полиномиальное время:
проверка r ⊕ ti ∈ Ax ,
т.е. запуск R(x, r ⊕ ti ).
5 / 12
12. BPP ⊆ Σ2 P ∩ Π2 P
Теорема
BPP ⊆ Σ2 P.
Пусть вер. ошибки 21n , Ax = {w ∈ {0, 1}p(n) | R(x, w ) = 1}.
Для x ∈ L можно k копиями Ax покрыть все возможные
подсказки U = {0, 1}p(n) : что
k
∃{ti }k ∀r ∈ U
i=1 (r ∈ Ax ⊕ ti ), (1)
i=1
а для x ∈ L нельзя из мощностных соображений.
/
Осталось показать, что это так, т.е. ∃{ti }i . Возьмём их случайно:
k k
Pr{¬(∀r ∈ U (r ∈ Ax ⊕ ti ))} = Pr{∃r ∈ U (r ∈ Ax ⊕ ti )} ≤
i=1 i=1
k k
1 p(n)
Pr{ (r ∈ Ax ⊕ ti )} = Pr{r ∈ Ax ⊕ ti } ≤ 2 .
2nk
r ∈U i=1 r ∈U i=1 5 / 12
13. PP versus #P
f ∈ #P, если имеется п.о. п.п. R, такая, что ∀x ∈ {0, 1}∗
f (x) = |{w | (x, w ) ∈ R}|
PPP = P#P ,
NP ⊆ PP,
в определении PP константу 1 можно заменить на любую
2
полиномиально вычислимую функцию.
6 / 12
14. PPP ⊆ Size[nk ]
Пусть x0 , x1 , . . . входы размера n.
Строим L ∈ Size[nk ]:
/
Результат на x0 :
¬ maj C (x0 ).
C ∈Size[nk ]
Результат на x1 :
¬ maj C (x1 ).
C ∈Size[nk ]
C (x0 )=L(x0 )
Результат на x2 :
¬ maj C (x2 ).
C ∈Size[nk ]
C (x0 )=L(x0 )
C (x1 )=L(x1 )
...
Всего полиномиальное количество шагов, всё в PPP .
7 / 12
15. 2-раундовые интерактивные доказательства: MA, AM.
Язык L ∈ MA , если имеются такие полиномы p и q и
полиномиальная ДМТ A, что ∀x ∈ {0, 1}∗
x ∈L =⇒ ∃y ∈ {0, 1}p(|x|) : Pr {A(x, y , z) = 1} = 1,
z∈{0,1}q(|x|)
x ∈L
/ =⇒ ∀y ∈ {0, 1}p(|x|) : Pr {A(x, y , z) = 1} < 1/4.
z∈{0,1}q(|x|)
Язык L ∈ AM, если . . .
x ∈ L =⇒ Pr {∃y ∈ {0, 1}p(|x|) : A(x, y , z) = 1} > 3/4
z∈{0,1}q(|x|)
x ∈ L =⇒
/ Pr {∃y ∈ {0, 1}p(|x|) : A(x, y , z) = 1} < 1/4
z∈{0,1}q(|x|)
8 / 12
16. 2-раундовые интерактивные доказательства: MA, AM.
Язык L ∈ MA2 , если имеются такие полиномы p и q и
полиномиальная ДМТ A, что ∀x ∈ {0, 1}∗
x ∈L =⇒ ∃y ∈ {0, 1}p(|x|) : Pr {A(x, y , z) = 1} > 3/4,
z∈{0,1}q(|x|)
x ∈L
/ =⇒ ∀y ∈ {0, 1}p(|x|) : Pr {A(x, y , z) = 1} < 1/4.
z∈{0,1}q(|x|)
Язык L ∈ AM, если . . .
x ∈ L =⇒ Pr {∃y ∈ {0, 1}p(|x|) : A(x, y , z) = 1} > 3/4
z∈{0,1}q(|x|)
x ∈ L =⇒
/ Pr {∃y ∈ {0, 1}p(|x|) : A(x, y , z) = 1} < 1/4
z∈{0,1}q(|x|)
8 / 12
17. Пример: неизоморфизм графов
Мерлин доказывает G0 ≈ G1 .
Артур берёт случайные i ∈ {0, 1} и перестановку вершин π.
Первый раунд: Артур отправляет π(Gi ).
Второй раунд: Мерлин возвращает i.
Неизоморфны ⇒ может вернуть правильное i.
Изоморфны ⇒ может только угадывать, вер. 1 .
2
9 / 12
18. Многораундовые интерактивные доказательства: IP
Язык L ∈ IP, если имеются prover (функция) P и verifier
(полиномиальная вероятностная МТ) V , такие, что ∀x ∈ {0, 1}∗
x ∈L =⇒ Pr{V P (x) = 1} = 1,
x ∈L
/ =⇒ ∀P Pr{V P (x) = 1} < 1/4.
10 / 12
19. Важный пример: перманент матрицы
#P-полная задача
n
perm A = ai,σ(i) .
σ∈Sn i=1
n
Сведение вниз: perm A = a ⇐⇒ j=1 a1j · perm A1j = a.
Prover отправляет dj = perm A1j .
Verifier проверяет j a1j dj = a и
рекурсивно проверяет perm A1j = dj .
Объединение двух задач: perm B = b и perm C = c:
Prover отправляет коэффициенты p(x) = perm(Bx + C (1 − x)).
Verifier проверяет p(0) = c и p(1) = d и . . .
Вычисления ведутся над полем размера ≥ n4 .
Prover достаточно взять из P#P .
11 / 12
20. Важный пример: перманент матрицы
#P-полная задача
n
perm A = ai,σ(i) .
σ∈Sn i=1
n
Сведение вниз: perm A = a ⇐⇒ j=1 a1j · perm A1j = a.
Prover отправляет dj = perm A1j .
Verifier проверяет j a1j dj = a и
рекурсивно проверяет perm A1j = dj .
Объединение двух задач: perm B = b и perm C = c:
Prover отправляет коэффициенты p(x) = perm(Bx + C (1 − x)).
Verifier проверяет p(0) = c и p(1) = d и . . .
рекурсивно проверяет perm(Br + C (1 − r )) = p(r )
deg p(x) − perm(Bx + C (1 − x))
для случайного r (ошибка ≤ ).
размер поля
Вычисления ведутся над полем размера ≥ n4 .
Prover достаточно взять из P#P .
11 / 12