Глава 9

Труднорешаемость

[25/52%]
Показать
LaTeX
§
Задача 9.1

ᴬ Докажите, что TIME⁡(2n)=TIME⁡(2n+1)\operatorname {TIME}\left(2^{n}\right)=\operatorname {TIME}\left(2^{n+1}\right).

?
Задача 9.2

ᴬ Докажите, что TIME⁡(2n)⊊TIME⁡(22n)\operatorname {TIME}\left(2^{n}\right) \subsetneq \operatorname {TIME}\left(2^{2 n}\right).

?
Задача 9.3

ᴬ Докажите, что NTIME⁡(n)⊊PSPACE⁡\operatorname {NTIME}(n) \subsetneq \operatorname {PSPACE}.

?
Задача 9.4

Покажите, как схема, изображённая на рисунке 9.26, работает на входе 0110, приведя значения, вычисляемые всеми вентилями, как мы делали на рисунке 9.24.

?
Задача 9.5

Приведите схему, вычисляющую функцию чётности от трёх входных переменных, и покажите, как она работает на входе 011.

?
Задача 9.6

Докажите, что если A∈PA \in \mathrm{P}, то PA=P\mathrm{P}^{A}=\mathrm{P}.

?
Задача 9.7

Приведите регулярные выражения с возведением в степень, порождающие следующие языки над алфавитом {0,1}\left\{ 0,1\right\}.

?
(a)

ᴬ Все строки длины 500

(b)

ᴬ Все строки длины 500 или менее

(c)

ᴬ Все строки длины 500 или более

(d)

ᴬ Все строки длины, отличной от 500

(e)

Все строки, содержащие ровно 500 единиц

(f)

Все строки, содержащие не менее 500 единиц

(g)

Все строки, содержащие не более 500 единиц

(h)

Все строки длины 500 или более, содержащие 0 на 500-й позиции

(i)

Все строки, содержащие два нуля, между которыми не менее 500 символов

Задача 9.8

Если RR — регулярное выражение, пусть R{m,n}R^{\left\{ m, n\right\} } обозначает выражение

Rm∪Rm+1∪⋯∪Rn. R^{m} \cup R^{m+1} \cup \cdots \cup R^{n}.

Покажите, как реализовать оператор R{m,n}R^{\left\{ m, n\right\} }, используя обычный оператор возведения в степень, но без «…».

?
Задача 9.9

Покажите, что если NP=PSAT \mathrm{NP}=\mathrm{P}^{\text{SAT }}, то NP=\mathrm{NP}= coNP.

?
Задача 9.10

В задаче 8.13 было показано, что ALBA A_{\text{LBA }} PSPACE-полна.

?
(a)

Известно ли, принадлежит ли ALBAA_{\mathrm{LBA}} классу NL? Обоснуйте свой ответ.

(b)

Известно ли, принадлежит ли ALBAA_{\mathrm{LBA}} классу P? Обоснуйте свой ответ.

Задача 9.11

Покажите, что язык MAX-CLIQUE из задачи 7.48 принадлежит PSAT \mathrm{P}^{\text{SAT }}.

Задача 7.48: MAX-CLIQUE ={⟨G,k⟩∣ наибольшая клика в G имеет размер ровно k}=\left\{ \langle G, k\rangle \mid \text{ наибольшая клика в }G\text{ имеет размер ровно }k\right\}.

?
§
Задача 9.12

Опишите ошибку в следующем ошибочном «доказательстве» того, что P≠NP\mathrm{P} \neq \mathrm{NP}. Предположим, что P=NP\mathrm{P}=\mathrm{NP}, и придём к противоречию. Если P=NP\mathrm{P}=\mathrm{NP}, то SAT∈PS A T \in \mathrm{P}, и потому при некотором kk, SAT∈TIME⁡(nk)S A T \in \operatorname {TIME}\left(n^{k}\right). Поскольку каждый язык из NP сводится к SATS A T за полиномиальное время, получаем NP⊆TIME⁡(nk)\mathrm{NP} \subseteq \operatorname {TIME}\left(n^{k}\right). Следовательно, P⊆TIME⁡(nk)\mathrm{P} \subseteq \operatorname {TIME}\left(n^{k}\right). Но по теореме об иерархии по времени, TIME⁡(nk+1)\operatorname {TIME}\left(n^{k+1}\right) содержит язык, не принадлежащий TIME⁡(nk)\operatorname {TIME}\left(n^{k}\right), что противоречит P⊆TIME⁡(nk)\mathrm{P} \subseteq \operatorname {TIME}\left(n^{k}\right). Следовательно, P≠NP\mathrm{P} \neq \mathrm{NP}.

