Теорема Ладнера — различия между версиями
Assaron (обсуждение | вклад) (→Доказательство: еще чуть-чуть доказательства) |
Assaron (обсуждение | вклад) м (→Доказательство: is even -> \vdots 2) |
||
Строка 68: | Строка 68: | ||
Доказательство аналогично доказательству предыдущего утверждения. | Доказательство аналогично доказательству предыдущего утверждения. | ||
− | <math>L=\left\{\varphi | + | <math>L=\left\{\varphi \mid \varphi \in SAT \and f(|\varphi|)\, \vdots \, 2\right\}</math> |
− | <math>A=\left\{x | + | <math>A=\left\{x \mid f(|x|) \, \vdots \, 2 \right\}</math> |
<math>f(0) = f(1) = 0</math> | <math>f(0) = f(1) = 0</math> |
Версия 11:38, 6 марта 2010
Формулировка
Теорема Ладнера (Ladner's Theorem) утверждает, что если
, то существует язык , принадлежащий .Иллюстрация
Определим язык
как множество таких формул что чётно. Иными словами, — это язык формул с длинами, лежащими в промежутках Далее будем обозначать как .Рассмотрим язык
. Логично предположить, что как в , так и в лежит бесконечное множество элементов из , не принадлежащих классу , поэтому . Из и следует, что .Осталось показать, что
не является NP-полным. Пусть это не так. Тогда из NP-полноты следует, что существует полиномиальная функция сводящая по Карпу к .Возьмем формулу
длиной . Она не лежит в и, следовательно, в . Функция не может перевести в промежуток или дальше, так как размер выхода полиномиальной функции не может быть экспоненциально больше длинны входа. Значит отображается в меньший промежуток, но в этом случае размер выхода экспоненциально меньше длины входа. Добавляя к этому то, что проверку на принадлежность можно осуществить за (это следует из принадлежности ), получаем программу разрешающую за полином. Утверждение о том, что все формулы длиной принадлежат классу скорее всего не верно, а ,следовательно, язык не является NP-полным.Заметим, что это объяснение не является доказательством!
Доказательство
Будем искать язык
, удовлетворяющий следующим условиям:- (что влечёт за собой )
Если такой язык существует, то
искомым примером множества из .Утверждение 1. Можно перечислить (возможно с повторениями) все языки из
.Действительно, рассмотрим последовательность всех программ
Обозначим за программу, запускающую с таймером . Тогда среди встречаются только программы из , и для каждой полиномиальной программы , работающей за полином , существует номер , такой что для всех натуральных и делает то же самое, что и . Таким образом распознает тот же язык, что и .Утверждение 2. Можно перечислить все функции из
.Доказательство аналогично доказательству предыдущего утверждения.
Определим
. Для этого рассмотрим два случая:- Случай 1:
- Если существует , такой что и , то , иначе .
.
- Случай 2:
- Если существует , такой что и , то , иначе .
.
Покажем, что
. Для упрощения будем считать, что алфавит . , где:- идёт на вычисление ;
- — перебор всех слов , таких что ;
- — запуск ;
- — запуск ;
- — запуск ;
- — запуск ;
- — построение программы ;
- — построение программы .
, таким образом
что-то, тоже из
, из
, из
что-то типа , но с оценкой на вместо , из
и тоже полиномиальны.
Получаем, что
. Значит . Поэтому и .В результате всё почти хорошо.
Теорема доказана.