|
|
(не показано 5 промежуточных версий 4 участников) |
Строка 38: |
Строка 38: |
| |statement = <tex>\mathrm{PCP}[poly(n), 0]</tex> = <tex>\mathrm{coRP}</tex>. | | |statement = <tex>\mathrm{PCP}[poly(n), 0]</tex> = <tex>\mathrm{coRP}</tex>. |
| |proof = | | |proof = |
− | Очевидно следует из [[Вероятностные вычисления. Вероятностная машина Тьюринга#Вероятностные сложностные классы|определения coRP]]. | + | Очевидно следует из [[Классы RP и coRP#Определения|определения coRP]]. |
| }} | | }} |
| {{Теорема | | {{Теорема |
Строка 44: |
Строка 44: |
| |proof = | | |proof = |
| Очевидно следует из [[Классы_NP_и_Σ₁|определения Σ₁]]. | | Очевидно следует из [[Классы_NP_и_Σ₁|определения Σ₁]]. |
| + | }} |
| + | {{Теорема |
| + | |id=pcp_th |
| + | |about=[[PCP-теорема]] |
| + | |statement=<tex>\mathrm{PCP}[log(n), O(1)] = \mathrm{NP}</tex> |
| + | |proof= |
| + | В одну сторону включение тривиально <tex>\mathrm{PCP}(\log n, 1) \subseteq \mathrm{NTIME}(2^{O(\log n)}) = NP</tex>. |
| + | |
| + | Обратное включение <tex>NP \subseteq \mathrm{PCP}(\log n, 1)</tex> нетривиально и рассматривается в [[PCP-теорема | PCP-теореме]]. |
| }} | | }} |
| | | |
Текущая версия на 19:35, 4 сентября 2022
PCP(probabilistically checkable proof) - вид доказательства, проверяемого рандомизированным алгоритмом, использующим ограниченное число случайных бит и читающим ограниченное число бит доказательства. Такой алгоритм должен с достаточно высокими вероятностями принимать корректные доказательства и отвергать ошибочные.
Определения
Определение: |
[math]\mathrm{PCP}[/math]-системой (системой вероятностно проверяемых доказательств) с полнотой [math]c(n)[/math] и обоснованностью [math]s(n)[/math] над алфавитом [math]\Sigma[/math] для языка [math]L[/math], где [math]0 \le s(n) \le c(n) \le 1[/math], называется верификатор [math]V[/math] — вероятностная машина Тьюринга, имеющая доступ к доказательству [math]\pi[/math] — цепочке из [math]\Sigma^{*}[/math], удовлетворяющая следующим свойствам:
- Полнота: если [math]x \in L[/math], то вероятность того, что [math]V^{\pi}[/math] допустит [math]x[/math], не меньше [math]c(n)[/math] для некоторого [math]\pi[/math],
- Обоснованность: если [math]x \notin L[/math], то вероятность того, что [math]V^{\pi}[/math] допустит [math]x[/math], не больше [math]s(n)[/math] для любого [math]\pi[/math].
|
Определение: |
Randomness complexity (вероятностной сложностью) [math]r(n)[/math] верификатора [math]V[/math] называется число случайных битов, используемых за всё время работы со входом длины [math]n[/math]. |
Определение: |
Query complexity (запросной сложностью) [math]q(n)[/math] верификатора [math]V[/math] называется число запросов битов из [math]\pi[/math], отсылаемых за всё время работы со входом длины [math]n[/math]. |
Определение: |
Верификатор [math]V[/math] называется non-adaptive (неадаптивным), если при отправке запроса не использует ответы на предыдущие. Иными словами, его работа не изменится, если все запросы отправить одновременно. |
Определение: |
Сложностный класс [math]\mathrm{PCP}_{c(n), s(n)}[r(n), q(n)][/math] — это объединение всех языков, для которых существует [math]\mathrm{PCP}[/math]-система над бинарным алфавитом с полнотой [math]c(n)[/math] и обоснованностью [math]s(n)[/math], в которой неадаптивный верификатор [math]V[/math] работает за полиномиальное время и имеет вероятностную и запросную сложности соответственно [math]r(n)[/math] и [math]q(n)[/math], а доказательства имеют экспоненциальную длину.
Часто [math]\mathrm{PCP}_{1, \frac{1}{2}}[r(n), q(n)][/math] обозначают как [math]\mathrm{PCP}[r(n), q(n)][/math]. |
Свойства
Теорема: |
[math]\mathrm{PCP}[0, 0][/math] = [math]\mathrm{PCP}[O(\log(n)), 0][/math] = [math]\mathrm{PCP}[0, O(\log(n))][/math] = [math]\mathrm{P}[/math]. |
Доказательство: |
[math]\triangleright[/math] |
- [math]\mathrm{PCP}[0, 0][/math] = [math]\mathrm{P}[/math]: вероятностная МТ не использует случайные биты и не обращается к доказательству, то есть работает как детерминированная МТ, работающая за полиномиальное время.
- [math]\mathrm{PCP}[O(\log(n)), 0][/math] = [math]\mathrm{P}[/math]: доступ к [math]O(\log(n))[/math] случайных бит не меняет ситуации, так как все возможные битовые цепочки логарифмической длины детерминированная МТ может сгенерировать и проверить за полиномиальное время.
- [math]\mathrm{PCP}[0, O(\log(n))][/math] = [math]\mathrm{P}[/math]: так как доступа к случайным битам нет, [math]\pi[/math] можно рассматривать как битовую цепочку логарифмической длины. Все возможные такие цепочки детерминированная МТ может сгенерировать и проверить за полиномиальное время.
|
[math]\triangleleft[/math] |
Теорема: |
[math]\mathrm{PCP}[poly(n), 0][/math] = [math]\mathrm{coRP}[/math]. |
Доказательство: |
[math]\triangleright[/math] |
Очевидно следует из определения coRP. |
[math]\triangleleft[/math] |
Теорема: |
[math]\mathrm{PCP}[0, poly(n)][/math] = [math]\mathrm{NP}[/math]. |
Доказательство: |
[math]\triangleright[/math] |
Очевидно следует из определения Σ₁. |
[math]\triangleleft[/math] |
Теорема (PCP-теорема): |
[math]\mathrm{PCP}[log(n), O(1)] = \mathrm{NP}[/math] |
Доказательство: |
[math]\triangleright[/math] |
В одну сторону включение тривиально [math]\mathrm{PCP}(\log n, 1) \subseteq \mathrm{NTIME}(2^{O(\log n)}) = NP[/math].
Обратное включение [math]NP \subseteq \mathrm{PCP}(\log n, 1)[/math] нетривиально и рассматривается в PCP-теореме. |
[math]\triangleleft[/math] |
Пример
Теорема: |
Graph Nonisomorphism(GNI) [math]\in \mathrm{PCP}[poly(n), O(1)][/math]. |
Доказательство: |
[math]\triangleright[/math] |
[math]G_1[/math] и [math]G_2[/math] — графы на [math]n[/math] вершинах. Требуется проверить, неизоморфны ли они друг другу.
Сперва пронумеруем все возможные графы на [math]n[/math] вершинах. Не умаляя общности, будем считать, что [math]\pi[/math] над троичным алфавитом.
Будем считать корректной [math]\pi[/math]:
- [math]\pi[k] = 0[/math] тогда и только тогда, когда граф номер [math]k[/math] изоморфен [math]G_1[/math] и [math]G_2[/math],
- [math]\pi[k] = 1[/math] тогда и только тогда, когда граф номер [math]k[/math] изоморфен [math]G_1[/math] и неизоморфен [math]G_2[/math],
- [math]\pi[k] = 2[/math] тогда и только тогда, когда граф номер [math]k[/math] неизоморфен [math]G_1[/math] и изоморфен [math]G_2[/math].
Верификатором [math]V[/math] будет вероятностная МТ, работающая эквивалентно следующему псевдокоду:
p([math]\langle G_1, G_2 \rangle[/math]) {
i = random{1, 2};
[math]\phi[/math] = random permutation{1..n};
[math]H[/math] = [math]\phi(G_i)[/math];
if ([math]\pi[\#H][/math] == 0) or ([math]\pi[\#H][/math] == 3-i) {
return 0;
}
// [math]\pi[\#H][/math] == i
return 1;
}
Проверим полноту и обоснованность:
- Полнота: если графы неизоморфны, то существует [math]\pi[/math] такая, что всякий её символ равен 1 или 2 и задан корректно. Тогда на этой [math]\pi[/math] верификатор всегда вернёт 1;
- Обоснованность: если графы изоморфны, то фиксируем [math]\pi[/math]. Пусть [math]\Omega[/math] — это множество всех конфигураций случайной ленты, с которой работает [math]V[/math]. Заметим, что все конфигурации из [math]\Omega[/math] будут переданы [math]V[/math] с равными вероятностями. Теперь рассмотрим произвольную конфигурацию типа [math]\psi[/math] из [math]\Omega[/math], то есть конфигурацию, на которой [math]V[/math] допускает [math]\langle G_1, G_2 \rangle[/math]. Заметим, что для каждой такой конфигурации существует однозначно определяемая конфигурация типа [math]\overline \psi[/math], отличающаяся от [math]\psi[/math] только первым битом и также принадлежащая [math]\Omega[/math]. Запустившись на [math]\overline \psi[/math], [math]V[/math], очевидно, отвергнет [math]\langle G_1, G_2 \rangle[/math]. Таким образом, конфигураций типа [math]\psi[/math] в [math]\Omega[/math] не больше половины. Как уже отмечалось, конфигурации из [math]\Omega[/math] подаются [math]V[/math] с равными вероятностями, а конфигураций не из [math]\Omega[/math], по определению, [math]V[/math] не подаётся. Таким образом, вероятность ошибки не превышает [math]\frac{1}{2}[/math].
|
[math]\triangleleft[/math] |