PS-полнота языка верных булевых формул с кванторами (TQBF) — различия между версиями
| Kasetkin (обсуждение | вклад) | Kasetkin (обсуждение | вклад)  | ||
| Строка 6: | Строка 6: | ||
| {{Лемма | {{Лемма | ||
| |about=1 | |about=1 | ||
| − | |statement=<tex>TQBF \in  | + | |statement=<tex>TQBF \in PSPASE</tex> | 
| |proof=Чтобы доказать это, просто приведём программу, которая требует <tex>O(n)</tex> дополнительной памяти и работает за конечное время. | |proof=Чтобы доказать это, просто приведём программу, которая требует <tex>O(n)</tex> дополнительной памяти и работает за конечное время. | ||
|   <tex>solve(Q_1 x_1 Q_2 x_2 \cdots Q_n x_n \phi(x_1, x_2, \dots, x_n))</tex> |   <tex>solve(Q_1 x_1 Q_2 x_2 \cdots Q_n x_n \phi(x_1, x_2, \dots, x_n))</tex> | ||
Версия 00:40, 3 мая 2012
| Определение: | 
| расшифровывается как True Quantified Boolean Formula. Это язык верных булевых формул с кванторами. | 
Чтобы доказать, что , необходимо показать, что эта задача принадлежит и что она -трудная.
| Лемма (1): | 
| Доказательство: | 
| Чтобы доказать это, просто приведём программу, которая требует дополнительной памяти и работает за конечное время. if return if returnЭта программа требует дополнительной памяти для хранения стека рекурсивных вызовов. Максимальная глубина стека — | 
| Лемма (2): | 
| Доказательство: | 
| Рассмотрим какой-то язык . Построим функцию . Так как , то существует какая-то детерминированная машина Тьюринга , которая его распознаёт за полиномиальное от размера входа время. Пусть — мгновенное описание , тогда выражение обозначает , где — все переменные мгновенного описания . Аналогично выражение обозначает . Теперь рассмотрим два мгновенных описание и . Напишем рекурсивную функцию , которая будет переводить утверждение в TQBF за полиномиальное относительно длины входа время. 
 
 Заметим, что размер функции равен размеру с константной добавкой . Теперь мы можем записать функцию , которая будет переводить ДМТ и слово на ленте в . 
 Докажем, что получившаяся булева формула с кванторами удовлетворима тогда и только тогда, когда . Если , то стартовое и финишное состояние заданы корректно. Также из стартового состояния можно попасть в финишное за полиномиальное время.Если , то если мы зададим корректное стартовое состояние, то пути до корректного финишного состояния существовать не может. | 
