浅谈离散数学中数理逻辑与集合论的数学本质

申华 , 张胜元 - 《大学教育》 - 2013       

        离散数学本质上是一门数学课程,是学生数学知识结构和数学素质的重要组成部分。数学这门学科体系虽然很庞大,但大致可分为连续型、离散型和随机型这三大类。在大多数的理工科专业的课程设计中,数学类课程通常包括:高等数学、线性代数、离散数学、概率论与数理统计等。高等数学能提供处理连续型的数学问题需要的数学工具;线性代数与离散数学则提供处理离散型数学问题的数学工具;而概率与统计则提供处理随机型数学问题的数学工具。
  正如徐洁磐在文中指出的:作为计算机学科工具,离散建模是离散数学区别高等数学的根本之处,也是离散数学与计算机紧密关联之处,也是使离散数学成为计算机专业核心课程的原因之一。从学生角度看,离散数学具有抽象、概念多、知识点零散等特点,在学习中容易遇到困难,极大地影响了他们学习的积极性。本文探讨离散数学中的数学本质,目的是理顺这些概念和知识点的关系,进而达到解决学生学习困难的目的。
  离散数学的内容主要包括数理逻辑、集合论、代数结构和图论四部分,其中集合论部分起着承前启后的作用。数理逻辑和集合论这两部分内容如果能处理得好,对整个课程的教学就会起到至关重要的作用。已有部分研究论文对数理逻辑和集合论的教学进行研讨,本文就数理逻辑与集合论的教学内容进行深入分析,弄清它们的数学本质和相互联系,理清教学思路。教学实践表明,这些教学分析能使教师在讲授过程中教学内容主线清晰、教学目标明确,进而有效提高教学质量和学生的数学素质。
  一、数理逻辑部分的数学本质
  其一,命题逻辑部分的数学本质是逻辑数学化。
  在教学过程中,在引入命题逻辑的教学之前,可以让学生比较“人”与“计算机”各自的长处。大部分学生都能得出这样的结论:人长于“智能”而计算机长于“计算”。那么,要让计算机增长“智能”,主要方向就是把“智能”计算化:把通过“智能”思考的问题转化为通过计算进行判定的问题。而智能的基础是逻辑推理,于是“智能”计算化首先就是要逻辑数学化。因此,数理逻辑是计算机的“人工智能”重要的基础之一。
  离散数学中命题逻辑这部分内容的数学本质是逻辑数学化,或者具体地说是逻辑代数化。代数方法的基本要素是对象和运算,代数化的基本过程模式是:符号化(对象)、运算、运算律、演算、标准型、应用。这种思想方法只要提醒学生回顾在中学学过的代数内容就能很快接受。再看命题逻辑这部分的教学内容,基本就是按照这样的模式展开的:命题符号化(对象)、逻辑运算(联结词)、运算律(基本等值式)、等值演算、标准型(范式)、应用(解判定问题、证明等值式、实际应用、推理理论等)。因而,命题逻辑这部分内容的知识点并不零散,贯穿着代数化这条主线。
  教学实践表明,通过逻辑代数化这个主线串联命题逻辑这部分主要内容,教学目标清晰,能得到很好的教学效果;同时学生还能从中学习领会代数化的思想方法,提高了他们的数学素质和应用数学解决实际问题的能力。
  在命题逻辑的教学过程中,除了强调代数化的思想方法,还必须强调“标准型”(范式)是这部分的核心内容。一方面范式是等值演算的终极目标,另一方面范式是介于命题公式和真值表之间的桥梁,因此有着极高的理论与应用价值。
  其二,谓词逻辑部分的数学本质是引入变量与函数的思想。
  从数学本质上看,谓词逻辑就是把变量与函数的思想引入逻辑。在这样的视觉下,那些基本概念就变得很清晰:个体变项是变量、谓词是函数、个体域是定义域、属性谓词是一元函数、关系谓词是多元函数...。然后再一次进行代数化过程:符号化(谓词)、运算(联结词)、运算律(主要增加了量词等值式)、等值演算、标准型(前束范式)、应用(判定问题、证明等值式、实际应用、谓词逻辑推理理论等)。
  当然,谓词逻辑内容远比命题逻辑深刻和复杂,在本科的离散数学中,这部分内容只能算是谓词逻辑的基础了。
  二、集合论部分的数学本质
  通常离散数学中集合论部分也包含两章:集合论基本概念、二元关系与函数。由于中学阶段已经有集合论的简单内容,所以这部分内容学生并不会觉得陌生。
  集合论是整个数学的基石,几乎所有的数学概念都能用集合论语言表达,数学在集合论基础上形成了一个独立的科学体系。实际上从集合和二元关系这部分内容基本上也可以看出数学这个科学体系的构建过程。
  首先集合论这章内容也是一个代数化的过程:对象(集合)、运算(集合运算)、运算律(集合恒等式)、演算、应用(计数、证明恒等式、实际应用等)。这里缺少了一块标准型,实际上集合的演算也是可以有标准型的,只是这里的标准型没有逻辑演算的范式那么重要而已。从内容与结构都可以看出,集合论与命题逻辑这两部分内容有很大的相似性,这会在后文进行探讨。
  有了集合这个基本语言,就可定义二元关系。接着是关系的运算与运算性质(这部分又是代数化方法)。然后是三种特殊的关系:等价关系、偏序关系与函数。等价关系的意义在于“分类”,这既是数学的基本思想方法之一,也是数据挖掘的常见任务;而偏序关系的意义在于“排序”,这是计算机算法中最基本的研究对象。
  有了函数的定义,分析学可以就此展开;而用函数定义二元运算后,于是代数学的基础有了。有了分析学、代数学,数学这个科学体系的基本框架也就基本搭建好了。
  集合论是数学之本。从集合到关系、再到函数与运算,构建了数学学科基础。这就是集合论这部分的数学本质。弄清楚这些,教师就能做到胸中有“数”、总揽全局。而给学生介绍这些数学本质,学生也能初步了解这部分内容的结构、意义和价值,对这部分内容的学习和掌握是有很大帮助的。而且经过这两个部分的学习,学生逐步熟悉和掌握代数的思想和方法,对后续抽象代数部分的学习在心理上和知识上都有了一定的准备。

       三、数理逻辑与集合论基本内容的内在联系
  前文提到,命题逻辑和集合论这两部分内容有很大的相似性。具体地说,这两部分的运算与运算律具有很强的对应关系。比如,逻辑运算{~,∧,∨}与集合运算{~,∩,∪}之间的一一对应关系。大多数教师都能认识这点并在教学中加以利用。例如,在讲授逻辑运算的运算律时提醒学生注意观察逻辑运算的运算律与集合运算的运算律之间的对应关系,这有助于学生理解并掌握逻辑运算的运算律。有的离散数学的教材也把集合论这部分内容放在数理逻辑之前,这样做虽然破坏了逻辑-集合-代数这样的连贯性,但从学生有初步认知的集合论开始,然后再利用集合论与命题逻辑在内容上的相似性辅助逻辑部分的教学,也是有其可取之处的。
  实际上,用命题逻辑的工具可以推导出集合运算及其一些运算律:给定集合A和B,假设全集是E。对于任意给定的元素x∈E,用p表示命题“x∈A”,q表示命题x∈B,则命题公式~p表示的命题是“x∈~A”、p∧q表示“x∈B∩A”、p∨q表示“x∈A∪B”。这就是逻辑运算与集合运算的对应与转换关系。进一步地,永真式(重言式)1表示x∈E、永假式(矛盾式)0表示“x∈Φ”,那么从命题逻辑的一些基本等值式就能直接推导出集合论中的一些基本恒等式(如结合律、交换律、分配律、德·摩根律等)。
  当然,要更深入地探讨集合论的恒等式和逻辑运算的等值式之间的关系,需要用到谓词逻辑工具,不过这已超出了教学研究范畴,因此本文不在此进一步展开阐述,有兴趣的读者可自行探究。
  四、结语
  笔者认为,强调离散数学在计算机科学领域的应用是必要的,有助于提高学生的学习积极性和应用意识,但离散数学本身承载的数学本质也不应被忽视,毕竟它是一门重要的数学类课程。本文从数理逻辑与集合论模块的教学谈离散数学的一些数学本质,目的是在离散数学的教学过程中在把握其数学本质的基础上充分结合其应用性,这样既能有效提高教学效果,又能培养学生的代数思维习惯,提高他们的离散建模能力。

