Теорема Карпа — Липтона — различия между версиями
м |
|||
Строка 1: | Строка 1: | ||
{{Лемма | {{Лемма | ||
− | |statement= Пусть <tex>SAT \in P/poly </tex>, тогда существует семейство схем полиномиального размера <tex>D_n</tex> | + | |statement= Пусть <tex>SAT \in \mathrm{P}/poly </tex>, тогда существует семейство схем полиномиального размера <tex>D_n</tex> таких, что для любой формулы <tex>\phi \in SAT</tex>, <tex>D_{|\phi|}(\phi)</tex> выводит набор значений, удовлетворяющий формуле. |
|proof= | |proof= | ||
Если <tex>\phi</tex> не содержит переменных, то есть является тождественной единицей, решение задачи тривиально. | Если <tex>\phi</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>, то и семейство требуемых схем. | + | Иначе, выберем любую переменную <tex>x</tex> из формулы <tex>\phi</tex>, и выполним подстановку <tex>x = 0</tex>. Получим формулу <tex>\phi_0</tex>. Если <tex>\phi_0 \in SAT</tex> (так как по условию теоремы <tex>SAT \in \mathrm{P}/poly</tex>, такую проверку можно сделать за полиномиальное время, вычислив соответствующую схему), то мы свели задачу к аналогичной с меньшим числом переменных. В противном случае, сведение выполняется подстановкой <tex>x = 1</tex>. Мы получили программу, работающую за полиномиальное время, а так как <tex>\mathrm{P} \in \mathrm{P}/poly</tex>, то и семейство требуемых схем. |
}} | }} | ||
Строка 10: | Строка 10: | ||
|author=Карп, Липтон | |author=Карп, Липтон | ||
|statement= | |statement= | ||
− | Если <tex>NP \subset 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>NP \subset P/poly</tex>, то <tex> | + | Так как <tex>\mathrm{NP} \subset \mathrm{P}/poly</tex>, то <tex>SAT \in \mathrm{P}/poly</tex>. Тогда по лемме найдётся семейство схем полиномиального размера <tex> D_n</tex> таких, что для любой формулы <tex>\phi \in SAT</tex>, <tex>D_{|\phi|}(\phi)</tex> выводит набор значений, удовлетворяющий <tex>\phi</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>L \in \Pi_2</tex>, <tex>L = \{z | \forall x </tex> <tex>\exists y </tex> <tex> \phi(x, y, z)\}</tex>.<br/> |
Версия 17:26, 2 июня 2012
Лемма: |
Пусть , тогда существует семейство схем полиномиального размера таких, что для любой формулы , выводит набор значений, удовлетворяющий формуле. |
Доказательство: |
Если Иначе, выберем любую переменную не содержит переменных, то есть является тождественной единицей, решение задачи тривиально. из формулы , и выполним подстановку . Получим формулу . Если (так как по условию теоремы , такую проверку можно сделать за полиномиальное время, вычислив соответствующую схему), то мы свели задачу к аналогичной с меньшим числом переменных. В противном случае, сведение выполняется подстановкой . Мы получили программу, работающую за полиномиальное время, а так как , то и семейство требуемых схем. |
Теорема (Карп, Липтон): |
Если , то . |
Доказательство: |
Так как , то . Тогда по лемме найдётся семейство схем полиномиального размера таких, что для любой формулы , выводит набор значений, удовлетворяющий .Рассмотрим язык |