在古埃及、古巴比伦、古印度和古代中国,数学是一门实用技术,被用于计算数量、几何长度、面积和体积。古希腊人从古埃及、古巴比伦和古印度学习了那时所有的数学知识。他们出于对逻辑的嗜好与擅长,用逻辑对数学知识进行了演绎推理和证明。至今初中生学习的诸如“因为┄┄,所以┄┄”这类范式的数学证明题,就是古希腊人发明的。 古希腊以后的2000多年,逻辑一直是数学证明的工具,或者说是数学的基石。但是,数学与逻辑仍然是两门不同的学问。仅仅从数学的完美性角度出发,将逻辑纳入数学,应该是极具诱惑力的想法,因而一直有学者试图用符号和数学运算来表示逻辑,完成逻辑推理,但都不太成功。 直到乔治.布尔才取得了决定性的突破。 布尔的父亲是鞋匠,母亲曾经是女仆。英国当时森严的等级制度使小布尔没有受到好的教育。但是,他靠自身强烈的求知欲和父亲的帮助(其父对科学、数学和文学都有浓厚的兴趣),布尔自学了上层阶级男孩才能学到的拉丁文、希腊语和数学。由于在数学学术刊物上发表过论文,1849年他被任命为爱尔兰Cork市皇后大学数学系的首席教授。 布尔发明了一种与传统代数相似的代数——布尔代数。 图1是一道传统代数题。 图1 一道传统代数题 在传统代数中,以字母(x、y)表示未知数,用运算符(+、-、x、/)、等于号(=)和数字组成代数方程,遵循运算规则,就可以得到答案。 在布尔代数中,用字母代表集合,仍然用运算符、等于号和数字组成方程,只不过布尔代数运算符的含义与传统代数不同。 在布尔代数中,运算符“+”意味着两个集合合并,如图2所示:A集合用红色圆圈表示,B集合用蓝色圆圈表示,A+B就是A集合与B集合的合并,图中用绿色表示。 图2 算符“+”示意 在布尔代数中,运算符“X”意味着两个集合的交集,如图3所示:A集合用红色圆圈表示,B集合用蓝色圆圈表示,A X B就是A集合与B集合的交集,图中用绿色表示。 图3 运算符“X”示意 布尔代数的运算规则多数与传统代数相同。不同的有以下几条: 1,表示全部集合; 0,表示空集; 1 – A, 表示排除了A以后的集合,即非A集合; 1 + A = 1, 全部集合与A集合的并集还是全部集合; A x (1 – A)= 0,这是矛盾律,即A集合与非A集合的交集是空集,它表明一个事物不能同时是它自己和它自己的反面; A x A = A, A集合与A集合的交集仍然是A集合; A + A = A, A集合与A集合的并集仍然是A集合; 布尔代数只有两个数,分别是:true(真)和false(假)。 图4是十进制运算表,是小学一年级学生必须熟记得。 图4 十进制运算表 图5是布尔代数运算表,对比十进制运算,布尔代数具有一种惊人的简洁美。 图5 布尔代数运算表 布尔曾经是小学老师,他在教小孩子记住十进制运算表时一定被虐心过。或许这也是他发明布尔代数的动机之一。 我们现在来看看,布尔代数如何进行逻辑推理运算。首先考虑一个著名的亚里士多德三段论逻辑推理: 所有人都是要死的; 苏格拉底是人。 因此苏格拉底是要死的。 用P代表所有人的集合,用D代表所有要死的东西的集合(包括人、猫、狗、树等等一切生命体),用S代表苏格拉底,依题意: P X D = P 这个表达式意味着“所有人是要死的”。如图7所示,所有人是都要死的相当于所有人的集合P包含在要死的东西的集合D里面,因此,交集运算就如上式。 图6 “所有人是要死的”示意 苏格拉底是人的集合表达式: S x P = S 就是说苏格拉底(S集合)包含在所有人(集合P)里面。布尔运算如下: 运算结果:S X D = S 意味着“格拉底集合包含在要死的东西集合里面”,因此,苏格拉底是要死的。 假如布尔代数只能解决如此小儿科的问题,那么就不会是伟大的发明了。下面举一个略难的问题。 设: M代表公猫 F代表母猫 W代表白猫 Y代表黄猫 B代表黑猫 O代表其它所有颜色的猫 N代表被阉割过的猫 U代表有生殖能力的猫 假如你对宠物店的店员说:“我要买一只猫,一只阉割过的公猫,白色或黄色的均可;或者要一只阉割过的母猫,除了白色,其它颜色均可;或者只要是只黑猫,我也要。” 店员对你说:“看来您想要的猫是下面的式子表示的集合中的一只: 对吗?”你回答:“是的,完全正确!” 开始,店员拿出一只有生殖能力的黄色公猫,你将这只猫代入以上式子运算,结果如下: 因此,上式成为: (Ture x False x(False + Ture) + (False x False x(1 – False))+ False =(False x(False + Ture))+(False x(1 – False))+ False =(False x False + False x Ture)+(False x 1 – False x False)+False = False + False +False = False 所以,有生殖能力的黄色公猫不符合我的要求。 接着,店员又拿出一只阉割过的灰色母猫,你再将其代入表达式运算,结果如下: (False x Ture x (False + False))+ ( Ture x Ture x Ture)+ False =(False + False)+ Ture + False = False + Ture +False = Ture + False = Ture 所以,阉割过的灰色母猫符合我的要求。 这个例子说明布尔代数是如何帮人们做出逻辑判断的。读者也许会说:“这样做并不容易嘛!”。是的,用手算确实比较麻烦。但是请读者想一想,假如你面对的是由成百上千集合,通过成百上千运算符组成的逻辑关系,用布尔代数运算,至少可以获得正确的逻辑判断。如果哲学家仅凭聪明的脑袋,估计弄错的可能性极大。再来,一旦让机器(比如计算机)掌握了布尔代数,情况可就大不一样啦,人们只要事先按照逻辑关系设置好机器,就可以非常非常快地完成逻辑判断。 布尔本人有没有意识到他发明的意义呢?让我们看看布尔那两本伟大著作的名称:《逻辑的数学分析,论演绎推理的运算》、《建立在逻辑和概率数学理论基础上的思想规律研究》。每当我看到他这么野心勃勃、甚至异想天开的书名,就会情不自禁地喟叹:“布尔的思想具有多么深邃的穿透力呵!他有可能预料到了人工智能。” |
|