大学计算机方面的书籍

这是基础书籍!!!

微信号:jy002002007
添加微信好友, 获取更多信息
复制微信号

(1)数据结构:

《数据结构(C语言版),出版日期:2005-5-1,严蔚民,清华大学.---推荐!

《数据结构习题与解析(C语言版)》,李春葆.---比严老的简单点,通俗易懂

《数据结构》(用面向对象 *** 与C++描述)》,出版日期:1999年7月,殷人昆 王小京,清华大学出版社.

(2)算法:

《算法设计与分析(高等学校计算机教材)》,郑宗汉,清华大学出版社.

《算法导论(影印版)》(Introduction to Algorithms, Second Edition

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein MIT)高等教育出版社.

《计算机程序设计艺术》(The Art of Programming Language), 清华大学出版社

《算法设计与分析基础》(Intruduction to The Design and Analysis of Algorithms (US)Anany Levitin),潘彦 译,清华大学出版社.

(3)数据库

《数据库系统概论》,1983年,萨师煊 王珊,高等教育出版社出版.

《数据库原理与 *** 》,1983年,郑若忠 王鸿武,湖南科学技术出版社出版.

《数据库系统原理》,1988年,俞盘祥 沈金发,清华大学出版社.

(4)操作系统原理

《现代操作系统》,孙钟秀等,高等教育出版社.

《操作系统原理》,谢青松,人民邮电出版社.

《操作系统原理教程》,张尧学主编,清华大学出版社出版.

(5)计算机体系结构

《计算机体系结构》,张晨曦等,高等教育出版社.

《计算机系统结构》,郑纬民 汤志忠,清华大学出版社出版.

《计算机组成与结构》,王爱英,清华大学出版社.

(6)计算机 ***

《计算机 *** (第二版)》,冯博琴,高等教育出版社.

《计算机 *** 与INTERNET教程》,张尧学,清华大学出版社.

《计算机 *** 》,蔡开裕等,机械工业出版社.

(7)离散数学

《离散数学》,孙吉贵 杨凤杰,高等教育出版社.

《离散数学教程》,耿素云 屈婉玲 王捍贫,北京大学出版社.

《离散数学及其应用(原书第4版)》( Discrete Mathematics and Its Applications,Fourth Edition,作者:美-Kenneth H.Rosen),袁崇义 屈婉玲 王捍贫 刘田译,机械工业出版社.

呵呵,这些应该差不多了,整理了一个多小时,还问了导师。希望对你有用!~

回答者:keamiy

谁能告诉我什么叫“机械证明”

王捍贫北京大学职称:机器证明是使用计算机证明定理王捍贫北京大学职称,也称为定理王捍贫北京大学职称的机械证明或自动证明。作为计算机科学王捍贫北京大学职称的一个重要课题,它王捍贫北京大学职称的研究与发展至今约有50年的历史。在本文中,将试图向您展示机器证明的基本思路和 *** 。

关键字: 机器证明,演绎推理形式系统p,试探法,判定法,计算机辅助证明,证明算法

各门的科学中,都有推理和论证;尤其是在数学中,要通过推理和证明来建立定理,证明的每一个步骤都是通过逻辑推理的规则推出另一些命题。从它们出发进行推理的命题称为前提,由此而推出的命题称为结论。

我们来看一个例子。数学分析研究函数的连续性的时候,证明了由下面的前提

1) 函数f(x)在闭区间[a,b]上连续,

2) f(a)与f(b)异号。

能推出结论

3) 有c,使得acb,f(c)=0

但如果把1)中的闭区间[a,b]改为开区间(a,b),那么由改变后的1)和2)前提就不能推出3)这个结论。

这项工作(推理与证明),一直是由数学家来做的;这是他们的生计。但是,是否有其他的可能?比如,将可用机器来证明和推理数学定理?这是件有意义而又艰难的工作;推理和证明是智能的体现,而人工智能,是人类一直的梦想之一。这需要几个条件。

首先,我们要把推理和证明作为研究对象,加以详细研究。以往的任何数学分支,都有自己的研究对象,但都不研究它们所共同使用的逻辑推理规则;数理逻辑则是这样的一个条件,它把推理和证明作为数学对象来研究。只有对推理和证明等人类思维活动本身有足够的认识,我们才可能把这项工作交给机器来做。

其次,计算机必须有相当的发展。这是毫无疑问的,但往往是相互促进,而并非一方完美后,另一方才能发展。

有了这些条件后,如果产生了需要,机器证明将成为可能;而事实上这种需要产生了。

