作者:Stephen Wolfram
原文链接:George Boole: A 200-Year View
译者:赖信涛


今年的11月2日是乔治·布尔诞辰200周年纪念日。在现今的电子世界中,我们经常会听到一个叫“布尔”变量的词——只有两个值,1或0,TRUE或者FALSE——就是以他的名字命名的。有些人可能会想,“这是个多么无聊的发明啊!谁会有需求用到这种变量啊。”但历史总是惊人地相似,其实,布尔类型变量只是乔治布尔对逻辑学贡献的一个副产品。

乔治·布尔出名前,数学和逻辑学已单独发展了二百多年。他通过布尔代数这一概念,将两个学科结合在了一起。数理逻辑领域创建后,一系列新探索都被带动起来,例如通用计算。

乔治·布尔发明布尔变量最初的目标,是想通过一系列数学公理来重现经典逻辑的运算结果。他从研究经典代数开始,例如x,y变量,加减乘除这种。

一开始,他发现经典代数和逻辑的相似之处很多。例如,p and p(在这里,and表示“与”运算)和q and p是一样的,就像q*p = p*q。但是如果深入追究,就发现还是有所不同的。比如p*p=p^2,但是p and p还是p。这就存在歧义,乔治·布尔的想法是:仍然使用经典代数的符号,但是添加了一些额外的公理,就能表示出绝大多数逻辑学的结果了。

乔治·布尔用数学语言正式地描述了这套理论。但是几十年来,这些理论又不断被修正,从上个世纪的经验中,更加简单的形式逐渐被发现。之后,也就是16年前,Stephen Wolfram(即本文作者)结束了这漫长的进化历史。之前的工作已经证明了一套至简的公理体系是完全可行的,Stephen提出,其实只需要一条公理就够了。

Stephen认为这条公理相当简单,它暗示着数学和逻辑神秘的含义。根据乔治·布尔的理论,这条公理仅仅是他思想的一个最低版本:通过数学公理系统,加以类似代数的转换,可以计算出所有逻辑的结果。

乔治·布尔是何许人也?

那么乔治·布尔到底是谁呢?他有是如何做出这些成就的?

乔治·布尔于1815年,出生在英国的一个平静的小镇林肯郡,离伦敦大约有120英里。他的父亲热衷于科学和数学,做着一点鞋匠生意。乔治·布尔是一个自学奇才,14岁的时候,就凭在报纸上发表的希腊诗译作在当地小有名气。16岁时,被当地一所学校聘为教师,那时他已经开始读微积分的书了,并开始数理逻辑相关的工作。

乔治·布尔19岁时开始创业,在当地建了一所像模像样的小学,直到三十岁之前,都以此为生。他结识了一些剑桥牛津这样高学历的人,也去过职业学院(类似于现在的社区大学)。但是大多数情况下,他更喜欢自己看书自学。

他是一名认真的教师,宣讲有关各种认知和发现的重要性,不赞同死记硬背,并且以通俗的方法证明知识(例如数学)的实用性(如果他活在今天,一定会对计算机痴迷不已)。

乔治·布尔23岁的时候,开始发表有关数学的论文。早期的论文都是和当时的一些热点问题相关的,例如变分法。可能是他对教育的兴趣和探索,使他想要创造不同的公理。不久之后,他成了“操作演算”的先驱:通过操作符号,而不是明确的代数表达,来研究微积分。

不久之后,乔治·布尔就能和英国最著名的数学家讨论问题,并从中学习。他也考虑过是不是去剑桥拿个大学学位,但是得知他必须暂时停止自己的研究,去学习本科课程的时候,便放弃了这一想法。

逻辑的数学分析

逻辑学作为一个学科,有着古老的历史,亚里士多德之后被广为推广。中世纪之后,逻辑学教育成了死记硬背的典型,人们通过记忆特殊的符号和像 “bArbArA”、“cElArEnt”这种三段论来学习。在许多方面上,逻辑学并没有改变许多。19世纪人们致力于将逻辑学变得更正式化,但问题是不知道如何去做。也有人想,是不是可以用数学或者哲学的方法呢?