转载于:https://www.cnblogs.com/hjlweilong/p/9493751.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Rails用DELETE method提交表单讲解

Sometimes we need to submit form using methods other than ‘post’, in this example, it’s ‘delete’. For example, I wanted to delete a user when a form is submitted with the user name and ‘delete’ method. 1. I created the route like this: delete ‘test…

【PAT】B1055 集体照(25 分)

很简单的two points问题 ##注意&#xff1a;K是行数 #include<stdio.h> #include<string.h> #include<map> #include<vector> #include<algorithm> using namespace std; struct people{char name[10];int height; }arr[10005]; bool cmp(people…

luogu 4768

kruskal 重构树对于一张无向图&#xff0c;我们在进行 kruskal 的过程中每当合并两个联通块时新建虚拟节点 t对于两个联通块的根节点 fau&#xff0c;fav 连无向边(fau, t)&#xff0c;(fav, t) 其中点 t 的点权为两个联通块当前连边的边权对于这道题首先 dijkstra 处理所有点到…

使用DreamHost当GoDaddy域名的服务器 步骤

1. 在GoDaddy管理员页面中改变DNS设置&#xff0c;指向DreamHost Name servers&#xff1a; 进入Domain details page: 目前在 SETTINGS -> Nameservers. 数值还是默认值: NS11.DOMAINCONTROL.COM NS12.DOMAINCONTROL.COM 我们需要将它修改为 DreamHost nameservers: …

