天天看點

喬治·布爾二百周年:數理邏輯奠基者其人其事

今年的11月2日是喬治·布爾誕辰200周年紀念日。在現今的電子世界中,我們經常會聽到一個叫“布爾”變量的詞——隻有兩個值,1或0,true或者false——就是以他的名字命名的。有些人可能會想,“這是個多麼無聊的發明啊!誰會有需求用到這種變量啊。”但曆史總是驚人地相似,其實,布爾類型變量隻是喬治布爾對邏輯學貢獻的一個副産品。

喬治·布爾出名前,數學和邏輯學已單獨發展了二百多年。他通過布爾代數這一概念,将兩個學科結合在了一起。數理邏輯領域建立後,一系列新探索都被帶動起來,例如通用計算。

喬治·布爾發明布爾變量最初的目标,是想通過一系列數學公理來重制經典邏輯的運算結果。他從研究經典代數開始,例如x,y變量,加減乘除這種。

一開始,他發現經典代數和邏輯的相似之處很多。例如,<code>p and p</code>(在這裡,and表示“與”運算)和<code>q and p</code>是一樣的,就像<code>q*p = p*q</code>。但是如果深入追究,就發現還是有所不同的。比如<code>p*p=p^2</code>,但是<code>p and p</code>還是p。這就存在歧義,喬治·布爾的想法是:仍然使用經典代數的符号,但是添加了一些額外的公理,就能表示出絕大多數邏輯學的結果了。

喬治·布爾用數學語言正式地描述了這套理論。但是幾十年來,這些理論又不斷被修正,從上個世紀的經驗中,更加簡單的形式逐漸被發現。之後,也就是16年前,stephen wolfram(即本文作者)結束了這漫長的進化曆史。之前的工作已經證明了一套至簡的公理體系是完全可行的,stephen提出,其實隻需要一條公理就夠了。

喬治·布爾二百周年:數理邏輯奠基者其人其事

stephen認為這條公理相當簡單,它暗示着數學和邏輯神秘的含義。根據喬治·布爾的理論,這條公理僅僅是他思想的一個最低版本:通過數學公理系統,加以類似代數的轉換,可以計算出所有邏輯的結果。

那麼喬治·布爾到底是誰呢?他有是如何做出這些成就的?

喬治·布爾于1815年,出生在英國的一個平靜的小鎮林肯郡,離倫敦大約有120英裡。他的父親熱衷于科學和數學,做着一點鞋匠生意。喬治·布爾是一個自學奇才,14歲的時候,就憑在報紙上發表的希臘詩譯作在當地小有名氣。16歲時,被當地一所學校聘為教師,那時他已經開始讀微積分的書了,并開始數理邏輯相關的工作。

喬治·布爾19歲時開始創業,在當地建了一所像模像樣的國小,直到三十歲之前,都以此為生。他結識了一些劍橋牛津這樣高學曆的人,也去過職業學院(類似于現在的社群大學)。但是大多數情況下,他更喜歡自己看書自學。

他是一名認真的教師,宣講有關各種認知和發現的重要性,不贊同死記硬背,并且以通俗的方法證明知識(例如數學)的實用性(如果他活在今天,一定會對計算機癡迷不已)。

喬治·布爾23歲的時候,開始發表有關數學的論文。早期的論文都是和當時的一些熱點問題相關的,例如變分法。可能是他對教育的興趣和探索,使他想要創造不同的公理。不久之後,他成了“操作演算”的先驅:通過操作符号,而不是明确的代數表達,來研究微積分。

不久之後,喬治·布爾就能和英國最著名的數學家讨論問題,并從中學習。他也考慮過是不是去劍橋拿個大學學位,但是得知他必須暫時停止自己的研究,去學習大學課程的時候,便放棄了這一想法。

