電腦的由來是什麼?(思考訓練)

 二十世紀是人類史上科學技術進展最快的世紀。短短的100年間,湧現了大量對世界產生重大的影響的科學發現和技術突破,包括電視、飛機、抗生素、基因科學、量子力學…。

但若要評選一項滲透至人們日常生活的所有角落、改變人類生活型態最劇烈的科技發明,則非電腦莫屬。

20162261357349

第一次工業革命是機械與工廠、第二次工業革命是電力、第三次工業革命乃由電腦發明所激起的資訊時代。有著「第四次工業革命」之稱的人工智慧,我們已在深度學習簡史中有所探討。但追本究源,人工智慧所奠基的電腦(計算機)科學,又是怎麼來的?

今天就讓我們來思考一個有趣的問題:電腦是怎麼來的?

 

ENIAC:情人節誕生的奇蹟

普遍認為最早的通用電腦,是美國賓州大學的莫奇來 (Mauchly) 和他的學生埃克特 (Eckert) 在 1946 年 2 月 14 日情人節當天所發表的「ENIAC」 。(情人節剛過不久但別再討論單身魯了,人家可是在情人節顛覆世界呢XD)

ENIAC 計算機在進行每一次運算之前,都須根據運算要求、把不同的元件用人工插接線路的方式連接在一起。將輸入裝置和輸出裝置設好後,才進行通電……啪!一聲,電腦噠噠噠的開始運作。

但現在可能正用電腦看這篇文章的你,好像不需要在開機前把電線插來插去才能使用?

因為這個電路沒有儲存程式的功能。最早的計算機器僅內涵固定用途的程式,比如一台「計算機器」僅有固定的數學計算程式,除此之外便無其他,無論是文書處理或玩遊戲都不行。

若想要改變這台機器的程式,你必須更改線路、結構甚至重新設計機器。

 

馮·紐曼結構與現代電腦

1945年6月,是現代電腦科學的里程碑。著名的美籍猶太裔數學家馮·紐曼 (John von Neumann) 與多位學者聯名發表了一篇長達 101 頁的報告,其中包括大膽捨棄了十進制、改以二進制運算取代。

同時將電腦明確分成五個部分組成(包括:記憶體、控制單元、算術邏輯單元、輸入/輸出裝置等),並描述了這五個部分的功能和相互關係,為電腦的邏輯結構設計奠定了基礎。

(如果你想進一步瞭解馮紐曼架構,歡迎參考在懂量子電腦之前,你知道你現在正在用馮紐曼架構嗎  一文。)

事實上,EDVAC報告中最核心的概念即是「可儲存程式的電腦 (Stored Program Computer) 」。

如果是一台能儲存程式的電腦,只要一開始先將「文書程式」與「遊戲程式」都載入記憶體中,再告訴電腦去記憶體的哪一個位置開始執行就可以完成,在不需更動硬體的情況下就能讓電腦變得更加有彈性。

1951 年,美國軍方透過馮·紐曼的協助,斥資五十萬美元打造了計算機「EDVAC」。相較於十進位、又須人工插接電路的 ENIAC,可以說 EDVAC 是第一台現代意義的通用計算機,直至今的現代電腦皆仍採用馮·紐曼架構。

在我們介紹馮·紐曼其人其事、與現代電腦的運作原理前,先讓我們重看一次標題所提出的問題:「電腦是怎麼來的?」為什麼馮·紐曼能夠造出這樣的一台電腦?

不少人把馮·紐曼當作是電腦科學的奠基人,有人甚至稱他為“電腦之父”。然而他本人並不接受這個稱號。

馮·紐曼認為他的研究成果是受到了英國數學家圖靈 (Alan Turing) 所啟發,他僅僅是發揚光大圖靈的原始概念。這台「可儲存程式電腦」真正的意義,其實就是通用圖靈機。馮•紐曼將這個概念的創始人公正無私地還予圖靈。

 

圖靈:可計算理論與圖靈機

好吧這麼來看,如果我們想要瞭解「電腦是怎麼來的?」,勢必得再先去瞭解圖靈這位同樣有著「電腦科學之父」與「人工智慧之父」之稱的偉大學者,與其圖靈機 (Turing Machine) 理論了。