?
Задача 9.13

Рассмотрим функцию pad : Σ∗×N⟶Σ∗#∗\Sigma^{*} \times \mathcal{N} \longrightarrow \Sigma^{*} \#^{*}, определённую следующим образом. Пусть pad⁡(s,l)=s#j\operatorname {pad}(s, l)=s \#^{j}, где j=max⁡(0,l−m)j=\max (0, l-m), а mm — длина ss. Таким образом, pad⁡(s,l)\operatorname {pad}(s, l) просто добавляет к концу ss достаточно много копий нового символа , чтобы длина результата была не менее ll. Для произвольного языка AA и функции f:N⟶Nf: \mathcal{N} \longrightarrow \mathcal{N} определим язык pad⁡(A,f)\operatorname {pad}(A, f) как

pad⁡(A,f)={pad⁡(s,f(m))∣ где s∈A, а m — длина s}. \operatorname {pad}(A, f)=\left\{ \operatorname {pad}(s, f(m)) \mid \text{ где } s \in A \text{, а } m \text{ — длина } s\right\} .

Докажите, что если A∈TIME⁡(n6)A \in \operatorname {TIME}\left(n^{6}\right), то pad⁡(A,n2)∈TIME⁡(n3)\operatorname {pad}\left(A, n^{2}\right) \in \operatorname {TIME}\left(n^{3}\right).

?
Задача 9.14

Докажите, что если NEXPTIME ≠\neq EXPTIME, то P≠NP\mathrm{P} \neq \mathrm{NP}. Вам может пригодиться функция pad, определённая в задаче 9.13.

?
Задача 9.15

ᴬ Определим pad, как в задаче 9.13.

Задача 9.13: Рассмотрим функцию pad : Σ∗×N⟶Σ∗#∗\Sigma^{*} \times \mathcal{N} \longrightarrow \Sigma^{*} \#^{*}, определённую следующим образом. Пусть pad⁡(s,l)=s#j\operatorname {pad}(s, l)=s \#^{j}, где j=max⁡(0,l−m)j=\max (0, l-m), а mm — длина ss. Таким образом, pad⁡(s,l)\operatorname {pad}(s, l) просто добавляет к концу ss достаточно много копий нового символа , чтобы длина результата была не менее ll. Для произвольного языка AA и функции f:N⟶Nf: \mathcal{N} \longrightarrow \mathcal{N} определим язык pad⁡(A,f)\operatorname {pad}(A, f) как

pad⁡(A,f)={pad⁡(s,f(m))∣ где s∈A, а m — длина s}. \operatorname {pad}(A, f)=\left\{ \operatorname {pad}(s, f(m)) \mid \text{ где } s \in A \text{, а } m \text{ — длина } s\right\} .
?
(a)

Докажите, что для любого языка AA и натурального числа kk, A∈PA \in \mathrm{P} тогда и только тогда, когда pad⁡(A,nk)∈P\operatorname {pad}\left(A, n^{k}\right) \in \mathrm{P}.

(b)

Докажите, что P≠SPACE⁡(n)\mathrm{P} \neq \operatorname {SPACE}(n).

Задача 9.16

Докажите, что TQBF∉SPACE⁡(n1/3)T Q B F \notin \operatorname {SPACE}\left(n^{1 / 3}\right).

?
Задача 9.17
  • Вспомните определение 2DFA (двухголовочного конечного автомата), приведённое в задаче 5.26. Докажите, что P содержит язык, не распознаваемый никаким 2DFA.

Задача 5.26: Двухголовочный конечный автомат (2DFA) — это детерминированный конечный автомат с двумя доступными только для чтения двунаправленными головками, которые начинают работу с левого конца входной ленты и могут независимо перемещаться в любом направлении. Лента 2DFA конечна и имеет размер, достаточный лишь для размещения входных данных плюс две дополнительные пустые ячейки ленты — по одной с каждого конца — служащие разделителями. 2DFA допускает входную строку, переходя в специальное допускающее состояние.

?
Задача 9.18