下面我们将试图展示机器证明的奥秘。可是,本文非正规的学术论文,所以您将看到并不严格的描述和形式化工具交替出现的情况。但介绍机器证明,是本文毫无疑问的目的。

当然,需要简单引述数理逻辑的知识。数理逻辑以推理和证明作为数学对象来研究,它起始于莱布尼茨试图对思维符号化的工作。到如今以是硕果累累,有着丰富的知识体系。一般本科阶段可接触到命题逻辑和谓词逻辑部分,而研究生阶段将详细研究其它高等数理逻辑内容(计算机专业的教学计划)。我们以最简单的命题逻辑“演绎推理形式系统p”为例让您初步了解数理逻辑的特点。

数理逻辑的主要特点是“形式化”,具体的讲,就是把“数学推理”形式化。而通俗一点,则是把前提和结论,以及前提得到结论这个推理过程都“符号化”为一个系统,形式系统。形式系统具有严格的定义,而这里,您可以暂时认为,形式系统是由4个 *** 构成:字母表或符号库,字集或公式集,公理集,规则集;公理集是公式集的子集,规则集则是有公式集上的运算构成。

如演绎推理形式系统p的定义:

p的字母表中含有:

(1)命题变元:p1,p2,...,pn,...;

(2)联结词:┐,→;

(3)辅助符号:(,);

p的公式如下归结定义:

(1)命题变元是公式;

(2)若α是公式,则(┐α)是公式;

(3)若α,β是公式,则(α→β)是公式;

(4)所有公式都是有限次使用(1)-(3)得到。

p的公理集有三类:

(1) α→(β→α) (A1)

(2) (α→(β→r)) →((α→β)→(α→r)) (A2)

(3) ((┐β)→(┐α)) →(α→β) (A3)

p的形式规则:

分离规则:α→β,α┣β (M)

这个系统将胜任命题逻辑的推理证明工作。但是,我给您强调这样一个观念,形式系统中的公式,只是满足一定要求的符号串,在给于它们语义之前,“形式推理”是一列符号串变换。

比如,对于规则(M):

α→β,α┣β

您不要在心里念叨:如果α为真,α→β为真,则β为真!这是符号串的变换规则,不存在真与假的概念。您不妨就这样看,比如由字符串(公式:)α,可以推出β→α:

(1) α→(β→α) (A1)

(2) α

(3) β→α (M)(1)(2)

这样的一个序列,也就是形式推理。

当然,作为技术人员,我想不看到它的语义部分,大家多半会不放心,这个形式系统p,它有什么用途?但若展开了说,本文就成了数理逻辑的介绍了。这样,有兴趣的读者可参考注1提供的参考资料。

我们来看一看人类的推理证明过程的例子:

在演绎推理形式系统p中证明: ┣ (α→β)→(α→α)

这是个有趣的逻辑思维锻炼,由p的公理集和规则集来推导出这个公式;我想,您可以想到这个序列:

(1) α→(β→α) (A1)

(2) (α→(β→α))→((α→β)→(α→α)) (A2)

(3) (α→β)→(α→α) (M)(1)(2)

事实上,我们的思路可以是这样的:由待证明的 (α→β)→(α→α),对照看三类公理的特点,您不觉得眼前一亮:公式(α→β)→(α→α)可对应于(A2)的右端,让α代替r;毫无疑问由规则(M),我们希望α→(β→α)成立,而这是(A1)!我们就可以写下这个证明序列了。

对于复杂的问题,这“眼前一亮”,对人类来讲也绝非一个轻松的工作。更何况,我们希望我们的计算机也可以“眼前一亮”!

机器证明是困难的,但仍不是没有希望做的完美些。希望您不至于对理论科学感到厌烦。下次我们将展开机器证明的奥秘。

注1:好的数理逻辑教材,我所读的,有

[陆钟万]. 面向计算机科学的数理逻辑. 科学出版社,1998

[王捍贫]. 数理逻辑. 北京大学出版社,1997

本文参考资料:

[陆钟万]. 数理逻辑与机器证明. 科学出版社,1983

[王捍贫]. 数理逻辑. 北京大学出版社,1997

[北京市]王捍贫北京大学职称,北京大学王镝

C++中,什么是高数

高等数学简介

初等数学研究的是常量,高等数学研究的是变量。

