离散数学在计算机科学中的应用

简介: 上周末晚上在家中学习,作题《计算机数学》。 集合,交,并,补在上大学那时《高等数学》《概率》《线性代数》时都接触过,现在还是比较方便上手的。 转摘一篇离散数学在计算机当中的作用,指导自己学习的方向。

上周末晚上在家中学习,作题《计算机数学》。

集合,交,并,补在上大学那时《高等数学》《概率》《线性代数》时都接触过,现在还是比较方便上手的。

转摘一篇离散数学在计算机当中的作用,指导自己学习的方向。

~~~~~~~

【摘要】离散数学是计算机科学基础理论的核心,本文介绍了离散数学在人工智能、数据结构、数据库等方面的应用,显示了离散数学在计算机科学中的重要性。
  【关键词】人工智能 二叉树的遍历 数据库
  
  
  1 引言
  离散数学是计算机专业的核心基础课,它在计算机科学中有着重要的应用。它是计算机专业课《数据结构》《操作系统》《编译原理》、《数据库系统原理》和《数字逻辑》等课的必备基础,因此离散数学是掌握计算机科学理论基础的重要数学工具。本文正是从这一角度出发,介绍离散数学在计算机科学中的重要应用。
  
  2 离散数学在计算机学科中的应用
  2.1 数理逻辑在人工智能中的应用
  人工智能是计算机学科中一个非常重要的方向,离散数学在人工智能中的应用主要是数理逻辑部分在人工智能中的应用。数理逻辑包括命题逻辑和谓词逻辑,命题逻辑就是研究以命题为单位进行前提与结论之间的推理,而谓词逻辑就是研究句子内在的联系。大家都知道,人工智能共有两个流派,连接主义流派和符号主义流派。其中在符号主义流派里,他们认为现实世界的各种事物可以用符号的形式表示出来,其中最主要的就是人类的自然语言可以用符号进行表示。语言的符号化就是数理逻辑研究的基本内容,计算机智能化的前提就是将人类的语言符号化成机器可以识别的符号,这样计算机才能进行推理,才能具有智能。由此可见数理逻辑中重要的思想、方法及内容贯穿到人工智能的整个学科。
  2.2 图论在数据结构中的应用
  离散数学在数据结构中的应用主要是图论部分在数据结构中的应用,树在图论中占着重要的地位。树是一种非线性数据结构,在现实生活中可以用树来表示某一家族的家谱或某公司的组织结构,也可以用它来表示计算机中文件的组织结构,树中二叉树在计算机科学中有着重要的应用。二叉树共有三种遍历方法:前序遍历法、中序遍历法和后序遍历法。
  2.2.1 前序遍历法:如果二叉树为空,则返回。否则(1)访问根节点(2)前序遍历左子树(3)前序遍历右子树,得到前序序列。
  2.2.2 中序遍历法:如果二叉树为空,则返回。否则(1)中序遍历左子树(2)访问根节点(3)中序遍历右子树,得到中序序列。
  2.2.3 后序遍历法:如果二叉树为空,则返回。否则(1)后序遍历左子树(2)后序遍历右子树(3)访问根节点,得到后序序列。
  通过访问不同的遍历序列,可以得到不同的节点序列,通常在计算机中利用不同的遍历方法读出代数表达式,以便在计算机中对代数表达式进行操作。
  2.3 集合论数据库系统理论中的应用
  集合论是离散数学中极其重要的一部分,它在数据库中有着广泛的应用。我们可以利用关系理论使数据库从网络型、层次型转变成关系型,这样使数据库中的数据容易表示,并且易于存储和处理,使逻辑结构简单、数据独立性强、数据共享数据冗余可控和操作简单。当数据库中记录较多时,集合中的笛卡儿积方便了记录的查询、插入、删除和修改。
  2.4 代数系统在通信方面的应用
  代数系统在计算机中的应用广泛,例如有限机,开关线路的计数等方面。但最常用的是在纠错码方面的应用。在计算机和数据通信中,经常需要将二进制数字信号进行传递,这种传递常常距离很远,所以难免会出现错误。通常采用纠错码来避免这种错误的发生,而设计的这种纠错码的数学基础就是代数系统。纠错码中的一致校验矩阵就是根据代数系统中的群概念来进行设计的,另外在群码的校正中,也用到了代数系统中的陪集。
  2.5 离散数学在生物信息学中的应用
  生物信息学是现代计算机科学中一个崭新的分支,它是计算机科学与生物学相结合的产物。目前,在美国有一个国家实验室Sandia国家实验室,主要进行组合编码理论密码学的研究,该机构在美国和国际学术界有很高的地位。另外,由于DNA是离散数学中的序列结构,美国科学院院士,近代离散数学的奠基人Rota教授预言,生物学中的组合问题将成为离散数学的一个前沿领域。而且,IBM公司也将成立一个生物信息学研究中心。在1994年美国计算机科学家阿德勒曼公布了DNA计算机的理论,并成功地运用DNA计算机解决了一个有向哈密尔顿路径问题,这一成果迅速在国际产生了巨大的反响,同时也引起了国内学者的关注。DNA计算机的基本思想是:以DNA碱基序列作为信息编码的载体,利用现代分子生物学技术,在试管内控制酶作用下的DNA序列反应,作为实现运算的过程;这样,以反应前DNA序列作为输入的数据,反应后的DNA序列作为运算的结果,DNA计算机几乎能够解决所有的NP完全问题。
  
  3 结论
  现在我国每一所大学的计算机专业都开设离散数学课程,正因为离散数学在计算机科学中的重要应用,可以说没有离散数学就没有计算机理论,也就没有计算机科学。所以,应努力学习离散数学,推动离散数学的研究,使它在计算机中有着更为广泛的应用。
  
  参考文献
  [1] 耿素云,屈婉玲,离散数学[M].北京:高等教育出版社<1998.
  [2] 左孝凌,李永监,刘永才编著.离散数学[M].上海:上海科学技术文献出版社,2004.
  [3] 朱一清.离散数学[M].北京:电子工业出版社,2004