Пусть EREX ↑={⟨R⟩∣R — регулярное выражение с возведением в степень и L(R)=∅}E_{\text{REX } \uparrow }=\left\{ \langle R\rangle \mid R\text{ — регулярное выражение с возведением в степень и }L(R)=\emptyset \right\}. Покажите, что EREX ↑∈E_{\text{REX } \uparrow } \in P.

?
Задача 9.19

Определим задачу об однозначной выполнимости как

USAT={⟨ϕ⟩∣ϕ — булева формула, имеющая ровно одно выполняющее означивание}. U S A T=\left\{ \langle \phi \rangle \mid \phi \text{ — булева формула, имеющая ровно одно выполняющее означивание}\right\} .

Покажите, что USAT ∈PSAT\in \mathrm{P}^{S A T}.

?
Задача 9.20

Докажите, что существует оракул CC, для которого NPC≠coNP⁡C\mathrm{NP}^{C} \neq \operatorname {coNP}^{C}.

?
Задача 9.21

Машиной Тьюринга с оракулом и kk запросами называется машина Тьюринга с оракулом, которой разрешено делать не более kk запросов на каждом входе. Машина Тьюринга с оракулом для AA и kk запросами обозначается MA,kM^{A, k}. Определим PA,k\mathrm{P}^{A, k} как совокупность языков, разрешаемых полиномиальными по времени машинами Тьюринга с оракулом для AA и kk запросами.

?
(a)

Покажите, что NP∪coNP⁡⊆PSAT,1\mathrm{NP} \cup \operatorname {coNP} \subseteq \mathrm{P}^{S A T, 1}.

(b)

Предположим, что NP≠coNP⁡\mathrm{NP} \neq \operatorname {coNP}. Покажите, что NP∪coNP⁡⊊PSAT,1 \mathrm{NP} \cup \operatorname {coNP} \subsetneq \mathrm{P}^{\text{SAT,1 }}.

Задача 9.22

Предположим, что AA и BB — два оракула. Один из них — оракул для TQBFT Q B F, но вы не знаете, какой именно. Приведите алгоритм, имеющий доступ и к AA, и к BB, который гарантированно решает TQBF за полиномиальное время.

?
Задача 9.23

Напомним, что можно рассматривать схемы, выдающие строки над {0,1}\left\{ 0,1\right\}, выделив несколько выходных вентилей. Пусть add⁡n:{0,1}2n⟶{0,1}n+1\operatorname {add}_{n}:\left\{ 0,1\right\}^{2 n} \longrightarrow \left\{ 0,1\right\}^{n+1} принимает два nn-битовых двоичных целых числа и выдаёт их (n+1)(n+1)-битовую сумму. Покажите, что функцию addn_{n} можно вычислить схемами размера O(n)O(n).

?
Задача 9.24

Определим функцию majority⁡n:{0,1}n⟶{0,1}\operatorname {majority}_{n}:\left\{ 0,1\right\}^{n} \longrightarrow \left\{ 0,1\right\} как

majority⁡n(x1,…,xn)={0∑xi<n/2;1∑xi≥n/2. \operatorname {majority}_{n}\left(x_{1}, \ldots , x_{n}\right)= \begin{cases} 0 & \sum x_{i}<n / 2 ; \\ 1 & \sum x_{i} \geq n / 2. \end{cases}

Таким образом, функция majority⁡n\operatorname {majority}_{n} возвращает результат голосования большинства входов. Покажите, что majority⁡n\operatorname {majority}_{n} можно вычислить:

?
(a)

схемами размера O(n2)O\left(n^{2}\right).

(b)

схемами размера O(nlog⁡n)O(n \log n). (Подсказка: рекурсивно делите число входов пополам и используйте результат задачи 9.23.)

Задача 9.25
  • Определим функцию majority⁡n\operatorname {majority}_{n}, как в задаче 9.24. Покажите, что её можно вычислить схемами размера O(n)O(n).

Задача 9.24: Функция majority⁡n:{0,1}n⟶{0,1}\operatorname {majority}_{n}:\left\{ 0,1\right\}^{n} \longrightarrow \left\{ 0,1\right\} определяется как

majority⁡n(x1,…,xn)={0∑xi<n/2;1∑xi≥n/2. \operatorname {majority}_{n}\left(x_{1}, \ldots , x_{n}\right)= \begin{cases} 0 & \sum x_{i}<n / 2 ; \\ 1 & \sum x_{i} \geq n / 2. \end{cases}

Таким образом, функция majority⁡n\operatorname {majority}_{n} возвращает результат голосования большинством по входным значениям.

?