高等数学(也称为微积分,它是几门课程的总称)是理、工科院校一门重要的基础学科。作为一门科学,高等数学有其固有的特点,这就是高度的抽象性、严密的逻辑性和广泛的应用性。抽象性是数学最基本、最显著的特点--有了高度抽象和统一,我们才能深入地揭示其本质规律,才能使之得到更广泛的应用。严密的逻辑性是指在数学理论的归纳和整理中,无论是概念和表述,还是判断和推理,都要运用逻辑的规则,遵循思维的规律。所以说,数学也是一种思想 *** ,学习数学的过程就是思维训练的过程。人类社会的进步,与数学这门科学的广泛应用是分不开的。尤其是到了现代,电子计算机的出现和普及使得数学的应用领域更加拓宽,现代数学正成为科技发展的强大动力,同时也广泛和深入地渗透到了社会科学领域。因此,学好高等数学对我们来说相当重要。然而,很多学生对怎样才能学好这门课程感到困惑。要想学好高等数学,至少要做到以下四点:

首先,理解概念。数学中有很多概念。概念反映的是事物的本质,弄清楚了它是如何定义的、有什么性质,才能真正地理解一个概念。

其次,掌握定理。定理是一个正确的命题,分为条件和结论两部分。对于定理除了要掌握它的条件和结论以外,还要搞清它的适用范围,做到有的放矢。

第三,在弄懂例题的基础上作适量的习题。要特别提醒学习者的是,课本上的例题都是很典型的,有助于理解概念和掌握定理,要注意不同例题的特点和解法法在理解例题的基础上作适量的习题。作题时要善于总结---- 不仅总结 *** ,也要总结错误。这样,作完之后才会有所收获,才能举一反三。

第四,理清脉络。要对所学的知识有个整体的把握,及时总结知识体系,这样不仅可以加深对知识的理解,还会对进一步的学习有所帮助。

高等数学中包括微积分和立体解析几何,级数和常微分方程。其中尤以微积分的内容最为系统且在其他课程中有广泛的应用.微积分的理论是由牛顿和莱布尼茨完成的.(当然在他们之前就已有微积分的应用,但不够系统)无穷小和极限的概念微积分的基本概念的理解有很大难度。

高等数学分为几个部分为:

一、函数 极限 连续

二、一元函数微分学

三、一元函数积分学

四、向量代数与空间解析几何

五、多元函数微分学

六、多元函数积分学

七、无穷级数

八、常微分方程

高数主要包括

一、 函数与极限分为

常量与变量

函数

函数的简单性态

反函数

初等函数

数列的极限

函数的极限

无穷大量与无穷小量

无穷小量的比较

函数连续性

连续函数的性质及初等函数函数连续性

二、导数与微分

导数的概念

函数的和、差求导法则

函数的积、商求导法则

复合函数求导法则

反函数求导法则

高阶导数

隐函数及其求导法则

函数的微分

三、导数的应用

微分中值定理

未定式问题

函数单调性的判定法

函数的极值及其求法

函数的更大、最小值及其应用

曲线的凹向与拐点

四、不定积分

不定积分的概念及性质

求不定积分的 ***

几种特殊函数的积分举例

五、定积分及其应用

定积分的概念

微积分的积分公式

定积分的换元法与分部积分法

广义积分

六、空间解析几何

空间直角坐标系

方向余弦与方向数

平面与空间直线

曲面与空间曲线

八、多元函数的微分学

多元函数概念

二元函数极限及其连续性

偏导数

全微分

多元复合函数的求导法

多元函数的极值

九、多元函数积分学

二重积分的概念及性质

二重积分的计算法

三重积分的概念及其计算法

十、常微分方程

微分方程的基本概念

可分离变量的微分方程及齐次方程

线性微分方程

可降阶的高阶方程

线性微分方程解的结构

二阶常系数齐次线性方程的解法

二阶常系数非齐次线性方程的解法

十一、无穷级数

导数的概念

在学习到数的概念之前,我们先来讨论一下物理学中变速直线运动的瞬时速度的问题。

例:设一质点沿x轴运动时,其位置x是时间t的函数,y=f(x) ,求质点在t0的瞬时速度?

我们知道时间从t0有增量△t时,质点的位置有增量

这就是质点在时间段△t的位移。因此,在此段时间内质点的平均速度为;

若质点是匀速运动的则这就是在t0的瞬时速度,若质点是非匀速直线运动,则这还不是质点在t0时的瞬时速度。

我们认为当时间段△t无限地接近于0时,此平均速度会无限地接近于质点t0时的瞬时速度,

即:质点在t0时的瞬时速度=

