金沙棋牌|手机版官网

导航切换

联系电话:
021-66889888     1399998888

金沙棋牌|手机版官网

金沙棋牌|手机版官网

科学网「离散数学」是一门什么样的学科

作者: 澳门金沙 来源: 澳门金沙   日期:2020-07-10 17:32

写这篇文章的动机是想探讨从离散数学开始入门数理逻辑的路径以及离散数学与数理逻辑之间的关系。以学习数理逻辑为目的学习离散数学,而一般的以学习计算机为目的的学习还是有相当的不同,最大的不同就是:以数理逻辑为目的的学习,应当以「证明」 — — 形式证明为目的,这其中包括了关于形式证明的理论 — — 一阶理论的句法和语义,以及关于形式证明的实践 — — 证明框架和策略。学习的中心内容有两个:「语言」 — — 「 一阶语言」;「结构」 — — 数学中关于「结构」的思想、概念、种类、实例以及「结构」和「语言」的关系。

一、离散数学是一门什么样的学科?

与数学的主流分支不同,离散数学看上去似乎没有一个确定的中心话题,内容很庞杂。我曾做过一个粗略的统计,离散数学的内容涉及大约43个左右大大小小不同的话题,从集合、函数、关系、命题逻辑、谓词逻辑,到算法、计数、数据结构、递归、图论、概率、数论、形式语言与自动机,布尔代数、向量与矩阵,线性规划、抽象代数,编码理论、信息论,博弈论、运筹学、理论计算机科学等,真是那句俗话,XXXX是个筐,什么都可以往里装。由于离散数学的内容包括面很广,一本通常意义上的教科书不可能全部涵盖,因此我们看到的教科书基本是上述内容集合的不同子集。

那么到底应当如何定义「离散数学」这门学科呢?如果我们使用集合的语言表达就是:

(1)离散数学 = {x∈数学 | 离散结构(x)}

其中,「离散数学」是「数学」的一个子集,「离散结构」是一个谓词,x代表任意数学学科。

现在来详细考察一下这个「离散数学」的定义式。我们的考察,从为什么会出现这样一个学科开始。

首先,离散数学和其它数学分支不同,它并没有开辟数学的新领域,而是在既有的数学领域划出一个范围,以「离散结构」这个性质为标准,若某个数学内容具有「离散结构」的属性就划入。

那为什么会出现「离散数学」这门学科呢?回答是 — — 是因为计算机的出现!!!因为计算机只能处理「离散」对象。生活中「离散」对象和「连续」对象的例子是大米和水,前者是离散的,后者是连续的,因为米粒是可列举的、可数的,英语属于可数名词,中文可以用单位量词「粒」等表示,水是无法列举的、也是不可数的,因而在英语中属于不可数名词,中文则不可直接用单位量词表示。形象地说,计算机可以处理像米粒这样的离散对象而无法直接处理像水这样的连续对象。

例如,我们在计算机屏幕上看到一条光滑的曲线。按照微积分定义,一条光滑曲线在某个区间一定是连续的,因而一定可以找到区间内任意一点的极限。换句话说,在这个区间内你是无法确定一个离散点的确切位置的,因为在这个区间内,所有的点都是无穷小,而这些无穷小的点的数量是无穷多。但是在计算机的屏幕上就不是那么回事了,一条曲线无论看上去多么精细、平滑,一定是由一组固定的、确定的、有限数量的「点」(像素)构成的,否则要是按照极限定义,那条曲线是永远画不出来的。也就是说,如果我们要在计算机上处理、表达连续性数据,必须先要把它「离散化」 — — 把无穷小量变成有固定、确定的数值,把连续变成可列举的、把无穷数量的元素转换成有限数量的元素。仍然拿「水」作例子,我们需要把「水」这个连续对象变成像「水滴」这样的离散对象。

如果你是个程序员,那我们把上述的思想变成一个编程任务:在一个实数直角坐标系的闭区间[a, b]上定义一条处处连续的曲线,你的任务是写一段代码,列举该区间内所有点的坐标值,亦即,列举下列集合的所有元素

(2){(x, y)∈ R²| 2 ≤ x ≤ 3 ∧ y ∈ R }

你将如何做呢?当然是先确定一个循环,从实数2.0到实数3.0。然后找到递增的台阶。这时你遇到了麻烦,下一个点是什么?为什么?当你脑子里冒出「下一个」的念头时,你已经输了,因为根据极限定义连续曲线根本就没有「下一个」这个概念,因为我永远可以在你设定的「下一个」之前找到离当前数更近的「下一个」使得你定义的那个「下一个」不再是「下一个」。为什么你会有「下一个」这样的概念,是因为计算机给你「洗脑」了。

你编写这段代码的下一个困难是不知道这个循环什么时候结束,因为在[2,3]区间内,有无穷多个实数,换句话说,你的这个循环体永远不会结束。你的幸运在于你所给定的实数区间是闭区间,如果是开区间,你连从哪里开始到哪里结束都无法确定,理由一样,我永远可以找到一个比你设定的开始的那个实数更靠近2.0、比你设定的结束的那个实数更靠近3.0的实数。这个任务是无法完成的,因为这不是一个「可计算的」任务。问题的根源,就在于「离散」与「连续」的矛盾 — — 你试图用离散的手段解决连续的问题,用有穷的方法解决无穷的问题;其中「无穷」(无穷小量与无穷大的个数)这个概念是阻碍你解决这个问题的「元凶」。