图灵机描述:
$TM \quad M = (\Gamma, \quad Q, \quad \delta)$
$\Gamma$: the alphabet of M, a finite set of the symbols that $M$’s tapes can contain.
$Q$: a finite set of the possible states $M$’s register can be in. $Q$ contains a designated start state ( $\textit{q}_{start}$ ) and a designated halting state ( $\textit{q}_{halt}$ ).
$\delta: \quad Q \times \Gamma^{k-1} \rightarrow Q \times \Gamma^{k-1} \times \{ L,S,R \} ^k$
a function called the transition function of $M$.
图灵机模拟器:
Deterministic Turing Machine(图灵机)
图灵机之间的转换:
双边图灵机(bidirectional TM)转单边图灵机 (unidirectional TM)
原理:
碰到 _ 符号转向;
碰到 # 符号转换为 #_#;
单条语句转换,方向为 R 模拟原来的移动,方向为 L ,反向移动;
$$\begin{array}{l l l}
& \ \textbf{原图灵机:} \qquad\qquad & \textbf{转换后:}\quad\quad\\
tape &T & TT=\{T\} \\
alphabet & A=\{\Gamma\} & TA=\{\Gamma\_\Gamma, \quad \_ , \quad \# \}\\
register & R=\{Q\} & TR=\{D_0\_D_1\_ \cdots D_{k-1}\_Q, \quad q_{start}, \quad q_{halt}\} \qquad\qquad\qquad\qquad\qquad\qquad\\
transition function & F=\{\delta\} & TF=\{\delta'\}
\end{array}$$
$$\begin{array}{l }
其中D_i = \{r, \quad l\}\quad (i=0 , \quad 1 , \quad \cdots , \quad k-1) \\
k = |T|为图灵机的带数 \\\\
\delta:\quad
q \quad a_0 \quad a_1 \quad \cdots \quad a_{k-1} \quad \rightarrow \quad q' \quad b_0 \quad b_1 \quad \cdots \quad b_{k-1} \quad d_0 \quad d_1 \quad \cdots \quad d_{k-1} \\
转换为\\
\delta':\quad
Dr_0\_Dr_1\_\cdots\_Dr_{k-1}\_q \quad Ta_0 \quad Ta_1 \quad \cdots \quad Ta_{k-1} \quad \rightarrow \quad
TQ \quad Tb_0 \quad Tb_1 \quad \cdots \quad Tb_{k-1} \quad Td_0 \quad Td_1 \quad \cdots \quad Td_{k-1}\\
语句转换:\\
Dr_i=\{r,\quad l\} \quad i=0,\quad 1, \quad\cdots , \quad k-1 \\
TQ=\left \{
\begin{array}{l}
Dr_0\_Dr_1\_\cdots\_Dr_{k-1}\_q' \qquad \\
q_{halt} \qquad
\end{array}
当
\begin{array}{l} \qquad q' \neq q_{halt}\\
\qquad q' = q_{halt}
\end{array}
\right . \\
Ta_i= \left \{
\begin{array}{l}
a_i\_c_i \\
c_i\_a_i
\end{array}
\qquad 当 \qquad
\begin{array}{l}
Dr_i=r\\
Dr_i=l
\end{array}
\right .
\qquad 其中 \quad c_i=\{A\}
\\
Tb_i= \left \{
\begin{array}{l}
b_i\_c_i \\
c_i\_b_i
\end{array}
\qquad 当 \qquad
\begin{array}{l}
Dr_i=r\\
Dr_i=l
\end{array}
\right . \\
Td_i= \left \{
\begin{array}{l}
d_i \\
\overline{d}_i
\end{array}
\qquad 当 \qquad
\begin{array}{l}
Dr_i=r\\
Dr_i=l
\end{array}
\right .
\qquad 其中 \quad
\overline{d}_i= \left \{
\begin{array}{l}
l \\
s \\
r
\end{array}
\qquad 当 \qquad
\begin{array}{l}
d_i=r\\
d_i=s\\
d_i=l
\end{array}
\right .
\\
\\相关的\_或者\#符号转换函数:\\
Dr_i=\{r,\quad l\} \quad i=0,\quad 1, \quad\cdots , \quad k-1 \\
TQ=Dr_0'\_Dr_1'\_\cdots\_Dr_{k-1}'\_q \qquad \\
Ta_i= \left \{
\begin{array}{l}
\_ \\
\# \\
ta_i
\end{array}
\right .
\quad 对应\rightarrow \quad
Tb_i= \left \{
\begin{array}{l}
\_\\
\#\_\# \\
ta_i
\end{array}
\right .
\quad 对应\rightarrow \quad
Td_i= \left \{
\begin{array}{l}
r\\
s \\
s
\end{array}
\right .
\quad 对应\rightarrow \quad
Dr_i'= \left \{
\begin{array}{l}
\overline{D}r_i \\
Dr_i\\
Dr_i
\end{array}
\right . \\
其中
ta_i= \left \{
\begin{array}{l}
a_i\_c_i \\
c_i\_a_i
\end{array}
\qquad 当 \qquad
\begin{array}{l}
Dr_i=r\\
Dr_i=l
\end{array}
\right . \qquad 其中 \quad c_i=\{A\}
\\
\overline{D}r_i = \left \{
\begin{array}{l}
l \\
r
\end{array}
\qquad 当 \qquad
\begin{array}{l}
Dr_i=r\\
Dr_i=l
\end{array}
\right . \\
注意:\\
(1)Ta_i不能全部取ta_i\\
(2)如果与前面的语句相同,则删除\\
\\ \\
\textbf{开始状态转移函数:}\\
q_{start} \quad \_ \quad \overbrace {\# \quad \cdots \quad \# }^{k-1} \quad \rightarrow \quad \overbrace {r \_ r \_ \cdots \_ r}^k \_ q_{start} \quad \overbrace {\_ \quad \_ \quad \cdots \quad \_}^k \quad \overbrace {r \quad r \quad \cdots \quad r}^k
\end{array}$$
$$\begin{array}{l}
\\空间复杂度分析:\\
生成tape的数目:O(|T|) \\
生成alphabet的数目:O(|A|^2) \\
生成register的数目:O(2^k|Q|) \\
单条transition function的生成数目: \\
单条语句转换生成的语句数目=\prod\limits_{i=0}^{k-1}|Dr_i| \cdot \prod\limits_{i=0}^{k-1}|Ta_i| \approx 2^kA^k=O(2^kA^k)
\\
相关的\_或者\#符号生成的语句数目=\prod\limits_{i=0}^{k-1}|Dr_i| \cdot (\prod\limits_{i=0}^{k-1}|Ta_i| -1 ) \approx 2^kA^k=O(2^kA^k)
\\空间复杂度分析:\\
T(n)=O(t(n)) \quad 其中t(n)为原来图灵机的时间复杂度
\end{array}\qquad\qquad\qquad\qquad\qquad\qquad$$
多字符图灵机(multiple alphabet TM)转01图灵机 (01 alphabet TM)
原理:
读码->写码->移动->模拟
$$\begin{array}{l l l}
& \ \textbf{原图灵机:} \qquad\qquad & \textbf{转换后:}\quad\quad\\
tape &T & TT=\{T\} \\
alphabet & A=\{\Gamma\} & TA=\{0, \quad 1 , \quad \# \}\\
register & R=\{Q\} & TR= \left \{\begin{array}{l} 在转换函数时加入\downarrow \\
r \_ \{ 0, \cdots, c-1 \} \_ TQ_{ \{ 0,\cdots,c \} } \\\{ w,m \} \_ \{ 0, \cdots, c-1 \} \_ TQ \\ QQ \\
q_{start}, \quad q_{halt}
\end{array} \right \} \qquad\qquad\qquad\qquad\qquad\qquad\\
transition function & F=\{\delta\} & TF=\{\delta'\}
\end{array}$$
$$\begin{array}{l }
k = |T|为图灵机的带数 \\\\
编码:\\
将原来的字符集A中的除了\#外全部使用二进制编码,编码长度为c=\lceil \lg |A| \rceil \\
\# \quad \rightarrow \quad \overbrace {\# \quad \cdots \quad \# }^c \\
a_i \quad \rightarrow \quad (a_ih_{c-1} \quad \cdots \quad a_ih_0 )_2 \quad 其中
a_ih_j = \left \{
\begin{array}{l}
0 \\
1
\end{array}
\right .
\quad \left (
\begin{array}{l}
j=0 , \quad 1 , \quad \cdots , \quad c-1 \\
i=0 , \quad 1 , \quad \cdots , \quad k-1
\end{array} \right )\\
其他 \quad \rightarrow \quad \overbrace {0 \quad \cdots \quad 0 }^c\\
\\
\delta:\quad
q \quad a_0 \quad a_1 \quad \cdots \quad a_{k-1} \quad \rightarrow \quad q' \quad b_0 \quad b_1 \quad \cdots \quad b_{k-1} \quad d_0 \quad d_1 \quad \cdots \quad d_{k-1} \\
转换为\\
读码操作\\
r\_0\_TQ_0 \quad a_0h_{c-1} \quad \cdots \quad a_{k-1}h_{c-1} \quad \rightarrow \quad r\_1\_TQ_1 \quad a_0h_{c-1} \quad \cdots \quad a_{k-1}h_{c-1} \quad r \quad r \quad \cdots \quad r \\
\cdots \\
r\_c-2\_TQ_{c-2} \quad a_0h_1 \quad \cdots \quad a_{k-1}h_1 \quad \rightarrow \quad r\_c-1\_TQ_{c-1} \quad a_0h_1 \quad \cdots \quad a_{k-1}h_1 \quad r \quad r \quad \cdots \quad r \\
r\_c-1\_TQ_{c-1} \quad a_0h_0 \quad \cdots \quad a_{k-1}h_0 \quad \rightarrow \quad w\_0\_TQ \quad a_0h_0 \quad \cdots \quad a_{k-1}h_0 \quad s \quad s \quad \cdots \quad s \\
其中TQ_j=q\_x_{0,j}\_\cdots\_x_{k-1,j} \qquad
\left \{
\begin{array}{l}
x_{i,0}=0 \qquad \\
x_{i,j}=2 \cdot x_{i,j-1}+a_ih_{j-1} \qquad
\end{array}
当
\begin{array}{l} \qquad j=0 \\
\qquad j \neq 0
\end{array}
\right . \\
TQ=TQ_c\\
(j=0 , \quad 1 , \quad \cdots , \quad c, \quad i=0 , \quad 1 , \quad \cdots , \quad k-1)\\
可以在加入TR集合时有相同的删除,加入TF集合时有相同的删除\\
写码操作:\\
w\_0\_TQ \quad a_0h_0 \quad \cdots \quad a_{k-1}h_0 \quad \rightarrow \quad w\_1\_TQ \quad b_0h_0 \quad \cdots \quad b_{k-1}h_0 \quad l \quad l \quad \cdots \quad l \\
\cdots \\
w\_c-2\_TQ \quad a_0h_{c-2} \quad \cdots \quad a_{k-1}h_{c-2} \quad \rightarrow \quad w\_c-1\_TQ \quad b_0h_{c-1} \quad \cdots \quad b_{k-1}h_{c-1} \quad l \quad l \quad \cdots \quad l \\
w\_c-1\_TQ \quad a_0h_{c-1} \quad \cdots \quad a_{k-1}h_{c-1} \quad \rightarrow \quad m\_0\_TQ \quad b_0h_{c-1} \quad \cdots \quad b_{k-1}h_{c-1} \quad s \quad s \quad \cdots \quad s \\
移动操作\\
m\_0\_TQ \quad A_{0,0} \quad \cdots \quad A_{k-1,0} \quad \rightarrow \quad m\_1\_TQ \quad A_{0,0} \quad \cdots \quad A_{k-1,0} \quad d_0 \quad d_1 \quad \cdots \quad d_{k-1} \\
\cdots \\
m\_c-2\_TQ \quad A_{0,c-2} \quad \cdots \quad A_{k-1,c-2} \quad \rightarrow \quad m\_c-1\_TQ \quad A_{0,c-2} \quad \cdots \quad A_{k-1,c-2} \quad d_0 \quad d_1 \quad \cdots \quad d_{k-1} \\
m\_c-1\_TQ \quad A_{0,c-1} \quad \cdots \quad A_{k-1,c-1} \quad \rightarrow \quad QQ \quad A_{0,c-1} \quad \cdots \quad A_{k-1,c-1} \quad d_0 \quad d_1 \quad \cdots \quad d_{k-1} \\
其中QQ=\left \{
\begin{array}{l}
r\_0\_q'\_ \overbrace {0\_0\_ \cdots \_0}^k \qquad \\ \\
q_{halt} \qquad
\end{array}
当
\begin{array}{l} \qquad q' \neq q_{halt}\\ \\
\qquad q' = q_{halt}
\end{array}
\right . \\
A_{i,j}=\left \{
\begin{array}{l}
b_ih_{c-1-j} \\
b_ih_{c-1}\\
\{0,1, \# \} \qquad
\end{array}
当
\begin{array}{l}
\qquad d_i=r\\
\qquad d_i=s\\
\qquad d_i=l
\end{array} \right . \\
i=0 , \quad 1 , \quad \cdots , \quad k-1\\
j=0 , \quad 1 , \quad \cdots , \quad c-1\\
可以在QQ寄存器状态加入TR集合时有相同的删除 \\
\\ \\
\textbf{开始状态转移函数:}\\
q_{start} \quad AA \quad \overbrace {\# \quad \cdots \quad \# }^{k-1} \quad \rightarrow \quad r\_ 0 \_q_{start} \_ \overbrace {0 \_ 0 \_ \cdots \_ 0}^k \quad AA \quad \overbrace { \# \quad \# \quad \cdots \quad \# }^{k-1} \quad \overbrace {s \quad s \quad \cdots \quad s}^k \\
其中AA= \{ 0,1, \# \}
\end{array}$$
$$\begin{array}{l}
\\空间复杂度分析:\\
生成tape的数目:O(|T|) \\
生成alphabet的数目:O(1) \\
生成register的数目:\approx 3c|Q||A|^k=O(\lg|A||A|^k |Q|) \\
单条transition function的生成数目: \\
编码生成的语句数目\approx c=O(\lg|A|)\\
写码生成的语句数目\approx c=O(\lg|A|)\\
移动生成的语句数目\approx c \cdot 3^k=O(\lg|A| \cdot 3^k)\\
\\时间复杂度分析:\\
T(n)=3c \cdot t(n) =O(t(n))\quad 其中t(n)为原来图灵机的时间复杂度
\end{array}\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad$$
多带图灵机(multiple tape TM)转单带图灵机 (one tape TM)
原理:
先将带上的输入初始化,将输入按带数间隔分布,然后模拟多带图灵机操作。每一次模拟都先从初始位置扫描一遍,模拟操作,然后从操作位置返回初始位置。
$$\begin{array}{l l l}
& \ \textbf{原图灵机:} \qquad\qquad & \textbf{转换后:}\quad\quad\\
tape &T & TT=\{单带\} \\
alphabet & A=\{\Gamma\} & TA=\{A, \quad \_A , \quad \_ \}\\
register & R=\{Q\} & TR= \left \{\begin{array}{l} 在转换函数时加入\downarrow \\ 初始化操作的寄存器 \\
r\{0,\cdots,k-1\}\_c_0\_\cdots\_c_{k-1}\_q\_A_0\_\cdots\_A_{k-1} \\
w\{0,\cdots,k-1\}\_c_0\_\cdots\_c_{k-1}\_q\_a_0\_\cdots\_a_{k-1} \\
F\_\{d0,\cdots,dk-1 \quad rd0,\cdots,rdk-1 \quad m0,\cdots,mk-1 \quad r0,\cdots,rk-1\}\\
QQ \\
q_{start}, \quad q_{halt}
\end{array} \right \}\\
transition function & F=\{\delta\} & TF=\{\delta'\}
\end{array}$$
$$\begin{array}{l }
k = |T|为图灵机的带数 \\\\
初始化:\\
start \quad A \quad \rightarrow \quad move\_A \quad \_A \quad r \\
move\_A \quad B \quad \rightarrow \quad move\_A \quad B \quad r \\
move\_A \quad \# \quad \rightarrow \quad copy\_A \quad \_ \quad r \\
move\_A \quad \_ \quad \rightarrow \quad copy\_A \quad \_ \quad r \\
copy\_A \quad \_C \quad \rightarrow \quad copy\_A \quad \_C \quad r \\
copy\_A \quad \# \quad \rightarrow \quad fill\_0 \quad \_A \quad r \\
\left . \begin{array}{l }
fill\_0 \quad \# \quad \rightarrow \quad fill\_1 \quad \_ \# \quad r \\
\cdots \\
fill\_k-3 \quad \# \quad \rightarrow \quad fill\_k-2 \quad \_\# \quad r \\
fill\_k-2 \quad \# \quad \rightarrow \quad rmov0 \quad \_ \# \quad s \\
\end{array} \right \} 将后面的k-1个\#填充为\_\#\\
rmov0 \quad \_A \quad \rightarrow \quad rmov0 \quad \_A \quad l \\
rmov0 \quad \_ \quad \rightarrow \quad rmov1 \quad \_ \quad l \\
rmov1 \quad A \quad \rightarrow \quad rmov1 \quad A \quad l \\
rmov1 \quad \_A \quad \rightarrow \quad start \quad A \quad r \\
start \quad \_ \quad \rightarrow \quad rcmov\_0 \quad \_ \quad r \qquad//已经移动完毕 \\
\left . \begin{array}{l }
rcmov\_0 \quad \_A \quad \rightarrow \quad rcmov\_1 \quad \_A \quad r \\
\cdots \\
rcmov\_k-2 \quad \_A \quad \rightarrow \quad rcmov\_k-1 \quad \_A \quad r \\
rcmov\_k-1 \quad \_A \quad \rightarrow \quad re \quad \_A \quad r \\
\end{array} \right \}跳过初始磁头位置\\
re \quad \_A \quad \rightarrow \quad re \quad A \quad r \qquad//其他元素初始化 \\
re \quad \# \quad \rightarrow \quad se \quad \# \quad s \\
se \quad A \quad \rightarrow \quad se \quad A \quad l \\
se \quad \_A \quad \rightarrow \quad se \quad \_A \quad l \\
se \quad \_ \quad \rightarrow \quad s0\_\overbrace {1\_\cdots\_1}^{k个1}\_start\_\overbrace {\_\_\cdots\_\_}^{k个\_} \quad \_ \quad r \qquad //开始\\
其中A=\{\Gamma\}, \quad B=\{ \Gamma -\{ \# \} \}, \quad C=\{ \Gamma \}\\
\\
\delta:\quad
q \quad a_0 \quad a_1 \quad \cdots \quad a_{k-1} \quad \rightarrow \quad q' \quad b_0 \quad b_1 \quad \cdots \quad b_{k-1} \quad d_0 \quad d_1 \quad \cdots \quad d_{k-1} \\
转换为\\
使用标志位c_i控制每条带上读写的模拟,当标志位为1时表示没有读写,为0时则相反
c_i= \left \{
\begin{array}{l}
0 \\
1
\end{array}
\right .
\quad 对应\rightarrow \quad
A_i= \left \{
\begin{array}{l}
a_i\\
\_
\end{array}
\right . \quad
其中i=0 , \quad 1 , \quad \cdots , \quad k-1\\
A=\{\Gamma\} \quad D=\{A,\_A\} \\
//读 \\
(1)当c_i中至少有一个不为0,表明还没有读取完毕 \\
没有碰到带 "\_"元素 \\
ri\_c_0\_\cdots\_c_{k-1}\_q\_A_0\_\cdots\_A_{k-1} \quad A \quad \rightarrow \quad r(i+1)\%k\_c0\_\cdots\_c_{k-1}\_q\_A_0\_\cdots\_A_{k-1} \quad A \quad r \qquad \\
碰到带 "\_"元素 \\
当c_i=1时 \\
ri\_c_0\_\cdots\_\widehat{1}^i\_\cdots\_c_{k-1}\_q\_A_0\_\cdots\_A_{k-1} \quad \_a_i \quad \rightarrow \quad r(i+1)\%k\_c_0\_\cdots\_\widehat{0}^i\_\cdots\_c_{k-1}\_q\_A_0\_\cdots\_\widehat{a_i}^i\_\cdots\_A_{k-1} \quad A \quad r \\
当c_i=0时不可能碰到带"\_"元素,因为已经扫描过了 \\
可以在加入TR集合时有相同的删除,加入TF集合时有相同的删除 \\
(2)当\forall c_i=0,已经读取完毕,进入写操作 \\
ri\_\overbrace{0\_\cdots\_0}^k\_q\_A_0\_\cdots\_A_{k-1} \quad A \quad \rightarrow \quad w(i-1+k)\%k\_\overbrace{1\_\cdots\_1}^k\_q\_a_0\_\cdots\_a_{k-1} \quad A \quad l \qquad \\
\\
//写 \\
(1)当c_i中至少有一个不为0,表明还没有读取完毕 \\
没有碰到带 "\_"元素 \\
wi\_c_0\_\cdots\_c_{k-1}\_q\_a_0\_\cdots\_a_{k-1} \quad A \quad \rightarrow \quad w(i-1+k)\%k\_c0\_\cdots\_c_{k-1}\_q\_a_0\_\cdots\_a_{k-1} \quad A \quad l \qquad \\
碰到带 "\_"元素 \\
当c_i=1时 \\
当 d_i=s时\\
wi\_c_0\_\cdots\_\widehat{1}^i\_\cdots\_c_{k-1}\_q\_a_0\_\cdots\_a_{k-1} \quad \_a_i \quad \rightarrow \quad w(i-1+k)\%k\_c_0\_\cdots\_\widehat{0}^i\_\cdots\_c_{k-1}\_q\_a_0\_\cdots\_a_{k-1} \quad \_b_i \quad l \\
当 d_i=d=\left \{
\begin{array}{l}
r\\
l
\end{array}
\right . 时 \quad 令d'=\left \{
\begin{array}{l}
l\\
r
\end{array}
\right . \\
wi\_c_0\_\cdots\_\widehat{1}^i\_\cdots\_c_{k-1}\_q\_a_0\_\cdots\_a_{k-1} \quad \_a_i \quad \rightarrow \quad F\_d0 \quad b_i \quad d \\
令F=w(i-1+k)\%k\_c_0\_\cdots\_\widehat{0}^i\_\cdots\_c_{k-1}\_q\_a_0\_\cdots\_a_{k-1}\\
F\_d0 \quad D \quad \rightarrow \quad F\_d1 \quad D \quad d \\
\cdots \\
F\_dk-2 \quad D \quad \rightarrow \quad F\_dk-1 \quad D \quad d \\
F\_dk-1 \quad A \quad \rightarrow \quad F\_rd0 \quad \_A \quad d' \\
F\_rd0 \quad D \quad \rightarrow \quad F\_rd1 \quad D \quad d' \\
\cdots \\
F\_rdk-2 \quad D \quad \rightarrow \quad F\_rdk-1 \quad D \quad d' \\
F\_rdk-1 \quad b_i \quad \rightarrow \quad F \quad b_i \quad l \\
特殊情况,当d_i=l时,如果模拟的是双边图灵机有可能会冲掉原来的输入,需要使用下面操作调整 \\
F\_di \quad \_ \quad \rightarrow \quad F\_m0 \quad \# \quad l \\
F\_m0 \quad A \quad \rightarrow \quad F\_m1 \quad \# \quad l \\
\cdots \\
F\_mk-2 \quad A \quad \rightarrow \quad F\_mk-1 \quad \# \quad l \\
F\_mk-1 \quad A \quad \rightarrow \quad F\_r0 \quad \_ \quad r \\
F\_r0 \quad \# \quad \rightarrow \quad F\_r1 \quad \# \quad r \\
\cdots \\
F\_rk-2 \quad \# \quad \rightarrow \quad F\_rk-1 \quad \# \quad r \\
F\_rk-1 \quad \# \quad \rightarrow \quad F\_di \quad \# \quad s \\
当c_i = 0时 \\
wi\_c_0\_\cdots\_c_{k-1}\_q\_a_0\_\cdots\_a_{k-1} \quad \_A \quad \rightarrow \quad w(i-1+k)\%k\_c_0\_\cdots\_c_{k-1}\_q\_a_0\_\cdots\_a_{k-1} \quad \_A \quad l \\
(2)当\forall c_i=0,已经写完毕,返回初始位置"\_",开始新的扫描 \\
wi\_\overbrace{0\_\cdots\_0}^k\_q\_a_0\_\cdots\_a_{k-1} \quad D \quad \rightarrow \quad w(i-1+k)\%k\_\overbrace{0\_\cdots\_0}^k\_q\_a_0\_\cdots\_a_{k-1} \quad D \quad l \qquad \\
wk-1\_\overbrace{0\_\cdots\_0}^k\_q\_a_0\_\cdots\_a_{k-1} \quad \_ \quad \rightarrow \quad QQ \quad \_ \quad r \qquad \\
其中QQ=\left \{
\begin{array}{l}
r0\_\overbrace{1\_\cdots\_1}^k\_q'\_\overbrace{\_\_\cdots\_\_}^{k个\_} \qquad \\ \\
q_{halt} \qquad
\end{array}
当
\begin{array}{l} \qquad q' \neq q_{halt}\\ \\
\qquad q' = q_{halt}
\end{array}
\right . \\
\end{array}$$
$$\begin{array}{l}
\\空间复杂度分析:\\
生成tape的数目:O(1) \\
生成alphabet的数目:2|A|+1=O(|A|) \\
生成register的数目:\approx k|Q| \cdot 2^k + k|Q|\cdot 2^k \cdot4k=O(k^22^k|Q|) \\
单条transition function的生成数目: \\
读取生成的语句数目\approx k \cdot 2^k \cdot |A|=O(k2^k|A|)\\
写入生成的语句数目\approx k \cdot 2^k \cdot |A| + k \cdot 2^k \cdot 4k \cdot |A|=O(k^2 2^k|A|)\\
\\时间复杂度分析:\\
T(n)=kn \cdot n + 2kt(n) \cdot t(n)=O(t^2(n)) \quad 其中t(n)为原来图灵机的时间复杂度
\end{array} \qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad$$