❶ BitcoinSV從入門到精通:12.有限狀態機、無限狀態機與圖靈完備
在深入理解智能合約之前,掌握一些計算機領域的基礎知識至關重要。本章節將為您介紹圖靈機、有限狀態機、無限狀態機與圖靈完備性,以及圖靈停機問題等概念。
圖靈機,一種抽象計算模型,由計算機科學之父圖靈提出。它通過一條無限長的紙帶進行信息處理,紙帶分為方格,每個方格代表不同的顏色。機器頭在紙帶上移動,並根據當前狀態和紙帶上的顏色執行預設程序,輸出結果並改變狀態。現代計算機系統的結構與此類似,紙帶對應硬碟和內存,方格顏色為指令,機器頭為CPU,狀態顯示窗口為顯示器。
有限狀態機是對現實世界的抽象表達,如電燈的開關狀態。電燈狀態有限,無論操作多少次,始終只有兩種狀態:點亮與熄滅。現實世界中,類似有限狀態機的例子比比皆是,比如四季更替、網購商品狀態變化等。編程語言中,狀態機實現邏輯簡化了程序狀態管理。
無限狀態機理論上存在,要求計算機狀態無限,以實現無限運算,如計算π的無限小數位。然而,由於指令和能源的限制,實際中不存在無限狀態機。圖靈完備性表示一種語言或工具能夠模擬圖靈機的所有操作,理論上可計算任何問題。
圖靈停機問題涉及判斷程序是否能在有限時間內停止。如果設計不當,可能會出現死循環,導致資源消耗無盡。在區塊鏈系統設計中,應避免此類問題,確保任何計算過程在合理資源消耗內完成。
本章節內容屬於基礎知識科普,旨在為智能合約學習打下堅實基礎。如果您希望深入探索這些概念,將會發現更多有趣和復雜的知識。接下來,我們將討論以太坊(ETH)和BitcoinSV如何解決圖靈停機問題,敬請期待。
❷ 圖靈機:計算機科學的奠基之作
圖靈機,作為計算機科學的奠基之作,由英國數學家阿蘭·圖靈在1936年提出。彼時,計算機科學尚在萌芽階段,人們依賴機械計算器進行有限功能的計算。圖靈機概念的初衷是為了解決「判定問題」,雖然未能直接解決,但其模型為計算機科學奠定了基礎。
圖靈機由無限長的紙帶、讀寫頭、狀態寄存器等元素構成,模擬了人腦進行計算的過程,開啟了全新計算方式。盡管圖靈機看起來抽象神秘,卻是現代計算機的基石。從日常使用的電腦、平板、手機到最新的超級計算機,乃至區塊鏈技術,其運行原理皆與圖靈機模型相聯系。
圖靈機概念包含可計算與不可計算問題的區分。可計算問題存在演算法,能對任何輸入參數得出答案,如數學加法或簡單比較。反之,不可計算問題如「停機問題」則無法預先判斷程序是否停止,屬於復雜邏輯范疇。而「晚上吃什麼」這類問題不屬於計算范疇,缺乏固定演算法解決。
圖靈機結構簡潔而強大,由控制器、存儲器(內存)、輸入輸出設備等組成,計算過程如同精確的舞蹈,遵循指令集執行操作,直至狀態變為停止,最終在紙帶上留下輸出信息。
現代計算機設計基於圖靈機模型,如馮諾依曼體系結構,通過處理器、存儲器和外設實現計算過程。內存雖有限,但藉助外置存儲實現無限擴展。圖靈完備概念指出,能夠模擬單帶圖靈機的計算模型具備解決所有可計算問題的能力,為衡量計算系統和編程語言提供了標准。
常見編程語言如C++、Java、C#、Python、Haskell等均是圖靈完備的,具備解決所有可計算問題的能力。然而,一些規則或語言並非圖靈完備,它們在特定場景下更為適用,如SQL支持復雜數據操作,但不包含循環計算。圖靈不完備的例子有SQL、區塊鏈中的比特幣腳本語言和以太坊腳本語言。
綜上所述,圖靈機與圖靈完備概念在計算機科學中占據重要地位,揭示了計算本質,推動了復雜計算系統的理解與設計。無論是編程語言開發者、普通編程者還是區塊鏈開發者,理解這些概念至關重要。
❸ 帶你深入理解圖靈機--天才所在的時代
這幾年由於區塊鏈的大熱,以太坊獨特的solidity語言實現智能合約功能, 圖靈完備 這個詞走進大家的視線。
沒有計算機專業知識的同學其實很難理解這個詞的意思,其實計算機專業的同學都沒有深入理解圖靈機,圖靈完備,圖靈測試等概念包含的內涵。為了方便理解區塊鏈技術,理解智能合約,筆者准備分幾篇文章來帶大家從淺入深,一步一步帶你深入理解圖靈機,相信通過這幾篇文章能就能夠理解什麼是圖靈完備。
艾倫·麥席森·圖靈(Alan Mathison Turing,1912年6月23日-1954年6月7日),英國數學家、邏輯學家, 被稱為計算機科學理論之父,人工智慧之父。
1931年,圖靈考入劍橋大學國王學院,由於成績優異而獲得數學獎學金。
1936年5月,年僅24歲的圖靈發表一篇題為《論數字計算在決斷難題中的應用》的論文,論文中提出一種計算裝置,後被稱為 「圖靈機」 ,圖靈機不是具體的計算機,而是一種計算概念、計算理論。
1938年在普林斯頓獲博士學位,其論文題目為「以序數為基礎的邏輯系統」,在數理邏輯研究中產生了深遠的影響;同年圖靈回到英國,在劍橋大學國王學院任研究員。
第二次世界大戰期間,1939年圖靈到英國外交部通信處從事軍事工作,主要是破譯敵方密碼的工作。由於破譯工作的需要,他參與了世界上最早的電子計算機的研製工作。他的工作取得了極好的成就,破譯了德國人Enigma密碼,於1945年獲政府的最高獎——大英帝國榮譽勛章。
1945年,圖靈結束了在外交部的工作,他試圖恢復戰前在理論計算機科學方面的研究,具體研製出新的計算機來。
1950年他發表論文《計算機器與智能》( Computing Machinery and Intelligence),為後來的人工智慧科學提供了開創性的構思。提出著名的 圖靈測試 。
1950年,1950年10月,圖靈發表論文《機器能思考嗎》。這一劃時代的作品,使圖靈贏得了「人工智慧之父」的桂冠。此時,人工智慧也進入了實踐研製階段。隨著這幾年AI技術的不斷成熟,人們越來越認識到圖靈思想的深刻性:它們至今仍然是人工智慧的主要思想之一。
1954年6月7日,年僅41歲的圖靈被發現死於家中的床上,床頭還放著一個被咬了一口的蘋果。這就是現在大名鼎鼎的蘋果電腦公司logo的來源。
從圖靈的生平中,我們知道,他出生在20世紀初,1912年。
在世界國家格局上,這個時候剛剛爆發第一次世界大戰(1913~1921),緊接著1939年至1945年第二次世界大戰,大家知道,這兩次世界大戰倒逼了很多科技的發展,二戰期間恰好是圖靈青年時代。
在科技文明發展上,由於邏輯的數學化,促使了數理邏輯學科的誕生和發展。但同時這個時期數學上發生了第三次數學危機,具體介紹在下方。圖靈在劍橋讀大學期間,修讀了「數學基礎」課程,授課人是紐曼,紐曼整個課程包含對哥德爾不完備性定理的證明和尚未解決的判定性問題。
這些科技事件的背後,其實是人們在認知上,對 可計算性理論 的研究,圖靈正是這個問題終結者。
隨便提一下,愛因斯坦1905年提出狹義相對論,1927年年僅15歲的圖靈為了幫助母親理解相對論,還寫過論文的摘要。
在20世紀以前,人們普遍認為,所有的問題類都是有演算法的,人們的計算研究就是找出演算法來。1900年,當時著名的大數學家希爾伯特在世紀之交的數學家大會上給國際數學界提出了著名的23個數學問題。
其中第十問題是這樣的:
「丟番圖方程」指:有一個或者幾個變數的整系數方程,它們的求解僅僅在整數范圍內進行。
上面這個問題簡單點解釋是:隨便給一個不確定的方程,是否通過有限的步驟運算,判斷這個方程是否存在整數解。
這個問題在1970年,蘇聯一個數學家證明了其實很多數學問題,是沒有答案,甚至沒有答案的問題比有答案的問題還要多。
這里就提出來了有限的、機械的證明步驟的問題,其實就是演算法。但在當時,人們還不知道「演算法」是什麼。實際上,當時數學領域中已經有很多問題都是跟「演算法」密切相關的,因而,科學的 「演算法」 定義呼之欲出。之後到了30年代的時候,終於有兩個人分別提出了精確定義演算法的方法,一個人是圖靈,一個人是丘奇。而其中圖靈提出來的圖靈機模型直觀形象。
圖靈思考這個問題的方式和常人不一樣,在寫前面提到的論文《論可計算數及其在判定性問題上的應用》的時候,圖靈在思考三個問題
圖靈這樣的天才考慮問題的認知是高屋建瓴的。
圖靈首先考慮的是是否所有數學問題都用解,如果這個問題不解決,辛辛苦苦解題,最後發現無解,一切的努力都是浪費時間和精力。
對於存在答案的數學問題,只有部分是可以在有限步驟內完成,這樣把計算機的邊界確定下來了。
確定了邊界之後,就要設計一種通用、有效、等價的機器,保證可以按照這個方法做事,最後得到答案。而圖靈機就是圖靈設計出來的這樣的一個機器,嚴格來講是一種數學模型、計算理論模型。
從圖靈機提出到現在已經過去了80多年,今天所有的計算機,包括量子計算機都沒有超出圖靈機的理論范疇。
第三次數學危機產生於十九世紀末和二十世紀初,當時正是數學空前興旺發達的時期。首先是邏輯的數學化,促使了數理邏輯這門學科誕生。
早在19世紀末的時候,康托爾為集合論做了奠基性的研究。人們發現,運用集合這個概念可以概括所有的數學,也就是說集合是一切數學的基礎。然而就當這座大廈即將完工的時候,一件可怕的事情發生了,羅素提出來的羅素悖論粉碎了數學家的夢想。
關於羅素悖論的一個通俗化版本是:
為什麼要第三次數學危機呢?
因為有個很重要的概念: 停機問題 ,停機問題是邏輯數學中可計算性理論中很重要的問題,也是第三次數學危機的解決方案。
停機問題 通俗地說,停機問題就是判斷任意一個程序是否能在有限的時間之內結束運行的問題。該問題等價於如下的判定問題:是否存在一個程序P,對於任意輸入的程序w,能夠判斷w會在有限時間內結束或者死循環。
有人猜測圖靈機模型是圖靈在思考 停機問題 而順帶設計出來的,是很有道理的。
圖靈在劍橋大學國王學院期間,研究過一本叫做《量子力學的數學基礎》的新書,這本書由年輕的匈牙利數學家約翰·馮·諾依曼所著。圖靈意識到計算可以用確定性的機械運動來進行表示。其實我們現在的電子計算機雖然不是我們傳統意義上的機械,但是CPU內部的電子運動等價於機械運動。
同時圖靈也意識到人的思想、意識來自於量子力學中的測不準原理,這不光是微觀世界,同時也是這個宇宙本身的規律。所以圖靈意識到計算是確定性的,可判定的,而意識是不定的,不可計算的。
在AI人工智慧有巨大發展的今天,很多人擔心計算機是否會和人一樣有意識,其實圖靈在80多年前已經考慮過這個問題了。
前面提到,圖靈在1950年寫過一篇論文《計算機器與智能》,在這篇論文中,圖靈測試一詞被提出來:
這個測試有多難?目前我們所有的人工智慧都沒有完成這個測試。最近2018年3月份的谷歌I/O大會上演示的AI產品,據說「部分通過圖靈測試」。這個部分到底有多少也未可知。
從人類科技發展的歷史上來看,19世紀末到20世紀中期,是第二次工業革命和第三工業革命過渡的時期。第二次工業革命主要電和磁、內燃機的發明和使用,發展到這個時候科學家對世界的認知越來越多,越來越清晰,物理學和數學等自然科學發展迅速。這個時候的數學家發現很多現象可以用數學模型來表示,從物體的運動到星球的運動、從熱能到動能的轉換、從電到磁的轉換等等。那問題來了是否所有的現象都可以用數學模型來表達呢?真是這個問題,讓人們對數學很多根本性問題進行思考和研究。
中國有句古話說:亂世出英雄。在圖靈的時代,在科學歷史上出了很多的科學英雄,包括愛因斯坦、馮諾依曼、圖靈、哥德爾等等,一方面是時代背景使然,一方面真是他們的天賦和努力讓以信息化為代表的第三次工業革命的進程大大加快了。
從這些巨匠的思考問題,解決問題的方法和認知來看是超出常人的。從對 可計算性理論 的思考,給了我們很大的啟示:
**更多有關區塊鏈的技術與思維,可掃碼加入我的小密圈。在這里,我陪著你,大家一起研究區塊鏈技術,探討區塊鏈思維,預測區塊鏈未來,一起做未來前10%的人
**