~~~~~~~~~~~~~~~~

离散数学在计算机科学中的应用

 

    本学期我们开了一门新的课程——离散数学,这是一门艰深又充满挑战的课程,随着学习的深入,我逐步加深了对它的了解。

首先简单介绍一下离散数学的定义及其在各学科领域的重要作用。离散数学(Discrete mathematics)是研究离散量的结构及其相互关系的数学学科,是现代数学的一个重要分支。它在各学科领域,特别在计算机科学与技术领域有着广泛的应用,同时离散数学也是计算机专业的许多专业课程,如程序设计语言、数据结构、操作系统、编译技术、人工智能、数据库、算法设计与分析、理论计算机科学基础等必不可少的先行课程。通过离散数学的学习,不但可以掌握处理离散结构的描述工具和方法,为后续课程的学习创造条件,而且可以提高抽象思维和严格的逻辑推理能力,为将来参与创新性的研究和开发工作打下坚实的基础。

  随着信息时代的到来,工业革命时代以微积分为代表的连续数学占主流的地位已经发生了变化,离散数学的重要性逐渐被人们认识。离散数学课程所传授的思想和方法,广泛地体现在计算机科学技术及相关专业的诸领域,从科学计算到信息处理,从理论计算机科学到计算机应用技术,从计算机软件到计算机硬件,从人工智能到认知系统,无不与离散数学密切相关。

由于数字电子计算机是一个离散结构,它只能处理离散的或离散化了的数量关系, 因此,无论计算机科学本身,还是与计算机科学及其应用密切相关的现代科学研究领域,都面临着如何对离散结构建立相应的数学模型;又如何将已用连续数量关系建立起来的数学模型离散化,从而可由计算机加以处理。

由此可见,离散数学在计算机科学中具有广泛的应用,下面我将一一陈述。

1 离散数学在关系数据库中的应用

   关系数据库中的数据管理系统向用户提供使用的数据库语言称为数据子语言,它是以关系代数或谓词逻辑中的方法表示。由于用这种数学的方法去表示,使得对这些语言的研究成为对关系代数或逻辑谓词的研究,优化语言的表示变成为对关系代数与谓词逻辑的化简问题。由于引入了数学表示方法,使得关系数据库具有比其它几种数据库较为优越的条件。正因为如此关系数据库迅速发展成为一种很有前途、很有希望的数据库。另外,离散数学中的笛卡儿积是一个纯数学理论,是研究关系数据库的一种重要方法,显示出不可替代的作用。不仅为其提供理论和方法上的支持,更重要的是推动了数据库技术的研究和发展。关系数据模型建立在严格的集合代数的基础上,其数据的逻辑结构是一个由行和列组成的二维表来描述关系数据模型。在研究实体集中的域和域之间的可能关系、表结构的确定与设计、关系操作的数据查询和维护功能的实现、关系分解的无损连接性分析、连接依赖等问题都用到二元关系理论。

