如何学习离散数学和在计算机科学中应用

如何学习离散数学和在计算机科学中应用

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处连接和本声明。
本文连接: https://blog.csdn.net/utimes/article/details/42009405

引言

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

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

因为数字电子计算机是一个离散结构,它只能处理离散的或离散化了的数量关系, 所以,不管计算机科学自己,仍是与计算机科学及其应用密切相关的现代科学研究领域,都面临着如何对离散结构创建相应的数学模型;又如何将已用连续数量关系创建起来的数学模型离散化,从而可由计算机加以处理。因而可知,离散数学在计算机科学中具备普遍的应用.
数据库

如何学习离散数学  

学习离散数学有两项最基本的任务:其一是经过学习离散数学,使学生了解和掌握在后续课程中要直接用到的一些数学概念和基本原理,掌握计算机中经常使用的科学论证方法,为后续课程的学习奠基一个良好的数学基础;其二是在离散数学的学习过程当中,培训自学能力、抽象思惟能力和逻辑推理能力,以提升专业理论水平。所以学习离散数学对于计算机、通讯等专业后续课程的学习和从此从事计算机科学等工做是相当重要的。可是因为离散数学的离散性、知识的分散性和处理问题的特殊性,使部分学生在刚刚接触离散数学时,对其中的一些概念和处理问题的方法每每感到困惑,特别是在作证实题时感到无从下手,找不到正确的解题思路。所以,对离散数学的学习方法给予适当的指导和对学习过程当中遇到的一些问题分析是十分必要的。网络

认知离散数学

离散数学是计算机科学基础理论的核心课程之一,是计算机及应用、通讯等专业的一门重要的基础课。它以研究量的结构和相互关系为主要目标,其研究对象通常是有限个或可数个元素,充分体现了计算机科学离散性的特色。学习离散数学的目的是为学习计算机、通讯等专业各后续课程作好必要的知识准备,进一步提升抽象思惟和逻辑推理的能力,为计算机的应用提供必要的描述工具和理论基础。数据结构

  • 定义和定理多 离散数学是创建在大量定义、定理之上的逻辑推理学科,所以对概念的理解是学习这门课程的核心。在学习这些概念的基础上,要特别注意概念之间的联系,而描述这些联系的实体则是大量的定理和性质。在考试中有一部份内容是考查学生对定义和定理的识记、理解和运用,所以要真正理解离散数学中所给出的每一个基本概念的真正的含义。好比,命题的定义、五个基本联结词、公式的主析取范式和主合取范式、三个推理规则以及反证法;集合的五种运算的定义;关系的定义和关系的四个性质;函数(映射)和几种特殊函数(映射)的定义;图、彻底图、简单图、子图、补图的定义;图中简单路、基本路的定义以及两个图同构的定义;树与最小生成树的定义。掌握和理解这些概念对于学好离散数学是相当重要的。
  • 方法性强 在离散数学的学习过程当中,必定要注重和掌握离散数学处理问题的方法,在作题时,找到一个合适的解题思路和方法是极为重要的。若是知道了一道题用怎样的方法去作或证实,就能很容易地作或证出来。反之,则事倍功半。在离散数学中,虽然各类各样的题种类繁多,但每类题的解法均有规律可循。因此在听课和平时的复习中,要善于总结和概括具备规律性的内容。在平时的讲课和复习中,老师会总结各种解题思路和方法。做为学生,首先应该熟悉而且会用这些方法,同时,还要勤于思考,对于一道题,进可能地多探讨几种解法。
  • 抽象性强 离散数学的特色是知识点集中,对抽象思惟能力的要求较高。因为这些定义的抽象性,使初学者每每不能在脑海中直接创建起它们与现实世界中客观事物的联系。无论是哪本离散数学教材,都会在每一章中首先列出若干个定义和定理,接着就是这些定义和定理的直接应用,若是没有较好的抽象思惟能力,学习离散数学确实具备必定的困难。所以,在离散数学的学习中,要注重抽象思惟能力、逻辑推理能力的培养和训练,这种能力的培养对从此从事各类工做都是极其重要的。在学习离散数学中所遇到的这些困难,能够经过多学、多看、认真分析讲课中所给出的典型例题的解题过程,再加上多练,从而逐步获得解决。在此特别强调一点:深刻地理解和掌握离散数学的基本概念、基本定理和结论,是学好离散数学的重要前提之一。因此,同窗们要准确、全面、完整地记忆和理解全部这些基本定义和定理。
  • 内在联系性 离散数学的三大致系虽然来自于不一样的学科,可是这三大致系先后贯通,造成一个有机的总体。经过认真的分析可寻找出三大部分之间知识的内在联系性和规律性。如:集合论、函数、关系和图论,其解题思路和证实方法均有相同或类似之处。

认知解题规范

