分享

计算机基本原理—数学和逻辑

 罗宋汤的味道 2019-12-24

在古埃及、古巴比伦、古印度和古代中国,数学是一门实用技术,被用于计算数量、几何长度、面积和体积。古希腊人从古埃及、古巴比伦和古印度学习了那时所有的数学知识。他们出于对逻辑的嗜好与擅长,用逻辑对数学知识进行了演绎推理和证明。至今初中生学习的诸如“因为┄┄,所以┄┄”这类范式的数学证明题,就是古希腊人发明的。

古希腊以后的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

所以,阉割过的灰色母猫符合我的要求。

这个例子说明布尔代数是如何帮人们做出逻辑判断的。读者也许会说:“这样做并不容易嘛!”。是的,用手算确实比较麻烦。但是请读者想一想,假如你面对的是由成百上千集合,通过成百上千运算符组成的逻辑关系,用布尔代数运算,至少可以获得正确的逻辑判断。如果哲学家仅凭聪明的脑袋,估计弄错的可能性极大。再来,一旦让机器(比如计算机)掌握了布尔代数,情况可就大不一样啦,人们只要事先按照逻辑关系设置好机器,就可以非常非常快地完成逻辑判断。

布尔本人有没有意识到他发明的意义呢?让我们看看布尔那两本伟大著作的名称:《逻辑的数学分析,论演绎推理的运算》、《建立在逻辑和概率数学理论基础上的思想规律研究》。每当我看到他这么野心勃勃、甚至异想天开的书名,就会情不自禁地喟叹:“布尔的思想具有多么深邃的穿透力呵!他有可能预料到了人工智能。”

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多