Теорема Карпа — Липтона — различия между версиями
Kirelagin (обсуждение | вклад) (Лемма) |
Kirelagin (обсуждение | вклад) (Теорема) |
||
Строка 5: | Строка 5: | ||
Иначе, выберем любую переменную <tex>x</tex> из формулы <tex>\phi</tex>, и выполним подстановку <tex>x = 0</tex>. Получим формулу <tex>\phi_0</tex>. Если <tex>\phi_0 \in SAT</tex> (так как по условию теоремы <tex>SAT \in P/poly</tex>, такую проверку можно сделать за полиномиальное время, вычислив соответствующую схему), то мы свели задачу к аналогичной с меньшим числом переменных. В противном случае, сведение выполняется подстановкой <tex>x = 1</tex>. Мы получили программу, работающую за полиномиальное время, а так как <tex>P \in P/poly</tex>, то и семейство требуемых схем. | Иначе, выберем любую переменную <tex>x</tex> из формулы <tex>\phi</tex>, и выполним подстановку <tex>x = 0</tex>. Получим формулу <tex>\phi_0</tex>. Если <tex>\phi_0 \in SAT</tex> (так как по условию теоремы <tex>SAT \in P/poly</tex>, такую проверку можно сделать за полиномиальное время, вычислив соответствующую схему), то мы свели задачу к аналогичной с меньшим числом переменных. В противном случае, сведение выполняется подстановкой <tex>x = 1</tex>. Мы получили программу, работающую за полиномиальное время, а так как <tex>P \in P/poly</tex>, то и семейство требуемых схем. | ||
}} | }} | ||
+ | |||
{{Теорема | {{Теорема | ||
Строка 11: | Строка 12: | ||
Если <tex>NP \subset P/poly</tex>, то <tex>\Sigma_2 = \Pi_2</tex>. | Если <tex>NP \subset P/poly</tex>, то <tex>\Sigma_2 = \Pi_2</tex>. | ||
|proof= | |proof= | ||
− | Так как <tex>NP \subset P/poly</tex>, то для любого <tex>n</tex> найдётся схема полиномиального размера <tex> C_n</tex>, такая что <tex>C_{| | + | Так как <tex>NP \subset P/poly</tex>, то <tex>\mathrm{SAT} \in \mathrm{P/poly}</tex>, то есть для любого <tex>n</tex> найдётся схема полиномиального размера <tex> C_n</tex>, такая что <tex>C_{|\phi|}(\phi) = \left[\phi \in SAT\right]</tex>. |
− | Тогда, найдётся и схема полиномиального размера <tex> | + | Тогда, найдётся и схема полиномиального размера <tex> D_{|\phi|}</tex>, выдающая для <tex>\phi \in SAT</tex> набор значений, удовлетворяющий <tex>\phi</tex>. |
− | Рассмотрим язык <tex>L \in \Pi_2</tex>, <tex>L = \{z | + | |
+ | Рассмотрим язык <tex>L \in \Pi_2</tex>, <tex>L = \{z | \forall x </tex> <tex>\exists y </tex> <tex> \phi(x, y, z)\}</tex>.<br/> | ||
Рассмотрим формулу <tex>\psi(x, z) = \exists y</tex> <tex>\phi(x, y, z)</tex> как экземпляр задачи <tex>SAT</tex>.<br/> | Рассмотрим формулу <tex>\psi(x, z) = \exists y</tex> <tex>\phi(x, y, z)</tex> как экземпляр задачи <tex>SAT</tex>.<br/> | ||
− | Тогда определение языка <tex>L</tex> можно переписать так: <tex>L=\{z | + | Тогда определение языка <tex>L</tex> можно переписать так: <tex>L=\{z | \forall x</tex> <tex> \phi(x,D_{|\psi(x, z)|}(\psi(x, z)), z)\}</tex>.<br/> |
Покажем что <tex>(\forall x</tex> <tex> \phi(x,D_{|\psi(x, z)|}(\psi(x, z)), z)</tex> <tex>)\Leftrightarrow</tex> <tex>(\exists G : </tex> <tex> \forall x</tex> <tex>\phi(x, G(\psi(x, z)), z))</tex>. | Покажем что <tex>(\forall x</tex> <tex> \phi(x,D_{|\psi(x, z)|}(\psi(x, z)), z)</tex> <tex>)\Leftrightarrow</tex> <tex>(\exists G : </tex> <tex> \forall x</tex> <tex>\phi(x, G(\psi(x, z)), z))</tex>. | ||
<br>Очевидно, из первого следует второе, так как <tex>\exists G = D_{|\psi(x, z)|}</tex>. | <br>Очевидно, из первого следует второе, так как <tex>\exists G = D_{|\psi(x, z)|}</tex>. | ||
Если первое ложно, то <tex>\exists x = x_0 : </tex> <tex>\forall y</tex> <tex>\phi(x, y, z) = 0</tex>, а значит <tex>\forall G </tex> <tex>\exists x = x_0 : \phi (x, G(\psi(x, z)), z)</tex>, то есть второе ложно. | Если первое ложно, то <tex>\exists x = x_0 : </tex> <tex>\forall y</tex> <tex>\phi(x, y, z) = 0</tex>, а значит <tex>\forall G </tex> <tex>\exists x = x_0 : \phi (x, G(\psi(x, z)), z)</tex>, то есть второе ложно. | ||
− | Итого, язык <tex>L=\{z | + | Итого, язык <tex>L=\{z | \exists G : </tex> <tex>\forall x</tex> <tex>\phi(x, G(\psi(x, z)), z)\}</tex>, значит <tex>L \in \Sigma_2</tex>. |
}} | }} |
Версия 20:23, 27 мая 2012
Лемма: |
Пусть , тогда существует семейство схем полиномиального размера , таких, что для любой формулы , выводит набор значений, удовлетворяющий формуле. |
Доказательство: |
Если Иначе, выберем любую переменную не содержит переменных, то есть является тождественной единицей, решение задачи тривиально. из формулы , и выполним подстановку . Получим формулу . Если (так как по условию теоремы , такую проверку можно сделать за полиномиальное время, вычислив соответствующую схему), то мы свели задачу к аналогичной с меньшим числом переменных. В противном случае, сведение выполняется подстановкой . Мы получили программу, работающую за полиномиальное время, а так как , то и семейство требуемых схем. |
Теорема (Карп, Липтон): |
Если , то . |
Доказательство: |
Так как , то , то есть для любого найдётся схема полиномиального размера , такая что . Тогда, найдётся и схема полиномиального размера , выдающая для набор значений, удовлетворяющий .Рассмотрим язык |