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

?