1847年,乔治·布尔的朋友Augustus de Morgan就此问题在学术上与别人起了冲突。这让乔治·布尔迅速开始这项工作,去论证他先前的想法:如果使用数学来表达逻辑。他的成果——The Mathematical Analysis of Logic(中译名《逻辑的数学分析》)——在同年发布。

此书不长,只有86页。但是很好地解释了乔治·布尔使用代数形式来表达逻辑的思想。在代数中可以使用变量,而不仅仅是简单的数字这一思想,起源于Hamilton在1843年四元数代数的发明,乔治·布尔也受此影响(1832年Galois在无限值和聚合领域也做过类似工作)。

乔治·布尔出现的150年之前,有个叫Gottfried Leibniz的人也尝试过用代数表达逻辑,但是没有什么成果。直到1847乔治·布尔成功以后,这个想法才又被人想起。

乔治·布尔的书在今天依然是非常易懂的。下面是一个例子,是展示他的代数公式是如何表达经典逻辑的结果的。

上面这段看起来非常直观。”And”用xy的乘法来表示,”not”用1-x表示,”or”用x+y-2xy表示。此外,还有像x^2=x这种额外的规则。但是如果仔细研究,这里面还是有问题的:x和y到底是什么呢?今天我们可以把它们叫做“布尔变量”,并且知道它们的值可以离散为1和0。但乔治·布尔再当时不是这么做的,他没有去从具体的离散或者非离散的值想,而且似乎是去讨论了代数表达式和方程,甚至用到了级数展开,来罗列所有逻辑变量值可能的组合。

