4.2

Примеры машин Тьюринга

[17/41%]
Показать
LaTeX
Пример 4.3

Покажите, что A={wwRw{0,1}}A=\left\{ w w^{R} \mid w \in \left\{ 0,1\right\}^{*}\right\} является тьюринг-допустимым языком.

?
Пример 4.4

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

f(x)={w если x=wwR для некоторого w{0,1} иначе  f(x)= \begin{cases} w & \text{ если } x=w w^{R} \text{ для некоторого } w \in \left\{ 0,1\right\} ^{*} \\ \uparrow & \text{ иначе }\end{cases}
?
Пример 4.5

Покажите, что {wwRw{0,1}}\left\{ w w^{R} \mid w \in \left\{ 0,1\right\}^{*}\right\} является тьюринг-разрешимым языком.

?
Пример 4.6

Покажите, что функция π22(n1,n2)=n2\pi_{2}^{2}\left(n_{1}, n_{2}\right)=n_{2} при n1,n2Nn_{1}, n_{2} \in \mathbf{N} является тьюринг-вычислимой.

?
Пример 4.7

Найдите машину Тьюринга, которая вычисляет функцию

sub(n,m)={nm если nm0,0 если m>n0. \operatorname {sub}(n, m)= \begin{cases} n-m & \text{ если } n \geq m \geq 0, \\ 0 & \text{ если } m>n \geq 0.\end{cases}
?
Пример 4.8

Покажите, что при 1ik1 \leq i \leq k функция πik(x1,x2,,xk)=xi\pi_{i}^{k}\left(x_{1}, x_{2}, \cdots , x_{k}\right)=x_{i} на натуральных числах является тьюринг-вычислимой.

?
Пример 4.9

Покажите, что при любом 1ik+11 \leq i \leq k+1 функция

insertik(x1,x2,,xk,y)=(x1,,xi1,y,xi,,xk) \operatorname {insert}_{i}^{k}\left(x_{1}, x_{2}, \cdots , x_{k}, y\right)=\left(x_{1}, \ldots , x_{i-1}, y, x_{i}, \ldots , x_{k}\right)

на строках над алфавитом {a,b}\left\{ a, b\right\} является тьюринг-вычислимой.

?
Задача 4.2.1

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

?
(a)

ДМТ MAM_{A} из примера 4.3 на входах 0100 и 01010.

(b)

ДМТ из примера 4.5 на входах 0110 и 01010.

(c)

ДМТ из примера 4.6 на входах (3,0)(3,0) и (0,3)(0,3).

(d)

ДМТ MM из примера 4.9 при k=3k=3 и i=2i=2, от конфигурации (q1, BaaBBab Bbba Baba)(q_{1}, \mathrm{~ B} a a \mathrm{BB} a b \mathrm{~ B} b b a \mathrm{~ B} a b a) до (q1, Baa Ba Bab Bbba Babq_{1}, \mathrm{~ B} a a \mathrm{~ B} a \mathrm{~ B} a b \mathrm{~ B} b b a \mathrm{~ B} a \underline{b}).

Задача 4.2.2

Постройте ДМТ для процедур RR и TT из примера 4.9.

?
Задача 4.2.3

Постройте ДМТ, разрешающие следующие языки:

?
(a)

{www{0,1}}\left\{ w w \mid w \in \left\{ 0,1\right\}^{*}\right\}.

(b)

{wwRww{0,1}}\left\{ w w^{R} w \mid w \in \left\{ 0,1\right\}^{*}\right\}.

(c)

{ambnckmnk0}\left\{ a^{m} b^{n} c^{k} \mid m \geq n \geq k \geq 0\right\}.

(d)

{ambncn+mn,m0}\left\{ a^{m} b^{n} c^{n+m} \mid n, m \geq 0\right\}.

(e)

{w{a,b}#a(w)>#b(w)}\left\{ w \in \left\{ a, b\right\}^{*} \mid \#_{a}(w)>\#_{b}(w)\right\}, где #a(w)\#_{a}(w) обозначает число вхождений буквы aa в строку ww.

(f)

{an1ban2bbankni=nj для некоторых 1i<jk}\left\{ a^{n_{1}} b a^{n_{2}} b \cdots b a^{n_{k}} \mid n_{i}=n_{j}\text{ для некоторых }1 \leq i<j \leq k\right\}.

Задача 4.2.4

Постройте ДМТ, вычисляющие следующие функции:

?
(a)

f(m,n)=max{m,n}f(m, n)=\max \left\{ m, n\right\} на натуральных числах m,nm, n.

(b)

f(n1,n2,,nk)=max{n1,,nk}f\left(n_{1}, n_{2}, \ldots , n_{k}\right)=\max \left\{ n_{1}, \ldots , n_{k}\right\} на натуральных числах n1,n_{1}, \ldots, nkn_{k}, где kk — фиксированное положительное целое число.

(c)

insert k(x1,,xk,y,i)=insertik(x1,,xk,y){ }^{k}\left(x_{1}, \ldots , x_{k}, y, i\right)=\operatorname {insert}_{i}^{k}\left(x_{1}, \ldots , x_{k}, y\right), где x1,,xkx_{1}, \ldots , x_{k} и yy — строки над {0,1}\left\{ 0,1\right\}^{*}, а ii — натуральное число, представленное как 1i1^{i}.

(d)

mult(n,m)=nm\operatorname {mult}(n, m)=n m на натуральных числах n,m0n, m \geq 0.

(e)

quot(n,m)=nm\operatorname {quot}(n, m)=\left\lfloor \frac{n}{m}\right\rfloor на натуральных числах n0n \geq 0 и m1m \geq 1.

(f)

lg(n)=log2n\lg (n)=\left\lceil \log_{2} n\right\rceil на натуральном числе nn.

Задача 4.2.5

Для произвольной заданной ДМТ MM постройте новую ДМТ MM^{\prime } такую, что MM^{\prime } допускает в точности то же множество строк, что и MM (то есть L(M)=L(M)L(M)=L\left(M^{\prime }\right)), но когда MM^{\prime } останавливается, её лента всегда пуста (то есть финальная конфигурация всегда равна (h,BB)(h, \mathrm{BB})).

?
Задача 4.2.6
  • Рассмотрим регулярный язык L={0n110n2110nkk5n1,,nk0,njnj+1(mod5), где j=(kmod5)+1}L=\left\{ 0^{n_{1}} 10^{n_{2}} 1 \cdots 10^{n_{k}} \mid k \geq 5\text{, }n_{1}, \ldots , n_{k} \geq 0, n_{j} \equiv n_{j+1}(\bmod 5)\text{, где }j=(k \bmod 5)+1\right\}.
?
(a)

Найдите ДМТ MM только для чтения, допускающую LL. [Подсказка: MM выполняет два прохода по входному слову. На первом проходе она проверяет, что k5k \geq 5, и находит j=(kmod5)+1j=(k \bmod 5)+1. На втором проходе она проверяет, что njnj+1(mod5)n_{j} \equiv n_{j+1}(\bmod 5).]

(b)

Найдите все возможные последовательности пересечений MM на произвольном входе.

(c)

Для любых двух последовательностей пересечений S1,S2S_{1}, S_{2} машины MM и для любого символа a{0,1, B}a \in \left\{ 0,1, \mathrm{~ B}\right\} определите, выполняется ли S1aS2S_{1} \stackrel{a}{\rightleftharpoons } S_{2}. Основываясь на этом отношении между последовательностями пересечений, постройте НКА MM^{\prime }, допускающий LL.

(d)

Можете ли вы найти НКА с меньшим множеством состояний, чем у MM^{\prime }, допускающий LL?

Задача 4.2.7
  • В доказательстве теоремы 4.10 мы заметили, что если ДМТ MM в ходе вычисления на входе xx посещает некоторые пустые ячейки справа от входного слова, то НКА MM^{\prime } после считывания всех символов входного слова должен переходить в другие состояния с помощью ε\varepsilon-переходов, чтобы решить, допускает ли он входное слово. Покажите, что в этом нет необходимости. То есть можно исключить все ε\varepsilon-переходы в δ\delta^{\prime } и изменить множество FF финальных состояний так, чтобы оно включало все последовательности пересечений SS, содержащие h,R\langle h, R\rangle в качестве последней пары, такие что S BS1 BS2 B B(h,R)S \stackrel{\mathrm{~ B}}{\rightleftharpoons } S_{1} \stackrel{\mathrm{~ B}}{\rightleftharpoons } S_{2} \stackrel{\mathrm{~ B}}{\rightleftharpoons } \ldots \stackrel{\mathrm{~ B}}{\rightleftharpoons }(\langle h, R\rangle ). Объясните, как определить итоговое множество FF.
?
Задача 4.2.8
  • Рассмотрим расширение ДМТ только для чтения. ДМТ только для чтения с одним камешком (или, короче, ДМТ с одним камешком) — это ДМТ только для чтения MM с дополнительной возможностью помечать определённую ячейку входной ленты, помещая на неё камешек. Машина MM имеет только один камешек, поэтому в любой момент времени на ленте может быть помечен не более чем один символ. Точнее, ДМТ с одним камешком MM — это ДМТ M=(Q,Σ,Γ,δ,s)M=\left(Q, \Sigma , \Gamma , \delta , s^{*}\right), где Q=Q1{qqQ1}Q=Q_{1} \cup \left\{ q^{*} \mid q \in Q_{1}\right\} для некоторого конечного множества Q1Q_{1}, Γ=Σ{B}{aaΣ или a=B}\Gamma =\Sigma \cup \left\{ \mathrm{B}\right\} \cup \left\{ a^{*} \mid a \in \Sigma \text{ или }a=\mathrm{B}\right\}, sQ1s \in Q_{1}, и δ\delta удовлетворяет следующим свойствам: для любых qQ1q \in Q_{1} и aΣ{ B}a \in \Sigma \cup \left\{ \mathrm{~ B}\right\},
  1. δ(q,a)=(p,a,D)\delta (q, a)=(p, a, D) для некоторых pQ1p \in Q_{1} и D{L,R}D \in \left\{ L, R\right\}.

  2. δ(q,a)\delta \left(q, a^{*}\right) равно либо (p,a,D)\left(p, a^{*}, D\right), либо (p,a,D)\left(p^{*}, a, D\right) для некоторых pQ1p \in Q_{1} и D{L,R}D \in \left\{ L, R\right\}.

  3. δ(q,a)\delta \left(q^{*}, a\right) равно либо (p,a,D)\left(p^{*}, a, D\right), либо (p,a,D)\left(p, a^{*}, D\right) для некоторых pQ1p \in Q_{1} и D{L,R}D \in \left\{ L, R\right\}.

  4. δ(q,a)\delta \left(q^{*}, a^{*}\right) не определена. (Здесь верхний индекс * обозначает камешек. Таким образом, состояние qq^{*} означает, что MM держит камешек в своём конечном управлении, и все символы на ленте непомечены; а состояние qQ1q \in Q_{1} означает, что камешек находится во входной ячейке. Заметим, что свойство (i) означает, что MM не может пометить ячейку, если в данный момент она не держит камешек в своём конечном управлении.)

  5. Постройте ДМТ MM с одним камешком такую, что на каждом входе xx длины n2n \geq 2 машина MM останавливается ровно через n2n^{2} шагов.

  6. Покажите, что для каждой ДМТ MM только для чтения существуют такие константы cc и dd, что если MM останавливается на входе xx длины n1n \geq 1, то она обязательно останавливается не более чем за cn+dc n+d шагов.

  7. Покажите, что для каждой ДМТ MM с одним камешком существуют такие константы cc и dd, что если MM останавливается на входе xx длины n1n \geq 1, то она обязательно останавливается не более чем за cn2+dc n^{2}+d шагов.

  8. Покажите, что если LL — регулярный язык, то существует ДМТ MM с одним камешком, допускающая язык SQRT(L)\operatorname {SQRT}(L). (Напомним, что SQRT(L)\mathrm{SQRT}(L) определён в примере 2.44 как {x(y)y=x2,xyL}\left\{ x\left|(\exists y)\right| y\left|=|x|^{2}, x y \in \right. L\right\}.)

?
Задача 4.2.9
  • В этом упражнении мы докажем, что язык, допускаемый ДМТ с одним камешком, обязательно является регулярным. Предположим, что M=(Q,Σ,Γ,δ,s)M=\left(Q, \Sigma , \Gamma , \delta , s^{*}\right) — ДМТ с одним камешком, где Q=Q1{qqQ1}Q=Q_{1} \cup \left\{ q^{*} \mid q \in Q_{1}\right\}. Также предположим, что MM работает на входе xx и посещает ячейки C0,C1,,CnC_{0}, C_{1}, \ldots , C_{n}, причём в ячейке CiC_{i} находится символ sis_{i}, для i=0,1,,ni=0,1, \ldots , n (то есть s0s1sn=Bx B Bs_{0} s_{1} \cdots s_{n}=\mathrm{B} x \mathrm{~ B} \cdots \mathrm{~ B}). Для каждого ii, 0in0 \leq i \leq n, определим частичную функцию fi:Q1Q1f_{i}: Q_{1} \rightarrow Q_{1} следующим образом: если δ(q,si)=(p,si,D)\delta \left(q, s_{i}^{*}\right)=\left(p, s_{i}^{*}, D\right) для некоторых pQ1p \in Q_{1} и D{L,R}D \in \left\{ L, R\right\}, то fi(q)f_{i}(q) — это следующее состояние rQ1r \in Q_{1} (rh)(r \neq h), в котором MM возвращается в ячейку CiC_{i}. В противном случае fi(q)f_{i}(q) не определена. То есть функция fif_{i} кодирует состояния MM в моменты, когда она посещает ячейку CiC_{i} с камешком в ячейке CiC_{i} (аналогично последовательности пересечений ДМТ только для чтения). Заметим, что fif_{i} зависит как от машины MM, так и от входного слова xx.
?
(a)

Рассмотрим язык L1L_{1} над алфавитом (Σ{B})×F(\Sigma \cup \left\{ \mathrm{B}\right\} ) \times F, где FF — множество всех частичных функций из Q1Q_{1} в Q1Q_{1}, причём w=[s0,g0][s1,g1][sn,gn]L1w= \left[s_{0}, g_{0}\right]\left[s_{1}, g_{1}\right] \cdots \left[s_{n}, g_{n}\right] \in L_{1} тогда и только тогда, когда для всех i=0,,ni=0, \ldots , n выполняется gi=fig_{i}=f_{i} относительно машины MM и строки s0s1sns_{0} s_{1} \cdots s_{n}. (Заметим: если Q1=m\left|Q_{1}\right|=m, то в FF не более mm+1m^{m+1} символов, каждый из которых кодирует одну частичную функцию из Q1Q_{1} в Q1Q_{1}.) Покажите, что существует ДМТ M1M_{1} только для чтения, допускающая L1L_{1}; то есть покажите, что ДМТ только для чтения может проверить, корректно ли каждый символ gig_{i}, хранящийся на второй дорожке ячейки CiC_{i}, кодирует функцию fif_{i}. [Подсказка: M1M_{1} не может пошагово моделировать MM, чтобы проверить корректность значений fi(q)f_{i}(q), поскольку у M1M_{1} нет камешка, и поэтому, покинув ячейку CiC_{i}, она не может запомнить, где находилась. Вместо этого M1M_{1} нужно лишь проверить согласованность функции fif_{i} с её соседями fi1f_{i-1} и fi+1f_{i+1}, аналогично задаче проверки согласованности соседних последовательностей пересечений в теореме 4.10.]

(b)

Пусть L2L_{2} — язык над алфавитом (Σ{B})×F(\Sigma \cup \left\{ \mathrm{B}\right\} ) \times F, такой что w=[s0,g0][s1,g1][sn,gn]L2w=\left[s_{0}, g_{0}\right]\left[s_{1}, g_{1}\right] \cdots \left[s_{n}, g_{n}\right] \in L_{2}, если (1) wL1w \in L_{1}, определённый в пункте (a) выше, и (2) ДМТ MM с одним камешком допускает входное слово t0t1tnt_{0} t_{1} \cdots t_{n}, где ti=sit_{i}=s_{i}, если siBs_{i} \neq \mathrm{B}, и ti=εt_{i}=\varepsilon, если si=Bs_{i}=\mathrm{B}. Покажите, что существует ДМТ M2M_{2} только для чтения, допускающая L2L_{2}. [Подсказка: M2M_{2} использует информацию gig_{i} для моделирования MM следующим образом: если MM держит камешек в своём состоянии (то есть если MM находится в состоянии qq^{*}), то M2M_{2} моделирует MM пошагово. Если MM оставляет камешек в ячейке CiC_{i}, то M2M_{2} использует gig_{i} на второй дорожке, чтобы определить состояние, в которое она перейдёт, когда вернётся в ячейку CiC_{i}.]

(c)

Покажите, что если MM — ДМТ с одним камешком, то L(M)L(M) регулярен. [Подсказка: покажите, что язык L(M)L(M) является образом гомоморфизма ϕ\phi на L2L_{2}; см. пример 2.35.]

Задача 4.2.10

Рассмотрим ещё одно расширение ДМТ только для чтения. ДМТ MM называется ДМТ только для чтения/стирания, если на каждом шаге она может только считывать входной символ и/или стирать его (то есть заменять исходный символ на BB). То есть ДМТ M=(Q,Σ,Γ,δ,s)M=(Q, \Sigma , \Gamma , \delta , s) является ДМТ только для чтения/стирания, если Γ=Σ{B}\Gamma =\Sigma \cup \left\{ \mathrm{B}\right\}, и функция переходов δ\delta удовлетворяет следующему свойству: для любых qQq \in Q и aΣ{ B}a \in \Sigma \cup \left\{ \mathrm{~ B}\right\}, δ(q,a)\delta (q, a) равно либо (p,a,D)(p, a, D), либо (p, B,D)(p, \mathrm{~ B}, D) для некоторых pQp \in Q и D{L,R}D \in \left\{ L, R\right\}.

?
(a)

Покажите, что существует ДМТ только для чтения/стирания, допускающая язык L={anbncnn0}L=\left\{ a^{n} b^{n} c^{n} \mid n \geq 0\right\}.

(b)

Покажите, что существует тьюринг-разрешимый язык, не допускаемый никакой ДМТ только для чтения/стирания.