圖靈獎號稱「電腦科學界的諾貝爾獎」,是電腦協會於1966年設立的獎項,獲獎者必須是在電腦領域具有持久而重大的先進性的技術貢獻。

1934 年,年僅 22 歲的圖靈從劍橋大學畢業、到美國普林斯頓大學攻讀博士學位。

二戰爆發後,圖靈在 1939 年被英國皇家海軍招聘,協助軍方成功破譯德國的密碼系統 Enigma,讓英國軍方對德國的軍事計劃瞭如指掌。圖靈小組的傑出工作,更使得盟軍提前至少兩年戰勝納粹。

——上述是電影《模仿遊戲》的史料。對於圖靈生平有興趣的讀者,可以參考這部向圖靈致敬的電影。 (只是嚴防許多出錯的史實)

除了作為一位傑出的密碼學家,在電影沒詳述的部分中,圖靈在電腦科學上的貢獻更是難以抹滅。

1936 年,24 歲的圖靈發表了一篇論文《論可計算數及其在判定問題上的應用》(On Computable Numbers, with an Application to the Entscheidungsproblem)。

在這篇極富開創性的論文中,圖靈提出了「圖靈機」(Turing Machine) 概念。

「圖靈機」不是一台具體的機器,而是一種運算模型,可製造一種十分簡單但運算能力極強的機械裝置,用來計算所有能想像得到的可計算函數

圖靈機是闡明現代電腦原理的開山之作,奠定了整個電腦科學的理論基礎。如果說馮紐曼是實際打造出一台現代電腦的電腦之父,其所依據的理論基礎即源自於圖靈機。

但,什麼叫可計算?為什麼圖靈會探討這個問題?實際上,上述關於圖靈論文與圖靈機的介紹,更明確的說法應是:

圖靈在1936年發布的論文中,對於「哥德爾不完備定理」重新做了論述。相較於哥德爾在證明其不完備定理時、採用的通用算術形式系統,圖靈使用了叫做「圖靈機」的簡單裝置作為代替。

咦,我們這邊又多提到一個人了?!哥德爾…?

 

哥德爾不完備定理

哥德爾 (Gödel) 被譽為自亞里士多德以來、歷史上最偉大的邏輯學家之一。毫不誇張地說,正是哥德爾使數理邏輯與哲學界發生了極大的革命。

愛因斯坦曾說:我之所以還到研究院來,只是為了與哥德爾一起走路回家。

1931 年,19 歲的圖靈進入劍橋大學就讀;但這一年,同時成了撼動數學界的里程碑——奧地利數學家哥德爾提出不完備定理,證明不存在既完備又一致的數學體系,粉碎了無數位數學家追求聖杯的野心。

人類總是渴求著確定的知識,也稱為真理——藉由純數理論與邏輯證明,數學家不斷尋找著真理的可確定性。

哥德爾當年的發現,簡單來說是:「並非所有為真者,皆可循一邏輯演繹過程而得知」。再更直白點就是:「真理的範圍、比我們所能證明的範圍還大。

數學家乃藉由公理(不證自明、理所當然為真的命題)進行一連串的推理、最後得出數學定理;基本上是活在一個以邏輯演繹為本質的世界。

今天突然有人成功證明了:有些數學命題,我們既沒辦法證明它為真,也沒辦法證明它為假…可想而知,這對於數學界無非是一項沈重的打擊!

五年後的圖靈之所以提出「圖靈機」計算模型,即是以計算機的形式重新演繹了哥德爾的不完備定理,同時補充了判定問題──是否存在一個程式,能判斷:

我們任意輸入的一個程式,是否能在有限的時間內結束步驟?或者會陷入無窮迴圈?(當我們對電腦下兩個指令:【往左後往右】與【往右後往左】,電腦就會陷入無窮的迴圈)

哥德爾的發現,引起了當時重要數學家如希爾伯特馮·紐曼(還記得這個人嗎? 這位計算機之父早年是希爾伯特的助手)等人的重視。

到後來不但啟發了後續眾多數學家、哲學家:若無法使用邏輯演繹完全瞭解宇宙,該何以為繼?更激起圖靈創造出了電腦科學在理論上的濫觴。

