Редактирование: Теорема Карпа-Липтона
Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 2: | Строка 2: | ||
'''Теорема Карпа-Липтона''' | '''Теорема Карпа-Липтона''' | ||
− | + | <math>NP \subset P/poly</math> то <math>\Sigma_2=\Pi_2</math> | |
== Доказательство == | == Доказательство == | ||
Строка 54: | Строка 54: | ||
− | '''Что такое | + | '''Что такое Cn Решает SAT?''' |
Запишем это используя квантор "<tex>\forall{}</tex>". | Запишем это используя квантор "<tex>\forall{}</tex>". | ||
Строка 65: | Строка 65: | ||
Внутри будем проверять используемый набор | Внутри будем проверять используемый набор | ||
− | <tex>\forall{\varphi{}} (C_{|\varphi{}|}(\varphi{})=0 \Rightarrow \forall{x} \varphi{}(x)=0) | + | <tex>\forall{\varphi{}} (C_{|\varphi{}|}(\varphi{})=0 \Rightarrow \forall{x} \varphi{}(x)=0) \label{f1} |
\vee{}</tex> | \vee{}</tex> | ||
− | <tex>(C_{|\varphi{}|}(\varphi{})=1 \Rightarrow \varphi{}|_{x_1=0} \in SAT или \varphi{}|_{x_1=1} \in SAT)</tex> | + | <tex>(C_{|\varphi{}|}(\varphi{})=1 \Rightarrow \varphi{}|_{x_1=0} \in SAT или \varphi{}|_{x_1=1} \in SAT)\label{f2}</tex> |
− | |||
− | + | Вот когда подставим x1=0 нужно будет использовать(получится более короткая формула) и используем для проверки логическую схему более короткую . Если она выдает 1 то мы опять подставляем либо 0 либо 1 и так далее. Это правильная проверка причем за полином | |
− | + | Если <tex>C</tex> решает <tex>SAT</tex> то все хорошо. Если нет, то зафиксируем формулу <tex>\varphi{}_0</tex>, которую он не решает. Если на этой формуле выдаст 0, а должна выдать 1, то получается что не удовлетворяет первую часть <tex>(\ref{f1})</tex>и не будет работать, если наоборот выдаст 1 а на самом деле формула не удавлетворима то обе скобки работать не будут. | |
− | |||
− | |||
− | |||
− | |||
− | Второй вариант был угадать не только | + | Рассмотрим минимальную схему которая неправильна, тогда на той формуле, на которой эта схема неправильна. По предположению, что все более короткие формулы правильны,эта формула распознается схемами с меньшим числом входов. Поэтому эта и эта будут 0 и мы не узнаем набор схем. Можно попробовать развернуть формулу до конца. Видимо это будет выглядеть так |
+ | |||
+ | <tex> \forall{\varphi{}}: |\varphi{}|=m \forall{x_1}..\forall{x_m} если C_m(\varphi{})=0 \Rightarrow \varphi{(x_1)}=0 иначе C_{m-1}(\varphi|_{x_1=0})=0 \Rightarrow \varphi|_{x_1=0}(x_2)=0</tex> | ||
+ | |||
+ | <tex>C_{m-1}(\varphi{}|_{x_1=1})=0 \Rightarrow \varphi{}|_{x_1=0}(x_2)=0</tex> | ||
+ | |||
+ | <tex>C_{m-1}(\varphi{}|{x_1=0}) \vee{} C_{m-1}(\varphi{}|_{x_1=1})</tex> И рекурсивно вызываемся от того из них которое равно 1. Ту же самую формулу но записываем от того из них которое равно 1 (это же предикат но для того из них фи при х1= для которого труе) | ||
+ | Второй вариант был угадать не только будевы схемы для сат но и те которые выдают нам правильные значения | ||
+ | |||
Получаем что <math>L\in \Sigma_2</math> | Получаем что <math>L\in \Sigma_2</math> | ||
− | |||
Теорема доказана | Теорема доказана |