人工智慧通識-科普-圖靈機1
歡迎關注我的專欄( つ•̀ω•́)つ【人工智慧通識】

圖靈機Turing machine是英國科學家阿蘭·圖靈Alan Turing在1937年構想的一個計算機原型,圖靈機被計算機屆公認為現代計算機理論的開端,可以說,沒有這個圖靈機,就沒有現代計算機的誕生,因此,阿蘭圖靈也被稱之為電腦科學之父。
以上是教科書式的內容,但到底圖靈機是怎麼個東西,原理是怎麼樣的,為什麼這麼有意義,卻很少有人真的說清。
目的起源
圖靈首先是個數學家,他有一個超前的想法,那就是建造一臺機器,用來模擬人們用紙和筆進行運算的過程,他仔細思考之後認為,人的計算過程就是兩種動作的組合:
- 在紙上寫下或者擦掉、修改某個符號。數字、字元等等都可以看做是符號,最簡單情況下肯定就是數字0和1。
- 在一個地方寫完擦完了,就挪到紙上的另外一個地方繼續寫啊擦啊。
每次除了寫擦和換位置,另一個關鍵因素就是人的思考和決定,而這個思考又是依賴兩個因素進行:
- 紙上當前位置的符號。
- 他頭腦裡的狀態,就是那一瞬腦子裡在想著什麼。
基本模型
開始的配圖看起來有些神祕,看上去也很複雜,但那只是藝術家的幻想罷了,真實的圖靈機並不複雜。
為了模擬人做運算的過程,圖靈構想的機器包含以下幾個部分:

- 一個很長很長的紙條TAPE,上面被分成一個接一個的格子,每個格子內可能是空的,也可能是1或者是0。
- 一個能夠左右移動的讀寫頭HEAD,就像一個指標可以在紙條的格子上來回移動,而且能夠讀懂格子上的數字,也能把數字擦了再改寫成別的數字。
- 一個狀態暫存器,你可以把它當做是長在HEAD上的一個小螢幕,螢幕上能夠顯示不同的字元表示人大腦裡當前記住的一個狀態數字State。
- 一套控制規則表格TABLE,它根據暫存器當前顯示的狀態字元和和當前紙條位置的數字來確定讀寫頭下一步該向左還是向右還是不動停止,以及下一步該把暫存器修改成什麼新的數字,大概就是這麼三步:
- 在紙條當前格子擦除或寫入新的數字。
- 移動HEAD,向左L或向右R或者不動N。
- 修改暫存器的狀態數字。
最簡單的例子
下面是一個用於翻轉0和1的圖靈機程式。

只要我們把指標放在紙條最右側的非空位置上,過一會兒執行完畢之後,整個紙條上的連續的0和1就會被翻轉過來,最終指標也會停留在最左側位置上。
從這裡我們可以粗略把它對應到我們的計算機裝置,底下的規則表相當於我們編寫的程式,紙條上的0和1相當於我們硬碟上儲存的資料,而指標則相當於我們的CPU和記憶體,它根據程式程式碼設定的規則不斷地處理資料,並不停地在記憶體中儲存和更新臨時狀態(臨時變數)。
歡迎關注我的專欄( つ•̀ω•́)つ【人工智慧通識】
每個人的智慧新時代
如果您發現文章錯誤,請不吝留言指正;
如果您覺得有用,請點喜歡;
如果您覺得很有用,歡迎轉載~
END