信息時代所依賴的第二個核心基礎是我之前提到過的:計算的通用性。1936年,艾倫·圖靈提出“圖靈機”(見圖8-2),但它並非真實存在,僅僅是一種思想實驗。他假設計算機包含無限長的記憶磁帶,每個平方上有一個1或0。輸入呈現在記憶磁帶上,機器每次可以讀取一格。這臺機器還包含一個規則表(核心是一個記憶程序),是由數字編碼的各種狀態組成的。如果被讀出的平方上的數字爲0,就指定一個行動,如果爲1則指定另一個行動。可能的行動包括在記憶磁帶上寫0或1,將記憶磁帶向右或向左移動一格,或者停止。每條狀態都會指定機器應該讀取的下一條狀態的數字。

圖靈機的輸入呈現在記憶磁帶上。程序不斷運行,當機器停止工作時,它已完成了算法,並且將過程輸出在記憶磁帶上。注意,雖然磁帶的長度在理論上是無限的,但實際的程序如果不進入無限循環的話只會用掉有限長的磁帶,所以假如我們只去看那部分有限的磁帶,就可以解決一類有用的問題。

圖8-2無限的記憶磁帶

注:圖靈機的框圖,帶一個能讀寫磁帶的前端,還有一個由狀態轉換組成的內置程序。

如果你認爲圖靈機聽上去很簡單,那是因爲這正是發明者的目的所在,圖靈希望他的機器儘可能簡單。圖靈和他之前的老師阿隆佐·邱奇教授(Alonzo Church)接着開發了邱奇-圖靈論,稱如果一個問題無法利用圖靈機解決,那根據自然定律,任何其他機器也解決不了。儘管圖靈機只有少數命令,並且每次只能處理1比特,但它能完成任何其他計算機都能完成的計算。換一種說法就是“圖靈完全”(即擁有與圖靈機同等能力)的機器能夠完成任何算法,即任何我們能定義的程序。

相關文章