2 离散数学在数据结构中的应用

计算机要解决一个具体问题,必须运用数据结构知识。对于问题中所处理的数据,必须首先从具体问题中抽象出一个适当的数学模型,然后设计一个解此数学模型的算法,最后编出程序,进行测试、调整直至得到问题的最终解答。而寻求数学模型就是数据结构研究的内容。寻求数学模型的实质是分析问题,从中提取操作的对象,并找出这些操作对象之间含有的关系,然后用数学的语言加以描

述。数据结构中将操作对象间的关系分为四类:集合、线性结构、树形结构、图状结构或网状结构。数据结构研究的主要内容是数据的逻辑结构,物理存储结构以及基本运算操作。其中逻辑结构和基本运算操作来源于离散数学中的离散结构和算法思考。离散数学中的集合论、关系、图论、树四个章节就反映了数据结构中四大结构的知识。如集合由元素组成,元素可理解为世上的客观事物。关系是集合的元素之间都存在某种关系。例如雇员与其工资之间的关系。图论是有许多现代应用的古老题目。伟大的瑞士数学家列昂哈德·欧拉在18 世纪引进了图论的基本思想,他利用图解决了有名的哥尼斯堡七桥问题。还可以用边上带权值的图来解决诸如寻找交通网络里两城市之间最短通路的问题。而树反映对象之间的关系,如组织机构图、家族图、二进制编码都是以树作为模型来讨论。

3 离散数学在编译原理中的应用

编译程序是计算机的一个十分复杂的系统程序。一个典型的编译程序一般都含有八个部分:词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、代码优化程序、目标代码生成程序、错误检查和处理程序、各种信息表格的管理程序。离散数学里的计算模型章节里就讲了三种类型的计算模型:文法、有限状态机和图灵机。具体知识有语言和文法、带输出的有限状态机、不带输出的有限状态机、语言的识别、图灵机等。短语结构文法根据产生式类型来分类:0 型文法、1 型文法、2 型文法、3 型文法。以上这些在离散数学里讲述到的知识点在编译原理的词法分析及语法分析中都会用到。因此,离散数学也是编译原理的前期基础课程。

5 离散数学在人工智能中的应用

在人工智能的研究与应用领域中,逻辑推理是人工智能研究中最持久的子领域之一。逻辑是所有数学推理的基础,对人工智能有实际的应用。采用谓词逻辑语言的演绎过程的形式化有助于我们更清楚地理解推理的某些子命题。逻辑规则给出数学语句的准确定义。离散数学中数学推理和布尔代数章节中的知识就为早期的人工智能研究领域打下了良好的数学基础。许多非形式的工作,包括医疗诊断和信息检索都可以和定理证明问题一样加以形式化[8]。因此,在人工智能方法的研究中定理证明是一个极其重要的论题。在这里,推理机就是实现(机器)推理的程序。它既包括通常的逻辑推理,也包括基于产生式的操作。推理机是使用知识库中的知识进行推理而解决问题的。所以推理机也就是专家的思维机制,即专家分析问题、解决问题的方法的一种算法表示和机器实现。

6 离散数学在计算机硬件设计中的应用

   数字逻辑作为计算机的一个重要理论,在很大程度上起源于离散数学的数理逻辑中的命题与逻辑演算,其在计算机硬件设计中的应用更为突出。利用命题中各关联词的运算规律把又电平表示的各信号之间的运算于二进制数之间的运算联系起来,使得我们可以用与非门或者用或非门来解决电路设计问题,使得整个设计过程更加直观、系统化。数理逻辑在程序设计中起到花间的作用,当一个程序初稿拿出来以后,如果我们想分析一下其中是否有冗余存在,这时就用到了离散数学中命题演算的基本等式。

7 离散数学在计算机纠错码中的应用

计算机中,常常需要将二进制数字信号进行传递。这种传递的距离近则数米、数毫米,远则超过数千公里。在传递过程中,由于存在各种干挠,常常会使二进制信号产生失真现象。而利用离散数学的集合论、群论和数理逻辑来分析研究计算机纠错码的纠错能力,是离散数学在计算机科学中的一个重要应用方面。

