5.1

Универсальные машины Тьюринга

[6/50%]
Показать
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. Затем покажите, как изменить состояние, изменить символ на ленте и сдвинуться влево или вправо в соответствии с кодом инструкции.

?