多年來,我都對戈特弗裏德·萊布尼茨很感興趣,尤爲是由於早在3個世紀之前,他就彷佛想要製造一種相似Mathematica和Wolfram Alpha的工具,沒準還可能會寫本《一種新科學》。因此,在最近一次德國之旅中,我對可以拜訪坐落在漢諾威的萊布尼茨文獻館感到興奮不已。算法
翻閱着他發黃的手稿(仍舊夠挺,經得起我觸碰),我試着想象他寫下這些篇章時的思緒,試圖將我在這裏看到的與3個世紀後咱們所掌握的知識聯繫起來——這時,我感到了一種共鳴。編程
其中的一些記載,尤爲是數學方面的,簡直超越了時間,好比說下圖中萊布尼茨寫下的收斂於√2的無窮級數(文字爲拉丁文):函數
萊布尼茨寫下的收斂於√2的無窮級數工具
又例以下圖中,萊布尼茨試圖計算該連分數的值,儘管他的算法是錯誤的,但他仍把整個過程記錄了下來(其中的「Π」至關於等號的早期版本):學習
計算連分數的值,雖然算法錯了,但萊布尼茨仍然記錄下了整個過程。測試
再比方說下圖中對微積分的一點總結,幾乎可以列入現代的教科書:編碼
萊布尼茨對微積分的一點總結設計
但除此以外還有什麼?萊布尼茨的工做及思想的宏觀圖景又是怎樣的?3d
我一直都以爲萊布尼茨的形象有些使人難以捉摸。他作了不少看似迥然不一樣且絕不相關的事情——涉及了哲學、數學、神學、法學、物理學、歷史學,不一而足。而他用來描述本身工做的語言在咱們今天看來又都是來自17世紀的陌生措辭。調試
可是,隨着個人進一步瞭解,以及對萊布尼茨這我的更深刻的體會,我察覺到了隱藏在他諸多成果下的核心思惟方向,而這一思惟方向與我所奉行的現代計算機理念不謀而合。
1646年(伽利略逝世後第4年,也是牛頓出生後的第4年),戈特弗裏德·萊布尼茨出生在現屬於德國的萊比錫地區。他的父親是一位哲學教授,母親出身於圖書貿易家族。萊布尼茨6歲那年,父親去世。考慮到他年幼,2年後萊布尼茨才被容許進入父親的書房,開始在其中徜徉書海。他於15歲進入當地大學學習哲學和法律,並在20歲時從這兩門專業畢業。
即使在志學之年,萊布尼茨彷佛就對知識的系統化和規範化很感興趣。曾有過這樣一類模糊的觀點長期存在——例如14世紀拉蒙·柳利(Ramon Llull,是馬略卡王國 [現西班牙] 的一名做家、哲學家、邏輯學家)在其半神祕主義著做《鴻篇》(Ars Magna)中所表達的——即咱們能夠創建起某種通用的體系,在該體系下,從一個適當的(笛卡爾所謂的)「人類思想字母表」中取出符號進行多樣組合,就可能表達全部知識。在哲學畢業論文中,萊布尼茨就曾試圖探討這一思想。他用到了一些基礎組合數學知識來計算機率。他還提到將思想分解爲能夠利用「創造的邏輯」進行處理的簡單成分。另外,他還加入了一段自稱爲旨在證實上帝存在的論證。
正如萊布尼茨在晚年所說,這篇他在20歲時寫的論文從許多方面來看都很幼稚。但我以爲,萊布尼茨正是今後開始了對種種問題的畢生思索。舉例來講,萊布尼茨的法學畢業論文命題是「疑難法律案件」,通篇都在論述這類案件被簡化爲邏輯與組合數學問題從而得以解決的可能性。
儘管本來有望成爲一名教授,然而萊布尼茨最終決定終其一輩子,爲多個法庭及執政者提供顧問服務。有時他要貢獻本身的學識,追溯艱深然而具備重要政治意義的族譜或歷史;有時要對諸如法典、文獻等進行系統化規範整理;有時則要進行實際工程設計,例如規劃銀礦排水方案;還有些時候——尤爲是在早年生涯中——他要爲政治舉措提供「實時實地」的智力援助。
在1672年的一次此類政治行動中,萊布尼茨被派往巴黎,以後在那裏度過了4年——在這一期間,他結識了不少當時的學界翹楚。在此以前,萊布尼茨的數學知識只處於基礎水平。但在巴黎,他有機會學習全部最早進的思想與方法。舉例來講,他曾找到克里斯蒂安·惠更斯,併成功經過了測試——求全部三角形數倒數之和,因而後者贊成指導萊布尼茨學習數學。
通過多年的努力,萊布尼茨完善了他將知識系統化、規範化的理論,並一直在構想着一種能使知識——按如今的說法——可計算化的總體結構。他所設想的第一步是發展一門「符號學(ars characteristica)」——即用符號表示事物的方法論研究,並實際制定一套統一的「思惟字母表」。在他接下來的設想中,經過這套單一指代體系,咱們有可能「經過演算找到任何領域的推理真理[1], 就像算術和代數那樣。」這與現在咱們所知的計算理論有着驚人的共同點。
他在提到本身的理念時用到了很多野心勃勃的說法,例如「知識方法總論」、「哲學語言」、「通用數學」、「通用系統」,還有「思惟演算法」。他料想這一系統最終會應用在全部領域:科學、法律、醫學、工程學、神學等等。但在其中一門學問中,他很快就取得了顯著成就,那就是數學。
據個人瞭解,數學史上將數學符號看成中心課題來研究的案例驚人地少見。僅有幾例,如19世紀末期,現代數理邏輯論開端伊始,戈特洛布·弗雷格(Gottlob Frege,德國數學家、邏輯學家和哲學家,數理邏輯的奠定人)及朱塞佩·皮亞諾(Giuseppe Peano,意大利數學家、邏輯學家和語言學家,數理邏輯先驅)等人的工做。還有近年來我在創建Mathematica和Wolfram語言的過程當中的一些嘗試。但萊布尼茨早在3個世紀前就開始了這項工做。而且據我揣測,萊布尼茨在數學領域的成就,很大程度上要歸功於他在符號系統方面作出的努力,以及這一系統所帶來的更爲明晰的數學結構和流程之推論。
當咱們閱讀萊氏的論文時,會發現他使用的符號及其演變十分引人入勝。其中不少看上去很是現代化。儘管也有少數17世紀的鬼畫符,比方說他偶爾會用鍊金術或占星術中的符號表示代數中的變量:
萊布尼茨用鍊金術或占星術中的符號表示代數中的變量
在此處,他把Π用做等號,並略顯俗套地把這個符號當成一個天平:把某一邊的「腿」寫得稍長以表示小於(「<」)或者大於(「>」):
萊布尼茨表示的大於(「<」)或者小於(「>」)
這裏的上劃線用來表示合併同類項——能夠說是個比括號更好的主意,儘管不方便打字和排版:
萊布尼茨用上劃線表示合併同類項
今天,咱們會用根號來表示根。可是萊布尼茨想在積分裏也使用這個符號,並配以帶着漂亮小尾巴的「d」。這讓我想起咱們在Mathematica中使用黑板粗體「微分d」來表示積分。
萊布尼茨在積分裏使用根的符號
在解方程時常常會用到±,但這經常使分組過程十分混亂,好比說a±b±c。而萊布尼茨彷佛也遇到了相似的麻煩,但他發明了一種標記法來解決這問題——這種方法即使在現在也實在值得一用:
萊布尼茨發明標記分組±
萊氏使用的一些標記讓我也不明就裏。不過這些上波浪線到確實賞心悅目:
還有這些小點:
或者是這些看上去頗有趣的圖表:
固然,萊布尼茨最著名的符號要數他創造的積分符號(用長「S」表示「總和」)以及「d」。這一系統首次被總結出來就是在這張紙的空白處,日期是1675年11月11日(過後「1675」裏的「5」被改爲了「3」,也許是出自萊布尼茨的手筆):
萊布尼茨創造的積分符號
我所注意到的有趣的一點是,儘管創造了這些「數學」運算符號,萊布尼茨顯然並無爲邏輯運算髮明一套相似的符號。「或」僅僅使用拉丁文「vel」表示,「且」則是「et」,如此等等。而當他想到邏輯量詞(例如現代的∀和∃)這個點子時,他也只是用拉丁文縮寫U.A.和P.A.草草了事。
萊布尼茨用拉丁文縮寫U.A.和P.A.
一直讓我感到反常的是,在思想史上,統泛化運算(Universal Computation)的概念直到20世紀30年代才萌生。而我總懷疑萊布尼茨的手稿中是否隱藏着一份統泛化運算的早期版本——也許甚至有一份圖樣可供今人解讀出一套相似圖靈機的系統。可是隨着對萊布尼茨越發深入的接觸,我清楚地看到了爲什麼事實並不是如此。
其中一個重要緣由,據我推測,是他並不足夠重視離散系統。他將組合數學中的成果稱爲「不證自明的」,大概是由於他考慮到這些成果能夠用運算方法直接證實。而對他而言,只有「幾何的」或者連續數學問題才值得爲之發明微積分來解決。在描述曲線特性等問題時,萊氏想出了相似連續函數的方法。但他從未把這種函數思想應用在離散數學中——而這卻極可能引導他開始思考構建函數的通用元素。
萊布尼茨認識到了他的微積分的成功,而且一心想爲其餘領域也創造出相似的「微積分」。在他與統泛化運算另外一次失之交臂的經歷中,萊布尼茨想到用數字來將邏輯特徵編碼。他設想將某事物的每個可能的性質都與一個不一樣的質數相對應,而後再經過這些表明其性質的質數之乘積來描述這一事物——隨後再用數學運算來代替邏輯推演過程。可是他只考慮到了靜態性質——而且從未能想到像哥德爾數那樣,將運算一樣用數字進行編碼。
儘管萊布尼茨沒有產生統泛化運算的思想,但是他確乎體會到了一個理念:計算在某種意義上是機械化的。並且他在早期彷佛確實下過決心要建造一個實實在在的機械計算機來進行數學運算。可能部分緣由是爲了他本身用着方便(這但是開發新技術的萬能理由!),由於撇開他在代數及其餘方面的造詣不談,他的手稿邊上寫滿了基礎(有些仍是錯誤的)算式——而這些也一併被保存下來供後人觀瞻:
在萊布尼茨的時代,曾有過零星的幾個建造機械計算機的實例,而且在巴黎時期,他無疑見識過帕斯卡於1642年建造的加法計算器。可是萊布尼茨致力於建造一個「全能」計算機,而這將是首次能夠在一臺機器上進行所有4種基礎運算。他還想給這機器設計一個簡單的「用戶界面」:使用者能夠將操做柄扳向一方進行乘法,扳向反方向則是除法操做。
在萊布尼茨手稿中,探討該機器的工做原理的各式簡圖隨處可見:
萊布尼茨手稿中的各式簡圖
萊布尼茨本來設想他的計算機能具備優秀的實際功用——實際上他彷佛但願能將其發展爲一樁成功的生意。但實際上,單是讓這臺計算機穩定地運做便令萊布尼茨勞心費力。由於正如那一時代的其餘機械計算機同樣,這臺機器不過是個被誇大的了里程錶。它和近200年後查爾斯·巴貝奇(Charles Babbage,英國數學家、發明家兼機械工程師)的機器相似,當發生大規模的連動時,從機械角度上很難實現大量的轉盤同時運轉。
萊布尼茨最初建造了一臺木製原型機,計劃僅用來處理3到4位數的運算。可是在他1673年造訪倫敦期間,這臺原型機在給羅伯特·胡克等人展現的過程當中表現得差強人意。不過他始終認爲本身可以解決全部問題——比方說他在1679年(用法文)寫下的「算數機最終修正案」:
萊布尼茨1679年用法文寫下的「算數機最終修正案」
然而1682年的一篇筆記說明還有更多的問題亟待解決:
但萊布尼茨仍依據其筆記起草了一份方案——而且簽約了一位工程師來建造一臺可以處理更高位數的銅製版本:
讀萊布尼茨爲這臺機器寫的「營銷材料」是件趣事:
萊布尼茨爲「算數機」寫的「營銷材料」
另外還有部分「使用說明」(附帶365×24的計算過程做爲「工做樣例」):
「算數機」的「使用說明」
並附以用法詳圖做結:
「算數機」的用法詳圖
儘管付出了這麼多的努力,計算器所存在的問題始終沒能解決。事實上,40多年來,萊布尼茨始終在堅持調試他的計算器——大概總共爲之投入了(至關於現今的)超過100萬美圓。
那麼這臺計算機的實物最終下落如何呢?在我參觀萊布尼茨文獻館時,不禁得提出了這個問題。「好吧,」東道主說,「能夠給你看看。」在一間儲藏室裏,擺滿箱子的排架之間,萊布尼茨的計算器就擺放在一個玻璃盒中,看上去嶄新如初——我順便拍了這張古老與現代怪異並置的照片:
萊布尼茨創造的「計算器」,後景隱約可見本文做者、正在拍照的沃爾夫勒姆。
全部的部件都在這裏。包括一個便攜的木製收納箱。同時還配有一個曲軸搖柄。另外,若是一切運轉正常,輕搖幾分鐘就可以賦予它處理一切基礎數學運算的能力:
萊布尼茨發明的手搖計算機細節,能夠作四則運算。
萊布尼茨明確地將他的計算機看做一個實用方面的項目。但他仍但願從中概括出些許結論,例如一條能夠用來描述機械聯動幾何學的普適「邏輯」。同時,他還思索了數與算術的本質。而且另闢蹊徑地想出了2進制。
幾個世紀來,10進制之外的進位制一直被應用於趣味數學中。但萊布尼茨認爲2進制具備特殊的含義——說不定它是鏈接哲學、神學與數學的重要樞紐。在他與從中國回來的傳教士交流,並認識到2進制正是《易經》的核心思想後,便有了更大的動力,而且認爲這與本身的「通用系統」在思想上殊途同歸。
萊布尼茨琢磨有可能建造一臺以2進製爲基礎的計算機。但他彷佛仍是以爲只有10進制纔有實用意義。
萊布尼茨對2進制的記載讀來有些奇怪。有些部分很清晰實用——並且仍顯得十分現代。但還有些部分很是有17世紀的風格——好比討論2進制證實了萬物都是來自虛無,其中1可被視爲上帝,而0則象徵着無。
在萊布尼茨以後的數個世紀裏,幾乎沒人用2進製作出些許成果:事實上,直到近幾十年來數字計算機的興起才改變了這一局面。因此,看看萊氏的手稿,其中他用2進制進行的計算極可能是最爲「超越時代」的內容了:
萊布尼茨手稿中用二進制進行的計算
經過2進制的研究,萊布尼茨從某種意義上探尋着可能存在的最簡單的基礎結構。毫無疑問的是,在討論他稱爲「單子」的概念時,他也是在進行相似的工做。我不得不認可,我歷來沒能真正理解單子論。每當我以爲本身就要搞懂的時候,其中說起靈魂的部分又總會讓我摸不着頭腦。
儘管如此,萊布尼茨彷佛推論出「全部可能世界中最好的一個」即「由最少的規則構建出最多樣化現象」的那一個,這一點始終深深吸引着我。其實,在撰寫《一種新科學》以前,那仍是1981年,我剛開始學習並構建一維元胞自動機,我就曾考慮給它們命名爲「集羣(Polymones)」——可在最後一刻,單子論再一次把我搞懵,嚇退了我。
萊布尼茨和他的文件一直都被包裹着一層神祕的色彩。庫爾特·哥德爾——也許是他的妄想症做祟——彷佛就曾堅信萊布尼茨發現了被壓制了幾個世紀的偉大真理。然而雖然在萊布尼茨辭世後,他的手稿確實被封存了起來,但那是由於他在歷史和族譜方面的研究——以及其中可能牽涉到的國家機密。
萊布尼茨的文件在好久之前就已開封,3個世紀後,咱們可能會覺得其中的方方面面都已被透徹地研究過。可實際狀況是,即便在如此長的時間裏,也從沒有人真正細緻地通覽過全部遺稿。這倒不是由於文件量太大。這些文件一共算來也只有200,000頁——估計能佔去架子上十幾格的空間(這僅比1980年以來我我的的文檔略大一點)。真正的問題是材料的多樣化。不只僅是涉及多種學科。還由於有不少重疊的草稿、筆記和信件,其間的關係不甚明瞭。
萊布尼茨文獻館保存了一系列使人費解的文件。從尺寸巨大的:
到十分迷你的(隨着年齡增加,近視愈發嚴重,萊布尼茨的字也越寫越小):
隨着年齡的增加,萊布尼茨的字越寫越小
檔案裏的大多文件都看上去十分嚴肅謹慎。但儘管那個年代紙的價格不菲,咱們仍能發現萊氏的隨手塗鴉留存至今(這會不會是斯賓諾莎?):
萊布尼茨曾與數百人有書信來往——其中既有名流也有凡夫——信箋遍佈歐洲。在300年後的今天,後人能從中找到雅各布·伯努利等人寄來的「隨筆短箋」:
雅各布·伯努利等人給萊布尼茨寄來的「隨筆短箋」
萊布尼茨長什麼樣?請看這裏,既有他的官方肖像,也有不帶那頂特大號假髮(甚至在當時也是個笑柄)的版本,據推測他那麼作是爲遮住本身頭上的一大塊囊腫:
萊布尼茨像,聽說他戴假髮是爲了隱藏頭上的囊腫。
在萊布尼茨文獻館裏,除了大量文件和他的機械計算機以外,還有一件物品:他出門時帶在身邊的一把摺椅,他將其掛在車箱裏,這樣在車箱移動時他仍能繼續書寫:
萊布尼茨出門時帶在身邊的一把摺椅,方便在車箱移動時也能繼續書寫
這時咱們不由好奇萊布尼茨的墓碑上鐫刻着怎樣的箴言。但是實際上,當萊布尼茨在70歲那年與世長辭時,他的政治生涯已跌入低谷,沒人爲他建造精美的記念堂。儘管如此,我在漢諾威時仍十分熱切地想要瞻仰他的墓——卻發現碑上只用拉丁文簡單地寫道:「萊布尼茨埋骨處」。
萊布尼茨的墓碑,上面只是簡單地寫了「萊布尼茨埋骨處」。
然而,在城市的另外一端,我發現了另外一種形式的記念——一家直銷店裏的餅乾被冠以萊布尼茨的名字,以表示對他的敬意:
以萊布尼茨冠名的餅乾
那麼,歸根結底,咱們該怎樣看待萊布尼茨呢?若是歷史以另外一種形式發展,或許萊布尼茨會與現代的計算機技術創建起直接的聯繫。可事實是,萊布尼茨的大多數嘗試都是孤立的——要理解他的工做很大程度上要靠把現代的計算機理論投射回17世紀。
憑咱們如今的瞭解,很容易看清萊布尼茨已經掌握的知識和他沒能搞懂的。他領會到了利用規範化、符號化的指示物來表明多種不一樣事物的概念。他還推測可能存在通用化的元素(也許甚至僅須要0和1)能夠用來組成這些指示物。而且他意識到,從這些知識的規範化、符號化表示出發,有可能經過機械的方式計算其結果——或許還能夠經過窮舉全部可能性來開闢新的知識。
萊布尼茨的部分記載顯得過於抽象且形而上——有時簡直使人惱火。但在某種程度上,他又至關務實。而他在技術上又具備足夠的本事,經常可以取得實際進展。他的一向方法彷佛是以試圖創造一個用來闡明事理的規範結構爲開端——若是能夠的話,還要用到規範的符號。在這以後,他的目標便成了建立一種能夠系統地得出結論的「演算法」。
說實在的,他只在一個特定領域用這套方法取得了成功:連續「幾何」數學。他從未在離散數學上認真鑽研,實在是一個遺憾。由於我認爲他可能會取得必定成果,甚至不難想象可能就此觸及統泛化運算的理念。他也許最終會開始列舉可能的系統,就像我在計算機領域所作的那樣。
他還在另外一個領域上試驗了這套方法,那就是法學。但他在這個方向上起步太早了,直到如今——300年後——計算法學纔剛開始顯出現實意義。
萊布尼茨還在物理學上作出了嘗試。但儘管他在一些具體概念上取得了成果(好比動能),卻從沒可以像牛頓在他的《原理》(這裏指的是《天然哲學的數學原理》)一書中實際作到的那樣,總結出一套大型的「世界的體系」。
在某種程度上,我認爲萊布尼茨之所爲沒能實現更高的成就,是由於他太執着於實用性,以及——這一點和牛頓很像——解構實際物理過程,而不是將眼光放在相關形式結構上。由於,若是萊布尼茨曾至少嘗試一些我在《一種新科學》裏所作的基礎性探索——我想這對他而言毫無技術難度——那麼科學史恐怕就要被從新改寫。
我也開始意識到,當萊布尼茨在發明微積分的公關戰中敗給牛頓,受到威脅的並不只僅是他我的的名譽,更有一種對科學的思考方式。牛頓在某種意義上是一個典型的實用主義者:他發明了一種工具,而後展現瞭如何將其應用於計算物質世界中的現實問題。但萊布尼茨的視野更爲廣闊,也更具哲學意味,他認爲微積分的本質並非工具,而是一個足以促使咱們研究其餘領域的規範化以及其餘通用性工具的範例。
我經常覺得,我所奉行的現代計算化思惟方式是規範化、結構化思考顯著且必然的一個特色。但我從未清晰地認識到這種顯著性是否僅僅是這個時代,以及咱們使用當代實用計算機技術的經驗所帶來的結果。對萊布尼茨的關注給了咱們新的視角。事實上,咱們能夠看到現代計算化思惟方式的部分核心思想,甚至在遠早於這個時代就成爲了可能。可是技術大環境的侷限和過去幾個世紀的理解方式,給這種思想的前途界定了明確的極限。
固然,這也給今天的咱們帶來一個發人深省的問題:因爲不具備將來的科技大環境,咱們在認識計算化思惟的內核的道路上又落後了多少呢?對我而言,對萊布尼茨的研究使我更加聚焦於這一問題。而有一點是我能夠清楚地預見的。
在萊布尼茨的一輩子中,他所見過的計算機寥寥無幾,並且它們只能作基本數學運算。現在世界上有數10億臺計算機,而它們能夠勝任各類工做。但在將來,計算機的數量必然遠大於此(受計算等價原則影響,計算機將更容易製造)。並且毋庸置疑的是,咱們生產的全部物品顯然都將由各級計算機制造。最終,全部事物都必定將成爲可編程的,小到原子。固然,生物學已經在某種程度上實現了這一點,只是尚有許多約束。但咱們未來終能完全地將其實現,不管何處。
在某種程度上,咱們已經能夠看出這暗示着計算過程與物理過程的部分結合。但對咱們來講,推測這種融合的難度就比如讓萊布尼茨設想Mathematica和Wolfram Alpha同樣。
萊布尼茨死於1716年11月16日。到2016年就是整整300年了。咱們大可利用這一絕好的時機,確保終於可以完全地研究萊布尼茨所留給咱們的所有遺產——而且慶祝在3個世紀後,萊布尼茨多少重要的遠見已經成爲現實,縱然是以他永遠沒法想象的方式。
[1] 萊布尼茨將真理分爲推理真理和事實真理。其中推理真理是廣泛必然的,單憑邏輯學的矛盾律就能夠推論出來,它的反面是不可能的。而事實真理是偶然的,它是從概括得來的,必須符合充足理由律,它的反面是可能的。
http://www.guokr.com/article/437228/