8 离散数学在其他方面的应用

  对谓词演算公理系统的研究使得美国数理逻辑学家罗宾逊于1965 年创立了“消解原理”的算法,在此算法的基础上,法国马赛大学的柯尔密勒设计并实现了一种基于谓词演算的逻辑程序设计语言PROLOG(programming in logic) ,该语言不久即在众多计算机上得以实现. 这样一来,现实世界中的问题只要能用谓词演算公理系统方式表示出来,就可以将它写成PROLOG程序,然后在计算机上得以实

现。

   

    综上所述,离散数学不仅是计算机技术迅猛发展的支撑学科,更是提高学生逻辑思维能力、创造性思维能力以及形式化表述能力的动力源,离散数学课程所传授的思想和方法,广泛地体现在计算机科学技术及相关专业的诸领域,从科学计算到信息处理,从理论计算机科学到计算机应用技术,从计算机软件到计算机硬件,从人工智能到分布式系统,无不与离散数学密切相关[2,3]。在现代计算机科学中,如果不了解离散数学的基本内容,则在计算机科学中就寸步难行了

 

 

参考文献

《离散数学》——百度百科

《离散数学在关系数据库中的应用》——黄万徽

《离散数学在计算机纠错码中的应用》——陶跃

《离散数学在计算机科学中的应用》——陈敏,李泽民

《浅析离散数学在计算机科学中的应用》——齐齐哈尔大学学报

《浅析离散数学在计算机科学中的应用》——王蕾,李永华

相关实践学习
体验RDS通用云盘核心能力
本次实验任务是创建一个云数据库RDS MySQL(通用云盘),并通过云服务器ECS对RDS MySQL实例进行压测,体验IO加速和IO突发带来的性能提升;并通过DMS执行DDL,将数据归档到OSS,再结合云盘缩容,体验数据归档带来的成本优势。
目录
相关文章
|
7月前
|
机器学习/深度学习 存储 算法
探索常见的计算机科学算法
本文介绍了三种计算机科学算法:快速排序、哈希表和Dijkstra算法。快速排序是基于分治思想的排序算法,平均时间复杂度为O(nlogn)。哈希表是高效数据结构,通过哈希函数实现快速插入、删除和查找,解决冲突的方法包括链地址法和开放地址法。Dijkstra算法用于求解图中单源最短路径问题,常见于路由和导航。最后提到了梯度下降算法,这是一种用于优化目标函数的参数更新方法,在机器学习中广泛应用于模型训练。
53 2
|
算法 网络协议 安全
对计算机科学的 50 个误解!
我节选了对计算机科学的 50 个常见误解,看看曾经或者现在的你中了几个?
对计算机科学的 50 个误解!
|
存储 人工智能 算法
《新编计算机科学概论》一0.1 什么是计算机科学
本节书摘来自华章出版社《新编计算机科学概论》一 书中的第0章,第0.1节,作者:刘艺 蔡敏,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1711 0
|
存储
《新编计算机科学概论》一本章习题
本节书摘来自华章出版社《新编计算机科学概论》一 书中的第2章,第2.7节,作者:刘艺 蔡敏,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1593 0
|
人工智能 数据库
《计算机科学导论》一1.6计算机科学作为一门学科
本节书摘来华章计算机《计算机科学导论》一书中的第1章 ,第1.6节,[美]贝赫鲁兹A. 佛罗赞(Behrouz A. Forouzan)著 刘艺刘哲雨等译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1569 0
《计算机科学导论》一1.9 练习
本节书摘来华章计算机《计算机科学导论》一书中的第1章 ,第1.9节,[美]贝赫鲁兹A. 佛罗赞(Behrouz A. Forouzan)著 刘艺刘哲雨等译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3249 0
《计算机科学导论》一2.5 练习
本节书摘来华章计算机《计算机科学导论》一书中的第2章 ,第2.5节,[美]贝赫鲁兹A. 佛罗赞(Behrouz A. Forouzan)著 刘艺刘哲雨等译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
4509 0
《计算机科学导论》一1.1 图灵模型
本节书摘来华章计算机《计算机科学导论》一书中的第1章 ,第1.1节,[美]贝赫鲁兹A. 佛罗赞(Behrouz A. Forouzan)著 刘艺刘哲雨等译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3475 0