Глава 5

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

[90/36%]
Показать
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)=\left[u\right. является корректным кодом конфигурации My]\left.M_{y}\right].

(b)

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

(c)

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

Пример 5.5

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

?
(a)

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

(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\left[\operatorname {substr}_{\left\{ 0,1\right\} }(x, i\right., +2\ell +2) равно 10110^{\ell } 1 и представляет состояние qq_{\ell } в MM ].

(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\left[M_{x}\right. не определена в состоянии qiq_{i} ни для какого символа из Γ]\left.\Gamma \right].

Задача 5.1.2

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

?
Задача 5.1.3

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

?
§
Пример 5.9

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

?
Пример 5.10

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

?
Пример 5.11

Покажите, что если AA является р.п., то B=yAWyB=\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 — рекурсивные множества, то ABA \cup B, ABA \cap B и Aˉ\bar{A} также рекурсивны.

?
Задача 5.2.1

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

D=(AB)(BC)(CA). 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\}^{*} и AB=BC=CA=A \cap B=B \cap C=C \cap A=\emptyset. Пусть также существуют три частично рекурсивные функции f1,f2,f3f_{1}, f_{2}, f_{3}, обладающие следующими свойствами:

f1(x)={1 если xAB,2 если xC, иначе f2(x)={ если xAC, и 0 иначе ,f3(x)={ если xBC,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) и f1(A)f^{-1}(A) являются р.п. (Напомним, что f(A)={f(x)xA,f(x)}f(A)=\left\{ f(x) \mid x \in A, f(x) \downarrow \right\} и f1(A)={xf(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) рекурсивным? Является ли f1(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={nWn{0,1,,n}n/2}A_{2}=\left\{ n \mid \left|W_{n} \cap \left\{ 0,1, \ldots , n\right\} \right| \geq n / 2\right\}. [Указание: используйте гёделеву нумерацию, чтобы закодировать n/2n / 2 строк в одну строку.]

(c)

A3={n,x существуют n1,,nk,k1, такие, что xWn1n1Wn2,,nk1Wnk,nkWn}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={xyxA,yB}A B=\left\{ x y \mid x \in A, y \in B\right\}. Определим A+B={n+mnA,mB}A+B=\left\{ n+m \mid n \in A, m \in B\right\}.

?
(a)

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

(b)

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

Задача 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 ={nWn={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, n0n \geq 0.

(b)

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

Задача 5.3.4

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

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

Покажите, что класс примитивно рекурсивных функций эффективно перечислим (в том смысле, что существует р.п. множество BB такое, что (i) ϕn\phi_{n} примитивно рекурсивна для всех nBn \in B, и (ii) для каждой примитивно рекурсивной функции gg имеем g=ϕng=\phi_{n} для некоторого nBn \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,jWi=Wj}\left\{ \langle i, j\rangle \mid W_{i}=\overline{W_{j}}\right\} не является р.п. множеством.

?
Задача 5.3.8

Мы говорим, что два множества AA и BB рекурсивно отделимы, если существует рекурсивное множество CC такое, что ACA \subseteq C и BCˉB \subseteq \bar{C}. Покажите, что для любых nmNn \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 рекурсивно, то AmBA \leq_{m} B.

(b)

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

Пример 5.27

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

?
Пример 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 — р.п. индексное множество. Покажите, что если xAx \in A и WxWyW_{x} \subseteq W_{y}, то yAy \in A. Таким образом, следующие множества не являются р.п.: REC,REG,REV\overline{\operatorname {REC}}, \overline{\operatorname {REG}}, \overline{\operatorname {REV}}.

?
Пример 5.34

Пусть AA — р.п. индексное множество функций. Покажите, что если xAx \in A, то существует yAy \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.48

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

?
Задача 5.4.1

Пусть AB={0,1}A \cup B= \left\{ 0,1\right\}^{*} и ABA \cap B \neq \emptyset. Покажите, что если AA и BB являются р.п., то AmABA \leq_{m} A \cap B.

?
Задача 5.4.2

Если g:{0,1}{0,1}g: \left\{ 0,1\right\}^{*} \rightarrow \left\{ 0,1\right\}^{*} инъективна, определим g1(x)=(miny)[g(y)=x]g^{-1}(x)=(\min y) [g(y)=x]. Покажите, что существует рекурсивная функция ff такая, что для каждой инъективной функции ϕm\phi_{m} выполнено ϕf(m)=ϕm1\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)=f1(Wx)W_{g(x)}=f^{-1}\left(W_{x}\right).

(b)

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

Wg(x,y)=ϕx1(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. из xAx \in A и WxWyW_{x} \subseteq W_{y} следует yAy \in A;

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

  3. существует р.п. множество BB, содержащее коды всех и только конечных множеств WxW_{x} таких, что xAx \in A (т.е. для каждого xAx \in A, для которого WxW_{x} конечно, BB содержит хотя бы один его код, и для каждого [x1,,xn]B\left[x_{1}, \ldots , x_{n}\right] \in B и каждого xx такого, что Wx={x1,,xn},xA)\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} её область определения {xf(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=DfDgDhD_{p}=D_{f} \cup D_{g} \cup D_{h}, и для каждого xDpx \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=DfDgDhD_{q}=D_{f} \cup D_{g} \cup D_{h}, и для каждого xDqx \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), и для каждого xDfDgDhx \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 такое, что nBWn\bigcap_{n \in B} W_{n} не является р.п.

(b)

Покажите, что если BB — р.п. индексное множество, то nBWn\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={xMx(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={xWx5}B_{3}=\left\{ x \mid \left|W_{x}\right| \geq 5\right\}.

(d)

B4={xWxx}B_{4}=\left\{ x \mid \left|W_{x}\right| \geq x\right\}.

(e)

B5={x,yyrange(ϕ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={nWnP}B_{9}=\left\{ n \mid W_{n} \subseteq P\right\}, где PP — множество простых чисел.

(j)

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

(k)

B11={nWnK}B_{11}=\left\{ n \mid W_{n} \subseteq K\right\}.

Задача 5.4.10

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

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

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

xREC(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 ={xWˉ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={xWx=K}B_{13}=\left\{ x \mid W_{x}=K\right\}.

?
(a)

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

xB13(y)(z)R(x,y,z). x \in B_{13} \Longleftrightarrow (\forall y)(\exists z) R(x, y, z).
(b)

Покажите, что B13B_{13} \leq Tot и Tot mB13\leq_{m} B_{13}.

Задача 5.4.14

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

?
(a)

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

xB14(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, если WxBW_{x} \subseteq B, то f(x)f(x) \downarrow и f(x)BWxf(x) \in B-W_{x}.

?
(a)

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

(b)

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

(c)

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

Задача 5.4.16

Покажите, что существуют два р.п. множества AA и BB такие, что AmBA \leq_{m} B и BmAB \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:NNf: \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

Докажите, что существует целое число e0e \geq 0 такое, что We=We1We+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

Докажите, что существуют два целых числа mnm \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} была инъективной в том смысле, что если e1e2e_{1} \neq e_{2}, то smn(e1,y1,s_{m}^{n}\left(e_{1}, y_{1}, \ldots \right., yn)smn(e2,y1,,yn)\left.y_{n}\right) \neq s_{m}^{n}\left(e_{2}, y_{1}, \ldots , y_{n}\right) для всех y1,,ynNy_{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, причём mKm \in K и nKn \notin K.

?
Задача 5.5.12

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

?
Задача 5.5.13

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

?
§
Пример 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; определите, верно ли, что xL(G)x \in L(G).

(b)

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

(c)

Даны грамматика GG и две строки x,yL(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 неразрешима (относительно некоторого алфавита Σ\Sigma).

?
Пример 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=xn=\left|x\right| (крайнюю левую ячейку ленты мы называем 0-й ячейкой, следующую за ней справа — первой ячейкой и т. д.).

(b)

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

(c)

Даны двунаправленная одноленточная ДМТ MM и строка xx; определите, сдвинется ли считывающая головка машины MM влево более чем nn раз (не обязательно подряд идущими шагами) в вычислении MM на входе xx, где n=xn=\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 и строка xL(G)x \in L(G); определите, существует ли вывод строки xx, не содержащий сентенциальной формы, в которой aAaa A a встречается в качестве подстроки, где aa — терминальный символ, а AA — нетерминальный символ грамматики GG.

(c)

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

(d)

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

Задача 5.6.3

Дополните детали работы МПА M1M_{1} из примера 5.43. А именно, постройте МПА M2M_{2}, принимающий множество {xyx и y — два правильных кода конфигураций машины M, и neg(xyR)}\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 определите, разрешим он или нет:

?
(a)

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

(b)

Задача 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=yi1yi2x_{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\}, такие что xi1xi2xik=yj1yj2yjjx_{i_{1}} x_{i_{2}} \cdots x_{i_{k}}=y_{j_{1}} y_{j_{2}} \cdots y_{j_{j}}.

(e)

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

Задача 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}).

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

?