但是,為什麼哥德爾會探討這樣的問題呢?因為有人下了戰帖!

誰?就是上上句我們提到的大數學家希爾伯特

 

希爾伯特的23個問題

希爾伯特 (David Hilbert) 是二十世紀初期德國最偉大的數學家之一。

在世紀之交的1900年、一場巴黎國際數學家大會的演講當中,希爾伯特根據19世紀的研究成果和發展趨勢,以卓越的洞察力提出了23個當時尚未被解開的困難數學問題,並鼓舞年輕數學家積極攻克:

「在我們中間,常常聽到這樣的呼聲:這裡有一個數學問題,去找出它的答案!你能通過純思維找到它,因為在數學中沒有不可知。」(希爾伯特大大按曰:只要解出來就能名留青史噢!)

這就是著名的希爾伯特的23個問題

希爾伯特的23個問題對20世紀的數學研究起了積極的作用,不但超乎希爾伯特的預期,更未曾預料到從其中衍生而出的電腦科學、將會對世界產生無比重大的影響。

而哥德爾之所以提出不完備定理,想解答的正是這23個問題中的第二個問題:算術公理系統的無矛盾性。簡單來說,希爾伯特希望能以一個完美的形式系統,成功證明所有的真理、同時找出所有矛盾的陳述。

在這個問題上,希爾伯特原先堅定地表示:「沒有人能將我們逐出康托爾的樂園。」不僅僅是第二個問題,希爾伯特在23個問題中所提出(顯然最在意)的第一個問題連續統假設,也是康托爾的研究中所面臨問題。

康托爾…? 請放心,這會是本篇文章中所出現的最後一位人名了。

 

無限多的危機:康托爾集合論

到目前為止,我們已經使用了許多強烈的形容詞,包括:電腦科學之父、偉大的邏輯學家、數學家…。但在這些學者的研究基礎上,我們不能不提現代數學的奠基者——集合論之父康托爾 (Cantor)

令集合 A = {1, 2, 3, 4, 5 },B = {1, 3, 5, 7, 9}

則 1, 3, 5 同時為集合 A 和 B 的元素,且 A 集合和 B 集合的大小相等。

康托爾可以說是數學史上最富有想像力的數學家之一,其所開創的集合論則可以說是人類最偉大發明之一──當年康托爾面臨的,正是數學界幾百年幾千年的疑懼:「無限」。

1-1+1-1+1… = 0, 1 還是 1/2 0.99999….. = 1?還是 <1

無限有多大?

正整數、整數 (正整數/負整數/0)、實數(有理數/無理數) …等數系的數量相同嗎?

Z+: ∞ (正整數有無限多個), Z-: ∞ (負整數有無限多個), Z: ∞ (整數有無限多個)。 因此: ∞ = 2∞+1 (所有整數個數 = 正整數個數+負整數個數+一個0), 移項得: -∞ = 1,故: ∞ = -1 …?!

為了處理「無限」這個長久得不到解決的難題,康托爾在19世紀下半葉創立了「集合」理論,證明了各個數系雖然是都是無限多,還是有數量上的差別:

| 正整數 | = | 整數 | = | 有理數 | < | 無理數 | = | 實數 | = | 複數 |

無限多的正整數數量 = 無限多的整數數量 = 無限多的有理數數量 < 無限多的無理數數量 = 無限多的實數數量 = 無限多的複數數量

然而集合論實在太過創新、對於無限的解釋也背離了傳統,剛開始時康托爾受到了嚴厲的譴責與撻伐。

但隨後,許多年輕的數學家開始意識到集合論非常的有用──基於自然數 (正整數)與集合論,當時一切的數學成果都可以成功被推證出來。

1900年在國際數學家大會上,法國數學家龐加萊興高采烈地宣稱:「藉助集合論,我們可以建造起整個數學大廈。」1925年,希爾伯特也提出了「希爾伯特旅館悖論」來應和康托爾的理論。

