圖靈機與計算理論

超人汪小建發表於2019-03-02

前言

圖靈機和計算理論是人工智慧乃至整個電腦科學的理論基礎,邱奇-圖靈論題告訴我們一切可計算過程都可以用圖靈機模擬。

圖靈機

圖靈機,又稱圖靈計算、圖靈計算機,是由數學家艾倫·麥席森·圖靈(1912~1954)提出的一種抽象計算模型,即將人們使用紙筆進行數學運算的過程進行抽象,由一個虛擬的機器替代人們進行數學運算。

這裡寫圖片描述

圖靈機指一個抽象的機器,它有一條無限長的紙帶,紙帶分成了一個一個的小方格,每個方格有不同的顏色。有一個機器頭在紙帶上移來移去。機器頭有一組內部狀態,還有一些固定的程式。在每個時刻,機器頭都要從當前紙帶上讀入一個方格資訊,然後結合自己的內部狀態查詢程式表,根據程式輸出資訊到紙帶方格上,並轉換自己的內部狀態,然後進行移動。

每一個會決策、會思考的人都可以被抽象地看成一臺圖靈機。該模型主要有四要素:輸入集合、輸出集合、內部狀態和固定的程式。如果把人進行抽象,那麼輸入集合就是所處環境中所看到、聽到、聞到、感覺到的一切;輸出集合就是人的每一言每一行,還有表情動作;內部狀態集合則可以把神經細胞的狀態組合看成一個內部狀態,所有可能的狀態集合將是天文數字。

人有記憶,圖靈機有沒有?有,它有了內部狀態就可以看成有記憶,內部狀態會記錄所經歷過的世界。

很多現象似乎都能被圖靈機包括,如人了IDE情緒和情感,可以看成某種內部狀態,心情好的情緒下,輸入和輸出是一套規則,而心情不好的情況下,輸入輸出又是另外一種規則。

無論是神經元傳遞資訊、變化狀態的規律都是固定的,可以被程式化。那麼頭腦作為神經元的整體,它的運作也比如遵循固定的規則,即程式。正如圖靈相信的,人腦也不會超越圖靈機模型。

關於圖靈機的學習問題,看似圖靈機不包括學習,因為學習就意味著程式的改變,而圖靈機不能在執行過程中改變自己的程式。很有可能一個圖靈機的規則沒有改變,只不過啟用了它的某些內部狀態,因為發生了本質的變化,儘管給它相同的輸入,它卻有完全不同的輸出,這樣看起來似乎它會學習了,雖然圖靈機的程式一點都沒變。

通用圖靈機存在嗎

是否存在一臺萬能圖靈機能模擬其他所有圖靈機?這臺萬能圖靈機就是通用圖靈機,把輸入x和圖靈機m資訊都一起輸入到通用圖靈機,就能計算出一個結果o,這樣便可以模擬任何一臺圖靈機。

圖靈機m資訊其實就是編碼,通過編碼可以將事物進行編號,將所有圖靈機進行編碼後每個圖靈機就有了描述資訊,如果某臺圖靈機的編碼為m,輸入為x,則將兩者合併一起輸入到萬能圖靈機中,計算得到結果。

停機問題

儘管圖靈機很強大,但它也有解決不了的問題,比如停機問題。通俗地講,停機問題就是判斷任意一個程式是否能在有限的時間之內結束執行的問題。該問題等價於如下的判定問題:是否存在一個程式P,對於任意輸入的程式w,能夠判斷w會在有限時間內結束或者死迴圈。

1936年圖靈已經證明了這樣的程式是不存在的。

從停機問題中可以看到的確存在人類能構造出來而圖靈機解決不了的問題,也就是計算機不能解決的問題,這類問題是不可計算的。停機問題揭示了宇宙中的某種共性,所有計算機解決不了的問題本質上講都和圖靈停機問題是計算等價的。相似問題還包括是否存在一個程式能檢測所有程式會不會出錯。

停機問題也喝複雜系統的不可預測性有關,存不存在一個程式接收某個複雜系統的規則,然後輸出結果?答案是不可能。所以得到一個結論是我們要想弄清楚某個複雜系統執行結果,唯一的辦法就是人為去程式設計實際執行後才能得到結果。這也說明了某些事機器做不了而人類能實現。

超越圖靈計算理論

一個固定的程式不可能超越圖靈計算理論的限制,但如果一個程式能在每時每刻都變化使之不再是原來的自己,那麼就可以超越圖靈計算理論。就好比人類每時每刻都經過細胞更新使得不再是原來的自己,所以人類超越圖靈計算理論。這也就是說,人們沒辦法通過編寫一個固定的程式來實現大腦功能。要實現真正的人工智慧,就需要一個能不斷改變自己的程式,而且這種改變也不是一個固定的程式。

————-推薦閱讀————

我的2017文章彙總——機器學習篇

我的2017文章彙總——Java及中介軟體

我的2017文章彙總——深度學習篇

我的2017文章彙總——JDK原始碼篇

我的2017文章彙總——自然語言處理篇

我的2017文章彙總——Java併發篇


跟我交流,向我提問:

這裡寫圖片描述

公眾號的選單已分為“讀書總結”、“分散式”、“機器學習”、“深度學習”、“NLP”、“Java深度”、“Java併發核心”、“JDK原始碼”、“Tomcat核心”等,可能有一款適合你的胃口。

為什麼寫《Tomcat核心設計剖析》

歡迎關注:

這裡寫圖片描述

相關文章