Глава 5

Теория вычислимости

[89/35%]
Показать
LaTeX
§
Пример 5.1

Покажите, что множество L={x∈{0,1}∗∣x является корректным кодом }L=\left\{ x \in \left\{ 0,1\right\}^{*} \mid x\text{ является корректным кодом }\right\} примитивно рекурсивно.

?
Пример 5.4

Покажите, что следующие предикаты примитивно рекурсивны:

?
(a)

legal (u,y)=[u(u, y)=[u является корректным кодом конфигурации My]M_{y}].

(b)

final (u,y)=[(u, y)=[ legal (u,y)(u, y) и uu является финальной конфигурацией ]].

(c)

next⁡(u,v,y)=[\operatorname {next}(u, v, y)=[ если final (u,y)(u, y), то u=vu=v, иначе u⊢Myv]u \vdash_{M_{y}} v].

Пример 5.5

Покажите, что следующие функции примитивно рекурсивны:

?
(a)

init⁡k(x1,…,xk,y)=\operatorname {init}^{k}\left(x_{1}, \ldots , x_{k}, y\right)= начальная конфигурация MyM_{y} на входах (x1,…,xkx_{1}, \ldots , x_{k}), закодированная так, как описано выше.

(b)

output⁡(u,y)=\operatorname {output}(u, y)= выход, содержащийся в uu, если uu является финальной конфигурацией MyM_{y}, и =0=0 в противном случае.

Задача 5.1.1

Покажите, что следующие функции примитивно рекурсивны:

?
(a)

state⁡(i,ℓ,x)=[x\operatorname {state}(i, \ell , x)=[x является корректным кодом ДМТ M]M] и [substr⁡{0,1}(x,i,ℓ+2)[\operatorname {substr}_{\left\{ 0,1\right\} }(x, i, \ell +2) равно 10ℓ110^{\ell } 1 и представляет состояние qℓq_{\ell } в M]M].

(b)

chstate⁡(x,i,j)=\operatorname {chstate}(x, i, j)= код ДМТ, полученной из MxM_{x} заменой каждого состояния qiq_{i} на qjq_{j}, если xx является корректным кодом ДМТ MxM_{x}; и =0=0 в противном случае.

(c)

∞loop⁡(i,x)=[x\infty \operatorname {loop}(i, x)=[x является корректным кодом ДМТ ]] и [Mx[M_{x} не определена в состоянии qiq_{i} ни для какого символа из Γ]\Gamma ].

Задача 5.1.2

Завершите доказательство примера 5.4(c).

?
Задача 5.1.3

Покажите подробно, как универсальная ДМТ UU моделирует работу ДМТ MyM_{y}. В частности, приведите инструкции, которые ищут код инструкции, соответствующий текущему состоянию на ленте 3 и текущему символу на ленте 2. Затем покажите, как изменить состояние, изменить символ на ленте и сдвинуться влево или вправо в соответствии с кодом инструкции.

?
§
Пример 5.9

Пусть множества AA и BB являются р.п. Покажите, что множества A∪BA \cup B и A∩BA \cap B также являются р.п.

?
Пример 5.10

Покажите, что множество {y∣Wy≠∅}\left\{ y \mid W_{y} \neq \emptyset \right\} является р.п.

?
Пример 5.11

Покажите, что если AA является р.п., то B=⋃y∈AWyB=\bigcup_{y \in A} W_{y} также является р.п.

?
Пример 5.12

Покажите, что область значений частично рекурсивной функции ff : {0,1}∗→{0,1}∗\left\{ 0,1\right\}^{*} \rightarrow \left\{ 0,1\right\}^{*} является р.п. множеством.

?
Пример 5.16

Покажите, что если AA и BB — рекурсивные множества, то A∪BA \cup B, A∩BA \cap B и Aˉ\bar{A} также рекурсивны.

?
Задача 5.2.1

Пусть A,B,C⊆{0,1}∗A, B, C \subseteq \left\{ 0,1\right\}^{*} — р.п. множества. Пусть

D=(A∩B)∪(B∩C)∪(C∩A). D=(A \cap B) \cup (B \cap C) \cup (C \cap A).
?
(a)

Постройте ДМТ, которая моделирует параллельную работу трёх ДМТ, допускающих множества A,BA, B и CC, и допускает множество DD.

(b)

Постройте ДМТ, которая моделирует работу трёх ДМТ, допускающих множества A,BA, B и CC, методом чередования, и допускает DD.

(c)

Найдите рекурсивный предикат RR такой, что D={x∣(∃y)R(x,y)}D=\left\{ x \mid (\exists y) R(x, y)\right\}.

Задача 5.2.2

Разработайте два алгоритма чередования для множества BB из примера 5.11: первый — на основе интуитивного алгоритма, приведённого в решении, а второй — на основе последней строки доказательства с помощью теоремы о проекции.

?
Задача 5.2.3

Пусть A,B,C⊆{0,1}∗A, B, C \subseteq \left\{ 0,1\right\}^{*} и A∩B=B∩C=C∩A=∅A \cap B=B \cap C=C \cap A=\emptyset. Пусть также существуют три частично рекурсивные функции f1,f2,f3f_{1}, f_{2}, f_{3}, обладающие следующими свойствами:

