Теорема Бермана — Форчуна — различия между версиями
AndrewD (обсуждение | вклад)  | 
				AndrewD (обсуждение | вклад)   | 
				||
| Строка 29: | Строка 29: | ||
|author=Махэни  | |author=Махэни  | ||
|about=light  | |about=light  | ||
| − | |statement=<tex>coNPC \cap SPARSE   | + | |statement=<tex>coNPC \cap SPARSE \ne \varnothing \Rightarrow P = NP</tex>  | 
|proof=Пусть существует <tex>S \in coNPC \cap SPARSE</tex>. Разрешим <tex>TAUT</tex> за полином.  | |proof=Пусть существует <tex>S \in coNPC \cap SPARSE</tex>. Разрешим <tex>TAUT</tex> за полином.  | ||
Версия 23:47, 27 апреля 2012
| Лемма (1): | 
| Доказательство: | 
| 
 Пусть . Тогда и . Рассмотрим произвольный язык . Тогда . Так как , то , следовательно (по лемме). Получили, что и . Значит . В обратную сторону доказательство аналогично. | 
| Определение: | 
| — булева формула . | 
| Лемма (2): | 
| Доказательство: | 
| , то есть . Тогда по лемме (1) . | 
| Определение: | 
| полином . | 
| Теорема (Махэни, light): | 
| Доказательство: | 
| 
 Пусть существует . Разрешим за полином. Для начала напишем программу, разрешающую : if return if return 0 if return 1 return Ответом будет . Так как и , то , то есть . Поэтому, если в предыдущей программе заменить все обращения к , на , то полученная программа по-прежнему будет разрешать . Оценим необходимый размер . Можно считать, что , где , а — монотонно возрастающий полином. Тогда . Так как , то , где — полином. Можно считать, что монотонно возрастает. Тогда размер можно оценить сверху: , где — полином. if //(1) return if return 0 if return 1 //(2) if exit return Рассмотрим двоичное дерево, получающееся в результате рекурсивных вызовов данной программы. Рассмотрим произвольный элемент . Заметим, что условие в ходе выполнения программы является ложным при обращении к элементу не более одного раза. Так как всего в не более элементов, то суммарно за все время выполнения программы условие принимает ложное значение не более раз. Отсюда следует, что присваивание выполняется не более раз, а значит в дереве не более внутренних вершин. Значит всего в дереве не более вершин, то есть данная программа работает за полиномиальное время. Итого, данная программа разрешает за полиномиальное время. А так как , то , то есть , откуда . |