为此就产生了导数的定义,如下:

导数的定义

设函数y=f(x)在点x0的某一邻域内有定义,当自变量x在x0处有增量△x(x+△x也在该邻域内)时,相应地

函数有增量

若△y与△x之比当△x→0时极限存在,则称这个极限值为y=f(x)在x0处的导数。

记为:

还可记为:

函数f(x)在点x0处存在导数简称函数f(x)在点x0处可导,否则不可导。

若函数f(x)在区间(a,b)内每一点都可导,就称函数f(x)在区间(a,b)内可导。这时函数y=f(x)对于区

间(a,b)内的每一个确定的x值,都对应着一个确定的导数,这就构成一个新的函数,

我们就称这个函数为原来函数y=f(x)的导函数。

注:导数也就是差商的极限

左、右导数

前面我们有了左、右极限的概念,导数是差商的极限,因此我们可以给出左、右导数的概念。

若极限

存在,我们就称它为函数y=f(x)在x=x0处的左导数。

若极限

存在,我们就称它为函数y=f(x)在x=x0处的右导数。

注:函数y=f(x)在x0处的左右导数存在且相等是函数y=f(x)在x0处的可导的充分必要条件

离散数学

[编辑本段]简介

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

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

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

离散数学是传统的逻辑学, *** 论(包括函数),数论基础,算法设计,组合分析,离散概率,关系理论,图论与树,抽象代数(包括代数系统,群、环、域等),布尔代数,计算模型(语言与自动机)等汇集起来的一门综合学科。离散数学的应用遍及现代科学技术的诸多领域。

离散数学课程主要介绍离散数学的各个分支的基本概念、基本理论和基本 *** 。这些概念、理论以及 *** 大量地应用在数字电路、编译原理、数据结构、操作系统、数据库系统、算法的分析与设计、人工智能、计算机 *** 等专业课程中;同时,该课程所提供的训练十分有益于学生概括抽象能力、逻辑思维能力、归纳构造能力的提高,十分有益于学生严谨、完整、规范的科学态度的培养。

离散数学课程的教学目的,不但作为计算机科学与技术及相关专业的理论基础及核心主干课,对后续课程提供必需的理论支持。更重要的是旨在“通过加强数学推理,组合分析,离散结构,算法构思与设计,构建模型等方面专门与反复的研究、训练及应用,培养提高学生的数学思维能力和对实际问题的求解能力。”

离散数学通常研究的领域包括:数理逻辑、 *** 论、代数结构、关系论、函数论、图论、组合学、数论等。它是高校计算机及相关专业的重要基础课程之一。

课程内容涉及:

1. *** 论部分: *** 及其运算、二元关系与函数、自然数及自然数集、 *** 的基数

2.图论部分:图的基本概念、欧拉图与哈密顿图、树、图的矩阵表示、平面图、图着色、支配集、覆盖集、独立集与匹配、带权图及其应用

3.代数结构部分:代数系统的基本概念、半群与独异点、群、环与域、格与布尔代数

4.组合数学部分:组合存在性定理、基本的计数公式、组合计数 *** 、组合计数定理

5.数理逻辑部分:命题逻辑、一阶谓词演算、消解原理

离散数学被分成三门课程进行教学,即 *** 论与图论、代数结构与组合数学、数理逻辑。教学方式以课堂讲授为主, 课后有书面作业、通过学校 *** 教学平台发布课件并进行师生交流。[编辑本段]相关文献

【1】 耿素云,屈婉玲,离散数学(国家十五规划教材),高教出版社,2004。

【2】 袁崇义,屈婉玲,王捍贫,刘田,离散数学及其应用(第4版,译著),机械工业出版社,2002。

【3】 陆钟万,计算机科学中的数理逻辑,科学出版社,2002。

【4】 哈密尔顿,朱水林译,数理逻辑,华东师大出版社,1987。

【5】 耿素云,离散数学习题集--数理逻辑与 *** 论分册,北大出版社,1993。

【6】 张立昂,离散数学习题集--抽象代数分册,北大出版社,1990。

【7】 耿素云,离散数学习题集--图论分册,北大出版社,1990。

【8】 离散数学习题辅导软件

【9】 命题逻辑教学软件

【10】离散数学教程,耿素云,屈婉玲, 王捍贫,北京大学出版社,2002。

【11】Discrete Mathematics and Its Applications,Fourth Edition,Kenneth H.Rosen

