Теорема Карпа — Липтона — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Новая страница: «{{Теорема |author=Карп — Липтон |statement= Если <tex>NP \subset P/poly</tex>, то <tex>\Sigma_2 = \Pi_2</tex> |proof= Так как <tex>...»)
 
(Оформление и мелочи)
Строка 1: Строка 1:
 
{{Теорема
 
{{Теорема
|author=Карп Липтон
+
|author=Карп, Липтон
 
|statement=
 
|statement=
Если <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>\forall n</tex> <tex>\exists </tex> схема полиномиального размера <tex> C_n</tex>, такая что <tex>C_{|x|}(x) = x \in SAT</tex>. <br>Тогда <tex>\forall n </tex> <tex>\exists </tex> схема полиномиального размера <tex> D_n</tex>, выдающая на <tex>x \in SAT</tex> набор значений, удовлетворяющий формулу. <br>
+
Так как <tex>NP \subset P/poly</tex>, то для любого <tex>n</tex> найдётся схема полиномиального размера <tex> C_n</tex>, такая что <tex>C_{|x|}(x) = \left[x \in SAT\right]</tex>.
Рассмотрим язык <tex>L \in \Pi_2</tex>, <tex>L = \{z:\forall x </tex> <tex>\exists y </tex> <tex> \phi(x, y, z)\}</tex>. <br> Рассмотрим формулу <tex>\exists y</tex> <tex>\phi(x, y, z)</tex> как экземпляр задачи <tex>SAT</tex>. Тогда определение языка <tex>L</tex> можно переписать так: <tex>L=\{z: \forall x</tex> <tex> \phi(x,D_{|x|}(x, z), z)\}</tex>. <br> Покажем что <tex>\forall x</tex> <tex> \phi(x,D_{|x|}(x, z), z)</tex> <tex>\Leftrightarrow</tex> <tex>\exists D</tex> <tex> \forall x</tex> <tex>\phi(x, D(x, z), z)</tex>. Очевидно из первого следует второе, так как <tex>\exists D = D_{|z|}</tex>. <br> Если первое ложно, то <tex>\exists x</tex><tex>\forall y</tex> <tex>\phi(x, y, z) = 0</tex>, а значит <tex>\forall D \phi (x, D_{|z|}(x, z), z)</tex>, то есть второе ложно. <br>Итого, язык <tex>L=\{z:\exists D</tex> <tex>\forall x</tex> <tex>\phi(x, D(x, z), z)\}</tex>, значит <tex>L \in \Sigma_2</tex>.
+
Тогда, найдётся и схема полиномиального размера <tex> D_n</tex>, выдающая для <tex>x \in SAT</tex> набор значений, удовлетворяющий формуле.<br/>
 +
Рассмотрим язык <tex>L \in \Pi_2</tex>, <tex>L = \{z:\forall x </tex> <tex>\exists y </tex> <tex> \phi(x, y, z)\}</tex>.<br/>
 +
Рассмотрим формулу <tex>\exists y</tex> <tex>\phi(x, y, z)</tex> как экземпляр задачи <tex>SAT</tex>.<br/>
 +
Тогда определение языка <tex>L</tex> можно переписать так: <tex>L=\{z: \forall x</tex> <tex> \phi(x,D_{|x|}(x, z), z)\}</tex>.<br/>
 +
Покажем что <tex>\forall x</tex> <tex> \phi(x,D_{|x|}(x, z), z)</tex> <tex>\Leftrightarrow</tex> <tex>\exists D</tex> <tex> \forall x</tex> <tex>\phi(x, D(x, z), z)</tex>.
 +
Очевидно, из первого следует второе, так как <tex>\exists D = D_{|z|}</tex>.
 +
Если первое ложно, то <tex>\exists x</tex><tex>\forall y</tex> <tex>\phi(x, y, z) = 0</tex>, а значит <tex>\forall D \phi (x, D_{|z|}(x, z), z)</tex>, то есть второе ложно.
 +
Итого, язык <tex>L=\{z:\exists D</tex> <tex>\forall x</tex> <tex>\phi(x, D(x, z), z)\}</tex>, значит <tex>L \in \Sigma_2</tex>.
 
}}
 
}}

Версия 23:52, 29 апреля 2012

Теорема (Карп, Липтон):
Если [math]NP \subset P/poly[/math], то [math]\Sigma_2 = \Pi_2[/math].
Доказательство:
[math]\triangleright[/math]

Так как [math]NP \subset P/poly[/math], то для любого [math]n[/math] найдётся схема полиномиального размера [math] C_n[/math], такая что [math]C_{|x|}(x) = \left[x \in SAT\right][/math]. Тогда, найдётся и схема полиномиального размера [math] D_n[/math], выдающая для [math]x \in SAT[/math] набор значений, удовлетворяющий формуле.
Рассмотрим язык [math]L \in \Pi_2[/math], [math]L = \{z:\forall x [/math] [math]\exists y [/math] [math] \phi(x, y, z)\}[/math].
Рассмотрим формулу [math]\exists y[/math] [math]\phi(x, y, z)[/math] как экземпляр задачи [math]SAT[/math].
Тогда определение языка [math]L[/math] можно переписать так: [math]L=\{z: \forall x[/math] [math] \phi(x,D_{|x|}(x, z), z)\}[/math].
Покажем что [math]\forall x[/math] [math] \phi(x,D_{|x|}(x, z), z)[/math] [math]\Leftrightarrow[/math] [math]\exists D[/math] [math] \forall x[/math] [math]\phi(x, D(x, z), z)[/math]. Очевидно, из первого следует второе, так как [math]\exists D = D_{|z|}[/math]. Если первое ложно, то [math]\exists x[/math][math]\forall y[/math] [math]\phi(x, y, z) = 0[/math], а значит [math]\forall D \phi (x, D_{|z|}(x, z), z)[/math], то есть второе ложно.

Итого, язык [math]L=\{z:\exists D[/math] [math]\forall x[/math] [math]\phi(x, D(x, z), z)\}[/math], значит [math]L \in \Sigma_2[/math].
[math]\triangleleft[/math]