PAT乙级1011.A+B和C (15)(15 分)

给定区间[-2^31^, 2^31^]内的3个整数A、B和C&#xff0c;请判断AB是否大于C。 输入格式&#xff1a; 输入第1行给出正整数T(<10)&#xff0c;是测试用例的个数。随后给出T组测试用例&#xff0c;每组占一行&#xff0c;顺序给出A、B和C。整数间以空格分隔。 输出格式&#x…

有用的 Google Analytics Chrome 插件推荐

1.Google Analytics Debugger Debbuger 会列出所有执行的命令以及传过去的参数。 例如&#xff0c;常见的命令有&#xff1a; 初始化 Google Analytics&#xff0c; 传送页面访问 和传送事件。 https://chrome.google.com/webstore/detail/google-analytics-debugger/jnkmf…

项目计划定制:项目计划划分与产品项目推进的有机结合

目录&#xff1a; 第一章&#xff1a;导语第二章&#xff1a;需求采集部分的一些要点第三章&#xff1a;项目中一些需要明确的内容第四章&#xff1a;关于成本管理部分第一章&#xff1a;导语 那么什么叫项目&#xff0c;项目计划和项目管理&#xff1f; 项目管理简称为PM&…

Rails 使用 Google Analytics 示例

1. 创建 _google_analytics.html.erb view: <span style"font-size:18px;"><!-- Google Analytics -->window.gawindow.ga||function(){(ga.qga.q||[]).push(arguments)};ga.lnew Date;// Create tracker.ga(create, <% ENV[GOOGLE_ANALYTICS_TRACKI…

爬虫_微信小程序社区教程(crawlspider)

照着敲了一遍&#xff0c;&#xff0c;&#xff0c; 需要使用"LinkExtrator"和"Rule"&#xff0c;这两个东西决定爬虫的走向。 1.allow设置规则的方法&#xff1a;要能够限制在我们想要的url上&#xff0c;不要跟其他的url产生相同的正则表达式即可 2.什么…