邏輯學作為一個學科,有着古老的曆史,亞裡士多德之後被廣為推廣。中世紀之後,邏輯學教育成了死記硬背的典型,人們通過記憶特殊的符号和像 “barbara”、“celarent”這種三段論來學習。在許多方面上,邏輯學并沒有改變許多。19世紀人們緻力于将邏輯學變得更正式化,但問題是不知道如何去做。也有人想,是不是可以用數學或者哲學的方法呢?

喬治·布爾二百周年:數理邏輯奠基者其人其事

此書不長,隻有86頁。但是很好地解釋了喬治·布爾使用代數形式來表達邏輯的思想。在代數中可以使用變量,而不僅僅是簡單的數字這一思想,起源于hamilton在1843年四元數代數的發明,喬治·布爾也受此影響(1832年galois在無限值和聚合領域也做過類似工作)。

喬治·布爾出現的150年之前,有個叫gottfried leibniz的人也嘗試過用代數表達邏輯,但是沒有什麼成果。直到1847喬治·布爾成功以後,這個想法才又被人想起。

喬治·布爾的書在今天依然是非常易懂的。下面是一個例子,是展示他的代數公式是如何表達經典邏輯的結果的。

喬治·布爾二百周年:數理邏輯奠基者其人其事
喬治·布爾二百周年:數理邏輯奠基者其人其事

上面這段看起來非常直覺。”and”用xy的乘法來表示,”not”用<code>1-x</code>表示,”or”用<code>x+y-2xy</code>表示。此外,還有像<code>x^2=x</code>這種額外的規則。但是如果仔細研究,這裡面還是有問題的:x和y到底是什麼呢?今天我們可以把它們叫做“布爾變量”,并且知道它們的值可以離散為1和0。但喬治·布爾再當時不是這麼做的,他沒有去從具體的離散或者非離散的值想,而且似乎是去讨論了代數表達式和方程,甚至用到了級數展開,來羅列所有邏輯變量值可能的組合。

喬治·布爾寫第一本書的時候,仍然是一名教師,并且經營着一所學校。但是也因為在數學上的成就而遠近聞名。1849年,女王大學,科克大學在愛爾蘭建立的時候,喬治·布爾第一個被聘為數學教授。在科克大學任教時,他開始寫那本最著名的書——《思維規律的探索》(an investigation of the laws of thought).

喬治·布爾二百周年:數理邏輯奠基者其人其事

此書的序言是這麼寫的:“本書論述的是,探索心智推理的基本規律;用微積分的符号語言進行表達,并在此基礎上建立邏輯和建構方法的科學……”

喬治·布爾意思到自己在試圖建立“思維科學”的微積分,就像牛頓将微積分應用到實體上那樣。但是牛頓已經有空間和時間的概念可以依靠,以說明自己的微積分結構。喬治布爾必須從一個思維如何工作的基本模型上開始,毫無疑問,就是邏輯。

an investigation of the laws of thought 第一部分是對喬治·布爾早期著作的一些概括,但是提供了額外的示例——比如有一章就是關于上帝是否存在及其性格的邏輯證明。書的第二部分在數學方面更加傳統。他沒有談和邏輯有關的代數值的問題,轉而用機率方面的傳統數學來解釋。這樣就表明,組合事件的機率結構,同樣适用于組合邏輯語句的規律。

這本書的大部分,都是數學方面的内容,用着抽象的定義,和正規的結論。但是在最後一個章節,喬治·布爾試圖将經驗性的問題和他的工作聯系起來,研究思維的過程。他讨論了自由意志可以如何和思維規律和平共處、含糊的人類經驗如何得出精确的概念、是否有人類可以辨認出,但是數學永遠無法企及的真理、對人類思維的了解如何作用于教育等等。

出版《思維規律》之後,喬治·布爾依然留在科克大學生活工作。1864年,患肺炎去世,享年49歲。期間也陸續再寬泛的數學領域發表論文,但再也沒發任何和邏輯有關的東西。也可能是他有意為之。