此书的价值已经被全世界几百所大学所证实,作为离散数学领域的经典教材,全世界几乎所有知名的院校都曾经使用本书作为教材.以我个人观点看来,这本书可以称之为离散数学百科.书中不但介绍了离散数学的理论和 *** ,还有丰富的历史资料和相关学习网站资源.更为令人激动的便是这本书少有的将离散数学理论与应用结合得如此的好.你可以看到离散数学理论在逻辑电路,程序设计,商业和互联网等诸多领域的应用实例.本书的英文版(第五版)当中更增添了相当多的数学和计算机科学家的传记,是计算机科学历史不可多得的参考资料.作为教材这本书配有相当数量的练习.每一章后面还有一组课题,把学生已经学到的计算和离散数学的内容结合在一起进行训练.这本书也是我个人在学习离散数学时读的唯一的英文教材,实为一本值得推荐的好书。

想学软件开发?自学.帮推荐下书籍!

下面推荐的比较详细是我以前问别人的,别人整理了一个多小时,推荐给你。你可以适度看看有哪些是你需要的,我是从java学起的,《Thingking in java》是一本非常好的书,看过《游戏编程之旅》那本书,云风著。前人的经验是,先入门,再去系统的学习,《Thingking in java》就是很好的系统学习。当然基础很重要,数据结构、算法之类。

其实把下面的全掌握了,基础那就真是很厉害了,再学精一门语言就是专家了吧!

(1)数据结构:

《数据结构(C语言版),出版日期:2005-5-1,严蔚民,清华大学.---推荐!

《数据结构习题与解析(C语言版)》,李春葆.---比严老的简单点,通俗易懂

《数据结构》(用面向对象 *** 与C++描述)》,出版日期:1999年7月,殷人昆 王小京,清华大学出版社.

(2)算法:

《算法设计与分析(高等学校计算机教材)》,郑宗汉,清华大学出版社.

《算法导论(影印版)》(Introduction to Algorithms, Second Edition

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein MIT)高等教育出版社.

《计算机程序设计艺术》(The Art of Programming Language), 清华大学出版社

《算法设计与分析基础》(Intruduction to The Design and Analysis of Algorithms (US)Anany Levitin),潘彦 译,清华大学出版社.

(3)数据库

《数据库系统概论》,1983年,萨师煊 王珊,高等教育出版社出版.

《数据库原理与 *** 》,1983年,郑若忠 王鸿武,湖南科学技术出版社出版.

《数据库系统原理》,1988年,俞盘祥 沈金发,清华大学出版社.

(4)操作系统原理

《现代操作系统》,孙钟秀等,高等教育出版社.

《操作系统原理》,谢青松,人民邮电出版社.

《操作系统原理教程》,张尧学主编,清华大学出版社出版.

(5)计算机体系结构

《计算机体系结构》,张晨曦等,高等教育出版社.

《计算机系统结构》,郑纬民 汤志忠,清华大学出版社出版.

《计算机组成与结构》,王爱英,清华大学出版社.

(6)计算机 ***

《计算机 *** (第二版)》,冯博琴,高等教育出版社.

《计算机 *** 与INTERNET教程》,张尧学,清华大学出版社.

《计算机 *** 》,蔡开裕等,机械工业出版社.

(7)离散数学

《离散数学》,孙吉贵 杨凤杰,高等教育出版社.

《离散数学教程》,耿素云 屈婉玲 王捍贫,北京大学出版社.

《离散数学及其应用(原书第4版)》( Discrete Mathematics and Its Applications,Fourth Edition,作者:美-Kenneth H.Rosen),袁崇义 屈婉玲 王捍贫 刘田译,机械工业出版社.

基本上每类的之一本已经可以代表当今中国大学教学用书的主流了。所以从basic角度讲,足够了,但是如果从工程角度讲,建议你可以根据某一种语言去定向的学习数据结构,比如Java或者C#。毕竟面向对象以后,数据结构的处理不像c那样麻烦。体系结构,操作系统和 *** 我们用的是英文教材《国外优秀信息科学技术系列教学用书》感觉写的比中文的实用,如果你英文好的话可以参考,分别较计算机组织与结构,实用操作系统概念,计算机 *** (好像现在有翻译版了)。

《计算机程序设计艺术》我们老师当时强烈推荐,但是两大厚本,我一直没时间看,挺遗憾的。脱离基础学科,就语言方面 Think in C++ (Think in Java)是非常好的书。你可以到网上搜一搜就知道,Bruce.另外如果你要是学软件的话, .net 和J2EE是必须掌握其一的,否则以后的路很难走,这方面建议你上网多查资料,因为信息更新很快,那些书很多都是抄来抄去,也没什么新鲜的。CSDN网站应该知道吧,看看里面的帖子就知道了。