开始使用Google Analytics 示例

1. 创建一个 Google Analytics 账户. 2. 创建新的 property: 在左上角点击 Admin。 然后在 Property 标签下面&#xff0c;点击以展开下拉菜单&#xff1a; 选择"create new property": 3. 填写所有必须填写的框: 建议打开 In-page analysis: What is in-page ana…

数据库连接池优化配置(druid,dbcp,c3p0)

主要描述了数据库连接池参数配置的准则&#xff0c;针对常用的数据库连接池(c3p0,dbcp,druid)给出推荐的配置。 考虑因素 1&#xff1a;当前连接DB的规模 2&#xff1a;并发情况 3&#xff1a;执行db的响应时间 配置考虑 1&#xff1a;初始化连接&#xff1a;可考虑设置为…

Windows系统上3种连接Docker虚拟机的方法

1.Docker Quickstart Terminal 打开 "Docker Quickstart Terminal" 然后输入 $ docker-machine ssh <docker machine name> 此处Docker虚拟机的名字是default&#xff1a; 2. gitBash 打开 "gitBash" &#xff0c;然后输入&#xff1a; $ docker-ma…

P2258 子矩阵

题目描述 给出如下定义&#xff1a; 子矩阵&#xff1a;从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵&#xff08;保持行与列的相对顺序&#xff09;被称为原矩阵的一个子矩阵。例如&#xff0c;下面左图中选取第 222 、 444 行和第 222 、 444 、 555 列交叉位置的…

Windows 系统安装Docker Compose 步骤

参考 Docker Compose official 官方安装指南: https://docs.docker.com/compose/install/ 实际上到目前为止还不能直接在Windows上安装Docker Compose&#xff0c;所以这篇文章要讲的是如何在Windows上使用Docker Compose。 先决条件: Docker Machine 已经安装完毕。 解决方案:…

vagrant box各种命令汇总

最近在研究laravel&#xff0c;中间用到了vagrant 虚拟机管理工具&#xff0c;学习一下他的命令 vagrant box命令 用于管理boxes的命令&#xff0c;比如添加、删除等等。 此命令的功能主要通过以下子命令完成&#xff1a; add list outdated prune remove repackage update Box…

运行第一个 docker image 并在浏览器中查看

1. SSH to Docker 虚拟机. 打开gitBash或者Docker Quickstart Terminal, 并且输入: <span style"font-size:14px;">$ docker-machine ssh <docker machine name></span>如需要更详细的如何连接Docker Machine的介绍&#xff0c;可以参考我的另一篇…

js_!和!!的使用

js中有些特殊的数据&#xff08;“” 0 null undefined NaN&#xff09;,请求后台返回的数据中往往都有一些这样的数据&#xff0c;需要对这些数据进行过滤。 过滤代码 var a 0;//0 "" null undefined NaN //如果有内容不为&#xff08;0 "" null undefi…

Fixed Function Shader

Fixed function shader(固定管线着色器) Shader "Custom/Text01" { //shader名称 Properties   Shader属性 { //定义一个名称为Main Color属性 _Color ("Main Color", Color) (1,0.5,0.5,1) _SpecularColor("高光颜色"…

linux 时间同步ntp

配置前准备:关闭防火墙,配置好hosts,ssh免密登录 1.选定同步的标准,我是以hadoop002(设置为当前时间)作为同步标准,hadoop003(时间是2018年3月21,使用date -s进行设置)与hadoop004(2018年3月21)与之保持同步 在hadoop002上查看是否安装ntp rpm -qa|grep ntp,如果没有显示内容说…

Hadoop集群(一) Zookeeper搭建

作为Hadoop初学者&#xff0c;自然要从安装入手。而hadoop的优势就是分布式&#xff0c;所以&#xff0c;也一定要安装分布式的系统。 整体安装步骤&#xff0c;包括ZookeeperHDFSHbase&#xff0c;为了文章简洁&#xff0c;我会分三篇blog记录我的安装步骤。 本文记录的是集群…