Ниже я немного подробнее остановлюсь на пункте в ответе Питера, пытаясь выполнить удаление квантификатора за более чем постоянное число шагов, чтобы увидеть, где он выходит из строя и можно ли что-нибудь спасти от такой попытки.
Давайте попробуем усилить более чем на постоянное число раз.P = N P
Предположим, что . Поэтому существует полиномиальная машина времени, которая решает Ext-Circuit-SAT (есть ли удовлетворительное расширение для данной схемы и частичное назначение ее входов?).P = N P
Более формально, у нас есть алгоритм Polytime с полиномиальным временем выполнения st Ap ( n ) ∈ p o l y ( n )
При наличии булевой схемы и частичного присвоения входам, возвращает «да», если есть расширение , удовлетворяющее , и возвращает «нет» в противном случае.φτ
Aτφ
Чтобы пройти через постоянное время, нам нужно эффективно удалить квантификатор. Мы можем сделать это , потому что Кук-Левина теорема является конструктивной теоремой, на самом деле это дает полиномиальное время алгоритм - еСо о к
При наличии DTM получающего два входа и три унарных числа , и , возвращает логическую схему размера которая имитирует на входах длины для шагов.MNмT
Со о к ( М,n,m,t)O(t2)M(n,m)t
Давайте попробуем использовать их, чтобы расширить аргумент для для получения алгоритма, решающего TQBF (фактически TQBCircuit, то есть проблема полностью квантованной логической схемы).P=PH
Идея алгоритма заключается в следующем: мы неоднократно используем на чтобы удалить квантификаторы из заданной количественной схемы. Существует линейное количество квантификаторов, поэтому мы надеемся получить алгоритм полиномиального времени (у нас есть алгоритм с полиномиальным количеством шагов, использующий подпрограмму полиномиального времени ). В конце этого процесса исключения кванторов у нас будет схема без кванторов, которая может быть оценена за полиномиальное время (проблема со значением схемы находится в , пусть - алгоритм за полиномиальное время для вычисления значения схемы данная схема).CookAСо о кпСВ
Однако мы увидим, что эта идея не работает (по той же причине, на которую указал Петр).
- Пусть будет количественной схемой (инициализированной по данной квантованной формуле).φ
- Пусть количество кванторов в .Кφ
Для от до сделать яК1
- Пусть = будет последним квантификатором и частью без квантификатора. ψQ xКσ( х1, . , , , хК)
Если , Q = " ∃ "
- Вычислить , С= Co o k ( A , | σ| , | Икс1| +. , , + | ИксК- 1 | , Р )
- Замените входные биты на в цепи , σС
- Замените на в . ψСφ
Если , Q = " ∀ "
- Рассмотрим как , ψ¬ ∃ xК¬ σ
- Вычислить , С= Cook(A,|¬σ|,|x1|+...+|xk−1|,p)
- Замените входные биты на в схеме , ¬σC
- Замените на в .ψ¬Cφ
- Вычислить и вернуть .CV(φ)
Получившийся алгоритм выглядит за полиномиальное время: у нас есть многочлен много шагов, каждый шаг вычисляется за полиномиальное время. Однако это не правильно, алгоритм не полиномиального времени.
Использование подпрограмм полиномиального времени в алгоритме полиномиального времени является полиномиальным временем. Проблема заключается в том, что в общем случае это не обязательно должно быть истиной, если значения, возвращаемые подпрограммами, не имеют полиномиального размера в исходном вводе, и мы предполагаем, что мы делаем присваивания для значений, возвращаемых из подпрограмм. (В модели ТМ мы должны считывать вывод любой подпрограммы полиномиального времени побитно.) Здесь размер возвращаемого значения из алгоритма увеличивается (может быть степенью размера введенного ему ввода, точным мощность зависит от времени работы и составляет около , поэтому, поскольку мы знаем, что не может быть меньше линейного времени, по крайней мереCookAp2(|input|)A|output||input|2).
Проблема похожа на простой код ниже:
- Учитывая ,x
- Пусть,N=|x|
- Пусть ,y=x
- Для от до сделать
i1n
- Пусть , (т.е. объединение копий )y=y|y||y|Y
- Вернуть у
Каждый раз, когда мы выполняем мы возводим в квадрат размер . После выполнений у нас будет который равен и имеет размер , очевидно, не является многочленом от размера входных данных.yзнак равноy|y|YNYx2NN2N
Предположим, что мы рассматриваем только количественные формулы с чередующимися количественными выражениями (где - общий размер квантованной формулы).к ( н )N
Предположим, что работает за время (например, линейное время, которое пока не исключено), и, возможно, имеет более эффективный алгоритм , выводящий меньшую схему размера вместо , тогда мы получим алгоритм для ExtCircuitSat, который выполняется во времени . Даже в том случае, если и и были линейными (но с полным коэффициентом ), мы получили бы алгоритм, который работает во времени и если это будетAпCо о кл ( т )t2( л ∘ р )O ( k )( n ) = l ( p ( l ( p ( … ( l ( p ( n ) ) ) ) ) ) ))O ( k ) композицииLп≥ 2Ω ( n 2к ( н ))k ( n ) = Θ ( n )Ω ( n 2N) похож на алгоритм грубой силы (и даже это было основано на предположении, что Кук-Левин может быть выполнен на алгоритмах, получающихся в результате схем линейного размера во время выполнения алгоритма).