离散数学的相关文献

【1】 耿素云,屈婉玲。离散数学(国家十五规划教材).高教出版社,2004。

【2】 袁崇义,屈婉玲,王捍贫,刘田。离散数学及其应用(第4版,译著).机械工业出版社,2002。

【3】 陆钟万。计算机科学中的数理逻辑.科学出版社,2002。

【4】哈密尔顿,朱水林译。数理逻辑.华东师大出版社,1987。

【5】 耿素云。离散数学习题集--数理逻辑与 *** 论分册.北大出版社,1993。

【6】 张立昂。离散数学习题集--抽象代数分册.北大出版社,1990。

【7】 耿素云。离散数学习题集--图论分册.北大出版社,1990。

【8】 离散数学习题辅导软件

【9】 命题逻辑教学软件

【10】离散数学教程,耿素云,屈婉玲, 王捍贫,北京大学出版社,2002。

【11】Discrete Mathematics and Its Applications,Sixth Edition,Kenneth H.Rosen

Discrete Mathematics and Its Applications此书的价值已经被全世界几百所大学所证实,作为离散数学领域的经典教材,全世界几乎所有知名的院校都曾经使用本书作为教材。以我个人观点看来,这本书可以称之为离散数学百科.书中不但介绍了离散数学的理论和 *** ,还有丰富的历史资料和相关学习网站资源。更为令人激动的便是这本书少有的将离散数学理论与应用结合得如此的好.你可以看到离散数学理论在逻辑电路,程序设计,商业和互联网等诸多领域的应用实例。本书的英文版(第六版)当中更增添了相当多的数学和计算机科学家的传记,是计算机科学历史不可多得的参考资料.作为教材这本书配有相当数量的练习。每一章后面还有一组课题,把学生已经学到的计算和离散数学的内容结合在一起进行训练.这本书也是我个人在学习离散数学时读的唯一的英文教材,实为一本值得推荐的好书。

吴 *** 的机器证明介绍

:机器证明,演绎推理形式系统p,试探法,判定法,计算机辅助证明,证明算法

各门的科学中,都有推理和论证;尤其是在数学中,要通过推理和证明来建立定理,证明的每一个步骤都是通过逻辑推理的规则推出另一些命题。从它们出发进行推理的命题称为前提,由此而推出的命题称为结论。 我们来看一个例子。数学分析研究函数的连续性的时候,证明了由下面的前提

1) 函数f(x)在闭区间[a,b]上连续,

2) f(a)与f(b)异号。

能推出结论

3) 有c,使得acb,f(c)=0

但如果把1)中的闭区间[a,b]改为开区间(a,b),那么由改变后的1)和2)前提就不能推出3)这个结论。

这项工作(推理与证明),一直是由数学家来做的;这是他们的生计。但是,是否有其他的可能?比如,将可用机器来证明和推理数学定理?这是件有意义而又艰难的工作;推理和证明是智能的体现,而人工智能,是人类一直的梦想之一。这需要几个条件。

首先,我们要把推理和证明作为研究对象,加以详细研究。以往的任何数学分支,都有自己的研究对象,但都不研究它们所共同使用的逻辑推理规则;数理逻辑则是这样的一个条件,它把推理和证明作为数学对象来研究。只有对推理和证明等人类思维活动本身有足够的认识,我们才可能把这项工作交给机器来做。

其次,计算机必须有相当的发展。这是毫无疑问的,但往往是相互促进,而并非一方完美后,另一方才能发展。

有了这些条件后,如果产生了需要,机器证明将成为可能;而事实上这种需要产生了。

下面我们将试图展示机器证明的奥秘。可是,本文非正规的学术论文,所以您将看到并不严格的描述和形式化工具交替出现的情况。但介绍机器证明,是本文毫无疑问的目的。

当然,需要简单引述数理逻辑的知识。数理逻辑以推理和证明作为数学对象来研究,它起始于莱布尼茨试图对思维符号化的工作。到如今以是硕果累累,有着丰富的知识体系。一般本科阶段可接触到命题逻辑和谓词逻辑部分,而研究生阶段将详细研究其它高等数理逻辑内容(计算机专业的教学计划)。我们以最简单的命题逻辑“演绎推理形式系统p”为例让您初步了解数理逻辑的特点。 是“形式化”,具体的讲,就是把“数学推理”形式化。而通俗一点,则是把前提和结论,以及前提得到结论这个推理过程都“符号化”为一个系统,形式系统。形式系统具有严格的定义,而这里,您可以暂时认为,形式系统是由4个 *** 构成:字母表或符号库,字集或公式集,公理集,规则集;公理集是公式集的子集,规则集则是有公式集上的运算构成。

