Теорема Бермана — Форчуна — различия между версиями
AndrewD (обсуждение | вклад) |
AndrewD (обсуждение | вклад) |
||
Строка 32: | Строка 32: | ||
|proof=Пусть существует <tex>S \in coNPC \cap SPARSE</tex>. Решим <tex>TAUT</tex> за полином. | |proof=Пусть существует <tex>S \in coNPC \cap SPARSE</tex>. Решим <tex>TAUT</tex> за полином. | ||
<tex>check(\phi, i)</tex> | <tex>check(\phi, i)</tex> | ||
− | |||
− | |||
'''if''' <tex>\phi=0</tex> | '''if''' <tex>\phi=0</tex> | ||
'''return''' 0 | '''return''' 0 | ||
Строка 39: | Строка 37: | ||
'''return''' 1 | '''return''' 1 | ||
<tex>memo[\phi] \leftarrow check(\phi|_{x_i=0}, i+1)\, \&\&\, check(\phi|_{x_i=1}, i+1)</tex> | <tex>memo[\phi] \leftarrow check(\phi|_{x_i=0}, i+1)\, \&\&\, check(\phi|_{x_i=1}, i+1)</tex> | ||
+ | '''return''' <tex>memo[\phi]</tex> | ||
+ | blablabla | ||
+ | |||
+ | <tex>check(\phi, i)</tex> | ||
+ | '''if''' <tex>memo[f(\phi)] \ne -1</tex> | ||
+ | '''return''' <tex>memo[f(\phi)]</tex> | ||
+ | '''if''' <tex>\phi=0</tex> | ||
+ | '''return''' 0 | ||
+ | '''if''' <tex>\phi=1</tex> | ||
+ | '''return''' 1 | ||
+ | <tex>memo[f(\phi)] \leftarrow check(\phi|_{x_i=0}, i+1)\, \&\&\, check(\phi|_{x_i=1}, i+1)</tex> | ||
+ | '''if''' <tex>memo.size() > r(n)</tex> | ||
+ | '''exit''' <tex>0</tex> | ||
+ | '''return''' <tex>memo[f(\phi)]</tex> | ||
+ | |||
blablabla | blablabla | ||
}} | }} |
Версия 19:02, 13 апреля 2012
Лемма (1): |
Доказательство: |
Пусть . Тогда и .Рассмотрим произвольный язык . Тогда . Так как , то , следовательно .Получили, что В обратную сторону доказательство аналогично. и . Значит . |
Определение: |
. |
Лемма (2): |
Доказательство: |
, то есть . Тогда по лемме 1 . |
Определение: |
полином . |
Теорема (Махэни, light): |
Доказательство: |
Пусть существует . Решим за полином.if return 0 if return 1 return blablabla blablabla if return if return 0 if return 1 if exit return |