264 Глава 6. Основы теории сложности вычислений
и «информационного» ресурсов. Оказалось, что один и тот же
класс языков может быть определен как PCP(P, Q) с разными
парами (P, Q). Проще говоря, можно обменивать «случайные
биты» на «запросы к оракулу» и наоборот.
Попробуем увидеть, как это может происходить.
Лемма 6.3.14. PCP(log, poly) ⊆ N P.
Доказательство. Пусть язык L лежит в PCP(log, poly).
Покажем, как построить верификатор класса N P, который
сможет разрешить L. Рассмотрим M
0
— оракульную ВМТ из
PCP-системы, распознающей L (можно считать ее адаптив-
ной). Введем обозначения:
1) ∀i ∈ 1, . . . , m r
i
— i-я вероятностная строка, из m воз-
можных случайных строк длины не больше log n, потреб-
ляемых ВМТ (см. определение 6.3.2 «offline ВМТ»);
2) для каждой вероятностной строки i (1 ≤ i ≤ m) пусть
q
i
1
, . . . , q
i
n
i
— последовательность вопросов к оракулу,
основанных только на входном слове x и r
i
;
D
π
q
i
1
, . . . , π
q
i
n
i
E
— ответы оракула на эти вопросы.
Сначала обеспечим «N P-одобрение», т. е. проверим, что
для любого x ∈ L существует полиномиальное «N P-доказа-
тельство» y, такое, что их вместе (x#y) распознает полино-
миальная ДМТ. Мы не можем использовать как «N P-доказа-
тельство» не только полное доказательство оракула π, но да-
же оракульное доказательство π
x
для входного слова x, т.к.
любое из этих доказательств может быть экспоненциального
размера, но если мы рассмотрим массив
D
π
q
i
1
, . . . , π
q
i
n
i
E
, для
i ∈ (1, . . . , m), то мы видим, что его можно закодировать стро-
кой y полиномиальной длины, т.к. число различных вероят-
ностных строк m ≤ 2
log(|x|)
= poly(|x|), число ответов от ора-
кула также не больше poly(|x|), таким образом, y — полиноми-
альное «N P-доказательство» для входного слова x.