图灵机1:简介
圖靈機(TM)的特點:? ? ? ? ? ? ? ? ? ? ? ? ?
1:在帶子上既能讀又能寫
2:讀寫頭既能左移又能右移
3:帶子是無限長的(可以無限存儲)
4:在進入接受或者拒絕時候便會停機(TM有一個內部狀態存儲器)
圖靈機的形式定義:
圖靈機是一個七元組:(),其中是有窮集合。
Q:是狀態集,是Q三個特別的狀態,即:一個初始狀態,兩個停機狀態。
要求:接收狀態不等于初始狀態。
兩個字母表:
是輸入字母表,一般由確定的語言給出。不能包含空格B.
是帶字母表,由于TM的寫功能,可以引入更多的字母,所以:
轉移函數:
:即:TM在讀入帶字母表當前符號后,確定狀態是否改變,并確定讀寫頭的左移或右移。(這里討論的圖靈機不包含讀寫頭不動的情況)
圖靈機的格局:
格局用來描述某一瞬時圖靈機的所有信息狀態。
形式:串U狀態Q串V(簡記:UQV),串u+串v構成了帶上字母,q指向當前v的第一個字母。
格局之間的產生:
如果:,則說:格局1 uabv產生 格局2 uacv
,則說:格局1 uabv產生 格局2 uacv
特別地,在左端點時,狀態位于最前面,不允許左移了;在右端點時,假設沒有符號的為空格,則:?ua等價于?uaB.
(用格局來定義圖靈機可接受的語言)
一個例子:
一個圖靈機可識別所有由0組成,長度為2的方冪的字符串
即:TM可識別語言A=
解:M2="對于輸入的字符串w:
1:? ?從左往右掃描帶子,隔一個消去一個0(相當于對0的長度減半操作)。
2:如果第一步之后,帶子上剩余唯一1個0則接受。
3:? 如果在第一步之后剩余不止一個0,當0的個數為奇數個,則拒絕。(2k+1不可能是2的冪次)
4:讓讀寫頭回到帶子最左端(要有標記帶頭最左端的操作)。
5:轉到第一步
"結束
分步畫出狀態轉移圖:
合在一起就是:
下面畫出對于字符串“0000”的格局:
例子2:讓圖靈機識別下列語言:
分析:
這里每消去一個a,就讓c去掉b個,也就是將b與c一一消去,然后再讀寫頭返回a是,恢復b.
M3="對于輸入字符串w:
1:從左往右掃描字符串,確認輸入形式為:a_b_c_.如不然拒絕。
2:讓讀寫頭回到左端點。(故讀第一個a后可標記為#)
(1,2步保證了先出現a,然后讀b后不能出現a,讀c后不能出現a,b)
3:消去一個a,向右掃描直到b出現,然后讀寫頭在b與c來回移動,成對地消去b和c,直至把所有的b消去。
4:如果還有a沒消去,則在讀寫頭移動a前,恢復所有已消去的b,重復3,當所有的a都消去后,檢查是否有c,c都被消去了則接受,反之,拒絕。
"
最后區分:圖靈可判斷和圖靈可識別
一個TM,最后只有三種狀態,兩種停機狀態,接受或拒絕;一種循環狀態,這里是永不停機的意思。
即:
兩者都能接受語言,但對于不能接受的語言,判定一定會拒絕,判定(yes or no)
而識別的話,一般要么停機要么永不停機
圖靈可識別=遞歸可枚舉(數學角度)=計算可枚舉=半可判定
圖靈可判定=遞歸=可解=可計算=可判定
總結
- 上一篇: 8 个你应该了解的环保开源项目
- 下一篇: HDMI协议