歡迎關(guān)注我的專欄( つ??ω??)つ【人工智能通識】
圖靈機Turing machine是英國科學(xué)家阿蘭·圖靈Alan Turing在1937年構(gòu)想的一個計算機原型,圖靈機被計算機屆公認(rèn)為現(xiàn)代計算機理論的開端朗涩,可以說忽孽,沒有這個圖靈機,就沒有現(xiàn)代計算機的誕生谢床,因此兄一,阿蘭圖靈也被稱之為計算機科學(xué)之父。
以上是教科書式的內(nèi)容识腿,但到底圖靈機是怎么個東西出革,原理是怎么樣的,為什么這么有意義渡讼,卻很少有人真的說清骂束。
目的起源
圖靈首先是個數(shù)學(xué)家,他有一個超前的想法成箫,那就是建造一臺機器展箱,用來模擬人們用紙和筆進行運算的過程,他仔細(xì)思考之后認(rèn)為蹬昌,人的計算過程就是兩種動作的組合:
- 在紙上寫下或者擦掉混驰、修改某個符號。數(shù)字皂贩、字符等等都可以看做是符號栖榨,最簡單情況下肯定就是數(shù)字0和1。
- 在一個地方寫完擦完了明刷,就挪到紙上的另外一個地方繼續(xù)寫啊擦啊婴栽。
每次除了寫擦和換位置,另一個關(guān)鍵因素就是人的思考和決定辈末,而這個思考又是依賴兩個因素進行:
- 紙上當(dāng)前位置的符號愚争。
- 他頭腦里的狀態(tài),就是那一瞬腦子里在想著什么本冲。
基本模型
開始的配圖看起來有些神秘准脂,看上去也很復(fù)雜劫扒,但那只是藝術(shù)家的幻想罷了檬洞,真實的圖靈機并不復(fù)雜。
為了模擬人做運算的過程沟饥,圖靈構(gòu)想的機器包含以下幾個部分:
- 一個很長很長的紙條TAPE添怔,上面被分成一個接一個的格子湾戳,每個格子內(nèi)可能是空的,也可能是1或者是0广料。
- 一個能夠左右移動的讀寫頭HEAD砾脑,就像一個指針可以在紙條的格子上來回移動,而且能夠讀懂格子上的數(shù)字艾杏,也能把數(shù)字擦了再改寫成別的數(shù)字韧衣。
- 一個狀態(tài)寄存器,你可以把它當(dāng)做是長在HEAD上的一個小屏幕购桑,屏幕上能夠顯示不同的字符表示人大腦里當(dāng)前記住的一個狀態(tài)數(shù)字State畅铭。
- 一套控制規(guī)則表格TABLE,它根據(jù)寄存器當(dāng)前顯示的狀態(tài)字符和和當(dāng)前紙條位置的數(shù)字來確定讀寫頭下一步該向左還是向右還是不動停止勃蜘,以及下一步該把寄存器修改成什么新的數(shù)字硕噩,大概就是這么三步:
- 在紙條當(dāng)前格子擦除或?qū)懭胄碌臄?shù)字。
- 移動HEAD缭贡,向左L或向右R或者不動N炉擅。
- 修改寄存器的狀態(tài)數(shù)字。
最簡單的例子
下面是一個用于翻轉(zhuǎn)0和1的圖靈機程序阳惹。
只要我們把指針放在紙條最右側(cè)的非空位置上谍失,過一會兒運行完畢之后,整個紙條上的連續(xù)的0和1就會被翻轉(zhuǎn)過來穆端,最終指針也會停留在最左側(cè)位置上袱贮。
從這里我們可以粗略把它對應(yīng)到我們的計算機設(shè)備,底下的規(guī)則表相當(dāng)于我們編寫的程序体啰,紙條上的0和1相當(dāng)于我們硬盤上存儲的數(shù)據(jù)攒巍,而指針則相當(dāng)于我們的CPU和內(nèi)存,它根據(jù)程序代碼設(shè)定的規(guī)則不斷地處理數(shù)據(jù)荒勇,并不停地在內(nèi)存中保存和更新臨時狀態(tài)(臨時變量)柒莉。
歡迎關(guān)注我的專欄( つ??ω??)つ【人工智能通識】
每個人的智能新時代
如果您發(fā)現(xiàn)文章錯誤,請不吝留言指正沽翔;
如果您覺得有用兢孝,請點喜歡;
如果您覺得很有用仅偎,歡迎轉(zhuǎn)載~
END