f1(x)={1 если x∈A∪B,2 если x∈C,↑ иначе f2(x)={↑ если x∈A∪C, и 0 иначе ,f3(x)={↑ если x∈B∪C,0 иначе  \begin{aligned} & f_{1}(x)=\begin{cases} 1 & \text{ если } x \in A \cup B, \\ 2 & \text{ если } x \in C, \\ \uparrow & \text{ иначе } \end{cases} \quad f_{2}(x)= \begin{cases} \uparrow & \text{ если } x \in A \cup C, \text{ и } \\ 0 & \text{ иначе },\end{cases} \\ & f_{3}(x)= \begin{cases} \uparrow & \text{ если } x \in B \cup C, \\ 0 & \text{ иначе }\end{cases} \end{aligned}
?
(a)

Докажите, что множества A,B,CA, B, C все рекурсивны.

(b)

Пусть M1,M2M_{1}, M_{2} и M3M_{3} — три ДМТ, вычисляющие функции f1,f2f_{1}, f_{2} и f3f_{3} соответственно. Постройте ДМТ, которые моделируют работу M1,M2M_{1}, M_{2} и M3M_{3} для вычисления χA,χB\chi_{A}, \chi_{B} и χC\chi_{C}.

Задача 5.2.4

Покажите, что каждое бесконечное р.п. множество имеет бесконечное рекурсивное подмножество.

?
Задача 5.2.5
?
(a)

Пусть f:{0,1}∗→{0,1}∗f: \left\{ 0,1\right\}^{*} \rightarrow \left\{ 0,1\right\}^{*} — частично рекурсивная функция, а AA — р.п. множество. Покажите, что f(A)f(A) и f−1(A)f^{-1}(A) являются р.п. (Напомним, что f(A)={f(x)∣x∈A,f(x)↓}f(A)=\left\{ f(x) \mid x \in A, f(x) \downarrow \right\} и f−1(A)={x∣f(x)↓, f(x)∈A}f^{-1}(A)=\left\{ x \mid f(x) \downarrow \text{, }f(x) \in A\right\}.)

(b)

Пусть ff — рекурсивная функция, а AA — рекурсивное множество. Является ли f(A)f(A) рекурсивным? Является ли f−1(A)f^{-1}(A) рекурсивным?

Задача 5.2.6

Функция f:{0,1}∗→{0,1}∗f: \left\{ 0,1\right\}^{*} \rightarrow \left\{ 0,1\right\}^{*} называется строго возрастающей, если f(x)<f(x+1)f(x)<f(x+1) для всех x∈{0,1}∗x \in \left\{ 0,1\right\}^{*}. Покажите, что бесконечное множество AA рекурсивно тогда и только тогда, когда AA является областью значений строго возрастающей рекурсивной функции ff.

?
Задача 5.2.7

Покажите, что следующие множества являются р.п.

?
(a)

A1={n∣{0,1,…,n}⊆Wn}A_{1}=\left\{ n \mid \left\{ 0,1, \ldots , n\right\} \subseteq W_{n}\right\}.

(b)

A2={n∣∣Wn∩{0,1,…,n}∣≥n/2}A_{2}=\left\{ n| | W_{n} \cap \left\{ 0,1, \ldots , n\right\} \mid \geq n / 2\right\}. [Указание: используйте гёделеву нумерацию, чтобы закодировать n/2n / 2 строк в одну строку.]

(c)

A3={⟨n,x⟩∣ существуют n1,…,nk,k≥1, такие, что x∈Wn1, n1∈Wn2,…,nk−1∈Wnk,nk∈Wn}A_{3}=\left\{ \langle n, x\rangle \mid \text{ существуют }n_{1}, \ldots , n_{k}, k \geq 1\text{, такие, что }x \in W_{n_{1}}\text{, }n_{1} \in W_{n_{2}}, \ldots , n_{k-1} \in W_{n_{k}}, n_{k} \in W_{n}\right\}.

(d)

A4={x∣ существует целое число n такое, что ϕx(y)=0 для всех y∈{0,1}n}A_{4}=\left\{ x \mid \text{ существует целое число }n\text{ такое, что }\phi_{x}(y)=0\text{ для всех }y \in \left\{ 0,1\right\}^{n}\right\}.

(e)

A5={n∣ в процессе вычисления Mn(111) машина Mn проходит через конфигурацию, содержащую подстроку 000 }A_{5}=\left\{ n \mid \text{ в процессе вычисления }M_{n}(111)\text{ машина }M_{n}\text{ проходит через конфигурацию, содержащую подстроку 000 }\right\}.

Задача 5.2.8

Напомним, что AB={xy∣x∈A,y∈B}A B=\left\{ x y \mid x \in A, y \in B\right\}. Определим A+B={n+m∣n∈A,m∈B}A+B=\left\{ n+m \mid n \in A, m \in B\right\}.

?
(a)

Покажите, что если AA и BB — р.п. множества, то ABA B, A+BA+B и A∗A^{*} также являются р.п.

(b)

Покажите, что если AA и BB — рекурсивные множества, то ABA B, A+BA+B и A∗A^{*} также рекурсивны.

Задача 5.2.9

Определим множество C={⟨x,y⟩∣ существует частично рекурсивная функция f такая, что f(x) определена и f(x)=y}C=\left\{ \langle x, y\rangle \mid \text{ существует частично рекурсивная функция }f\text{ такая, что }f(x)\text{ определена и }f(x)=y\right\}.

?
(a)

Докажите, что CC является р.п.

(b)

Является ли CC рекурсивным? Почему?

Задача 5.2.10

Покажите, что следующая функция частично рекурсивна:

g(i,j,k)={k если (∃n)[ϕi(n)=ϕj(n)=k]↑ иначе . g(i, j, k)= \begin{cases} k & \text{ если }(\exists n)\left[\phi _{i}(n)=\phi _{j}(n)=k\right] \\ \uparrow & \text{ иначе }.\end{cases}
?
§
Пример 5.18

Покажите, что множество FF функций из N\mathbf{N} в {0,1}\left\{ 0,1\right\} несчётно.

?
Пример 5.19

Покажите, что существует ко-р.п. множество, не являющееся р.п.

?
Пример 5.21

Мы говорим, что частично рекурсивная функция f:{0,1}∗→{0,1}∗f: \left\{ 0,1\right\}^{*} \rightarrow \left\{ 0,1\right\}^{*} продолжима, если существует рекурсивная функция g:{0,1}∗→{0,1}∗g: \left\{ 0,1\right\}^{*} \rightarrow \left\{ 0,1\right\}^{*} такая, что g(x)=f(x)g(x)=f(x) всякий раз, когда f(x)↓f(x) \downarrow. Покажите, что существует частично рекурсивная функция, не являющаяся продолжимой.

?
Пример 5.22

Покажите, что TOT ={n∣Wn={0,1}∗}={n∣ϕn рекурсивна }=\left\{ n \mid W_{n}= \left\{ 0,1\right\}^{*}\right\} =\left\{ n \mid \phi_{n}\text{ рекурсивна }\right\} не является р.п.

?
Пример 5.23

Покажите, что существует простое множество.

?
Задача 5.3.1

Пусть AA — произвольное множество (не обязательно счётное). Покажите, что не существует взаимно однозначного соответствия между множеством AA и множеством 2A2^{A} всех подмножеств AA.

?
Задача 5.3.2

Покажите, что множество F1F_{1} всех инъективных возрастающих функций из N\mathbf{N} в N несчётно.

?
Задача 5.3.3

Что не так в следующих диагональных доказательствах?

?
(a)

Мы покажем, что существует частично рекурсивная функция f:{0,1}∗→{0,1}∗f: \left\{ 0,1\right\}^{*} \rightarrow \left\{ 0,1\right\}^{*}, которая не перечислена среди ϕ0,ϕ1,…\phi_{0}, \phi_{1}, \ldots. Определим f(n)=ϕn(n)+1f(n)= \phi_{n}(n)+1. Тогда, в силу существования универсальной ДМТ, видно, что ff частично рекурсивна. Таким образом, мы получили частично рекурсивную функцию ff, отличную от каждой ϕn\phi_{n} на входе nn, n≥0n \geq 0.

(b)

Мы покажем, что множество REC⁡={x∣Wx рекурсивно }\operatorname {REC}=\left\{ x \mid W_{x}\text{ рекурсивно }\right\} не является р.п. Предположим, от противного, что REC является р.п. Тогда существует рекурсивная функция gg, областью значений которой является REC. Определим A={x∣x∉Wg(x)}A=\left\{ x \mid x \notin W_{g(x)}\right\}. Поскольку каждое Wg(x)W_{g(x)} рекурсивно, разрешимо, принадлежит ли xx множеству Wg(x)W_{g(x)}. Следовательно, AA — рекурсивное множество. Но это противоречие, поскольку A≠Wg(x)A \neq W_{g(x)} для каждого x≥0x \geq 0.

Задача 5.3.4

Пусть A⊆NA \subseteq \mathbf{N} — множество со следующими свойствами: (i) ϕn\phi_{n} рекурсивна для всех n∈An \in A, и (ii) для каждой рекурсивной функции ff имеем f=ϕnf=\phi_{n} для некоторого n∈An \in A. Покажите, что AA не является р.п. множеством.

?
Задача 5.3.5
?
(a)

Покажите, что класс примитивно рекурсивных функций эффективно перечислим (в том смысле, что существует р.п. множество BB такое, что (i) ϕn\phi_{n} примитивно рекурсивна для всех n∈Bn \in B, и (ii) для каждой примитивно рекурсивной функции gg имеем g=ϕng=\phi_{n} для некоторого n∈Bn \in B).

(b)

Покажите, что существует рекурсивная функция, не являющаяся примитивно рекурсивной.

Задача 5.3.6

Покажите, что множество A={n∣ϕn останавливается на n, и её выход больше n}A=\left\{ n \mid \phi_{n}\text{ останавливается на }n\text{, и её выход больше }n\right\} не является рекурсивным множеством.

?
Задача 5.3.7

Покажите, что множество {⟨i,j⟩∣Wi=Wj‾}\left\{ \langle i, j\rangle \mid W_{i}=\overline{W_{j}}\right\} не является р.п. множеством.

?
Задача 5.3.8

Мы говорим, что два множества AA и BB рекурсивно отделимы, если существует рекурсивное множество CC такое, что A⊆CA \subseteq C и B⊆CˉB \subseteq \bar{C}. Покажите, что для любых n≠m∈Nn \neq m \in \mathbf{N} множества KnK_{n} и KmK_{m} не являются рекурсивно отделимыми, где Kn={x∣ϕx(x) определена и равна n}K_{n}=\left\{ x \mid \phi_{x}(x)\text{ определена и равна }n\right\}.

?
Задача 5.3.9

Дайте формальное доказательство того, что множество SS, определённое в примере 5.23, является р.п. А именно, пусть h(e)h(e) — строка, печатаемая на стадии ee алгоритмом для SS (h(e)↑h(e) \uparrow, если на стадии ee не выводится никакая строка). Докажите, что hh частично рекурсивна (не используя тезис Чёрча — Тьюринга).

?
Задача 5.3.10

Покажите, что существует множество AA такое, что и AA, и Aˉ\bar{A} бесконечны, но ни одно из них не имеет бесконечного р.п. подмножества.

?
§
Пример 5.25

Пусть AA и BB — непустые собственные подмножества Σ∗\Sigma^{*}.

?
(a)

Покажите, что если AA рекурсивно, то A≤mBA \leq_{m} B.

(b)

Покажите, что если разности множеств A\BA \backslash B и B\AB \backslash A оба рекурсивны, то A≤mBA \leq_{m} B.

Пример 5.27

Покажите, что множество EMP={x∣Wx=∅}\mathrm{EMP}=\left\{ x \mid W_{x}=\emptyset \right\} не рекурсивно.

Покажите, с помощью ss-mm-nn-теоремы, что K≤m EMP ‾K \leq_{m} \overline{\text{ EMP }}.

?
Пример 5.29

Проблема останова KK полна.

?
Пример 5.32

Пусть AA — нетривиальное индексное множество функций. Покажите, что если EMP ⊆A\subseteq A, то AA не является р.п. Таким образом, следующие индексные множества не являются р.п.: A1‾\overline{A_{1}}, EMP,  Tot ‾\overline{\text{ Tot }}, Fin, Rec, Reg и Rev.

?
Пример 5.33

Пусть AA — р.п. индексное множество. Покажите, что если x∈Ax \in A и Wx⊆WyW_{x} \subseteq W_{y}, то y∈Ay \in A. Таким образом, следующие множества не являются р.п.: REC⁡‾,REG⁡‾,REV⁡‾\overline{\operatorname {REC}}, \overline{\operatorname {REG}}, \overline{\operatorname {REV}}.

?
Пример 5.34

Пусть AA — р.п. индексное множество функций. Покажите, что если x∈Ax \in A, то существует y∈Ay \in A такое, что WyW_{y} — конечное подмножество WxW_{x}. Таким образом, следующие множества не являются р.п.: Tot,  FIN ‾\overline{\text{ FIN }}.

?
Пример 5.35

Покажите, что TOT ≤m FIN ‾\leq_{m} \overline{\text{ FIN }} и  FIN ‾≤m\overline{\text{ FIN }} \leq_{m} TOT.

?
Задача 5.4.1

Пусть A∪B={0,1}∗A \cup B= \left\{ 0,1\right\}^{*} и A∩B≠∅A \cap B \neq \emptyset. Покажите, что если AA и BB являются р.п., то A≤mA∩BA \leq_{m} A \cap B.

?
Задача 5.4.2

Если g:{0,1}∗→{0,1}∗g: \left\{ 0,1\right\}^{*} \rightarrow \left\{ 0,1\right\}^{*} инъективна, определим g−1(x)=(min⁡y)[g(y)=x]g^{-1}(x)=(\min y) [g(y)=x]. Покажите, что существует рекурсивная функция ff такая, что для каждой инъективной функции ϕm\phi_{m} выполнено ϕf(m)=ϕm−1\phi_{f(m)}=\phi_{m}^{-1}.

?
Задача 5.4.3

Покажите, что существует рекурсивная функция c(x,y)c(x, y) такая, что ϕc(x,y)(z)=ϕx(ϕy(z))\phi_{c(x, y)}(z)= \phi_{x}\left(\phi_{y}(z)\right).

?
Задача 5.4.4
?
(a)

Покажите, что для каждой частично рекурсивной функции ff существует рекурсивная функция gg такая, что Wg(x)=f−1(Wx)W_{g(x)}=f^{-1}\left(W_{x}\right).

(b)

Покажите, что существует рекурсивная функция gg такая, что для всех x,yx, y,

Wg(x,y)=ϕx−1(Wy)={z∣ϕx(z)∈Wy} W_{g(x, y)}=\phi _{x}^{-1}\left(W_{y}\right)=\left\{ z \mid \phi _{x}(z) \in W_{y}\right\}
Задача 5.4.5

(Теорема Райса для р.п. индексных множеств) Для конечного множества D={x1,…,xn}D=\left\{ x_{1}, \ldots , x_{n}\right\} будем говорить, что [x1,…,xn]\left[x_{1}, \ldots , x_{n}\right] (в любом порядке) — код DD. Покажите, что индексное множество AA является р.п. тогда и только тогда, когда

  1. из x∈Ax \in A и Wx⊆WyW_{x} \subseteq W_{y} следует y∈Ay \in A;

  2. из x∈Ax \in A следует, что существует y∈Ay \in A такое, что WyW_{y} — конечное подмножество WxW_{x}; и

  3. существует р.п. множество BB, содержащее коды всех и только конечных множеств WxW_{x} таких, что x∈Ax \in A (т.е. для каждого x∈Ax \in A, для которого WxW_{x} конечно, BB содержит хотя бы один его код, и для каждого [x1,…,xn]∈B\left[x_{1}, \ldots , x_{n}\right] \in B и каждого xx такого, что Wx={x1,…,xn},x∈A)\left.W_{x}=\left\{ x_{1}, \ldots , x_{n}\right\} , x \in A\right).

?
Задача 5.4.6

Для каждой частично рекурсивной функции f:{0,1}∗→{0,1}∗f: \left\{ 0,1\right\}^{*} \rightarrow \left\{ 0,1\right\}^{*} обозначим через DfD_{f} её область определения {x∣f(x)↓}\left\{ x \mid f(x) \downarrow \right\}. Пусть f,g,h:{0,1}∗→{0,1}∗f, g, h: \left\{ 0,1\right\}^{*} \rightarrow \left\{ 0,1\right\}^{*} — три частично рекурсивные функции.

?
(a)

Покажите, что существует частично рекурсивная функция p:{0,1}∗→{0,1}∗p: \left\{ 0,1\right\}^{*} \rightarrow \left\{ 0,1\right\}^{*} такая, что Dp=Df∪Dg∪DhD_{p}=D_{f} \cup D_{g} \cup D_{h}, и для каждого x∈Dpx \in D_{p} выполнено p(x)=f(x)p(x)=f(x), или p(x)=g(x)p(x)=g(x), или p(x)=h(x)p(x)=h(x).

(b)

Покажите, что не всегда существует частично рекурсивная функция q:{0,1}∗→{0,1}∗q: \left\{ 0,1\right\}^{*} \rightarrow \left\{ 0,1\right\}^{*} такая, что Dq=Df∪Dg∪DhD_{q}=D_{f} \cup D_{g} \cup D_{h}, и для каждого x∈Dqx \in D_{q} выполнено q(x)=f(x)q(x)=f(x), или q(x)=g(x)q(x)=g(x), или q(x)=h(x)q(x)=h(x), и для каждого x∈Df∩Dg∩Dhx \in D_{f} \cap D_{g} \cap D_{h} выполнено q(x)=min⁡{f(x),g(x),h(x)}q(x)=\min \left\{ f(x), g(x), h(x)\right\}.

Задача 5.4.7

Определим

f(n)={min⁡{Wn} если Wn≠∅,↑ иначе . f(n)= \begin{cases} \min \left\{ W_{n}\right\} & \text{ если } W_{n} \neq \emptyset , \\ \uparrow & \text{ иначе }.\end{cases}

Является ли ff частично рекурсивной функцией? Докажите свой ответ.

?
Задача 5.4.8
?
(a)

Покажите, что существует р.п. множество BB такое, что ⋂n∈BWn\bigcap_{n \in B} W_{n} не является р.п.

(b)

Покажите, что если BB — р.п. индексное множество, то ⋂n∈BWn\bigcap_{n \in B} W_{n} также является р.п.

Задача 5.4.9

Пусть C1\mathcal{C}_{1} — класс всех рекурсивных множеств, C2\mathcal{C}_{2} — класс всех р.п. множеств, не являющихся рекурсивными, C3\mathcal{C}_{3} — класс всех ко-р.п. множеств, не являющихся р.п., а C4\mathcal{C}_{4} — класс всех множеств, которые не являются ни р.п., ни ко-р.п. Для каждого из следующих множеств определите, какому классу Ci,i∈{1,2,3,4}\mathcal{C}_{i}, i \in \left\{ 1,2,3,4\right\}, оно принадлежит.

?
(a)

B1={x∣Mx(x) останавливается не более чем за 200 шагов }B_{1}=\left\{ x \mid M_{x}(x)\text{ останавливается не более чем за 200 шагов }\right\}.

(b)

B2={x∣ϕx(x)>x}B_{2}=\left\{ x \mid \phi_{x}(x)>x\right\}.

(c)

B3={x∣∣Wx∣≥5}B_{3}=\left\{ x| | W_{x} \mid \geq 5\right\}.

(d)

B4={x∣∣Wx∣≥x}B_{4}=\left\{ x| | W_{x} \mid \geq x\right\}.

(e)

B5={⟨x,y⟩∣y∈range⁡(ϕx)}B_{5}=\left\{ \langle x, y\rangle \mid y \in \operatorname {range}\left(\phi_{x}\right)\right\}.

(f)

B6={⟨x,y⟩∣ϕx(y) определена, или ϕy(x) не определена }B_{6}=\left\{ \langle x, y\rangle \mid \phi_{x}(y)\text{ определена, или }\phi_{y}(x)\text{ не определена }\right\}.

(g)

B7={n∣ϕn=ϕn0}B_{7}=\left\{ n \mid \phi_{n}=\phi_{n_{0}}\right\}, где n0n_{0} — фиксированное положительное целое число.

(h)

B8={x∣ область значений ϕx конечна }B_{8}=\left\{ x \mid \text{ область значений }\phi_{x}\text{ конечна }\right\}.

(i)

B9={n∣Wn⊆P}B_{9}=\left\{ n \mid W_{n} \subseteq P\right\}, где PP — множество простых чисел.

(j)

B10={n∣Wn=P}B_{10}=\left\{ n \mid W_{n}=P\right\}, где PP — множество простых чисел.

(k)

B11={n∣Wn⊆K}B_{11}=\left\{ n \mid W_{n} \subseteq K\right\}.

Задача 5.4.10

Множество AA называется однозначным, если для каждого yy существует не более одного zz такого, что ⟨y,z⟩∈A\langle y, z\rangle \in A. Пусть B12={x∣Wx однозначно }B_{12}=\left\{ x \mid W_{x}\text{ однозначно }\right\}. Покажите, что EMP ≤mB12\leq_{m} B_{12} и B12≤mB_{12} \leq_{m} EMP,

?
Задача 5.4.11
?
(a)

Покажите, что существует рекурсивный предикат RR такой, что

x∈REC⁡⟺(∃y)(∀z)(∃w)R(x,y,z,w). x \in \operatorname {REC} \Longleftrightarrow (\exists y)(\forall z)(\exists w) R(x, y, z, w).
(b)

Пусть COINF ={x∣Wˉx бесконечно }=\left\{ x \mid \bar{W}_{x}\text{ бесконечно }\right\}. Покажите, что существует рекурсивный предикат QQ такой, что

x∈ COINF ⟺(∀y)(∃z)(∀w)Q(x,y,z,w). x \in \text{ COINF } \Longleftrightarrow (\forall y)(\exists z)(\forall w) Q(x, y, z, w).
Задача 5.4.12

Докажите следующие сведения:

?
(a)

TOT ≤m\leq_{m} REC.

(b)

TOT ≤m\leq_{m} COINF.

Задача 5.4.13

Пусть B13={x∣Wx=K}B_{13}=\left\{ x \mid W_{x}=K\right\}.

?
(a)

Покажите, что существует рекурсивный предикат RR такой, что

x∈B13⟺(∀y)(∃z)R(x,y,z). x \in B_{13} \Longleftrightarrow (\forall y)(\exists z) R(x, y, z).
(b)
  • Покажите, что B13≤B_{13} \leq Tot и Tot ≤mB13\leq_{m} B_{13}.
Задача 5.4.14

Пусть B14={x∣(∃y∈Wx)[Wy бесконечно]}B_{14}=\left\{ x \mid \left(\exists y \in W_{x}\right)[W_{y}\text{ бесконечно}]\right\}.

?
(a)

Покажите, что существует рекурсивный предикат RR такой, что

x∈B14⟺(∃y)(∀z)(∃w)R(x,y,z,w). x \in B_{14} \Longleftrightarrow (\exists y)(\forall z)(\exists w) R(x, y, z, w).
(b)
  • Покажите, что REC ≤mB14\leq_{m} B_{14}.
Задача 5.4.15

Множество B⊆{0,1}∗B \subseteq \left\{ 0,1\right\}^{*} называется продуктивным, если существует частично рекурсивная функция ff такая, что для каждого xx, если Wx⊆BW_{x} \subseteq B, то f(x)↓f(x) \downarrow и f(x)∈B−Wxf(x) \in B-W_{x}.

?
(a)

Покажите, что если BB продуктивно, то BB имеет бесконечное р.п. подмножество.

(b)

Покажите, что если K≤mAK \leq_{m} A, то Aˉ\bar{A} продуктивно.

(c)

Заключите из (a) и (b) выше, что простое множество не может быть полным р.п. множеством.

Задача 5.4.16

Покажите, что существуют два р.п. множества AA и BB такие, что A≤mBA \leq_{m} B и B≤mAB \leq_{m} A.

?
§
Пример 5.30

(Продолжение) Докажите теорему Райса с помощью теоремы о рекурсии.

?
Пример 5.37
?
(a)

Покажите, что существует константа ee такая, что ϕe(x)=e\phi_{e}(x)=e для всех x∈{0,1}∗x \in \left\{ 0,1\right\}^{*}.

(b)

Покажите, что существует константа ee такая, что We={e}W_{e}=\left\{ e\right\}.

(c)

Покажите, что существует константа nn такая, что ϕn=ϕn+1\phi_{n}=\phi_{n+1}.

Пример 5.38

Напишите программу (на псевдо-Паскале), которая на любом входе печатает свой собственный программный код в качестве выхода (такая программа называется самовоспроизводящейся).

?
Пример 5.39

Пусть f:N→Nf: \mathbf{N} \rightarrow \mathbf{N} — рекурсивная функция. Покажите, что существует целое число nn такое, что WnW_{n} — рекурсивное множество, и наименьшее целое число mm такое, что Wm=WˉnW_{m}=\bar{W}_{n}, больше f(n)f(n).

?
Пример 5.40

(Трудолюбивый бобр) Пусть f(x)=min⁡{n∣ϕn(ε)=x}f(x)=\min \left\{ n \mid \phi_{n}(\varepsilon )=x\right\}. Покажите, что ff не является рекурсивной функцией.

Для каждой строки x∈{0,1}∗x \in \left\{ 0,1\right\}^{*}, f(x)f(x) — это минимальная машина Тьюринга (в нашей стандартной нумерации), которая печатает xx, начиная с пустого входа. Интуитивно мы можем рассматривать f(x)f(x) как строку, кодирующую минимальную информацию о xx, необходимую для того, чтобы восстановить xx с помощью универсальной ДМТ UU. (Замечание: по определению, U(f(x),ε)=xU(f(x), \varepsilon )=x.) Идея доказательства состоит в том, что если бы ff была рекурсивна, мы могли бы использовать ДМТ MfM^{f}, вычисляющую ff, чтобы искать строки yy, чьи «коды минимальной информации» намного больше размера MjM^{j}, и напечатать такую строку yy. Однако, поскольку мы могли бы получить yy, моделируя MfM^{f}, машина MfM^{f} была бы по существу её собственным кодом минимальной информации. Таким образом, это приводит нас к противоречию. Далее мы приведём два доказательства. Первое представляет собой неформальное построение, а второе — формальное доказательство с помощью теоремы о рекурсии.

?
Задача 5.5.1

Если внимательнее посмотреть на самовоспроизводящуюся программу с рисунка 5.5 (и программу P4P_{4} с рисунка 5.4(b)), можно увидеть, что она всё ещё не совсем корректна, поскольку все двойные кавычки в программе печатаются на выходе как одинарные кавычки. Точнее, каждая двойная кавычка в правой части первого оператора присваивания «e1:=…e_{1}:=\ldots» сохраняется в e1e_{1} в виде одинарной кавычки, и поэтому третий оператор «write(e1)(e_{1});» печатает правую часть первого оператора с каждой двойной кавычкой, заменённой на одинарную. Исправьте эту проблему, чтобы программа печатала в точности свой собственный программный код.

?
Задача 5.5.2

Напишите компьютерную программу (на любом удобном вам языке высокого уровня), которая печатает свой код в обратном порядке.

?
Задача 5.5.3

Напишите компьютерную программу (на любом удобном вам языке высокого уровня), которая читает вход nn и печатает свой код nn раз.

?
Задача 5.5.4

Напишите компьютерную программу (на любом удобном вам языке высокого уровня), которая читает вход xx и выдаёт 1, если xx в точности совпадает с её собственным программным кодом, и выдаёт 0 в противном случае. (Такая программа называется самораспознающей.)

?
Задача 5.5.5

Докажите, что существует целое число e≥0e \geq 0 такое, что We=We−1∪We+1W_{e}=W_{e-1} \cup W_{e+1}.

?
Задача 5.5.6

Докажите, что для каждой рекурсивной функции ff существует константа ee такая, что ϕf(e)=ϕe\phi_{f(e)}=\phi_{e}.

?
Задача 5.5.7

Докажите, что существует рекурсивная функция ff такая, что ϕϕe(f(e))(x)=ϕf(e)(x)\phi_{\phi_{e}(f(e))}(x)= \phi_{f(e)}(x) для всех xx.

?
Задача 5.5.8

Докажите, что существуют два целых числа m≠nm \neq n такие, что Wm={n}W_{m}=\left\{ n\right\} и Wn={m}W_{n}=\left\{ m\right\}.

?
Задача 5.5.9
?
(a)

Докажите, что ss-mm-nn-теорему можно усилить так, чтобы каждая функция smns_{m}^{n} была инъективной в том смысле, что если e1≠e2e_{1} \neq e_{2}, то smn(e1,y1,…,yn)≠smn(e2,y1,…,yn)s_{m}^{n}\left(e_{1}, y_{1}, \ldots , y_{n}\right) \neq s_{m}^{n}\left(e_{2}, y_{1}, \ldots , y_{n}\right) для всех y1,…,yn∈Ny_{1}, \ldots , y_{n} \in \mathbf{N}.

(b)

Покажите, что для любой частично рекурсивной функции gg и любой константы nn существует константа e>ne>n такая, что ϕe(x)=g(x,e)\phi_{e}(x)=g(x, e).

Задача 5.5.10

Существует ли целое число mm такое, что Wm={x∣ϕx(m) определена }W_{m}=\left\{ x \mid \phi_{x}(m)\text{ определена }\right\}? Существует ли целое число nn такое, что Wn={x∣ϕx(n) не определена }W_{n}=\left\{ x \mid \phi_{x}(n)\text{ не определена }\right\}? Докажите свои ответы.

?
Задача 5.5.11

Покажите, что существуют целые числа mm и nn такие, что Wm=Wn=KW_{m}=W_{n}=K, причём m∈Km \in K и n∉Kn \notin K.

?
Задача 5.5.12

Используя теорему о рекурсии, докажите, что следующие множества не являются р.п.: Fin, Rec, REC‾\overline{\mathrm{REC}}.

?
Задача 5.5.13

Пусть ff — функция, определённая в примере 5.40. Определим f∗f^{*} как обратную к ней функцию: f∗(n)=(max⁡x)[f(x)≤n]f^{*}(n)=(\max x)[f(x) \leq n]. Докажите, что f∗f^{*} растёт быстрее, чем любая рекурсивная функция gg. То есть для любой рекурсивной функции gg существует n0n_{0} такое, что f∗(n)>g(n)f^{*}(n)>g(n) для всех n≥n0n \geq n_{0}. (Функция f∗f^{*} называется функцией трудолюбивого бобра и растёт даже быстрее функции Аккермана.)

?
§
Пример 5.41

Покажите, что следующие задачи неразрешимы:

?
(a)

Дана ДМТ MM и строка yy; определите, останавливается ли MM на некотором входе zz, который больше либо равен yy.

(b)

Даны две ДМТ MxM_{x} и MyM_{y}; определите, эквивалентны ли они (т. е. вычисляют ли они одну и ту же функцию).

(c)

Даны ДМТ MM, вход yy и состояние qiq_{i} машины MM; определите, переходит ли MM когда-либо в состояние qiq_{i} в вычислении на входе yy.

(d)

Дана ДМТ MM; определите, содержит ли вычисление M(111)M(111) конфигурацию, в которой лента содержит подстроку 000.

Пример 5.42

Покажите, что следующие задачи неразрешимы:

?
(a)

Дана грамматика GG и строка xx; определите, верно ли, что x∈L(G)x \in L(G).

(b)

Даны грамматика GG и две строки xx и yy; определите, верно ли, что x→G∗yx \xrightarrow [G]{*} y.

(c)

Даны грамматика GG и две строки x,y∈L(G)x, y \in L(G); определите, существует ли вывод строки xx, более длинный, чем кратчайший вывод строки yy. (Длиной вывода называется число сентенциальных форм в этом выводе.)

(d)

Дана грамматика GG; определите, верно ли, что L(G)=∅L(G)=\emptyset.

(e)

Даны две грамматики G1G_{1} и G2G_{2}; определите, верно ли, что L(G1)⊆L(G2)L\left(G_{1}\right) \subseteq L\left(G_{2}\right).

(f)

Дана грамматика GG; определите, является ли L(G)L(G) контекстно-свободным языком (т. е. для данной неограниченной грамматики GG определите, существует ли эквивалентная ей контекстно-свободная грамматика).

Пример 5.43

Покажите, что проблема определения того, верно ли, что данная контекстно-свободная грамматика GG над алфавитом {0,1}\left\{ 0,1\right\} удовлетворяет условию L(G)={0,1}∗L(G)= \left\{ 0,1\right\}^{*}, неразрешима.

?
Пример 5.45

Докажите, что задача PCP\mathrm{PCP} неразрешима (относительно некоторого алфавита Σ\Sigma).

?
Примечание.
?

Проблема соответствий Поста (PCP): дано конечное множество упорядоченных пар (x1,y1),…,(xn,yn)\left(x_{1}, y_{1}\right), \ldots ,\left(x_{n}, y_{n}\right) строк над алфавитом Σ\Sigma; определите, существует ли конечная последовательность целых чисел (i1,i2,…,im)\left(i_{1}, i_{2}, \ldots , i_{m}\right), где каждое ij∈{1,…,n}i_{j} \in \left\{ 1, \ldots , n\right\}, такая что xi1xi2⋯xim=yi1yi2⋯yimx_{i_{1}} x_{i_{2}} \cdots x_{i_{m}}=y_{i_{1}} y_{i_{2}} \cdots y_{i_{m}}.

Пример 5.46

Докажите, что проблема определения того, обладают ли две данные контекстно-свободные грамматики G1G_{1} и G2G_{2} свойством L(G1)∩L(G2)=∅L\left(G_{1}\right) \cap L\left(G_{2}\right)=\emptyset, неразрешима.

?
Пример 5.47

Докажите, что проблема определения того, является ли данная контекстно-свободная грамматика GG неоднозначной, неразрешима.

?
Задача 5.6.1

Для каждой из следующих задач о машинах Тьюринга определите, разрешима она или нет:

?
(a)

Даны однонаправленная одноленточная ДМТ MM (определённая в разделе 4.1) и строка xx; определите, посетит ли когда-либо считывающая головка машины MM (2n)(2n)-ю ячейку в вычислении MM на входе xx, где n=∣x∣n=\left|x\right| (крайнюю левую ячейку ленты мы называем 0-й ячейкой, следующую за ней справа — первой ячейкой и т. д.).

(b)

Даны двунаправленная одноленточная ДМТ MM (определённая в разделе 4.3) и строка xx; определите, посетит ли когда-либо считывающая головка машины MM (2n)(2n)-ю ячейку в вычислении MM на входе xx, где n=∣x∣n=\left|x\right| (ячейку, содержащую крайний левый символ строки xx, мы называем первой ячейкой, следующую за ней справа — второй ячейкой и т. д.).

(c)

Даны двунаправленная одноленточная ДМТ MM и строка xx; определите, сдвинется ли считывающая головка машины MM влево более чем nn раз (не обязательно подряд идущими шагами) в вычислении MM на входе xx, где n=∣x∣n=\left|x\right|.

(d)

Даны двунаправленная одноленточная ДМТ MM, множество ленточных символов которой Γ={a,b, B}\Gamma =\left\{ a, b, \mathrm{~ B}\right\}, и строка x∈{a,b}∗x \in \left\{ a, b\right\}^{*}; определите, перезапишет ли машина MM когда-либо символ aa символом bb в вычислении на входе xx.

(e)

Даны две ДМТ M1M_{1} и M2M_{2} и две строки x1x_{1} и x2x_{2}; определите, верно ли, что в какой-то момент вычисления M1M_{1} на входе x1x_{1} и вычисления M2M_{2} на входе x2x_{2} первые три ячейки их лент содержат одинаковые символы (т. е. существует ли конфигурация α\alpha вычисления M1(x1)M_{1}\left(x_{1}\right) и конфигурация β\beta вычисления M2(x2)M_{2}\left(x_{2}\right), такие что первые три ленточных символа конфигурации α\alpha совпадают с первыми тремя символами конфигурации β\beta).

Задача 5.6.2

Для каждой из следующих задач о неограниченных грамматиках определите, разрешима она или нет:

?
(a)

Дана грамматика GG над алфавитом {a,b,c}\left\{ a, b, c\right\}; определите, содержит ли L(G)L(G) строку xx, в которой aaa встречается в качестве подстроки.

(b)

Даны грамматика GG и строка x∈L(G)x \in L(G); определите, существует ли вывод строки xx, не содержащий сентенциальной формы, в которой aAaa A a встречается в качестве подстроки, где aa — терминальный символ, а AA — нетерминальный символ грамматики GG.

(c)

Даны грамматика GG и строка x∈L(G)x \in L(G); определите, существует ли вывод строки xx, в котором длины сентенциальных форм не убывают.

(d)

Даны грамматика GG и строка x∈L(G)x \in L(G); определите, существует ли вывод строки xx, в котором длины сентенциальных форм убывают не более nn раз, где n=∣x∣n=\left|x\right|.

Задача 5.6.3

Дополните детали работы МПА M1M_{1} из примера 5.43. А именно, постройте МПА M2M_{2}, принимающий множество {xy∣x и y — два правильных кода конфигураций машины M, и neg⁡(x⊢yR)}\left\{ x y \mid x \text{ и } y \text{ — два правильных кода конфигураций машины } M \text{, и } \operatorname {neg}\left(x \vdash y^{R}\right)\right\}.

?
Задача 5.6.4

Для каждой из следующих задач о контекстно-свободных грамматиках определите, разрешима она или нет:

?
(a)

Даны контекстно-свободная грамматика GG и ДКА MM; определите, верно ли, что L(G)⊆L(M)L(G) \subseteq L(M).

(b)

Даны контекстно-свободная грамматика GG и ДКА MM; определите, верно ли, что L(M)⊆L(G)L(M) \subseteq L(G).

(c)

Дана контекстно-свободная грамматика GG; определите, является ли L(G)L(G) регулярным.

(d)

Дана контекстно-свободная грамматика GG; определите, является ли дополнение L(G)L(G) контекстно-свободным.

(e)

Даны две контекстно-свободные грамматики G1G_{1} и G2G_{2}; определите, является ли L(G1)∩L(G2)L\left(G_{1}\right) \cap L\left(G_{2}\right) контекстно-свободным.

Задача 5.6.5

Для каждого из следующих вариантов задачи PCP\mathrm{PCP} определите, разрешим он или нет:

?
(a)

Задача PCP\mathrm{PCP} над алфавитом Σ={1}\Sigma =\left\{ 1\right\}.

(b)

Задача PCP\mathrm{PCP} над алфавитом Σ={0,1}\Sigma =\left\{ 0,1\right\}.

(c)

Дано конечное множество упорядоченных пар (x1,y1),…,(xn,yn)\left(x_{1}, y_{1}\right), \ldots ,\left(x_{n}, y_{n}\right) строк из Σ∗\Sigma^{*}; определите, существует ли бесконечная последовательность (i1,i2,…)(i_{1}, i_{2}, \ldots ) целых чисел из {1,…,n}\left\{ 1, \ldots , n\right\}, такая что xi1xi2⋯=yi1yi2⋯x_{i_{1}} x_{i_{2}} \cdots =y_{i_{1}} y_{i_{2}} \cdots.

(d)

Дано конечное множество упорядоченных пар (x1,y1),…,(xn,yn)\left(x_{1}, y_{1}\right), \ldots ,\left(x_{n}, y_{n}\right) строк из Σ∗\Sigma^{*}; определите, существуют ли две последовательности целых чисел (i1i_{1}, i2,…,ik)\left.i_{2}, \ldots , i_{k}\right) и (j1,j2,…,jℓ)\left(j_{1}, j_{2}, \ldots , j_{\ell }\right), каждый элемент которых принадлежит {1, …,n}\left\{ 1\text{, }\ldots , n\right\}, такие что xi1xi2⋯xik=yj1yj2⋯yjjx_{i_{1}} x_{i_{2}} \cdots x_{i_{k}}=y_{j_{1}} y_{j_{2}} \cdots y_{j_{j}}.

(e)

Тот же вопрос, что и в пункте (d) выше, но с тем условием, что обе последовательности целых чисел должны быть одинакового размера, то есть k=ℓk=\ell.

Примечание.
?

Проблема соответствий Поста (PCP): дано конечное множество упорядоченных пар (x1,y1),…,(xn,yn)\left(x_{1}, y_{1}\right), \ldots ,\left(x_{n}, y_{n}\right) строк над алфавитом Σ\Sigma; определите, существует ли конечная последовательность целых чисел (i1,i2,…,im)\left(i_{1}, i_{2}, \ldots , i_{m}\right), где каждое ij∈{1,…,n}i_{j} \in \left\{ 1, \ldots , n\right\}, такая что xi1xi2⋯xim=yi1yi2⋯yimx_{i_{1}} x_{i_{2}} \cdots x_{i_{m}}=y_{i_{1}} y_{i_{2}} \cdots y_{i_{m}}.

Задача 5.6.6

В этой задаче мы рассматриваем задачу о мозаике. Цветной плиткой называется квадратная плитка размера 1×11 \times 1, четыре стороны которой окрашены цветами, выбранными из конечного множества CC. Четыре стороны цветной плитки чётко обозначены как верхняя, нижняя, левая и правая. Две цветные плитки можно разместить на плоскости рядом друг с другом, если их соприкасающиеся стороны имеют одинаковый цвет.

Мозаика. Дано конечное число типов t0,t1,…,tnt_{0}, t_{1}, \ldots , t_{n} цветных плиток; определите, можно ли покрыть первый квадрант плоскости цветными плитками этих типов (при неограниченном запасе плиток каждого типа), начиная с плитки типа t0t_{0} в нижнем левом углу (см. рис. 5.6).

Рис. 5.6: задача Мозаика (c 1, \ldots , c 4 обозначают четыре цвета плитки t_{0}).Рис. 5.6: задача Мозаика (c 1, \ldots , c 4 обозначают четыре цвета плитки t_{0}).

Покажите, что задача Мозаика неразрешима.

?