思维规律(The Laws of Thought

乔治·布尔写第一本书的时候,仍然是一名教师,并且经营着一所学校。但是也因为在数学上的成就而远近闻名。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.乔治和玛丽育有五个女儿,她们都颇有成就,尤其在数学方面。

(译者注:乔治·布尔的后人中,知名人物还包括老大的儿女韩丁和寒春;老二儿子G.I. Taylor是流体动力学与波理论科学家;老三是四维几何重要贡献者;老四是英国第一位化学女教授;老五有个中国人更熟悉的名字伏尼契——《牛虻》的作者;布尔还有一位玄孙:Geoffrey E. Hinton——深度学习之父。 )

乔治·布尔的影响

说起来多少有些讽刺,乔治·布尔在逻辑方面的工作应该和代数、微积分和连续数学一样受到重视,但事实是没有。在乔治·布尔死后,他在逻辑方面的主要影响主要是数学化的概念和表达,就像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岁冥诞。

乔治·布尔二百周年:数理逻辑奠基者其人其事相关推荐

  1. 防伪热点:洪都拉斯推出钞票设计,暗示独立二百周年!

    话题标签:#防伪展##溯源展##防伪##溯源##防伪溯源##防伪溯源展##防伪技术展##防伪查询##二维码防伪##溯源系统##食品溯源##防伪系统##防伪码##防伪标##二维码防伪标签##防伪标志## ...

  2. 中国计算机学会青年精英大会,中国计算机学会YOCSEF二十周年庆典暨2018 CCF青年精英大会召开...

    网易科技讯5月27日,5月25-26日,中国计算机学会青年计算机科技论坛(CCF YOCSEF)二十周年庆典暨2018青年精英大会在北京辽宁大厦隆重举办.来自全国各地从事计算机相关的学术.技术.产业. ...

  3. 中文数字转换成阿拉伯数字(一千二百三十四万五千六百七十八-->12345678)

    昨天老大问我又没有写过中文数字转换成阿拉伯数字,我说没有,我说那应该简单啊,就是将中文对应的数字换成阿拉伯数字就好了啊,比如一就换成1,二就换成2-十换成10.可是那么问题来了- 一十二呢-不能是11 ...

  4. 腾讯二十周年:弱冠之礼 穷则思变

    腾讯二十周年:弱冠之礼 穷则思变 https://blog.csdn.net/LrS62520kV/article/details/84038908 文章经授权转载自iFeng科技(ID:ifeng_ ...

  5. 计算机网络 - 练习(二百三十三)

    计算机网络 练习(二百三十三) 以下关于入侵检测系统的描述中,正确的是(). A. 实现内外网隔离与访问控制 B. 对进出网络的信息进行实时的监测与比对,及时发现攻击行为 C. 隐藏内部网络拓扑 D. ...

  6. php随礼取数,同事结婚我随礼八百,我结婚他随礼二百,三天后收到他的微信楞了...

    职场上,同事结婚送请柬给你,是希望你能赏个薄面,能到场道声祝福. 当然,你也不能空手去,道过祝福递上红包,同事肯定高兴,和你的关系不用说又近一层. 话说回来,随礼讲究"礼尚往来", ...

  7. 网上二百多的打印机怎么样

    现在市面上的打印机是比较多的,各式各样型号的打印机都有,价格也高低不同,很多人在首次购买打印机时会选择一些价格相对比较便宜的打印机,网上二百多的打印机怎么样呢? 一分价钱一分货,价格相对比较便宜的打印 ...

  8. 二百多部软件著作中最重要的9224个英语单词

    superword是一个Java实现的英文单词分析软件,主要研究英语单词音近形似转化规律.前缀后缀规律.词之间的相似性规律等等. IT领域中和软件开发相关的249本电子书打包下载 ​CET4.CET6 ...

  9. 【Java二十周年】回忆我与Java的点点滴滴

    借Java二十周年之际,静下心来思考自己与Java的故事,屡屡思绪,记忆深处关于Java的点滴回忆便一层层铺展开来. 本科--我的Java"启蒙老师" 对于计算机这个口水颇多的专业 ...

最新文章

  1. 【百度地图API】如何制作班级地理通讯录?LBS通讯录
  2. IOS NSInvocation应用与理解
  3. spark mllib源码分析之DecisionTree与GBDT
  4. SVG 动画实现弹性的页面元素效果
  5. 我的Git使用-资料查询,名博笔记
  6. 应用程序错误 应用程序发生异常w3wp.exe
  7. 一个简单demo通过em实现‘响应式设计、em、文字图标svg’
  8. C++11 显示类型转换
  9. matlab2c使用c++实现matlab函数系列教程-expstat函数
  10. oracle获取当前年上一年时间,Oracle获取一年中的所有日期和一个月中的所有日期...
  11. fme csmapreprojector转换器使用高程异常模型进行高程基准转换
  12. 豆瓣app签名sig
  13. htcd816+android密码,详细的HTC Desire 816解锁教程
  14. 平面设计职业生涯规划
  15. linux服务器硬盘检测,Linux服务器硬盘坏道检测
  16. 微信小程序手机号-springboot
  17. 微信小程序代码大于2M的一种解决方法
  18. DAO、DTO、PO、POJO、BO、VO、AO基本概念
  19. 《Java SE实战指南》13-07:final修饰符
  20. Ubuntu16.04安装Redshift色温调节工具

热门文章

  1. 哈佛结构冯·诺依曼结构
  2. python爬虫:批量刷新网页
  3. 转型 细分 新篇章——2018锐捷睿易全国合作伙伴大会
  4. 如何用火狐浏览器firefox模拟手机浏览器客户端
  5. zookeeper学习笔记(一)--快速入门与集群部署
  6. SpreadJS 表格控件相关基础知识
  7. 高等组合学笔记(三): 间隔排列,投票问题,圈集排列组合与生成函数简介
  8. 扎堆涌入“慢病管理”赛区,互联网医疗们看见了怎样的未来?
  9. c语言五一快乐源码,快乐“五一”
  10. php采集一言代码_php抓取一言数据