通常来讲,离散数学的考试要求分为:了解、理解和掌握。了解是能正确判别有关概念和方法;理解是能正确表达有关概念和方法的含义;掌握是在理解的基础上加以灵活应用。为了考核学生对这三部分的理解和掌握的程度,试题类型通常可分为:判断题、填空题、选择题、计算题和证实题。判断题、填空题、选择题主要涉及基本概念、基本理论、重要性质和结论、公式及其简单计算;计算题主要考核学生的基本运用技能和速度,要求写出完整的计算过程和步骤;证实题主要考查应用概念、性质、定理及重要结论进行逻辑推理的能力,要求写出严格的推理和论证过程。函数

学习离散数学的最大困难是它的抽象性和逻辑推理的严密性。在离散数学中,假设让你解一道题或证实一个命题,你应首先读懂题意,而后寻找解题或证实的思路和方法,当你相信已找到了解题或证实的思路和方法,你必须把它严格地写出来。一个写得很好的解题过程或证实是一系列的陈述,其中每一条陈述都是前面的陈述通过简单的推理而获得的。仔细地写解题过程或证实是很重要的,既能让读者理解它,又能保证解题过程或证实准确无误。一个好的解题过程或证实应该是条理清楚、论据充分、表述简洁的。针对这一要求,在讲课中老师会提供大量的典型例题供同窗们参考和学习。工具

经过离散数学的学习和训练,能使同窗们学会在离散数学中处理问题的通常性的规律和方法,一旦掌握了离散数学中这种处理问题的思想方法,学习和掌握离散数学的知识就再也不是一件难事了。学习

学习离散数学的目的

通常来讲,离散数学内容普遍且高度抽象,能够说是一门既难教又难学的课程,这无疑给教师的教学和学生的学习带来了必定的难度。一方面,离散数学不只 是为专业服务的基本理论,并且经过该课程能够培养学生的抽象思惟和缜密归纳的能力,但其概念多,理论性强,高度抽象性的特色却令许多学生望而生畏。学生在 学习这门课程时,每每看不到离散数学在计算机科学中的具体应用,于是放松对离散数学的学习,失去学习的兴趣。测试

 

 

离散数学的生命力在于其深入的理论和普遍的应用。其实,深入的理论和普遍的应用是相辅相成的。学生之因此对离散数学的学习兴趣不高,除了离散数学自己理论性 强、比较抽象之外,还有一个缘由就是对于这些理论方面的知识,学生在学习过程当中并不会切实地感觉到学好它的做用和成效,所以只把应付考试做为学习这门课程 的目的。做为老师,咱们在教学之初就应该向学生们指明,学习离散数学的目的在于培养学生的抽象推理、逻辑思惟和概括构造等能力,提升学生利用数学方法解决问题的技能,以及为后续课程做必要的准备,为学生的进一步学习奠基计算机数学的基础。它所涉及的概念、方法和理论,大量地应用在数字电路、编译原理、数据结构、操做系统、数据库、算法等领域。优化

 

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

 

在人工智能中的应用 

 

人工智能是计算机学科中一个很是重要的方向,离散数学在人工智能中的应用主要是数理逻辑部分在人工智能中的应用。数理逻辑包括命题逻辑和谓词逻辑,命题逻辑就是研究以命题为单位进行前提与结论之间的推理,而谓词逻辑就是研究句子内在的联系。你们都知道,人工智能共有两个流派,链接主义流派和符号主义流派。其中在符号主义流派里,他们认为现实世界的各类事物能够用符号的形式表示出来,其中最主要的就是人类的天然语言能够用符号进行表示。语言的符号化就是数理逻辑研究的基本内容,计算机智能化的前提就是将人类的语言符号化成机器能够识别的符号,这样计算机才能进行推理,才能具备智能。因而可知数理逻辑中重要的思想、方法及内容贯穿到人工智能的整个学科。

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

在数据库系统理论中的应用 

集合论是离散数学中极其重要的一部分,它在数据库中有着普遍的应用。咱们能够利用关系理论使数据库从网络型、层次型转变成关系型,这样使数据库中的数据容易表示,而且易于存储和处理,使逻辑结构简单、数据独立性强、数据共享、数据冗余可控和操做简单。当数据库中记录较多时,集合中的笛卡儿积方便了记录的查询、插入、删除和修改。 关系数据库中的数据管理系统向用户提供使用的数据库语言称为数据子语言,它是以关系代数或谓词逻辑中的方法表示。因为用这种数学的方法去表示,使得对这些语言的研究成为对关系代数或逻辑谓词的研究,优化语言的表示变成为对关系代数与谓词逻辑的化简问题。因为引入了数学表示方法,使得关系数据库具备比其它几种数据库较为优越的条件。正由于如此关系数据库迅速发展成为一种颇有前途、颇有但愿的数据库。另外,离散数学中的笛卡儿积是一个纯数学理论,是研究关系数据库的一种重要方法,显示出不可替代的做用。不只为其提供理论和方法上的支持,更重要的是推进了数据库技术的研究和发展。关系数据模型创建在严格的集合代数的基础上,其数据的逻辑结构是一个由行和列组成的二维表来描述关系数据模型。在研究实体集中的域和域之间的可能关系、表结构的肯定与设计、关系操做的数据查询和维护功能的实现、关系分解的无损链接性分析、链接依赖等问题都用到二元关系理论。

