Теорема Ладнера — различия между версиями
Assaron (обсуждение | вклад) м (→Иллюстрация) |
Assaron (обсуждение | вклад) (→Иллюстрация: дописана до конца) |
||
| Строка 8: | Строка 8: | ||
Определим язык <math>A</math> как множество таких формул <math>\alpha</math>, | Определим язык <math>A</math> как множество таких формул <math>\alpha</math>, | ||
| − | что <math>\left\lfloor \frac{1}{2}\log_{10}^*|\alpha|\right\rfloor</math> чётно. Иными словами, | + | что <math>\left\lfloor \frac{1}{2}\log_{10}^*|\alpha|\right\rfloor</math> чётно. |
| − | <math>A</math> — это язык формул с длинами, лежащими в промежутках | + | Иными словами, <math>A</math> — это язык формул с длинами, лежащими в промежутках |
<math>\left[1,10^{10}\right), | <math>\left[1,10^{10}\right), | ||
| − | \left[\underbrace{10^{10^{\cdot^{\cdot^{10}}}}}_4, \underbrace{10^{10^{\cdot^{\cdot^{10}}}}}_6\right), \dots</math> | + | \left[\underbrace{10^{10^{\cdot^{\cdot^{10}}}}}_4, |
| − | Далее будем обозначать <math>\underbrace{a^{a^{\cdot^{\cdot^{a}}}}}_n</math> как <math>^{n}a</math>. | + | \underbrace{10^{10^{\cdot^{\cdot^{10}}}}}_6\right), \dots</math> |
| + | Далее будем обозначать <math>\underbrace{a^{a^{\cdot^{\cdot^{a}}}}}_n</math> | ||
| + | как <math>^{n}a</math>. | ||
Рассмотрим язык <math>SAT</math>. Логично предположить, что как в <math>A</math>, | Рассмотрим язык <math>SAT</math>. Логично предположить, что как в <math>A</math>, | ||
| − | так и в <math>\bar{A}</math> лежит бесконечное множество элементов из <math>SAT</math> | + | так и в <math>\bar{A}</math> лежит бесконечное множество элементов из <math>SAT</math>, |
| + | не принадлежащих классу <math>P</math>, поэтому <math>SAT \cap A \not\in P</math> | ||
Из <math>A \in P</math> и <math>SAT \in NP</math> следует, что <math>SAT \cap A \in NP</math>. | Из <math>A \in P</math> и <math>SAT \in NP</math> следует, что <math>SAT \cap A \in NP</math>. | ||
| − | + | Осталось показать, что <math>SAT \cap A</math> не является NP-полным. Пусть | |
| − | + | это не так. Тогда из NP-полноты следует, что существует полиномиальная функция <math>f</math> | |
| − | к <math>SAT \cap A</math>. | + | сводящая по Карпу <math>SAT</math> к <math>SAT \cap A</math>. |
| − | Возьмем формулу <math>\varphi</math> длиной <math>^{2k+1}10</math>. Она не лежит в <math>A</math> и, | + | Возьмем формулу <math>\varphi</math> длиной <math>^{2k+1}10</math>. |
| − | следовательно, в <math>SAT \cap A</math>. Функция <math>f</math> не может перевести <math>\varphi</math> | + | Она не лежит в <math>A</math> и, следовательно, в <math>SAT \cap A</math>. |
| − | в промежуток <math>\left[^{2k+2}10, ^{2k+4}10\right)</math> или дальше, так как размер выхода полиномиальной функции не может быть экспоненциально больше длинны входа. Значит <math>\varphi</math> отображается в меньший промежуток, но в этом случае размер выхода экспоненциально меньше длины входа. Добавляя к этому то, что проверку на принадлежность <math>f(\varphi)</math> <math>SAT \cap A</math> можно осуществить за <math>O(2^{poly})</math> (это следует из принадлежности <math>NP</math>), получаем программу разрешающую <math>\varphi</math> за полином. | + | Функция <math>f</math> не может перевести <math>\varphi</math> в промежуток |
| + | <math>\left[^{2k+2}10, ^{2k+4}10\right)</math> или дальше, так как размер | ||
| + | выхода полиномиальной функции не может быть экспоненциально больше длинны | ||
| + | входа. Значит <math>\varphi</math> отображается в меньший промежуток, но | ||
| + | в этом случае размер выхода экспоненциально меньше длины входа. Добавляя | ||
| + | к этому то, что проверку на принадлежность <math>f(\varphi)</math> | ||
| + | <math>SAT \cap A</math> можно осуществить за <math>O(2^{poly})</math> | ||
| + | (это следует из принадлежности <math>NP</math>), получаем программу | ||
| + | разрешающую <math>\varphi</math> за полином. Утверждение о том, что все формулы | ||
| + | <math>\varphi</math> длиной <math>^{2k+1}10</math> принадлежат классу | ||
| + | <math>P</math> скорее всего не верно, а ,следовательно, язык | ||
| + | <math>SAT \cap A</math> не является NP-полным. | ||
| + | |||
| + | Заметим, что это объяснение не является доказательством! | ||
==Доказательство== | ==Доказательство== | ||
Версия 14:28, 5 марта 2010
Формулировка
Теорема Ладнера (Ladner's Theorem) утверждает, что если , то существует язык , принадлежащий .
Иллюстрация
Определим язык как множество таких формул , что чётно. Иными словами, — это язык формул с длинами, лежащими в промежутках Далее будем обозначать как .
Рассмотрим язык . Логично предположить, что как в , так и в лежит бесконечное множество элементов из , не принадлежащих классу , поэтому Из и следует, что .
Осталось показать, что не является NP-полным. Пусть это не так. Тогда из NP-полноты следует, что существует полиномиальная функция сводящая по Карпу к .
Возьмем формулу длиной . Она не лежит в и, следовательно, в . Функция не может перевести в промежуток или дальше, так как размер выхода полиномиальной функции не может быть экспоненциально больше длинны входа. Значит отображается в меньший промежуток, но в этом случае размер выхода экспоненциально меньше длины входа. Добавляя к этому то, что проверку на принадлежность можно осуществить за (это следует из принадлежности ), получаем программу разрешающую за полином. Утверждение о том, что все формулы длиной принадлежат классу скорее всего не верно, а ,следовательно, язык не является NP-полным.
Заметим, что это объяснение не является доказательством!
Доказательство
Определим :
- Случай 1: .
- Если существует , такой что и , то , иначе
- Случай 2: .
- Если существует , такой что и , то , иначе