(有興趣的讀者歡迎看看 Ted Education 製作的淺顯有趣動畫片,記得開中文字幕

然而康托爾集合論仍然面臨了許多問題。首先是連續統假設──我們已知:

| 正整數 | = | 整數 | = | 有理數 | < | 無理數 | = | 實數 | = | 複數 |

那麼還有沒有一個數系,介於此二者間呢?始終證明不出問題、又受到世人無數攻訐的康托爾,晚年發了瘋、死在精神病院中。

但除此之外,集合論還有一個問題是羅素悖論:「這句話是假的。」讀者只要稍加推論就會發現:如果這句話是真的,那麼這句話是假的會成立…?! 如果這句話是假的,那這句話就是真的…?! 這個命題就矛盾了。

羅素悖論應用在集合論的問題即是:如果我們創造一個集合A,裡面收集了所有不包含在自己這個集合的集合:A = {x|x∉x}。若是 A∈A 成立,則 A 是 A 的集合、使得 A∉A。但若 A∉A,則符合命題,使得 A∈A

好不容易我們在集合論的基礎上構築起了數學大廈,結果發現集合論也是不完美的。究竟能不能找到一個完備的系統,從上面建築起整個數學的基礎呢?

這樣的系統是否存在呢?希爾伯特除了在23個問題中的第一個問題提出「連續統假設」,身為康托爾堅定的擁護者(腦粉),也在第二個問題中提了這樣的難題。

這也接續到我們先前的介紹:再後來哥德爾成功證明了不完備定理、解決了23個問題中的第二個問題,到圖靈用「圖靈機」的概念更加簡單明瞭的重新演繹一次哥德爾不完備定理,最後馮·紐曼基於通用圖靈機的概念、建出了第一台具備現代電腦架構雛形的電腦。

哇!「電腦是怎麼來的」居然爬梳出這麼多的問題?

 

哲學:不懈探究真理的精神

若要探究下去,你知道:康托爾、希爾伯特、哥德爾、馮·紐曼…等人都是德國人嗎(哥德爾和馮·紐曼皆為奧匈帝國人)?19世紀的德國究竟是一個什麼樣的時代,造就了如此多的數學大家?

事實上,你知道這些數學家同時還有著哲學家的頭銜嗎?更進一步來說,19世紀知名德國哲學家,尚包括了:黑格爾、叔本華、馬克思、尼采、康德… 毫無疑問地,當時的德國可說是歐洲最具代表性的哲學重鎮。

哲學反映了人類對真理的追求,體現人類的智能與認知極限。因而數學的發展不只是解一些生活問題,而成為一種學問、一種探求真理的道路與哲學手段。

哲學在西方文化中扮演了非常重要的角色,也是現代科學會出現在歐洲的重要原因。至於西方哲學追求真理的精神,又是起源於何時何處呢?這又要回溯到希臘時期,比如亞里斯多德的三段式證法或畢達哥拉斯學派…。

觀察過往,出現像上述「無限有多大」這樣的數學危機,在人類史上也不是第一次發生了:

負數的英文為──Negative Number、無理數──Irrational Number、虛數──Imaginary Number。否定的 (Negative)不合理的 (Irrational)想像的 (Imaginary)

從這些詞彙中可以看出在探究真理的過程中,人類總是不斷遭遇思想上的困難,卻又能在突破後、成功踏上嶄新的道路。 今天我們思考了一個問題:「電腦是怎麼來的?」,並從中衍生出了更多值得探索的問題:

  • 數學是邏輯、也是哲學?
  • 歷史上其他的數學危機有哪些、又是如何被解決的?
  • 希臘亞里斯多德時代至一戰前的德國,哲學是如何百花齊放?
  • 無限有多大?
  • 悲劇性的數學家康托爾為什麼偉大?
  • 希爾伯特的23個問題?
  • 我們能造出一台判別真理的機器嗎?
  • 哥德爾不完備定理是什麼?圖靈機呢?
  • 計算機的電路是怎麼計算和記憶的?

沒有了探求宇宙真理的精神,或許工業革命就不會出現在歐洲了? 人類也不會有科技發展、或者今日的生活。

少年啊,你渴望真理嗎?

 

後續幾篇,我們會繼續用深入淺出的方式一一來討論這些問題,歡迎一起加入這樣的思考訓練吧!