
ALan Turing(阿蘭.圖靈)在1937年首次提出了一個通用計算機設備的設想。他設想所有的計算都可能在一種特殊的機器上執行,這就是現在所說的圖靈機.儘管圖靈對這樣一種機器進行了數學上的描述,但他還是更有興趣關注計算的哲學定義,而不是建造一臺真實的機器,他將該模型建立在人們計算過程的行為上,並將這些行為抽象到用於計算的機器的模型中,這才真正改變了世界。
所謂的圖靈機就是指一個抽象的機器,它有一條無限長的紙帶,紙帶分成了一個一個的小方格,每個方格有不同的顏色。有一個機器頭在紙帶上移來移去。機器頭有一組內部狀態,還有一些固定的程序。在每個時刻,機器頭都要從當前紙帶上讀入一個方格信息,然後結合自己的內部狀態查找程序表,根據程序輸出信息到紙帶方格上,並轉換自己的內部狀態,然後進行移動。
圖靈機的結構包括以下幾個部分
1 ,一條無限長的紙帶(tape),紙帶被分成一個個相鄰的格子(square)每個格子都可以寫上至多一個字符(symbol)。
2 ,一個字符表(alphabet),即字符的集合,它包含紙帶上可能出現的所有字符。其中包含一個特殊的空白字符(blank),意思是此格子沒有任何字符。
3 ,一個讀寫頭(head),可理解為指向其中一個格子的指針。 它可以讀取/擦除/寫入當前格子的內容,此外也可以每次向左/右移動一個格子。
4 ,一個狀態寄存器(state register),它追蹤著每一步運算過程中,整個機器所處的狀態(運行/終止)。當這個狀態從運行變為終止,則運算結束,機器停機並交回控制權。如果你了解有限狀態機,它便對應著有限狀態機裡的狀態。
5,一個有限的指令集(instructions table),它記錄著讀寫頭在特定情況下應該執行的行為。可以想像讀寫頭隨身有一本操作指南,裡面記錄著很多條類似於「當你身處編號53的格子並看到其內容為0時,擦除,改寫為1,並向右移一格。此外,令下一狀態為運行。」 這樣的命令。其實某種意義上,這個指令集就對應著程式設計師所寫下的程序了。
詳細工作原理
1,準備
存儲帶上符號初始化
控制器設置好自身當前狀態
控制器置於起始位置
準備好工作程序
2,反覆執行以下工作直到停機
讀寫頭讀出存儲帶上當前方格中的字母/數字
根據自身當前狀態和所讀到的字符,找到相應的程序語句
根據相應的程序語句,做三個動作
在當前存儲帶方格上寫入一個相應的字母/數字
變更自身狀態至新狀態
讀寫頭向左或右移一步
3,圖靈機停機意味著什麼呢?
停機表示計算完畢,表示當前存儲帶上保留的,是結算結果也就是說;停機意味著得出計算結果 對於一個問題的輸入A 問A是否推證出B?A能否推證出B?如果能找到一個圖靈機 得出對應的符號序列B,那麼從A到B就是可計算的,否則該問題不可計算。
圖靈機為什麼受到重視?因為簡單 強大 可實現。
詳細的請提問......