如演绎推理形式系统p的定义:

p的字母表中含有:

⑴命题变元:p1,p2,...,pn,...;

⑵联结词:┐,→;

⑶辅助符号:(,);

p的公式如下归结定义:

⑴命题变元是公式;

⑵若α是公式,则(┐α)是公式;

⑶若α,β是公式,则(α→β)是公式;

⑷所有公式都是有限次使用⑴-⑶得到。

p的公理集有三类:

⑴ α→(β→α) (A1)

⑵ (α→(β→r)) →((α→β)→(α→r)) (A2)

⑶ ((┐β)→(┐α)) →(α→β) (A3)

p的形式规则:

分离规则:α→β,α┣β (M)

这个系统将胜任命题逻辑的推理证明工作。但是,我给您强调这样一个观念,形式系统中的公式,只是满足一定要求的符号串,在给于它们语义之前,“形式推理”是一列符号串变换。

比如,对于规则(M):

α→β,α┣β

您不要在心里念叨:如果α为真,α→β为真,则β为真!这是符号串的变换规则,不存在真与假的概念。您不妨就这样看,比如由字符串(公式:)α,可以推出β→α:

⑴ α→(β→α) (A1)

⑵ α

⑶ β→α (M)⑴⑵

这样的一个序列,也就是形式推理。

当然,作为技术人员,我想不看到它的语义部分,大家多半会不放心,这个形式系统p,它有什么用途?但若展开了说,本文就成了数理逻辑的介绍了。这样,有兴趣的读者可参考注1提供的参考资料。

我们来看一看人类的推理证明过程的例子:

在演绎推理形式系统p中证明:┣ (α→β)→(α→α)

这是个有趣的逻辑思维锻炼,由p的公理集和规则集来推导出这个公式;我想,您可以想到这个序列:

⑴ α→(β→α) n

bsp; (A1)

⑵ (α→(β→α))→((α→β)→(α→α)) (A2)

⑶ (α→β)→(α→α) (M)⑴⑵

事实上,我们的思路可以是这样的:由待证明的 (α→β)→(α→α),对照看三类公理的特点,您不觉得眼前一亮:公式(α→β)→(α→α)可对应于(A2)的右端,让α代替r;毫无疑问由规则(M),我们希望α→(β→α)成立,而这是(A1)!我们就可以写下这个证明序列了。

对于复杂的问题,这“眼前一亮”,对人类来讲也绝非一个轻松的工作。更何况,我们希望我们的计算机也可以“眼前一亮”!

机器证明是困难的,但仍不是没有希望做的完美些。希望您不至于对理论科学感到厌烦。下次我们将展开机器证明的奥秘。

注1:好的数理逻辑教材,我所读的,有

[陆钟万]. 面向计算机科学的数理逻辑. 科学出版社,1998

[王捍贫]. 数理逻辑. 北京大学出版社,1997

本文参考资料

[陆钟万]. 数理逻辑与机器证明. 科学出版社,1983

[王捍贫]. 数理逻辑. 北京大学出版社,1997

机器证明,一个出发点,就是“寓理于算”,但这条路并不平坦。数理逻辑大家在探讨思维的符号化工作,计算机科学家也在探索计算机本身的能力极限。一代一代的人,在思索,人类的智慧的奥秘何在;机器如何完成这项工作,如何做的更好,乃至和人类一样好?

上次说到这个公式的证明:

┣ (α→β)→(α→α)

它的证明序列很简单,如下:

⑴ α→(β→α) (A1)

⑵ (α→(β→α))→((α→β)→(α→α)) (A2)

⑶ (α→β)→(α→α) (M)⑴⑵

我在介绍证明思路形成的过程时,曾用到词语“眼前一亮”,但之于科学,这个描述是不好的。在这个问题上,张景中先生曾论述过关于几何定理证明中的人类证明与机器证明过程的异同,我加以扩充,描述如下:

⑴检验:对所有已知条件进行观察和计算,以确定命题;

⑵搜索:依据已有的(常用的)引理和结论,寻找更多的可知信息,如果这些结果不能达到目的,就把它 们作为进一步工作的基础;

