Теорема Ладнера — различия между версиями
Shevchen (обсуждение | вклад) м |
Shevchen (обсуждение | вклад) м (Поменял описание g) |
||
Строка 22: | Строка 22: | ||
=== Построение <tex>g</tex> === | === Построение <tex>g</tex> === | ||
− | + | Положим <tex>g(0) = g(1) = 1</tex>. Для <tex>n \ge 1</tex> построим <tex>g(n + 1)</tex> рекурсивно — с помощью <tex>g(1), g(2), \ldots, g(n)</tex>. | |
− | |||
− | Для <tex>n \ge 1</tex> | ||
* Если <tex>(\log_2 n)^{g(n)} \ge n</tex>, <tex>g(n+1) := g(n)</tex>. | * Если <tex>(\log_2 n)^{g(n)} \ge n</tex>, <tex>g(n+1) := g(n)</tex>. | ||
− | + | * Пусть вычисленное значение <tex>g(n)</tex> чётно. Определим <tex>g(n+1)</tex> так: | |
− | |||
for <tex>x</tex> : <tex>|x| \le \log_2 n</tex> | for <tex>x</tex> : <tex>|x| \le \log_2 n</tex> | ||
if <tex>M_i(x)</tex> and <tex>[g(|x|) \equiv 1 \pmod{2}</tex> or <tex>x \not \in \mathrm{SAT}]</tex> | if <tex>M_i(x)</tex> and <tex>[g(|x|) \equiv 1 \pmod{2}</tex> or <tex>x \not \in \mathrm{SAT}]</tex> | ||
Строка 40: | Строка 37: | ||
<tex>g(n+1) := g(n)</tex> | <tex>g(n+1) := g(n)</tex> | ||
− | * <tex>g(n) | + | * Пусть вычисленное значение <tex>g(n)</tex> нечётно. Определим <tex>g(n+1)</tex> так: |
+ | |||
for <tex>x</tex> : <tex>|x| \le \log_2 n, |f_i(x)| \le \log_2 n</tex> | for <tex>x</tex> : <tex>|x| \le \log_2 n, |f_i(x)| \le \log_2 n</tex> | ||
if <tex>x \in \mathrm{SAT}</tex> and <tex>[g(|x|) \equiv 1 \pmod{2}</tex> or <tex>f_i(x) \not \in \mathrm{SAT}]</tex> | if <tex>x \in \mathrm{SAT}</tex> and <tex>[g(|x|) \equiv 1 \pmod{2}</tex> or <tex>f_i(x) \not \in \mathrm{SAT}]</tex> |
Версия 14:24, 3 июня 2012
Теорема Ладнера (Ladner's Theorem) утверждает, что если P не совпадает с NP, то существует язык, принадлежащий , но не являющийся ни полиномиальным, ни NP-полным.
Теорема (Ладнер): |
Доказательство: |
Предположим, что SAT) нельзя свести по Карпу к полиномиальному. Будем искать такой язык , чтобы язык удовлетворял следующим условиям: . Из этого следует, что никакой -полный язык (например,
Если выполнены все три свойства, то .Пусть — все машины Тьюринга из , причём для любого .Пусть — аналогичное множество полиномиальных функций: для любого .Для простоты будем считать, что . Построим такую неубывающую функцию , что для выполняются три перечисленных свойства.ПостроениеПоложим . Для построим рекурсивно — с помощью .
for: if and or return if and and return
for: if and or return if and and return Корректность алгоритмаПроверим выполнение второго и третьего свойств языка .
Таким образом, при верности предположения второе и третье свойства выполнены.Время работы алгоритмаПроверим выполнение первого свойства языка . Для этого достаточно установить полиномиальность .Заметим, что по построению для .Время выполнения шагов составляет:
; ; ; ; ;
; ; ; . Кроме того, необходимо
. Таким образом, . Пусть . Существует константа , для которой при любом верноТогда, в силу . и неравенства выше, по индукции легко доказать, что ограничено сверху , то есть , а, в свою очередь, . |
Источник
- William Gasarch, Lance Fortnow. Two Proofs of Ladner’s Theorem