Теорема Карпа — Липтона — различия между версиями
м (rollbackEdits.php mass rollback) |
|||
(не показано 5 промежуточных версий 3 участников) | |||
Строка 3: | Строка 3: | ||
|proof= | |proof= | ||
Пусть нам дана формула <tex>\phi</tex> с <tex>n</tex> переменными.<br> | Пусть нам дана формула <tex>\phi</tex> с <tex>n</tex> переменными.<br> | ||
− | + | Попробуем построить схемы <tex>C_n^1, \ldots, C_n^n</tex>, работающие следующим образом: | |
*<tex>C_n^1(\phi) = 1 \Leftrightarrow \exists x_2,\ldots, x_n: \phi(1,x_2, \ldots, x_n)=1</tex>; | *<tex>C_n^1(\phi) = 1 \Leftrightarrow \exists x_2,\ldots, x_n: \phi(1,x_2, \ldots, x_n)=1</tex>; | ||
*<tex> \ldots </tex> | *<tex> \ldots </tex> | ||
Строка 19: | Строка 19: | ||
Если <tex>\mathrm{NP} \subset \mathrm{P}/poly</tex>, то <tex>\Sigma_2 = \Pi_2</tex>. | Если <tex>\mathrm{NP} \subset \mathrm{P}/poly</tex>, то <tex>\Sigma_2 = \Pi_2</tex>. | ||
|proof= | |proof= | ||
− | Рассмотрим язык <tex>L \in \mathrm{\Pi_2}</tex> | + | Рассмотрим язык <tex>L \in \mathrm{\Pi_2}</tex>: <tex> \exists p \in poly, \phi \in \mathrm{\widetilde{P}}, \forall x \in L \Leftrightarrow \forall y \ \exists z : |y|,|z| \le p(|x|), \phi(x, y, z) = 1</tex>.<br> |
− | Для фиксированного <tex>x</tex> <tex>\phi</tex> можно | + | Для фиксированного <tex>x</tex> <tex>\phi</tex> можно рассматривать как формулу с <tex>n</tex> битовыми переменными (так как мы знаем, что <tex>\phi \in \mathrm{\widetilde{P}}</tex>, а <tex>\mathrm{P} \subset \mathrm{P}/poly</tex>), где <tex>n</tex> {{---}} полином от длины входа <tex>x</tex> (из-за ограничений накладываемых по определению класса <tex>\mathrm{\Pi_2}</tex> на <tex>|y|, |z|)</tex>. |
Для заданных <tex>x</tex> и <tex>y</tex> научимся находить такой <tex>z</tex>, что <tex>\phi(x,y,z)=1</tex>, если это возможно. Подставим значения <tex>x</tex> и <tex>y</tex> в формулу <tex>\phi</tex>. Теперь <tex>\phi</tex> зависит только от <tex>z</tex>: <tex>\phi_{xy}(z)</tex>. | Для заданных <tex>x</tex> и <tex>y</tex> научимся находить такой <tex>z</tex>, что <tex>\phi(x,y,z)=1</tex>, если это возможно. Подставим значения <tex>x</tex> и <tex>y</tex> в формулу <tex>\phi</tex>. Теперь <tex>\phi</tex> зависит только от <tex>z</tex>: <tex>\phi_{xy}(z)</tex>. | ||
− | Из предыдущей леммы мы установили существования семейство схем полиномиального размера <tex>C_1, \ldots, C_n, \ldots </tex> Запустим схему <tex>C_{p(|x|)}</tex> на <tex>\phi_{xy}</tex>. Эта схема вернет нам такое значение <tex>z</tex>, что <tex>\phi(x,y,z)=1</tex>, если <tex>\phi(x,y,z)</tex> удовлетворима для заданных <tex>x</tex> и <tex>y</tex>, или же последовательность нулей. <br> | + | Из предыдущей леммы мы установили существования семейство схем полиномиального размера <tex>C_1, \ldots, C_n, \ldots </tex> Запустим схему <tex>C_{p(|x|)}</tex> на <tex>\phi_{xy}</tex>. Эта схема вернет нам такое значение <tex>z</tex>, что <tex>\phi(x,y,z)=1</tex>, если <tex>\phi(x,y,z) </tex> удовлетворима для заданных <tex>x</tex> и <tex>y</tex>, или же последовательность нулей. <br> |
− | Тогда определение языка <tex>L</tex> можно переписать: <tex>L = \{x \bigm| \forall y \ \phi(x, y, C_{p(|x|)}(\phi_{xy}))\}</tex>.<br> | + | Тогда определение языка <tex>L</tex> можно переписать: <tex>L = \{x \bigm| \forall y \ \phi(x, y, C_{p(|x|)}(\phi_{xy})) = 1\}</tex>.<br> |
− | Рассмотрим язык <tex>L_1 = \{x\bigm|\exists G \ \forall y \ \phi(x, y, G(\phi_{xy}))\}</tex>. <br> | + | Рассмотрим язык <tex>L_1 = \{x\bigm|\exists G \ \forall y \ \phi(x, y, G(\phi_{xy})) = 1\}</tex>. <br> |
Покажем, что <tex>L=L_1</tex>: | Покажем, что <tex>L=L_1</tex>: | ||
*<tex> L \subset L_1</tex><br> | *<tex> L \subset L_1</tex><br> | ||
Строка 30: | Строка 30: | ||
*<tex>L_1 \subset L</tex> | *<tex>L_1 \subset L</tex> | ||
Мы докажем это утверждение, если покажем, что если какое-то слово не принадлежит <tex>L</tex>, то оно не принадлежит и <tex>L_1</tex>.<br> | Мы докажем это утверждение, если покажем, что если какое-то слово не принадлежит <tex>L</tex>, то оно не принадлежит и <tex>L_1</tex>.<br> | ||
− | + | Если <tex>\exists y \ \forall z \ \phi(x,y,z)=0 </tex>, тогда <tex>\nexists G \ \forall y \ \phi(x, y, G(\phi_{xy}))=1</tex>. <br> | |
− | Таким образом <tex>L =\{x\bigm|\exists G, |G| < p(|x|) \ \forall y, |y|<p(|x|) \ \phi(x, y, G(\phi_{xy}))\}</tex>. Следовательно, <tex>L \in \Sigma_2</tex>. | + | Таким образом <tex>L =\{x\bigm|\exists G, |G| < p(|x|) \ \forall y, |y|<p(|x|) \ \phi(x, y, G(\phi_{xy})) = 1\}</tex>. Следовательно, <tex>L \in \Sigma_2</tex>. Значит, <tex>\mathrm{\Pi_2} \subset \mathrm{\Sigma_2} </tex>.<br> |
+ | Докажем теперь, что <tex>\mathrm{\Sigma_2} \subset \mathrm{\Pi_2} </tex>. | ||
+ | Рассмотрим язык <tex>L \in \mathrm{\Sigma_2}</tex>: <tex>L \in \mathrm{\Sigma_2} \Rightarrow \overline{L} \in \mathrm{\Pi_2} \Rightarrow \overline{L} \in \mathrm{\Sigma_2} \Rightarrow L \in \mathrm{\Pi_2}</tex>. Получается, что <tex>\mathrm{\Sigma_2} \subset \mathrm{\Pi_2} </tex>. | ||
+ | Итого, <tex>\mathrm{\Sigma_2} = \mathrm{\Pi_2} </tex>. | ||
}} | }} | ||
[[Категория: Теория сложности]] | [[Категория: Теория сложности]] |
Текущая версия на 19:27, 4 сентября 2022
Лемма: |
Пусть . Тогда существует такое семейство схем полиномиального размера, что для любой входной формулы возвращается последовательность бит, удовлетворяющая , если она существует, или же последовательность нулей в другом случае. |
Доказательство: |
Пусть нам дана формула
Задача определения возвращаемого значения таких схем тогда будет эквивалентна задаче |
Теорема (Карп, Липтон): |
Если , то . |
Доказательство: |
Рассмотрим язык Очевидно. Можно за взять .Мы докажем это утверждение, если покажем, что если какое-то слово не принадлежит |