⑶规约:从结论出发,利用已知信息消去所依赖的某些已知量和条件,使结论的真假趋于明显或易于检验;

⑷转化:改变命题的形式;如考虑传递律和反证法。

手段⑴的机器模拟已经实现。手段⑶的研究取得了更大的成功,吴文俊先生的几何定理证明 *** ,就属于此类。⑵则是比较传统的常规手段,是规约的补充和转化基础。而手段⑷,充分体现了人类思维的灵活性和丰富性,还难于机械化。

上例子的思路形成,可以体现这些结论。然而毫无疑问,即使手段⑷的完美机械化,也需要我们的进一步努力;更何况,我想机器证明,待开拓的地方还远不止这些。

那么,让我们开始沿着历史的脚步,来细致的看一下,机器证明中的试探法,计算机辅助证明,判定法和证明算法等研究方向的思路;希望我们都能于此感到美妙的兴趣,并有所乐。乐之乃我的目的,不过您若准备自己动手查资料,想深入下去,我则手舞足蹈了。 使用试探法证明定理,可以从前提出发,或者从结论出发。

从前提出发,就是由前提(包括公理、定义、已证明的定理以及所要证明的定理的假设)中的某些命题推出若干命题作为中间结论;再把中间结论加到前提之中,又推出若干中间结论。如此下去,若推出了所要的结论,则定理得到证明,否则就要考虑其它的途径,从前提的另一些命题推出另外的中间结论,试探推出待证明定理。

从结论出发,则是考虑有了怎样的命题就能推出所要的结论,从而归约为证明这些命题;类似于上面的过程,若定理的前提包括了所需要的命题,则定理得到证明,否则仍需考虑另外的途径。

试探法是一种手段,使用它只是有可能得到问题的解,但并不保证一定能得到解。而且,在定理得到证明之前,我们不能肯定它是不是不可证明的。

在历史上,Newell-Shaw-Simon曾用试探法证明命题逻辑中的重言式。他们使用的形式系统,不是自然推理系统,而是重言式系统,即我们上次介绍的命题推理形式系统p。下面是他们的试探法:

设要证明的A是形式定理,把A看作所要解决的问题。

之一步,试验代入规则。比如:由α→(β→α) 可以推出:

α→((α→β)→α),

(α→β)→(β→(α→β)),

如果能用代入规则由存储在“形式定理表”中的某个形式定理(包括形式公理)推出A,证明结束;否则代入规则无效,转入下一步。

第二步,试验分离规则。在形式定理表中寻找(B→A)形式的公式,若有,则问题就由证明A归约为证明B,B称为子问题。于是使用B试验代入规则给以证明:如果B能够得到证明,则A的证明结束,否则把B送入“子问题表”。于是继续试验分离规则,若找不到(B→A)形式的公式,转入下一步。

第三步,试验蕴涵词传递规则。蕴涵词传递规则不是定义中的一部分,它可由定义证明,但它非常有用,具体如下:

α→β,β→r┣α→r (Tr)

具体 *** 为,先检查A是不是蕴涵式,如果不是,则不能进行第三步,于是在子问题表中取出下一个公式,转第二步;如果A是蕴涵式,例如有B→D形式的公式,则在形式定理表中找B→C或C→D形式的公式,若找到B→C形式的公式,则问题由证明A(即B→D)归约为证明C→D,而若找到C→D形式的公式,则问题归约为证明B→C。B→C或C→D是子问题,于是对之进行代入规则证明。若这个证明成功,则证明结束,否则把子问题存入子问题表,继续在形式定理表中寻找B→C或C→D形式的公式,并且重复方才的过程,如果找不到,则在子问题表中取出下一个公式,并转入第二步。

以上证明A的过程中,停机条件是下面四种情形之一:A得到证明;机器时间用完;机器存储器用完;子问题表中的公式用完。因此,当证明过程结束时,A并不一定能得到证明。

著名数理逻辑学家王浩曾给出一个算法,比这个试探法要简捷的多,证明了罗素的巨著《数学原理》中的几百条关于命题逻辑的定理,仅用了9分钟。这是一项意义深远的工作。有兴趣深入的读者可查阅注释2提供的参考资料。

注2:[王浩]. Toward Mechanical Mathematics,IBM Journal for Research and Development,4,224-268,1960

本文参考资料:

1,[陆钟万]. 数理逻辑与机器证明. 科学出版社,1983

2,[张景中]. 几何定理机器证明研究展望. 中国科学院院刊第二期,1997