9.2

Задачи

[14/7%]
Показать
LaTeX
Задача 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.

?
(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

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

 majority n(x1,…,xn)={0∑xi<n/2;1∑xi≥n/2. \text{ 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}

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

?
(a)

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

(b)

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

Задача 9.25
  • Определим функцию majorityn_{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} возвращает результат голосования большинством по входным значениям.

?