萊布尼茨研究易經手稿,此圖補下汶萊布尼茨手稿之不足。
同椿子按:萊布尼茨的思想,《易經》中聖人之四道或者邵雍的易學思想已經基本包括了。萊布尼茨發現他的二進位與中國古老的易經圖像不謀而合的時候,他嘆服、傾倒於中華文化,萊布尼茨說:「這張圖乃是現今世界上最古老的科學豐碑之一……已有幾千年時間不為人們所理解。」「如果未曾建立我的二進位算術的話,對伏羲圖哪怕研讀良久也未必能夠理解……這些結果超過了所有前人所擁有的。」「已有幾千年時間不為人們所理解」這個說法不正確,因為北宋的邵雍不但理解而且早已解決了萊布尼茨所沒有解決的問題。萊布尼茨在德國的際遇與邵雍在中國的際遇,有天壤之別。這就是本人轉帖此文的初衷。同時也可以看到中、西文化是車之兩輪、鳥之雙翼!
萊布尼茨是17世紀時著名的哲學家和數學家,在其他諸多領域亦成就非凡。他所著如密碼般的《數學筆記》,體現了他的微積分思想、方法和符號,雖然這小冊子從未公開發表。而本文作者史蒂芬·沃爾夫勒姆(Stephen Wolfram)是英國物理學家、數學家、軟體工程師和企業家,也是文中一再提到的數學軟體 Mathematica 和在線自動問答系統、被稱為知識型計算引擎的 Wolfram Alpha 的開發者。
多年來,我都對戈特弗裡德·萊布尼茨很感興趣,尤其是因為早在3個世紀以前,他就似乎想要製造一種類似Mathematica和Wolfram Alpha的工具,沒準還可能會寫本《一種新科學》。所以,在最近一次德國之旅中,我對能夠拜訪坐落在漢諾瓦的萊布尼茨文獻館感到興奮不已。
翻閱著他發黃的手稿(仍舊夠挺,經得起我觸碰),我試著想像他寫下這些篇章時的思緒,試圖將我在這裡看到的與3個世紀後我們所掌握的知識聯繫起來——這時,我感到了一種共鳴。
其中的一些記載,尤其是數學方面的,簡直超越了時間,比如說下圖中萊布尼茨寫下的收斂於√2的無窮級數(文字為拉丁文):
萊布尼茨寫下的收斂於√2的無窮級數
又例如下圖中,萊布尼茨試圖計算該連分數的值,儘管他的算法是錯誤的,但他仍把整個過程記錄了下來(其中的「Π」相當於等號的早期版本):
計算連分數的值,雖然算法錯了,但萊布尼茨仍然記錄下了整個過程。
再比方說下圖中對微積分的一點總結,幾乎能夠列入現代的教科書:
萊布尼茨對微積分的一點總結
但除此之外還有什麼?萊布尼茨的工作及思想的宏觀圖景又是怎樣的?
我一直都覺得萊布尼茨的形象有些令人難以捉摸。他做了很多看似迥然不同且毫不相關的事情——涉及了哲學、數學、神學、法學、物理學、歷史學,不一而足。而他用來描述自己工作的語言在我們今天看來又都是來自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進位
萊布尼茨明確地將他的計算機看作一個實用方面的項目。但他仍希望從中歸納出些許結論,例如一條可以用來描述機械聯動幾何學的普適「邏輯」。同時,他還思索了數與算術的本質。並且另闢蹊徑地想出了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個世紀後,萊布尼茨多少重要的遠見已經成為現實,縱然是以他永遠無法想像的方式。