为计算机发明奠定基础的《思想法则》出版150周年:什么是布尔逻辑/布尔代数? - maa


这本书为一个世纪后的计算机发明奠定了基础,乔治·布尔(George Boole)的《思想法则》(The Laws of Thought)于1854年首次出版。使用术语“布尔逻辑”或“布尔代数”表示使用“与”,“或”和“非”运算的思想组合,以及我们使用术语“布尔搜索”表示涉及键组合的数据库或Web搜索使用AND,OR和NOT的单词。(事实表明布尔的影响力是无处不在的。)
布尔的书以这些词开头:
以下论文的目的是研究进行推理的思维活动的基本规律。用微积分的符号语言表达他们,并在此基础上建立逻辑科学并构建其方法。
布尔的“
微积分的符号语言”意思是指代数,使用x,y,z,p,q,r等代数符号来表示未知的单词,短语或命题。古代希腊的逻辑学家做了很多事情。(banq注:这是古希腊文明在四大文明中的独特之处)
布尔谈论的是使用高中代数学习的全部知识,进行加法和乘法以及使用求解方程的方法。布尔的代数需要表达一种象征性的思想语言。用这种符号语言求解方程式不会得出数值答案;它会给出逻辑上的结论。他的代数将成为思想的代数。
 
即使在今天,在二十一世纪,当我们熟悉计算机(布尔型逻辑代数的直接后代“思维机”)时,写下描述我们思维方式的代数方程式似乎也是一个大胆的想法。是什么促使布尔提出了这样的事情,为什么他认为这可能会成功?
 
乔治·布尔(George Boole)于1815年出生于英国。尽管全世界都将他视为数学家-的确,他是有史以来最有影响力的数学家之一-但他在数学和心理学之间有着共同的兴趣。如果他今天还活着,他无疑将自己称为认知科学家,这个术语最早于1950年代初使用。他主要是自学成才,可能是因为没有老师带领他从事这种看似荒谬的想法,这使他能够寻求借助代数的思维方式。他才华横溢的标志是他取得了如此成功。
 
布尔Boole于1847年首次在名为《逻辑的数学分析》的小手册中发表了他的思想代数描述本手册内容的最简单方法是在开头部分引用。
熟悉符号代数理论的现状的人们知道,分析过程的有效性并不取决于所使用符号的解释,而仅取决于它们组合的定律。每个不影响假定关系真相的解释系统都是可以接受的,因此,在一个解释方案下,相同的过程可以代表一个关于数字性质的问题的解决方案,在另一个解释方案下,几何问题,第三,动力学或光学问题。...基于这一一般原则,我打算建立逻辑微积分...
值得再次阅读以上文章。布尔使每个单词都变得很重要。
 
由于他新的逻辑代数,布尔于1849年被任命为新成立的科克大学学院数学系主任。他在爱尔兰定居后,就开始着手撰写有关他的新理论的更大著作。他特别热衷于确保自己的数学确实能捕捉到心理活动的规律,为此,他花了大量时间阅读心理学文献,并使自己熟悉哲学家对思想和逻辑的看法。
 
他用自己的钱和朋友的钱在1854年出版了他的第二本更重要的书。该书的全书是《关于逻辑和概率数学理论的思想定律的调查》。但通常将其更简单地称为“思想定律”。总的来说,1854年的书和1847年的早期小册子之间唯一的实质区别是使用他的新代数框架增加了对概率的处理。逻辑本身基本上没有改变。
 
布尔的想法是试图将逻辑思想简化为方程式的求解:自从德国数学家戈特弗里德·莱布尼兹(Gottfried Leibniz)在17世纪试图做到这一点以来,这就是一个逻辑的圣杯。莱布尼兹(Leibniz)尝试开发“概念代数”,其中代数符号表示概念,例如大,红色,男人,女人,独角兽, 但他取得的成功有限。
 
布尔希望他的代数包含亚里士多德对人类推理的所有见解(著名的希腊语“所有人都是凡人”三段论)以及斯多葛派的命题逻辑(现在我们称为命题演算)。他用符号x,y,z 等表示对象的任意集合。例如,所有人员的集合,所有凡人的集合,所有银行家的集合或所有自然数的集合。然后,他展示了如何使用表示集合的符号进行代数运算(写下并求解方程式),其方式与执行逻辑推论相对应。
 
