Теорема о соотношении coNP и IP — различия между версиями
м |
м |
||
| Строка 30: | Строка 30: | ||
Проверим <tex>p</tex> на простоту и на принадлежность заданному промежутку. Как мы [[Класс P#Примеры задач и языков из P|знаем]], <tex>\mathrm{Primes} \in \mathrm{P}</tex>, следовательно на эти операции у <tex>V</tex> уйдёт полиномиальное от размера входа время. | Проверим <tex>p</tex> на простоту и на принадлежность заданному промежутку. Как мы [[Класс P#Примеры задач и языков из P|знаем]], <tex>\mathrm{Primes} \in \mathrm{P}</tex>, следовательно на эти операции у <tex>V</tex> уйдёт полиномиальное от размера входа время. | ||
| − | Далее будем проводить все вычисления модулю <tex>p</tex>, то есть над конечным полем <tex> \mathbb{F}_{p} </tex>, что не позволяет числам становиться слишком большими и упрощает анализ. | + | Далее будем проводить все вычисления по модулю <tex>p</tex>, то есть над конечным полем <tex> \mathbb{F}_{p} </tex>, что не позволяет числам становиться слишком большими и упрощает анализ. |
Попросим <tex>P</tex> прислать <tex>V</tex> формулу <tex>A_0(x_1)= \sum\limits_{x_2 = 0}^{1}\ldots\sum\limits_{x_m = 0}^{1} A_\varphi(x_1, x_2, \ldots, x_m)</tex>. | Попросим <tex>P</tex> прислать <tex>V</tex> формулу <tex>A_0(x_1)= \sum\limits_{x_2 = 0}^{1}\ldots\sum\limits_{x_m = 0}^{1} A_\varphi(x_1, x_2, \ldots, x_m)</tex>. | ||
Версия 21:40, 2 мая 2016
| Определение: |
| — булева формула, которая имеет ровно удовлетворяющих наборов . |
| Лемма (1): |
Пусть булева формула, а — её арифметизация. Тогда . |
| Доказательство: |
| Следует из леммы (1). |
| Лемма (2): |
. |
| Доказательство: |
|
Для доказательства леммы построим программы () и () из определения класса . Сперва арифметизуем формулу . Пусть полученный полином имеет степень . По лемме (1) вместо условия , можно проверять условие . Приступим к описанию интерактивного протокола. Шаг 0 Если или , то может проверить указанное выше условие сам и вернуть соответствующий результат. Иначе запросим у такое простое число , что (такое существует в силу постулата Бертрана). Проверим на простоту и на принадлежность заданному промежутку. Как мы знаем, , следовательно на эти операции у уйдёт полиномиальное от размера входа время. Далее будем проводить все вычисления по модулю , то есть над конечным полем , что не позволяет числам становиться слишком большими и упрощает анализ. Попросим прислать формулу . Заметим, что размер формулы будет полином от длины входа , так как — полином степени не выше, чем , от одной переменной, а значит его можно представить в виде . Проверим следующее утверждение: (*) (здесь и далее под словом «проверим» будем подразумевать следующее: если утверждение верно, продолжает свою работу, иначе он прекращает свою работу и возвращет false). Шаг i Пусть . Отправим программе . Попросим прислать формулу . Проверим следующее утверждение: (*). Шаг m Пусть . Отправим программе . Попросим программу прислать значение . Проверим следующее утверждение: (*). А также сами подставим в и проверим правильность присланного значения . Возвращаем true. Докажем теперь, что построенный таким образом интерактивны протокол — корректный. Для этого нужно доказать следующие утверждения:
Докажем эти утверждения.
|
| Теорема: |
. |
| Доказательство: |
|
Сведём язык к языку следующим образом: , где — количество различных переменных в формуле . Очевидно, что . По лемме (2) . Тогда . Так как , то . |