4.2

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

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

Покажите, что A={wwR∣w∈{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

Покажите, что {wwR∣w∈{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,n2∈Nn_{1}, n_{2} \in \mathbf{N} является тьюринг-вычислимой.

?
Пример 4.7

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

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

Покажите, что при 1≤i≤k1 \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

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

insert⁡ik(x1,x2,⋯ ,xk,y)=(x1,…,xi−1,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 Bab‾q_{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)

{ww∣w∈{0,1}∗}\left\{ w w \mid w \in \left\{ 0,1\right\}^{*}\right\}.

(b)

{wwRw∣w∈{0,1}∗}\left\{ w w^{R} w \mid w \in \left\{ 0,1\right\}^{*}\right\}.

(c)

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

(d)

{ambncn+m∣n,m≥0}\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)

{an1ban2b⋯bank∣ni=nj для некоторых 1≤i<j≤k}\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)=insert⁡ik(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,m≥0n, m \geq 0.

(e)

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

(f)

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

Задача 4.2.5

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

?
Задача 4.2.6

Рассмотрим регулярный язык L={0n110n21⋯10nk∣k≥5, n1,…,nk≥0,nj≡nj+1( mod 5), где j=(k mod 5)+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 выполняет два прохода по входному слову. На первом проходе она проверяет, что k≥5k \geq 5, и находит j=(k mod 5)+1j=(k \bmod 5)+1. На втором проходе она проверяет, что nj≡nj+1( mod 5)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\} определите, выполняется ли S1⇌aS2S_{1} \stackrel{a}{\rightleftharpoons } S_{2}. Основываясь на этом отношении между последовательностями пересечений, постройте НКА M′M^{\prime }, допускающий LL.

(d)

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

Задача 4.2.7

В доказательстве теоремы 4.10 мы заметили, что если ДМТ MM в ходе вычисления на входе xx посещает некоторые пустые ячейки справа от входного слова, то НКА M′M^{\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∪{q∗∣q∈Q1}Q=Q_{1} \cup \left\{ q^{*} \mid q \in Q_{1}\right\} для некоторого конечного множества Q1Q_{1}, Γ=Σ∪{B}∪{a∗∣a∈Σ или a=B}\Gamma =\Sigma \cup \left\{ \mathrm{B}\right\} \cup \left\{ a^{*} \mid a \in \Sigma \text{ или }a=\mathrm{B}\right\}, s∈Q1s \in Q_{1}, и δ\delta удовлетворяет следующим свойствам: для любых q∈Q1q \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) для некоторых p∈Q1p \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) для некоторых p∈Q1p \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) для некоторых p∈Q1p \in Q_{1} и D∈{L,R}D \in \left\{ L, R\right\}.

  4. δ(q∗,a∗)\delta \left(q^{*}, a^{*}\right) не определена.

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

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

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

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

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

?
Задача 4.2.9

В этом упражнении мы докажем, что язык, допускаемый ДМТ с одним камешком, обязательно является регулярным. Предположим, что M=(Q,Σ,Γ,δ,s∗)M=\left(Q, \Sigma , \Gamma , \delta , s^{*}\right) — ДМТ с одним камешком, где Q=Q1∪{q∗∣q∈Q1}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 (то есть s0s1⋯sn=Bx B⋯ Bs_{0} s_{1} \cdots s_{n}=\mathrm{B} x \mathrm{~ B} \cdots \mathrm{~ B}). Для каждого ii, 0≤i≤n0 \leq i \leq n, определим частичную функцию fi:Q1→Q1f_{i}: Q_{1} \rightarrow Q_{1} следующим образом: если δ(q,si∗)=(p,si∗,D)\delta \left(q, s_{i}^{*}\right)=\left(p, s_{i}^{*}, D\right) для некоторых p∈Q1p \in Q_{1} и D∈{L,R}D \in \left\{ L, R\right\}, то fi(q)f_{i}(q) — это следующее состояние r∈Q1r \in Q_{1} (r≠h)(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 и строки s0s1⋯sns_{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} с её соседями fi−1f_{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) w∈L1w \in L_{1}, определённый в пункте (a) выше, и (2) ДМТ MM с одним камешком допускает входное слово t0t1⋯tnt_{0} t_{1} \cdots t_{n}, где ti=sit_{i}=s_{i}, если si≠Bs_{i} \neq \mathrm{B}, и ti=εt_{i}=\varepsilon, если si=Bs_{i}=\mathrm{B}. Покажите, что существует ДМТ M2M_{2} только для чтения, допускающая L2L_{2}. [Подсказка: M2M_{2} использует информацию gig_{i} для моделирования MM следующим образом: если MM держит камешек в своём состоянии (то есть если MM находится в состоянии q∗q^{*}), то 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 удовлетворяет следующему свойству: для любых q∈Qq \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) для некоторых p∈Qp \in Q и D∈{L,R}D \in \left\{ L, R\right\}.

?
(a)

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

(b)

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