




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、2021-11-161第第5章章 圖靈機圖靈機 圖靈機圖靈機(Turing machine)是由圖靈是由圖靈(Alan MathisomTuring)在在1936年提出的,它是年提出的,它是一個通用的計算模型。一個通用的計算模型。 通過研究通過研究TM,來研究遞歸可枚舉集,來研究遞歸可枚舉集(recursively enumerable set)和部分遞歸和部分遞歸函數(shù)函數(shù)(partial recursive function)。 對算法和可計算性進行研究提供形式化描對算法和可計算性進行研究提供形式化描述工具。述工具。2021-11-162圖靈機的基本模型圖靈機的基本模型圖靈機圖靈機(Turi
2、ng Machine ,簡記為,簡記為TM)的基本模型的基本模型是一個是一個確定的、單帶的自動機確定的、單帶的自動機。它有有限個狀態(tài),有一條單向無窮延伸的存儲帶,它有有限個狀態(tài),有一條單向無窮延伸的存儲帶,帶上劃分為無窮多個存儲單元。帶上劃分為無窮多個存儲單元。圖靈機通過圖靈機通過讀讀/寫寫頭,可從單元讀出符號,也可往頭,可從單元讀出符號,也可往單元上寫某些符號。單元上寫某些符號。圖靈機的讀圖靈機的讀/寫頭可在帶上寫頭可在帶上左、右移動左、右移動做讀做讀/寫工作。寫工作。2021-11-163定義定義 一個確定的、單帶圖靈機一個確定的、單帶圖靈機M是一個八元組:是一個八元組:M =(Q,B,
3、S ,F(xiàn),R)其中:其中:o Q是有窮狀態(tài)集;是有窮狀態(tài)集;o 是有窮的輸入字母表;是有窮的輸入字母表;o 是有窮的帶字母表(是有窮的帶字母表( ););o : QQL,R,是轉(zhuǎn)移函數(shù);,是轉(zhuǎn)移函數(shù);o B-,是空白符號;,是空白符號;o SQ,是初始狀態(tài);,是初始狀態(tài);o FQ,是接受狀態(tài);,是接受狀態(tài);o RQ,是拒絕狀態(tài)。,是拒絕狀態(tài)。2021-11-164例例 給出語言給出語言L= 0n1n n1,構造一個,構造一個TM M,使,使L(M)=L。具體辦法是,具體辦法是, 當當TM的讀的讀/寫頭遇寫頭遇0時,將它改寫為時,將它改寫為X(或其它區(qū)別于(或其它區(qū)別于0的符號),然后到右邊去找
4、的符號),然后到右邊去找1; 找到找到1之后,將之后,將1改寫為改寫為Y(或其它區(qū)別于(或其它區(qū)別于1的符號)。的符號)。 這樣往返進行下去,直到左邊的這樣往返進行下去,直到左邊的0全部改為全部改為X,右邊,右邊的的1全部改為全部改為Y為止,如果沒有多余的為止,如果沒有多余的0或或1,TM就進就進入接受狀態(tài)表示接受。入接受狀態(tài)表示接受。 除此之外的其它各種情況,除此之外的其它各種情況,TM都不應當接受。都不應當接受。圖靈機的語言識別圖靈機的語言識別2021-11-1650 0 1 1 BX 0 1 1 B(q0,0)=(q1,X,R) 將將0改寫為改寫為X (q1,0)=(q1,0,R) 在在
5、q1的控制下向右找的控制下向右找1X 0 1 1 BX 0 Y 1 B(q1,1)=(q2,Y,L) 將將1改寫為改寫為Y,返回返回X 0 Y 1 B(q2,0)=(q2,0,L) 在在q2的控制下向左找的控制下向左找X后面的后面的0。X 0 Y 1 B (q2,X)=(q0,X,R) 遇遇X右移右移,狀態(tài)改為狀態(tài)改為q0 X X Y 1 B(q0,0)=(q1,X,R)X X Y 1 B(q1,Y)=(q1,Y,R) 向右找向右找1X X Y Y B(q1,1)=(q2,Y,L)X X Y Y B(q2,Y)=(q2,Y, L)(q0,Y)=(q3,Y, R) 0都改為都改為X,q0將遇到將
6、遇到Y,狀態(tài)改為,狀態(tài)改為q3 (q3 ,Y)=(q3 ,Y, R) 在在q3 的控制下,向右找的控制下,向右找B。 (q3 ,B)=(q4,B, 0) 0和和1的個數(shù)相等,進入接受狀態(tài)。的個數(shù)相等,進入接受狀態(tài)。(q2,X)=(q0,X,R) 2021-11-166(1)(3)(5)(q3 ,1)=(q5 ,1, 0) 1的個數(shù)多于的個數(shù)多于0的個數(shù),到達拒絕狀態(tài)的個數(shù),到達拒絕狀態(tài)q5 ,停機。,停機。 (11)(8)圖靈機圖靈機M1不接收不接收011的過程的過程 (1)(q0,0)=(q1,X,R) (2)(q1,0)=(q1,0,R) (3)(q1,1)=(q2,Y,L)(4)(q2,
7、0)=(q2,0,L) (5)(q2,X)=(q0,X,R)(6)(q1,Y)=(q1,Y,R)(7)(q2,Y)=(q2,Y, L)(8)(q0,Y)=(q3,Y, R)(9)(q3,Y)=(q3 ,Y, R) (10)(q3 ,B)=(q4,B, 0)0 1 1 Bq0X 1 1 Bq1X Y 1 Bq2X Y 1 Bq0X Y 1 Bq32021-11-167圖靈機圖靈機M1不接收不接收001的過程:的過程:(1)(2) (3)( 4 ) (5)(1) (6)(q1,B)=(q5,B,0) 0的個數(shù)多于的個數(shù)多于1的個數(shù),拒絕。的個數(shù),拒絕。 (12)(1)(q0,0)=(q1,X,R)
8、 (2)(q1,0)=(q1,0,R) (3)(q1,1)=(q2,Y,L)(4)(q2,0)=(q2,0,L) (5)(q2,X)=(q0,X,R)(6)(q1,Y)=(q1,Y,R)(7)(q2,Y)=(q2,Y, L)(8)(q0,Y)=(q3,Y, R)(9)(q3,Y)=(q3,Y, R) (10)(q3,B)=(q4,B, 0)(11)(q3 ,1)=(q5,1, 0)0 0 1 Bq0X 0 1 Bq1X 0 1 Bq1X 0 Y Bq2X 0 Y Bq2X 0 Y Bq0X X Y Bq1X X Y Bq12021-11-168圖靈機圖靈機M1不接收不接收010的過程:的過程:
9、(1) (3) (5)(q3,0)=(q5,0, 0) 1的后面還有的后面還有0,拒絕。,拒絕。 (13) (8)(1)(q0,0)=(q1,X,R) (3)(q1,1)=(q2,Y,L)(4)(q2,0)=(q2,0,L) (5)(q2,X)=(q0,X,R)(6)(q1,Y)=(q1,Y,R)(7)(q2,Y)=(q2,Y, L)(8)(q0,Y)=(q3,Y, R)(9)(q3,Y)=(q3,Y, R) (10)(q3,B)=(q4,B, 0)(11)(q3 ,1)=(q5,1, 0) (2)(q1,0)=(q1,0,R) (12)(q1,B)=(q5,B,0)0 1 0 Bq0X 1
10、0 Bq1X Y 0 Bq2X Y 0 Bq0X Y 0 Bq32021-11-1692021-11-1610狀態(tài)狀態(tài)符號符號01XYBq0 (q1,X, R) (q3 ,Y, R) q1(q1,0, R)(q2,Y, L) (q1 ,Y, R) (q5 ,B, 0) q2(q2 ,0, L) (q0 ,X, R) (q2,Y, L)q3(q5 ,0, 0) (q5 ,1, 0) (q3 ,Y, R) (q4 ,B, 0) 2021-11-1611q00011Xq1011 X0q111 Xq20Y1 q2X0Y1 Xq00Y1 XXq1Y1XXYq11 XXq2YY Xq2XYY XXq0YY
11、XXYq3YXXYYq3BXXYYBq4B 2021-11-1612例例 給出語言給出語言L= anbn+1cn+2 n0,構造一個,構造一個TM M接接受受L。 對于這類問題對于這類問題TM可以通過左右反復掃描、修改符號可以通過左右反復掃描、修改符號的辦法來實現(xiàn)對的辦法來實現(xiàn)對a,b,c的計數(shù)。具體方法是:的計數(shù)。具體方法是:M的的讀讀/寫頭經(jīng)過一次往返,將寫頭經(jīng)過一次往返,將a改寫為改寫為X,將,將b改寫為改寫為Y,將將c改寫為改寫為Z,經(jīng)過,經(jīng)過n次往返后,帶上符號就變?yōu)榇瓮岛?,帶上符號就變?yōu)閄XXYYYbZZZcc。然后,再處理多余的。然后,再處理多余的b和和c即可。即可。2021-
12、11-1613對于對于L= anbn+1cn+2 n0,構造,構造TM M:M =(q0 ,q1 ,q2 ,q3 ,q4 ,q5 ,q6 ,q7 ,q8 ,q9 ,a,b,c,X,Y,Z,凵凵a,b,c,凵,凵,q0 ,q8 ,q9 ), q0aabbbcccc (1)(q0 ,a)=(q1 ,X, R) Xq1abbbcccc 將將a改寫為改寫為X (2)(q1 ,a)=(q1 ,a, R) Xaq1bbbcccc 在在q1的控制下向右找的控制下向右找b (3)(q1 ,b)=(q2 ,Y, R) XaYq2bbcccc 將將b改寫為改寫為Y (4)(q2 ,b)=(q2 ,b, R) Xa
13、Ybbq2cccc 向右找向右找c (5)(q2 ,c)=(q3 ,Z, L) XaYbq3bZccc 將將c改寫為改寫為Z,返回。,返回。 (6)(q3 ,b)=(q3 ,b, L) Xaq3YbbZccc (7)(q3 ,Y)=(q3 ,Y, L) Xq3aYbbZccc (8)(q3 ,a)=(q3 ,a, L) q3XaYbbZccc (9)(q3 ,X)=(q0 ,X, R) Xq0aYbbZccc 遇遇X后改為后改為q0 ,轉(zhuǎn)(,轉(zhuǎn)(1) XXq1YbbZccc(1)(q0 ,a)=(q1 ,X, R) 2021-11-1614 XXYbbZccc (10)(q1 ,Y)=(q1
14、,Y, R) XXYq1bbZccc XXYYq2bZccc (3) (q1 ,b)=(q2 ,Y, R) XXYYbq2Zccc (4) (q2 ,b)=(q2 ,b, R) (11)(q2 ,Z)=(q2 ,Z, R) XXYYbZq2ccc XXYYbq3ZZcc (5) (q2 ,c)=(q3 ,Z, L) (12)(q3 ,Z)=(q3 ,Z, L) XXYYq3bZZcc XXYq3YbZZcc (6)(q3 ,b)=(q3 ,b, L) XXq3YYbZZcc (7)(q3 ,Y)=(q3 ,Y, L) Xq3XYYbZZcc (9)(q3 ,X)=(q0 ,X, R) (13)
15、(q0 ,Y)=(q4 ,Y, R) XXq0YYbZZcc 處理多余的處理多余的b,c (14)(q4 ,Y)=(q4 ,Y, R) XXYYq4bZZcc 處理多余的處理多余的b,c (15)(q4 ,b)=(q5 ,b, R) XXYYbq5ZZcc 遇到一個遇到一個b,正常情況正常情況,轉(zhuǎn)轉(zhuǎn)q5 。 (16)(q5 ,Z)=(q5 ,Z, R) XXYYbZZq5cc (17)(q5 ,c)=(q6 ,c, R) XXYYbZZcq6c (18)(q6 ,c)=(q7 ,c, R) XXYYbZZccq7 遇到兩個遇到兩個c后,轉(zhuǎn)后,轉(zhuǎn)q7 。 (19)(q7 ,B)=(q8 ,B,
16、R) q8 為接受狀態(tài),接受。為接受狀態(tài),接受。 (20)(q0 ,b)=(q5 ,b, R) 處理處理n=0的情況。的情況。2021-11-1615用矩陣形式表示以上的用矩陣形式表示以上的函數(shù)函數(shù)2021-11-1616圖靈機不但與其它自動機一樣有圖靈機不但與其它自動機一樣有“識別識別”的功能的功能 (當它辨認某串是(當它辨認某串是“合法合法” 就接受,否則就不接受),就接受,否則就不接受), 而且有而且有“計算計算”的功能(在指定數(shù)表示法的情況下,的功能(在指定數(shù)表示法的情況下,實現(xiàn)整數(shù)函數(shù)的求值)。實現(xiàn)整數(shù)函數(shù)的求值)。為了簡單,用為了簡單,用“一進制一進制”表示整數(shù):表示整數(shù):n表示整
17、數(shù)表示整數(shù)n。 如果要計算整數(shù)函數(shù)如果要計算整數(shù)函數(shù)f(x,y),則可在則可在TM的帶上放的帶上放0 x10y( “1”是為了將是為了將x,y隔開,別的符號也可隔開,別的符號也可), 然后通過然后通過TM的動作,將帶上符號改為的動作,將帶上符號改為0f(x,y)B,即表示出計算的結果。即表示出計算的結果。因為計算因為計算f(x,y)總是有結果的,沒有接受與不接受的總是有結果的,沒有接受與不接受的問題,但是還是用終結狀態(tài)表示計算結束比較好。問題,但是還是用終結狀態(tài)表示計算結束比較好。圖靈機的計算功能圖靈機的計算功能2021-11-1617例例 構造一個構造一個TM M,實現(xiàn)非負減法。設,實現(xiàn)非負
18、減法。設m,n1,m- n的定義為:的定義為: m-n = 設在開始時設在開始時M的帶上為的帶上為0m10nB,最終變?yōu)?,最終變?yōu)锽n 0m-n B。思路是,思路是,1的左邊消去一個的左邊消去一個0,1的右邊也消去一個的右邊也消去一個0,表示一次減法,如此循環(huán)重復,直到右邊的表示一次減法,如此循環(huán)重復,直到右邊的0都消完為都消完為止;當止;當mn時,按定義做相應處理。時,按定義做相應處理。具體的消去方法,則可以多種多樣。這里采取的辦法是具體的消去方法,則可以多種多樣。這里采取的辦法是將左邊的將左邊的0變?yōu)樽優(yōu)锽,右邊的,右邊的0變?yōu)樽優(yōu)?(右邊的(右邊的0不能變?yōu)椴荒茏優(yōu)锽,以免和帶子后面的大
19、批空白符混淆),最后再處理那些以免和帶子后面的大批空白符混淆),最后再處理那些無用的無用的1。nm,0,nm,nm時當時當2021-11-1618M的構造如下:的構造如下: q00000100B(1)(q0,0)=(q1,B, R) Bq1000100B 將左邊的將左邊的0變?yōu)樽優(yōu)锽(2)(q1,0)=(q1,0, R) B000q1100B 在在q1的控制下向右找的控制下向右找1(3)(q1,1)=(q2,1, R) B0001q200B 找到后變?yōu)檎业胶笞優(yōu)閝2(4)(q2,0)=(q3,1, L) B000q3110B 將將1后面的第一個后面的第一個0變?yōu)樽優(yōu)?,返回,返回(5)(q3,
20、1)=(q3,1, L) B00q30110B 在在q3的控制下往左找空白的控制下往左找空白B(6)(q3,0)=(q3,0, L) q3B000110B 在在q3的控制下往左找空白的控制下往左找空白B(7)(q3,B)=(q0,B, R) Bq0000110B 轉(zhuǎn)轉(zhuǎn)(1), BBq100110B (1) , BB00q1110B (2) , BB001q210B (8)(q2,1)=(q2,1, R) BB0011q20B BB001q311B (4) BB0q30111B (5) Bq3B00111B (6), BBq000111B (7) BBBq10111B (1) BBB0q1111
21、B (2) , BBB01q211B (3) BBB0111q2B (8)(9)(q2,B)=(q4,B, L) BBB011q41B q2遇到遇到B,表示,表示1的右面已沒有的右面已沒有0,表示運算表示運算q4已經(jīng)進入尾聲,要消去所有的已經(jīng)進入尾聲,要消去所有的1。(7)(q4,1)=(q4,B, L) BBBq40BBBB 在在q4的控制下,將的控制下,將1改寫為改寫為B。(8)(q4,0)=(q4,0, L) BBq4B0BBBB (9)(q4,B)=(q6,0, R) BB0q60BBBB 狀態(tài)狀態(tài)q6 表示減法結束表示減法結束2021-11-1619在在mn的情況,計算結果帶上符號為
22、的情況,計算結果帶上符號為Bn 0m-nB,0的個數(shù)已經(jīng)符合要的個數(shù)已經(jīng)符合要求。因為圖靈機的任務是計算,只要輸入串按規(guī)定存放,總能得出結求。因為圖靈機的任務是計算,只要輸入串按規(guī)定存放,總能得出結果,所以沒有接受或拒絕的問題。果,所以沒有接受或拒絕的問題。對于對于mn的情況,結果是的情況,結果是0,帶上應當全是空白符,因此需要單獨處,帶上應當全是空白符,因此需要單獨處理。理。 在上述反復消去在上述反復消去0的過程中,的過程中,1左邊的左邊的0先被消完先被消完: 0010000B BBq011100B當當q0與與1相遇時相遇時,相應的相應的函數(shù)為:函數(shù)為: (q0,1)=(q5,B, R) B
23、BBq51100B (q5,1)=(q5,B, R) BBBBBq500B (q5,0)=(q5,B, R) BBBBBBBq5B (q5,B)=(q6,B, R) BBBBBBBBq6 在在q5的控制下,將后面的的控制下,將后面的1和和0全部變?yōu)槿孔優(yōu)锽,直到遇見,直到遇見B才以狀態(tài)才以狀態(tài)q6結束。此時帶上全是空白符,表示結果為結束。此時帶上全是空白符,表示結果為0 。2021-11-1620 例例 構造構造TM M,對于任意非負整數(shù),對于任意非負整數(shù)n,m,M計算計算m+n。 分析:分析:M 的輸入為的輸入為0n10m,輸出,輸出0n+m的符號串。的符號串。n和和m為為0的的情況需要特
24、殊考慮。情況需要特殊考慮。(1)當)當n和和m都不為都不為0時,我們需要將符號時,我們需要將符號1改為改為0,并將最,并將最后一個后一個0改為改為B。 q0000100B(q0,0)=(q1,0,R) 0q100100B(q1,0)=(q1,0,R) 000q1100B(q1,1)=(q1,0,R) 0000q100B 000000q1B(q1,B)=(q2,B,L) 00000q20B(q2,0)=(q3,B,R) 00000Bq3BM=(q0, q1, q2, q3, 0,1, 0,1,B, , q0, B, q3)2021-11-1621(2)當)當n為為0時,只用將時,只用將1變成變成
25、B就完成了計算,此時無需考就完成了計算,此時無需考察察m是否為是否為0; q0100B(q0,1)=(q3,B,R) Bq300B(3)當)當m為為0時,需要掃描過表示時,需要掃描過表示n的符號的符號0,并將,并將1改為改為B。 q00001B(q0,0)=(q1,0,R) 0q1001B(q1,0)=(q1,0,R) 000q11B(q1,1)=(q3,B,R) 000Bq3B2021-11-1622圖靈機的程序設計技術圖靈機的程序設計技術在狀態(tài)中存儲符號在狀態(tài)中存儲符號多道技術多道技術子程序技術子程序技術2021-11-1623在狀態(tài)中存儲符號在狀態(tài)中存儲符號例例 構造一個構造一個TM M
26、,它接受下述集合:,它接受下述集合:L=01,2* 10,2*20,1*。在字母表在字母表0,1,2上,上,L包含且僅包含滿足以下性質(zhì)的串:包含且僅包含滿足以下性質(zhì)的串:串中第一個符號可以是串中第一個符號可以是0,1或或2,但串中其余符號不可以和,但串中其余符號不可以和串的第一個符號相同。串的第一個符號相同。構造構造M的思想是:將第一個符號的思想是:將第一個符號“吸收吸收”到狀態(tài)上,構成一到狀態(tài)上,構成一個復合狀態(tài)(二元組)。個復合狀態(tài)(二元組)。然后這個復合狀態(tài)掃視其余符號,如果那些符號和復合狀態(tài)然后這個復合狀態(tài)掃視其余符號,如果那些符號和復合狀態(tài)所帶的符號均不相同,讀所帶的符號均不相同,讀
27、/寫頭就一直右移,直到遇空白符寫頭就一直右移,直到遇空白符而表示接受;而表示接受;否則就因輸入串不在否則就因輸入串不在L中而拒絕。中而拒絕。M =(q1,q2,q3,q1,0,q1,1,q1,2,0,1,2,0,1,2,B,B, q1,q2,q3),其中),其中函數(shù)為函數(shù)為:2021-11-1624 0121B(1) (q1,0)=(q1,0, 0, R) 0121B 將輸入串的第一個符號將輸入串的第一個符號“吸收吸收”到狀態(tài)上到狀態(tài)上(2) (q1,0,1)=(q1,0, 1, R) 0121B 遇非遇非0符號通過符號通過 (q1,0,2)=(q1,0, 2, R) 0121B 遇非遇非0符
28、號通過符號通過 0121B(3) (q1,0,B)=(q2 , B, 0) 0121B 遇空白符接受(遇空白符接受(q2為接受狀態(tài))為接受狀態(tài)) 10220B 20110B (q1,1)=(q1,1, 1, R) (q1,1,0)=(q1,1, 0, R) 遇非遇非1符號通過符號通過 (q1,1,2)=(q1,1, 2, R) (q1,1,B)=(q2 , B, 0) (q1,2)=(q1,2, 2, R) (q1,2,0)=(q1,2, 0, R) 遇非遇非2符號通過符號通過 (q1,2,1)=(q1,2, 1, R) (q1,2,B)=(q2 , B, 0)其他其他函數(shù)都是拒絕的情況。函數(shù)
29、都是拒絕的情況。 例如,例如,(q1,0,0)表示以表示以0開頭的輸入串后面又遇到開頭的輸入串后面又遇到0,此串應被拒絕,此串應被拒絕,所以應有所以應有(q1,0,0)=(q3,0,0)()(q3為拒絕狀態(tài))。為拒絕狀態(tài))。2021-11-1625用新狀態(tài)代替復合狀態(tài)用新狀態(tài)代替復合狀態(tài)從上可以看出,復合狀態(tài)實際上就是一種新的狀態(tài),從上可以看出,復合狀態(tài)實際上就是一種新的狀態(tài),可將例中的不同復合狀態(tài)用不同的新狀態(tài)表示:可將例中的不同復合狀態(tài)用不同的新狀態(tài)表示:(q0,0)=(q1, 0, R) 輸入串的第一個符號為輸入串的第一個符號為0,變,變1狀態(tài)狀態(tài)(q1, 1)=(q1,1, R) 遇非
30、遇非0符號通過符號通過(q1,2)=(q1,2, R) 遇非遇非0符號通過符號通過(q1,B)=(q4 , B, 0) 遇空白符接受(遇空白符接受(q4為接受狀態(tài))為接受狀態(tài))(q0,1)=(q2, 1, R) 輸入串的第一個符號為輸入串的第一個符號為1,變,變2狀態(tài)狀態(tài)(q2,0)=( q2, 0, R) 遇非遇非1符號通過符號通過(q2, 2)=( q2 , 2, R) 遇非遇非1符號通過符號通過(q2, B)=(q4 , B, 0) 遇空白符接受遇空白符接受(q0,2)=(q3, 2, R) 輸入串的第一個符號為輸入串的第一個符號為2,變,變3狀態(tài)狀態(tài)(q3,0)=( q3, 0, R)
31、 遇非遇非2符號通過符號通過(q3,1)=( q3, 1, R) 遇非遇非2符號通過符號通過(q3,B)=(q4 , B, 0) 遇空白符接受遇空白符接受2021-11-1626例例 構造一個構造一個TM M,它將帶上的非空白符號右移它將帶上的非空白符號右移2個單元格。個單元格。即將即將a1a2anB變?yōu)樽優(yōu)锽Ba1a2anB(ai為非空白符號,為非空白符號,i=1,2,n)。)。構造構造M的基本思路是,在某個狀態(tài)下首先將前兩個符號的基本思路是,在某個狀態(tài)下首先將前兩個符號a1,a2吸收進來,構成一個三元組狀態(tài),再將前兩個位置變?yōu)榭瘴者M來,構成一個三元組狀態(tài),再將前兩個位置變?yōu)榭瞻?。然后在?/p>
32、元組狀態(tài)的控制下,將白。然后在三元組狀態(tài)的控制下,將a1放在放在a3的位置,將的位置,將a3吸收進三元組代替吸收進三元組代替a1,依此類推。直到最后遇空白符時,再,依此類推。直到最后遇空白符時,再將三元組中攜帶的最后兩個符號將三元組中攜帶的最后兩個符號an-1和和an放入最后兩個空格放入最后兩個空格內(nèi),就完成了移動任務。內(nèi),就完成了移動任務。2021-11-1627M的的函數(shù)如下:函數(shù)如下: abcdeBB(1) (q1, a)=( q1,B,a,B, R) BbcdeBB 將第一個符號吸到狀態(tài)上將第一個符號吸到狀態(tài)上(2) (q1,B,a, b)=( q1, a, b,B, R) BBcde
33、BB 將第二個符號也吸到狀態(tài)上將第二個符號也吸到狀態(tài)上(3) (q1, a,b, c)=( q1, b , c, a , R) BBadeBB 將將a放在放在c的位置的位置, c放在狀態(tài)上放在狀態(tài)上(3) (q1, b,c, d)=( q1, c , d, b , R) BBabeBB 將將b放在放在d的位置的位置, d放在狀態(tài)上放在狀態(tài)上(4) (q1, c,d, e)=( q1, d , e, c , R) BBabcBB 將將c放在放在e的位置的位置, e放在狀態(tài)上放在狀態(tài)上(5) (q1 , d,e, B)=(q1, B ,e , d, R) BBabcdB 在空白處放倒數(shù)第二個符號在
34、空白處放倒數(shù)第二個符號d(6) (q1 , B ,e, B)=( q2 , e, R) BBabcde 在下個空白處放最后符號在下個空白處放最后符號e, 移動完成。移動完成。2021-11-1628多道技術多道技術為了能保存和處理更復雜的數(shù)據(jù),可以把為了能保存和處理更復雜的數(shù)據(jù),可以把TM的帶的帶水平地劃分為若干道,在各道上可以存放不同的符水平地劃分為若干道,在各道上可以存放不同的符號。這并沒有改變號。這并沒有改變TM的基本模型,只是將帶符號的基本模型,只是將帶符號看成向量的集合,其中每個符號為一個看成向量的集合,其中每個符號為一個k維向量(維向量(k元組),這里元組),這里k為在帶上劃分的道
35、數(shù)。為在帶上劃分的道數(shù)。 2021-11-1629例例 構造一個構造一個TM M,接受,接受L= wcw wa,b+ 。為了解決這個問題,使用具有兩道的帶,和將符號吸收到狀為了解決這個問題,使用具有兩道的帶,和將符號吸收到狀態(tài)上這兩項技術。對態(tài)上這兩項技術。對M的設計思想是:輸入串放在的設計思想是:輸入串放在M的上道,的上道,故故=d,B d = a,b,c。例如,開始時帶上為以下形。例如,開始時帶上為以下形式:式:M從初始狀態(tài)從初始狀態(tài)q0出發(fā),見到輸入串的第一個符號出發(fā),見到輸入串的第一個符號a,將它吸,將它吸收到狀態(tài)上構成二元組收到狀態(tài)上構成二元組q1,a,并將,并將a的下面(第二道)空
36、的下面(第二道)空白符換成打鉤符號白符換成打鉤符號“”,表示看過。,表示看過。然后復合狀態(tài)然后復合狀態(tài)q1,a帶著這個帶著這個a越過中間的越過中間的c查看對應位置,查看對應位置,若對應位置也是若對應位置也是a,則在它的下面也打個鉤,表示通過。,則在它的下面也打個鉤,表示通過。然后再到左邊看第二個符號,依此類推。然后再到左邊看第二個符號,依此類推。2021-11-1630待到所有的符號(待到所有的符號(c除外)下面都打上鉤,說明輸入串在除外)下面都打上鉤,說明輸入串在L中,中,從而接受。從而接受。M在工作過程中(前面的在工作過程中(前面的b已查完,正在找已查完,正在找c后面后面的的b)帶上的情況
37、如下圖所示:)帶上的情況如下圖所示:根據(jù)以上思路,根據(jù)以上思路,M的具體構造為:的具體構造為:Q=q0 ,q8 ,q9qi ,d i=1,2,3,7;d=a,b,B。=d,B d=a,b,c。=d,X d=a,b,c;X=,BB。q0為初始狀態(tài),為初始狀態(tài),q8為終結狀態(tài)為終結狀態(tài),q9為拒絕狀為拒絕狀態(tài)。態(tài)。2021-11-1631函數(shù)定義為:函數(shù)定義為:(1)(q0 ,a,B)=(q1,a, a, R) abbacabbaB BBBBBBBBB(2)(q0 ,b,B)=(q1,b, b, R)(3)(q1,a ,b, B)=(q1,a, b, B, R ) abbacabbaB BBBBB
38、BBBB(4)(q1,a ,a, B)=(q1,a, a, B, R ) abbacabbaB BBBBBBBBB(5)(q1,b ,a, B)=(q1,b, a, B, R )(6)(q1,b ,b, B)=(q1,b, b, B, R )2021-11-1632(7)(q1,a ,c,B)=(q2,a, c,B, R) 找到中心找到中心c,狀態(tài)改為,狀態(tài)改為q2,a abbacabbaB BBBBBBBBB(8)(q1,b ,c,B)=(q2,b, c,B, R)(9)(q2,a ,a,B)=(q3,B, a, L) 找到找到c右邊的對應符號,打鉤表示查右邊的對應符號,打鉤表示查完,狀態(tài)改
39、為完,狀態(tài)改為q3,B,向左查下一符號。,向左查下一符號。 abbacabbaB BBBBBBBB(9)(q2,b ,b,B)=(q3,B, b, L)2021-11-1633(10)(q3,B ,c,B)=(q4,B, c,B, L) 越過中心越過中心c后,狀態(tài)改為后,狀態(tài)改為q4,B。 abbacabbaB BBBBBBBB(11)(q4,B ,d,B)=(q5,B, d,B, L) 遇尚未標記的符號,狀態(tài)改為遇尚未標記的符號,狀態(tài)改為q5,B,繼續(xù)向左。,繼續(xù)向左。 abbacabbaB BBBBBBBB(12)(q5,B ,d,B)=(q5,B, d,B, L) 在在q5,B的控制下,
40、繼續(xù)向左。的控制下,繼續(xù)向左。 abbacabbaB BBBBBBBB(13)(q5,B ,d,)=(q0, d, R) 轉(zhuǎn)(轉(zhuǎn)(1),繼續(xù)檢查下一對符號。),繼續(xù)檢查下一對符號。 abbacabbaB BBBBBBBBd=a,b2021-11-1634 a bbacabbaB BBBBBBB(14)(q2,d ,e,)=(q2,d, e, R) 在中心在中心c后,繼續(xù)找右邊的對應符后,繼續(xù)找右邊的對應符號號d,B。 a bbacabbaB BBBBBBB a bbaca bbaB BBB BBB(15)(q3,B ,d,)=(q3,B, d, L) 由(由(4),在),在q3,B的控制下,的
41、控制下,繼續(xù)向左找下一個尚未查看的符號。繼續(xù)向左找下一個尚未查看的符號。 a bbaca bbaB BBBBBBe=a,b2021-11-1635 a bbac a bbaB BBBBBB a b b a c a b b a B (16)(q4,B ,d,)=(q6,B, d, R) c左邊的符號都檢查完。左邊的符號都檢查完。(17)(q6,B ,c,B)=(q7,B, c,B, R) 又改變一次狀態(tài),又改變一次狀態(tài),由由q7,B控制向右找空白??刂葡蛴艺铱瞻住?18)(q7,B ,d,)=( q7,B, d, R)(19)(q7,B ,B)=(q8,B,0) 左、右匹配成功,到達終結狀態(tài)。左
42、、右匹配成功,到達終結狀態(tài)。在這個例子中,非法輸入情況比較多,這里沒有列出。在這個例子中,非法輸入情況比較多,這里沒有列出。2021-11-1636子程序技術子程序技術子程序技術是將圖靈機中重復使用的某一部分劃分出來,做子程序技術是將圖靈機中重復使用的某一部分劃分出來,做為一個為一個“子程序子程序”。它有一個指定的開始狀態(tài)(不是整個圖靈機的初始狀態(tài)),它有一個指定的開始狀態(tài)(不是整個圖靈機的初始狀態(tài)),一個指定的返回狀態(tài)。一個指定的返回狀態(tài)。當當“主程序主程序”到達到達“子程序子程序”的開始狀態(tài)時,就相當于調(diào)用的開始狀態(tài)時,就相當于調(diào)用這個子程序;當子程序到達它的返回狀態(tài)時,就相當于返回這個子
43、程序;當子程序到達它的返回狀態(tài)時,就相當于返回到主程序,主程序可以從這個狀態(tài)開始再做其它工作。到主程序,主程序可以從這個狀態(tài)開始再做其它工作。子程序中除開始狀態(tài)和返回狀態(tài)與主程序公用外,其它在運子程序中除開始狀態(tài)和返回狀態(tài)與主程序公用外,其它在運行中所使用的狀態(tài)都是私有的,這些狀態(tài)在主程序或其它子行中所使用的狀態(tài)都是私有的,這些狀態(tài)在主程序或其它子程序中都不能再用。程序中都不能再用。2021-11-1637例例 構造一個構造一個TM M,實現(xiàn)整數(shù)的乘法運算。,實現(xiàn)整數(shù)的乘法運算。用圖靈機實現(xiàn)整數(shù)乘法用圖靈機實現(xiàn)整數(shù)乘法m*n就是當帶上放就是當帶上放0m10n之后,經(jīng)過之后,經(jīng)過TM M的的一系
44、列操作,最后帶上符號變?yōu)橐幌盗胁僮?,最后帶上符號變?yōu)?m n 。TM M處理這個問題是用最笨的方法,其基本思想是:當從處理這個問題是用最笨的方法,其基本思想是:當從1的左邊的左邊消去一個消去一個0后,在帶的后邊復制后,在帶的后邊復制n個個0(應與原來的應與原來的0n分隔開分隔開);當;當1左左邊的邊的m個個0全部消完之后,后面自然得到乘積全部消完之后,后面自然得到乘積0m n ,然后再消去帶上,然后再消去帶上多余的符號就行了。多余的符號就行了。這可以看出,復制這可以看出,復制n個個0的工作是重復性的,而且是相對獨立的,因的工作是重復性的,而且是相對獨立的,因此將這部分工作分離出來,編成子程序的
45、形式比較合適。此將這部分工作分離出來,編成子程序的形式比較合適。2021-11-1638復制子程序復制子程序 0001B 0001000B (1)(q1 ,0)=(q2 ,2 ,R) 2 將將0改寫為改寫為2,以做標記。以做標記。(2)(q2 ,0)=(q2 ,0 ,R) 00 向右邊找空白向右邊找空白B。(3)(q2 ,1)=(q2 ,1 ,R) 1(4)(q2 ,B)=(q3 ,0 ,L) 0 找到空白后放找到空白后放0,返回。,返回。(5)(q3 ,0)=(q3 ,0 ,L)(6)(q3 ,1)=(q3 ,1 ,L)(7)(q3 ,2)=(q1 ,2 ,R) 20010B 重復重復(1)
46、,復制下一個,復制下一個0。 220100B 2221000B (8)(q1 ,1)=(q4 ,1 ,L) 3個個0都已復制完。都已復制完。(9)(q4 ,2)=(q4 ,0 ,L) 0001000 將將2恢復為恢復為0。(10)(q4 ,1)=(q5 ,1 ,R) 子程序出口,讀子程序出口,讀/寫頭仍在入口時的位置。寫頭仍在入口時的位置。2021-11-1639主程序主程序首先應為反復調(diào)用子程序做好準備,先將帶上的符號由首先應為反復調(diào)用子程序做好準備,先將帶上的符號由0m10nB變?yōu)樽優(yōu)锽0m-110n1B ,并將讀,并將讀/寫頭移至寫頭移至n個個0的第一個的第一個0處,狀態(tài)處,狀態(tài)變?yōu)樽優(yōu)?/p>
47、q1 ,就可以調(diào)用子程序了。實現(xiàn)上述工作序要下面一組,就可以調(diào)用子程序了。實現(xiàn)上述工作序要下面一組函數(shù):函數(shù):(1) (q0 ,0)=(q6 ,B, R) 先消去第一個先消去第一個0,準備復制一次,準備復制一次n個個0。(2) (q6 ,0)=(q6 ,0, R) (3) (q6 ,1)=(q7 ,1, R)(4) (q7 ,0)=(q7 ,0, R)(5) (q7 ,B)=(q8 ,1, L) 在最后放個在最后放個1返回。返回。此時帶上為此時帶上為B0m-110n1B (6) (q8 ,0)=(q8 ,0, L)(7) (q8 ,1)=(q1 ,1, R) 讀讀/寫頭移至指定位置,調(diào)用子程序
48、寫頭移至指定位置,調(diào)用子程序(8) (q7 ,1)=(q8 ,1, L) 因為后邊的因為后邊的1只放一次,以后只放一次,以后q7再遇再遇1時時直接變?yōu)橹苯幼優(yōu)閝8 2021-11-1640當子程序返回主程序時,狀態(tài)為當子程序返回主程序時,狀態(tài)為q5 ,主程序應控制從左邊再,主程序應控制從左邊再消去一個消去一個0,才能再進入子程序,因此還需要下面的一組,才能再進入子程序,因此還需要下面的一組函函數(shù):數(shù):(9) (q5 ,0)=(q9 ,0, L) 一直向左找尚未消去的第一個一直向左找尚未消去的第一個0。(10)(q9 ,1)=(q10 ,1, L)(11)(q10 ,0)=(q11 ,0, L)
49、 (12)(q11 ,0)=(q11 ,0, L) (13)(q11 ,B)=(q0,B, R) 尚有未消去的尚有未消去的0,大循環(huán)重新開始。,大循環(huán)重新開始。(14)(q10 ,B)=(q12 ,B, R) m個個0已消完,大循環(huán)結束已消完,大循環(huán)結束。2021-11-1641當狀態(tài)為當狀態(tài)為q12時,帶上符號為時,帶上符號為 Bm 10n 10m nB ,為了,為了得出結果,還需要消去得出結果,還需要消去10n1,這由以下幾步來實現(xiàn):,這由以下幾步來實現(xiàn):(15)(q12 ,1)=(q13 ,B, R) 消去第一個消去第一個1。(16)(q13 ,0)=(q13 ,B, R) 消去消去n個
50、個0。(17)(q13 ,1)=(t ,B, 0) 消去最后一個消去最后一個1,計算結束。,計算結束。到此為止,帶上呈到此為止,帶上呈 Bm+n+2 0m nB 形式,作為形式,作為m*n的的結果表示,已經(jīng)足夠了。若求美觀,可以設法將結結果表示,已經(jīng)足夠了。若求美觀,可以設法將結果左移,使其在帶上呈果左移,使其在帶上呈0m nB 形式。形式。2021-11-1642圖靈機的變型圖靈機的變型雙向無限帶圖靈機雙向無限帶圖靈機多帶圖靈機多帶圖靈機非確定的圖靈機非確定的圖靈機雙棧機雙棧機做為枚舉器的圖靈機做為枚舉器的圖靈機2021-11-1643雙向無限帶雙向無限帶圖靈機圖靈機對圖靈機基本模型的第一個擴充是將帶的單向無限延伸對圖靈機基本模型的第一個擴充是將帶的單向無限延伸擴大到雙向無限延伸,即不論輸入串放在帶的什么位置,擴大到雙向無限延伸,即不論輸入串放在帶的什么位置,圖靈機的讀圖靈機的讀/寫頭都可以隨意向左、右移動。其余的記號寫頭都可以隨意向左、右移動。其余的記號和功能都和單向無限帶的圖靈機相同。和功能都和單向無限帶的圖靈機相同。圖靈機的這一擴充并沒有增加圖靈機的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 集體備課發(fā)言稿
- 礦井瓦斯治理工程施工方案
- 杭州鋁合金伸縮架施工方案
- 2025年體外震波碎石機合作協(xié)議書
- 領導任職表態(tài)發(fā)言稿
- 項目發(fā)言稿范文
- 銷售領導發(fā)言稿
- 先進個人發(fā)言稿范文
- 行為習慣塑造未來
- 牧業(yè)市場月報
- 2023年古文中的化學知識歸納及相關練習題(含答案)
- 《基礎寫作》試卷及答案
- 產(chǎn)品標準化大綱
- 西師版小學數(shù)學四年級下冊教案
- 醫(yī)院軟式內(nèi)鏡清洗消毒技術規(guī)范
- 國有企業(yè)“三定”工作方案-國有企業(yè)三定方案
- 清華大學2024年強基計劃數(shù)學試題(解析)
- 按摩技師簽訂勞動合同注意事項
- 大學生新時代勞動教育教程全套教學課件
- TD/T 1054-2018 土地整治術語(正式版)
- JT-GQB-015-1998公路橋涵標準鋼筋混凝土圓管涵洞
評論
0/150
提交評論