改變數學的命運——《計算進化史》

阿狸不歌發表於2017-08-21

計算進化史

2+2=4 需要證明嗎?可以用計算的方式證明素數有無窮多個嗎?計算機可以代替人進行所有的數學證明嗎?如果你思考過這些問題又沒有明確的答案,那麼可以看看這本《計算進化史》。


數學與算術的關係

數學與計算到底是什麼關係?對於不同的人,可能答案會不一樣。小學的時候,數學對我來說就是算術(計算),加減乘除、乘法口訣表到混合運算到簡單的解方程,所有的東西都是算算算……;到了初中開始學習幾何,才開始接觸簡單的公理、推理、證明;高中時代演繹、歸納成為挑戰,而對計算的能力要求已然退居幕後;大學伊始,高數裡的無窮∞ 、連續、斷點、微分、積分對於沒有準備的新生而言大多是揮之不去的夢魘。

為什麼我們的數學學習生涯要這麼設計?大概與人對數學的認知過程和方式有關吧。媽媽教我數數是從掰手指頭開始的。美索不達米亞人的原始數學考慮的是:如果要把1152000份糧食分給164571個人,每個人能分幾份;100步長、100步寬的田產與1000步長、10步寬的田產哪個面積大的問題;埃及人要考慮怎樣丈量並切割出來的大石塊砌成大金字塔而不會倒塌;秦始皇鑿靈渠需要計算大小天平的尺寸來實現“三分入漓、七分入湘”。原始的數學一定是伴隨著人類的實際需求而生的。


古典數學的誕生與第一次數學危機

大部分人在一生之中也不會真正去去考慮“如果我有無窮的錢,該怎麼花光”這樣的“實際”問題。只有在生產力發展到一定階段,有一部分人可以從體力勞動裡解放出來,專門思考“一尺之棰,日取其半,萬世不竭”這樣的問題,才會開始嘗試把“數學”物件從對自然物體進行“算術”的過程分離出來,成為抽象而獨立的概念。

數學的航船從勾股定理的誕生開始起航,遭遇到了畢達哥拉斯悖論,捲入了第一次數學危機的漩渦?,希帕索斯甚至為了無理數的發現付出了生命的代價,最終在歐多克索斯的拯救下得以擺脫危局。經過這次危機的洗禮,希臘人才不得不承認:直覺、經驗乃至實驗(任何實驗都只能得到用有理數表示的量)都不是絕對可靠的,而推理論證才是可靠的,證明的思想在希臘人心中紮根,而計算作為推理構造的工具則應隱藏在幕後。進一步,希臘人發展了邏輯思想並加深了對數學抽象性、理想化等特徵的認識。柏拉圖強調數學要奠基於邏輯之上,必須要有準確的定義、清楚的假設和嚴格的證明,他的“應從自明的假設出發進行嚴格的證明”的思想成為古希臘公理方法的發端。

相比之下,包括中國在內的東方古代的數學家們將興趣集中於計算,忽略了無理數概念所涉及的邏輯難點,固然沒有碰上悖論的礁石,卻也同時失去了發展數學邏輯體系的契機。中國傳統數學以算為中心,卻最終沒有形成一個嚴密的公理化演繹體系,可稱為憾事。


古典數學統治的負面影響與第二次數學危機

古希臘人在解決第一次數學危機的過程中,對無理量建立了嚴密的理論,並構建了幾何學的大廈,而自歐氏之後,代數與幾何被嚴格區分開來,由於幾何擁有“嚴格”數學的基礎,這就建立起古典數學中幾何對算術(計算)的絕對優勢。這種重幾何、輕計算的思想使得算術、代數的發展受到極大的限制,以致於到19世紀時“geometrist”(幾何學家)還是所有數學家的代名詞。

實際上當畢達哥拉斯學派發現不可公度量的存在時,他們就已經面臨“離散與連續”的難題。事實上,離散量對地球人而言是直觀的,而連續、極限、無限這些概念甚至對於很多“考過”高等數學的人來說也是一道大檻。所以地球人花了近兩千年去跨這道坎也不足為奇。

計算技術的發展是文藝復興時期數學的重要成就,主要體現於代數學上的突飛猛進,符號體系的引入使得計算髮生了重大的變革。而數學在天文學、力學研究中發揮的巨大作用使代數越來越成為解決問題的有效工具。笛卡爾創立的解析幾何則改變了數學的面貌,把原來被古希臘人割裂開來的幾何、數、形重新結合在一起,並直接促進了微積分的誕生!

“無窮小量究竟是否為0”的貝克萊悖論在微積分草創時代確實帶來了第二次數學危機,然而,微積分在科學研究、數學應用(計算)中顯示了巨大的威力,依靠這個強有力的工具,地球人解決了無數數學和物理上的難題,也使得人們有信心為其打下堅實的數學基礎。

最終數學分析的基礎依賴實數、實數依賴有理數、有理數依賴自然數的逐層構建,隨分析的算術(計算)化,使微積分有了嚴格的基礎。這個時期,計算又開始在數學的舞臺上扮演重要的角色。


集合論、第三次數學危機和計算機計算時代的到來

當我們進入高中後,遇到的第一個數學概念就是:集合。集合是現代數學的基石,並在現代數學中佔據統治地位。集合論的開創者康托爾的超限數理論引發了數學界的大戰,而這涉及數學證明的方法問題。數學中常用的證明方法有兩種:構造性證明和存在性證明。

本書用了大量篇幅介紹這兩種證明的區別與聯絡,此處不再贅述。集合論的誕生從本質上揭示了無窮的特性,給數學開闢了廣闊的新領域,促使了現代數學的形成,並用集合論的語言重述或解決了代數、幾何、分析中長期存在的問題,並引出了實變函式、抽象代數、拓撲學等眾多現代數學分支。

正當數學家們沉醉於數學絕對嚴格性的時候,羅素捅了大漏子,引發了第三次數學危機和新的大論戰。以羅素為代表的邏輯主義、布勞威爾為代表的直覺主義和希爾伯特為代表的形式主義戰作一團。1930年希爾伯特宣稱:“把每個數學命題都變成一個可以具體表達和嚴格推導的公式,經過這樣改造的數學所推匯出來的結果無懈可擊!”

然而,富有戲劇性的是在他發出這一結論的前一天,在另一個研討會上,哥德爾發表了一項宣告,使得在場的希爾伯特的學生馮.諾伊曼立刻意識到希爾伯特的綱領是沒法實現了。哥德爾不完全性定理的推出結束了三大派的論戰,而數理邏輯成了最後的贏家。

哥德爾、丘奇、圖靈、克萊尼用各自的方式定義了一種語言來描述演算法,最終他們的定義被證明具有等價性,而今天我們可以說,它們分別定義了一種“程式語言”。而在哥德爾發表宣告現場的馮.諾伊曼則最終造出了可以執行“程式語言”的計算機,並開啟了計算機計算的時代。


今天,我們每個人都離不開各式各樣的計算裝置,而計算裝置和演算法本身也在發生著飛速的變化,阿爾法狗已經擊敗了最強的人類圍棋手,“機器會思考嗎?”這個問題也許會在不遠的奇點處給出我們答案!

相關文章