380 likes | 655 Views
离散数学. 计算机系 陈玉泉. 联系方式. 陈玉泉: chen-yq@cs.sjtu.edu.cn Cc.sjtu.edu.cn( 课程网站 ) 离散数学( 2 ) 34204406 电院楼群 3-525 助教:张晨 chase.zhang@sjtu.edu.cn 电院楼群 3-508. 教材和辅导书. 1 、教材: 数理逻辑:莫绍揆,科学文献出版社 离散数学:董晓蕾,机械工业出版社 2 、 辅导书: 数理逻辑与集合论:石纯一,清华大学出版社 图论与代数结构:戴一奇,清华大学出版社
E N D
离散数学 计算机系 陈玉泉
联系方式 • 陈玉泉: • chen-yq@cs.sjtu.edu.cn • Cc.sjtu.edu.cn(课程网站)离散数学(2) • 34204406 • 电院楼群3-525 • 助教:张晨 chase.zhang@sjtu.edu.cn 电院楼群3-508
教材和辅导书 1、教材: 数理逻辑:莫绍揆,科学文献出版社 离散数学:董晓蕾,机械工业出版社 2、辅导书: 数理逻辑与集合论:石纯一,清华大学出版社 图论与代数结构:戴一奇,清华大学出版社 数理逻辑教程:莫绍揆,华中工学院出版社。 集论与逻辑:沈恩绍,科学出版社。 Discrete Mathematics and Its Applications,第5版,K. Rosen,机械工业出版社,2003.
课程说明 • 讲授内容: • 数理逻辑(公理系统) • 集合论 • 代数结构 • 作业: • 每周一交作业
什么是离散数学? • 离散数学(discrete mathematics)是研究离散对象的数学分支. • 离散:由分离的元素组成.如自然数集. • 相对应的是连续对象. 如实数集. • 微积分就是研究连续函数的数学分支. • 内容包括: • 集合,关系,函数 • 数理逻辑 • 图论 • 抽象代数 • 组合数学 • 数论, …… • 5 • 5
为什么学离散数学? • 提高数学论证和求解能力 • 培养抽象思维能力和逻辑推理能力 • 是计算机科学和技术的数学基础 • 数据结构,算法,数据库理论,自动机理论,形式语言,编译理论,计算机安全,操作系统,人工智能,数字电路 • 也是运筹学,化学,工程,生物学等很多领域的数学基础 • 6 • 6
数理逻辑与计算机科学 • 1946年,德国数学家Von Neumann提出计算机模型 • 计算机模型根植于数理逻辑、图林机与布尔代数。 • Turing机:数字电子计算机的抽象雏形 • 布尔代数:设计数字电子计算机的数学工具
数理逻辑与计算机科学 • 计算机科学的核心算法 • 程序设计语言 • 程序设计方法学 • 计算复杂性理论 均涉及到数理逻辑的知识和理论
戴克斯特拉 • Edsger Wybe Dijkstra (1930-2002) • 最伟大的计算机科学家(之一?) • “搞了这么多年软件,错误不知犯了多少,现在觉悟了.我想,假如我早年在数理逻辑上好好下点功夫的话,我就不会犯这么多的错误,不少东西逻辑学家早就说了,可我不知道.要是我能年轻二十岁的话,就要回去学逻辑.” • 成就很多,例如图论中的Dijkstra最短路径算法 • 9 • 9
什么是数理逻辑? • 逻辑:是对人类推理过程的研究。 • 数理逻辑:是用数学的方法对人类推理过程作研究。 • 数学研究方法:使用符号
数理逻辑史 • 数理逻辑前史时期——古典形式逻辑时期 • 数理逻辑初创时期——逻辑代数时期 • 数理逻辑奠基时期 • 数理逻辑发展初期 • 数理逻辑现代发展时期
古典形式逻辑时期 • 亚里士多德 三段论 • 斯多阿学派的命题逻辑 • 中世纪的形式逻辑
古典逻辑 • 亚里士多德的三段论(syllogism) • 从两个前提推出一个结论的逻辑论证形式: 1.大前提(major premise) 人都是两足动物 2.小前提(minor premise) 希腊人都是人 3.结论(conclusion) 希腊人都是两足动物 • 斯多葛学派(Stoics)的命题逻辑 • Zeno of Citium于301BC创立的哲学派别 • Chrysippus发展了Stoic logic • 13 • 13
亚里士多德 • Aristotle (384BC-322BC) • 形式逻辑的奠基人 • 第一个逻辑学家 • 三段论:第一个形式演绎逻辑系统 • 三段论是传统演绎推理的核心,在西方逻辑中一直处于统治地位,直至19世纪被数理逻辑(一阶谓词逻辑)所取代. 附:欧几里德(Euclid,330BC-275BC)的《几何原本》第一次以公理化方式演绎地处理数学. • 14 • 14
逻辑代数时期 • 数理逻辑产生的时代背景 • 笛卡尔 • 霍布斯 • 数理逻辑创始人——莱布尼兹(Leibniz,1646-1716,德) • 莱布尼兹的数理逻辑思想 • 理性演算 • 普遍语言 • 逻辑代数——布尔
莱布尼茨 • Gottfried Wilhelm Leibniz (1646-1716) • 数理逻辑的先驱 • 首先使用“数理逻辑”这个术语 • Leibniz’s Dream:推理归结为符号计算. • “普遍语言”和“思维演算”的思想正是数理逻辑的主导思想. • “发生争论时我们可以简单地说:让我们计算一下吧,看谁正确.” • Russell说:Leibniz未发表手稿中发展的逻辑的水平只在200年后才重新达到. • 16 • 16
布尔 • George Boole (1815-1864) • 数理逻辑创始人之一 • 如1847年的论文:逻辑的数学分析:论演绎推理的演算法. • 首次应用数学(代数)方法研究逻辑,发明了布尔代数(逻辑代数,命题代数,布尔逻辑) • 初步实现了Leibniz梦想. • 亦可解释成集合代数,开关代数 • 是计算机数字逻辑的基础 附:Augustus de Morgan (1806-1871)几乎同时独立地做出重要贡献. Charles Sanders Peirce (1839-1914)发展了这两人的工作. Ernst Schröder (1841-1902)进一步总结发展前三人的工作. • 17 • 17
数理逻辑奠基时期 • 逻辑演算的建立和发展——Frege(1848-1925,德) • Peano的符号体系 • 罗素(B.Russell, 1872-1970, 英)的逻辑演算和罗素悖论 • 逻辑主义学派(Russell) • 直觉主义学派(Brower) • 形式主义学派(Hilbert)
弗雷格 • Friedrich Ludwig Gottlob Frege (1848-1925) • 数理逻辑主要创始人 • 分析哲学,语言哲学创始人 • 重要著作:Begriffsschrift (1879) • 《概念文字:一种模仿算术语言构造的纯思维的形式语言》. • 第一个公理化谓词逻辑系统 • 自Aristotle以来逻辑的最重要进展 • 基本实现了Leibniz梦想 • 19 • 19
数学基础危机(1) • 19世纪早期发现数学一直存在缺陷.如: • 非欧几何(Lobachevsky,Riemann) • 分析(微积分及其扩展)的基础 • 19世纪后期的公理化运动:去除基于直觉或经验的朴素概念的模糊之处,使数学严密化.如: • 算术公理化(Dedekind 1888, Peano 1889) • 几何公理化(Hilbert 1899) • 20 • 20
数学基础危机(2) • 1900年国际数学大会 • Poincare:“借助集合论…可以建造数学大厦…今天我们可以宣称绝对的严密已经实现了!” • Hilbert则认为还有漏洞. • 如23个问题中的2nd:初等算术的协调性. • 随后发现了Cantor集合论中的一些悖论:如1902年的罗素悖论. • 弗雷格:当大厦竣工时基础却动摇了. • 21 • 21
解决危机的四大派别 • Russell:逻辑主义,主张从逻辑推出数学. • Hilbert:形式主义,对全部数学进行形式化,并证明其协调性. • Brouwer:直觉主义.反对排中律,强调构造性. • Zermelo:公理化集合论 • 22 • 22
罗素 • Bertrand Arthur WilliamRussell (1872-1970) • 逻辑主义创始人之一 • 主张从逻辑推出全部数学. • 重要论著 • Principia Mathematica,1910 • 与Whitehead合著 • PM系统是完备的命题演算和谓词演算. • 逻辑演算的经典系统. • 23 • 23
希尔伯特 • David Hilbert (1862-1943) • 数理逻辑中形式主义学派 • 证明论创始人之一 • Hilbert’s program:将理论至于逻辑演算中加以形式化,重点研究系统中证明的逻辑性质,希望得出系统的协调性.强调证明要使用有穷方法. • 24 • 24
数理逻辑发展初期(20世纪三十年代) • Gödel (1906-1978) • 完全性定理 • 不完全性定理 • 连续统假设的一致性
Gödel不完备性定理 • Gödel于1931年发表的不完备性定理是对Hilbert’s program的致命一击. • 大意:任何足够强的形式系统都有无法证明的真命题.且系统自己不能证明自己无矛盾. • 显示了形式化方法的本质局限. • 20世纪数理逻辑的顶峰. • 有评论说是20世纪最重要的数学定理 • 26 • 26
哥德尔 • Kurt Gödel (1906-1978) • 证明了一阶谓词演算的完备性. • 实现了Leibniz梦想. • 证明了更加重要的成果:不完备性定理. • Einstein:自己的工作不再要紧,来研究院只是为了享有和Gödel一起步行回家的特权. • 27 • 27
数理逻辑现代发展时期(20世纪四十年代~) 各种非经典逻辑演算和四论: • 集合论(公理集合论) • 模型论(形式语言语法与语义间的关系) • 递归论(可计算性和可判定性) • 证明论(数学本身的无矛盾性)
公理集合论 • 研究公理集合论,是整个数学的基础. • Cantor的朴素集合论有缺陷 • Burali-Forti悖论,罗素悖论,Richard悖论,… • Ernst Zermelo:第一个公理化集合论(1908) • 经Fraenkel(1922)改进成为经典的ZF集合论 • 避免了罗素悖论 • Gödel和Paul Cohen(1963)在CH方面的工作 • CH在ZF系统中不可判定 • Cohen的新方法(力迫法)让人们证明了许多不可判定的问题.数学绝不是“非真即假”那么单纯! • 29 • 29
模型论 • 建立形式理论的模型,研究模型之间的关系等 • 模型是对形式理论进行具体解释的一种结构. • 语法与语义的关系 • Alfred Tarski奠定了模型论的基础 • 30 • 30
递归论 • 亦称(能行)可计算性理论,研究能行可计算的函数. • 从递归函数和图灵机的等价产生可计算函数的概念 • 代表人物 • Gödel:递归函数 • Alonzo Church(丘奇):演算 • Alan Turing(图灵):图灵机 • 现代计算机设计思想的创始人之一 • 31 • 31
证明论 • 研究数学理论系统的形式证明问题,即以证明为研究对象,用数学方法分析之.主要关注系统的协调性. • 代表人物 • Hilbert:首先提出 • Gerhard Gentzen:发展了证明论的重要成果. • 证明了算术形式系统的协调性. • 系统外证明,且不是有穷主义的.与Gödel的结果不矛盾. • 32 • 32
数理逻辑与计算机科学 • 计算机图灵机 • 计算机能做什么,算法是什么可计算性理论 • 计算机不能做什么 算法不可解问题 • 逻辑程序设计(Prolog) 谓词逻辑 • 程序设计语言的语义学模型论 • 形式规格说明与程序验证模型论 • AI,知识表示,自动定理证明 逻辑演算 • 从形式证明产生程序 证明论(Gentzen) • …… • 33 • 33