在他的有生之年,喬治·布爾的數學成就獲得的贊譽比邏輯方面要多。他還寫過兩本教材,一本是微分方程,出版于1859年,一本是差分方程,出版于1860年。兩本都簡潔優雅,深入淺出。有趣的是,盡管後來在微分方程方面有無數可以替代的書籍,但是差分方程幾乎無可替代。當我們在90年代用數學實作時,喬治·布爾的書仍是重要參考,尤其是其在差分計算方面的典型事例。

喬治·布爾生活中是怎樣一個人呢?關于這一方面的資訊不少,有他妻子寫的作品,還有他姐姐整理的他的信件和回憶錄。認識他的人無一不說他嚴謹、條理,并極其認真。喬治·布爾非常努力,經常工作到深夜。将所有精力都放在事業上,以至于他經常看起來恍恍惚惚。他是個優秀的老師,也是個出色的講者,雖然闆書潦草無法辨認。他社交甚廣,待人寬厚,造訪過很多不同的人,去過很多地方。喬治·布爾在管理方面也很出色,無論是自己的學校,還是科克大學。他有強烈的正義感,不喜歡吵架,但是需要捍衛自己尊嚴的時候,也毫不含糊。

喬治·布爾認為自己是一個自學成才的老師,而不是什麼學術精英。可能這帶給他一些冒險意識,無論改造微積分還是添加代數公理,他總能相信自己的直覺,勇往直前。

喬治·布爾一生的大部分時光都是孤身一人,直到40歲的時候才結婚。他的妻子瑪麗·埃佛勒斯·布爾(女權主義哲學家,譯注),比他小17歲,在喬治·布爾逝世52年之後去世。關于她争取自己的權利有一個有趣的故事,後來瑪麗将其寫成了書——philosophy and fun of algebra, logic taught by love, the preparation of the child for science and the message of psychic science to the world.喬治和瑪麗育有五個女兒,她們都頗有成就,尤其在數學方面。

說起來多少有些諷刺,喬治·布爾在邏輯方面的工作應該和代數、微積分和連續數學一樣受到重視,但事實是沒有。在喬治·布爾死後,他在邏輯方面的主要影響主要是數學化的概念和表達,就像frege、 peano、 hilbert、 whitehead、 russell、 eventually gödel 和 turing這些人一樣。隻有在1937年香農交換網絡問世時,布爾代數才被應用到實際目的中。

今天,數學和wolfram語言(此語言作者即為本文作者)裡用到了很多布爾代數計算。事實上,喬治·布爾是名字用作系統功能名次數(15)最多的人。

然而讓“布爾(bool)”這個名字如此廣為人知的不是布爾代數,而是布爾變量。20實際50年代之後,基本上每一種程式設計語言都有布爾類型,使得“boolean”一詞廣為流傳。

喬治·布爾二百周年:數理邏輯奠基者其人其事

這是必然的嗎?從某種意義上說,是的。回望曆史,所有的東西都有向着足夠簡單的趨勢發展,然後得到廣泛應用。及時一開始時是非常複雜的,後來才慢慢變得簡單。事情往往都是這樣,某一時刻有了關于某種技術的想法,然後憑着好奇心慢慢深入。

也可能,所有的量都可以轉換為簡單、正确的枚舉。今天,有一些已經被實作了,有一些還沒有。但是這幾個世紀以來,喬治·布爾和布爾變量的故事為這種可能,以及如何從晦澀難懂到無所不能提供了榜樣。

本文作者stephen wolfram是實體學家、數學家、軟體工程師和企業家;數學軟體mathematica的發明者之一;計算型知識引擎wolfram alpha設計者;wolfram語言作者;沃爾夫勒姆研究公司的創立者和首席執行官;學術上以粒子實體學、元胞自動機、宇宙學、複雜性理論、計算機代數系統上的研究成果聞名于世。

2015年11月2日,google更改其首頁的标志以紀念喬治·布爾200歲冥誕。

原文釋出時間為:2015-11-12

本文來自雲栖社群合作夥伴“大資料文摘”,了解相關資訊可以關注“bigdatadigest”微信公衆号