在数据结构中的应用

计算机要解决一个具体问题,必须运用数据结构知识。对于问题中所处理的数据,必须首先从具体问题中抽象出一个适当的数学模型,而后设计一个解此数学模型的算法,最后编出程序,进行测试、调整直至获得问题的最终解答。而寻求数学模型就是数据结构研究的内容。寻求数学模型的实质是分析问题,从中提取操做的对象,并找出这些操做对象之间含有的关系,而后用数学的语言加以描述。数据结构中将操做对象间的关系分为四类:集合、线性结构、树形结构、图状结构或网状结构。数据结构研究的主要内容是数据的逻辑结构,物理存储结构以及基本运算操做。其中逻辑结构和基本运算操做来源于离散数学中的离散结构和算法思考。离散数学中的集合论、关系、图论、树四个章节就反映了数据结构中四大结构的知识。如集合由元素组成,元素可理解为世上的客观事物。关系是集合的元素之间都存在某种关系。例如雇员与其工资之间的关系。图论是有许多现代应用的古老题目。伟大的瑞士数学家列昂哈德·欧拉在18 世纪引进了图论的基本思想,他利用图解决了有名的哥尼斯堡七桥问题。还能够用边上带权值的图来解决诸如寻找交通网络里两城市之间最短通路的问题。而树反映对象之间的关系,如组织机构图、家族图、二进制编码都是以树做为模型来讨论。

在编译原理中的应用

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

在计算机硬件设计中的应用

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

在计算机纠错码中的应用

计算机中,经常须要将二进制数字信号进行传递。这种传递的距离近则数米、数毫米,远则超过数千千米。在传递过程当中,因为存在各类干挠,经常会使二进制信号产生失真现象。而利用离散数学的集合论、群论和数理逻辑来分析研究计算机纠错码的纠错能力,是离散数学在计算机科学中的一个重要应用方面。代数系统在计算机中的应用普遍,例若有限机,开关线路的计数等方面。但最经常使用的是在纠错码方面的应用。在计算机和数据通讯中,常常须要将二进制数字信号进行传递,这种传递经常距离很远,因此不免会出现错误。一般采用纠错码来避免这种错误的发生,而设计的这种纠错码的数学基础就是代数系统。纠错码中的一致校验矩阵就是根据代数系统中的群概念来进行设计的,另外在群码的校订中,也用到了代数系统中的陪集。 

在生物信息学中的应用 

生物信息学是现代计算机科学中一个崭新的分支,它是计算机科学与生物学相结合的产物。目前,在美国有一个国家实验室Sandia国家实验室,主要进行组合编码理论和密码学的研究,该机构在美国和国际学术界有很高的地位。另外,因为DNA是离散数学中的序列结构,美国科学院院士,近代离散数学的奠定人Rota教授预言,生物学中的组合问题将成为离散数学的一个前沿领域。并且,IBM公司也将成立一个生物信息学研究中心。在1994年美国计算机科学家阿德勒曼公布了DNA计算机的理论,并成功地运用DNA计算机解决了一个有向哈密尔顿路径问题,这一成果迅速在国际产生了巨大的反响,同时也引发了国内学者的关注。DNA计算机的基本思想是:以DNA碱基序列做为信息编码的载体,利用现代分子生物学技术,在试管内控制酶做用下的DNA序列反应,做为实现运算的过程;这样,以反应前DNA序列做为输入的数据,反应后的DNA序列做为运算的结果,DNA计算机几乎可以解决全部的NP彻底问题。 

在其余方面的应用

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

 

参考文献

[1] Discrete mathematics From Wikipedia, the free encyclopedia

[2] Discrete mathematics at the utk.edu Mathematics Archives, providiing links to syllabi, tutorials, programs, etc.

[3] Weisstein, Eric W."Discrete mathematics"MathWorld.
[4]  Biggs, Norman L. (2002), Discrete mathematics, Oxford Science Publications (2nd ed.), New York: The Clarendon Press Oxford University Press, p. 89, ISBN 9780198507178MR 1078626Discrete Mathematics is the branch of Mathematics in which we deal with questions involving finite or countably infinite sets.

[5] Wilson, Robin (2002). Four Colors Suffice. London: Penguin Books. ISBN 978-0-691-11533-7.

[6] Samuel R. Buss (1998). Handbook of Proof Theory. Elsevier. p. 13. ISBN 978-0-444-89840-1.

[7] 耿素云,屈婉玲,离散数学[M].北京:高等教育出版社,1998. 

[8] 左孝凌,李永监,刘永才编著.离散数学[M].上海:上海科学技术文献出版社,2004.

[9] 朱一清.离散数学[M].北京:电子工业出版社,2004

 

关于Discrete Mathematics更多讨论与交流,敬请关注本博客和新浪微博songzi_tea.

相关文章
相关标签/搜索