为了能够写下并求解涉及集合的代数方程式,布尔必须定义将两个集合相加和相乘的含义。由于他的代数旨在捕捉逻辑思维的某些模式,因此他对加法和乘法的定义必须与一些基本的思维过程相对应。此外,如果他可以定义加法和乘法,使得它们具有许多熟悉的性质,即数字具有加法和乘法的功能,那么做代数会更容易,这使得他的新思想代数类似于每个人都习惯的代数。
这是他的所作所为。鉴于集合X和 Y,布尔表示对象的公共集合的两个XŸ 由XY。 例如,如果x是所有德国人的集合,而y是所有水手的集合,则xy是所有德国水手的集合。
 
布尔对加法的定义比它所需要的要复杂得多,因此当时的其他数学家将其修改为以下简单的思想:x + y 是x或 y 或两者中的对象的集合。例如,如果x 是所有红色笔的集合,而y 是所有蓝色笔的集合,则x + y 是所有红色或蓝色的笔的集合。
通过乘法和加法的这些定义,布尔系统具有以下特性:

x + y = y + x
X ÿ = ÿ X
x +(y + z)=(x + y)+ z
x(y z)=(x y)z
x(y + z)= x y + x z

这些方程对于普通算术应该很熟悉,其中字母表示数字。它们是两个交换律,两个关联律和分配律。由于布尔的集合代数与普通算术之间的相似性,因此布尔能够在其系统中执行计算,即诸如求解方程之类的代数操作。但是,在布尔系统中求解方程式不等于算术,而是对应于……的逻辑推理……好吧,无论符号是什么意思:男人,女人,独角兽,准备晚餐的东西等。方程不一定是做出人为决定的最佳方法。但关键是逻辑思维模式可以 用代数表示。这将使您在现实生活中走多远,这是后代必须解决的问题。
 
布尔系统与普通代数之间还有其他相似之处。例如,在普通算术中,数字0是特殊的:将0加到任何数字都会使数字保持不变。为了使他的代数起作用,布尔也需要一个零。他通过将0设为空集合来获得它。
具有0的一个优点是,它提供了一种写出不存在各种事物的代数方程的方法。例如,在布尔的代数中,我们可以通过让x为所有独角兽的集合并写下等式x = 0来表达独角兽不存在的事实。
将0定义为空集合,符号0在Boole的集合代数中具有与普通代数相同的特殊属性:

x + 0 = x
x 0 = 0

对于任何集合x。
尽管布尔的代数具有普通代数的许多特性,但并不完全相同。布尔确实确实需要使用一种奇怪的新型代数。例如,在布尔的代数中,以下两个方程是正确的:
x + x = x
x x = x

这些方程对于普通算术当然不是正确的。
 
顺便说一下,今天的数学家将公理系统称为“布尔代数”不是由于布尔。相反,它是由其他数学家基于布尔的原始工作开发的。
 
通过减少进行代数的推理,布尔实现了构建推理机的可能性。即使在今天,也很难想象有任何一种机械或(如今的)电子机器能够推理出人们对当地政治的看法。一台机器可能对当地政府有什么了解?另一方面,即使在布尔时代,似乎也有可能制造出一种可以根据一些通用规则来操纵代数符号的机器。

实际上,布尔提出的用于处理代数表达式和求解系统方程式的规则具有足够的机械性,以至于英国逻辑学家威廉姆·斯坦利·杰文斯(WS Jevons)能够使用它们来构建机械推理机,并于1870年向皇家学会展示了这一点。毫不奇怪,鉴于当时流行的技术,Jevons的设备就像老式的机械收银机一样,在全世界范围内寻找。但是,尽管它具有过时的外观,但作为逻辑的实现,却是现代电子计算机的令人惊叹的早期祖先。
 
从本质上讲,今天的电子计算机只是布尔代数思想中硅的一种实现,电子流执行布尔的代数运算。您可以在描述计算机工作方式的书中阅读“或”门和“与”门,它们直接对应于布尔的加法和乘法代数运算。在上个月的专栏中,我描述了数学家约翰·冯·诺伊曼(John von Neumann)如何在1950年代初期第一台电子计算机的设计中发挥关键作用。一百年前,乔治·布尔的理论工作为冯·诺依曼和他的同事们引领了当今的计算机时代奠定了基础。