专家系统原理与编程
作者 : (美)Joesph Giarratano
译者 : 印鉴 刘星成 汤庸 等
丛书名 : 计算机科学丛书
出版日期 : 2000-05-01
ISBN : 7-111-07581-1
定价 : 49.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 420
开本 : 16开
原书名 : Expert Systems Principles and Programming
原出版社: Brooks/Cole
属性分类: 教材
包含CD :
绝版 : 已绝版
图书简介

本书分为两部分:第1~6章主要讲述专家系统原理及其所涉及的理论,如逻辑、概率、数据结构和人工智能等。第7~12章主要讲述专家系统编程。学过人工智能的有关课程会对学习本书帮助较大。在本书中,对与专家系统有关的一些人工智能知识也作了一些介绍。

图书特色

印鉴:男,博士,副教授,1968年出生。1994年毕业于武汉大学计算机科学系,获工学博士学位。现任中山大学信息科学与技术学院计算机科学系MIS教研室主任,电子商务研究所副所长。1993年,曾在美国洛杉矶ALPHA OMEG公司从事合作科研;1997年,曾在香港浸会大学电脑学系作访问学者。目前主要从事人工智能、知识工程等方面的研究工作。 刘星成:男,硕士,副教授。1964年出生。1989年毕业于华中理工大学自动化专业,获工学硕士学位。现在中山大学信息科学与技术学院电子与通信工程系任教,并正在该系攻读在职博士学位。目前主要从事自动推理、网络通信等方面的研究工作。 汤庸:男,硕士,副教授。1964年出生。1989年毕业于武汉大学计算机科学系,获工学硕士学位。现任广东工业大学计算机工程系副主任,并正在中科院软件所攻读在职博士学位。1993年,曾在美国洛杉矶ALPHA OMEG公司从事合作科研。目前主要从事知识工程、计算机协同工作等方面的研究工作。

图书前言

专家系统自从80年代初期进入商业应用以来,得到了巨大的发展。今天,它已被广泛地运用到商业、科学、工程、制造以及其他领域。
本书主要介绍专家系统原理与编程,适用于计算机科学、计算机信息系统、工程、以及其他一些对专家系统有兴趣的专业的本科生。一些新的术语用黑体字表示并给出了解释。书中还给出了大量的实例与参考资料。
本书分为两部分:第1~6章主要讲述专家系统原理及其所涉及的理论,如逻辑、概率、数据结构和人工智能等。第7~12章主要讲述专家系统编程。学过人工智能的有关课程会对学习本书帮助较大。在本书中,对与专家系统有关的一些人工智能知识也作了一些介绍。
本书第一部分希望通过对专家系统理论的介绍来使学生学会对专家系统技术的运用。这里,要强调一点,专家系统与其他工具一样,既有优点,也有缺点。在这部分还介绍了专家系统与其他编程方法的关系,如传统程序设计。此外,本部分也希望对理论的介绍使学生能够阅读有关专家系统方面的资料。由于专家系统涉及面很广,对初学者来说,如果没有一些理论背景知识,将很难阅读相关资料。
本书第二部分介绍了CLIPS专家系统工具。这部分是专家系统编程的一个实例,可以加深对第一部分理论知识的理解。有了第一部分的理论知识后,这部分只要具有高级语言的编程经验就可以看懂。学生可以学会使用CLIPS来开发一些专家系统。CLIPS是Johnson太空中心NASA所开发的一个功能强大的专家系统工具。现在,CLIPS已用于开发政府、商业及工业等部门的项目。CLIPS适用于任何类型的机器,包括IBM-PC系列、VAX、HP、Sun、Macintosh以及Cray等。用CLIPS开发的代码运行速度快且可移植性好。本书附带的CD-ROM含有CLIPS在MSDOS、Windows 3.1/Windows 95以及MacOS上的可执行程序;此外,还有CLIPS参考手册、CLIPS用户指南、CLIPS C源程序代码。
有些专家系统课程包含一个课程项目,课程项目是提高专家系统开发技术的一个极好方法。学生们常常选择完成一个具有50~150条规则的专家系统。他们中的有些使用了CLIPS,如自动诊断、出租汽车调度、股票预测、购物咨询及饮食咨询等。
本书作为一学期的课程可安排如下:
1. 第1章简要介绍专家系统,习题1、2、3可作为练习。
2. 第7~10章介绍CLIPS语法。这部分内容对学生重新编写练习2的程序非常有用,学生们可把重新编写的程序与在第1章中所使用的语言编写的程序作比较。通过比较,可使学生发现基于规则的语言如CLIPS、LISP、PROLOG与其他语言的差别。
3. 第11、12章是对专家系统编程的进一步深入。第11章,“基于规则语言的效率”,可不作为基本内容讲授。这一章讨论的内容主要是对建造大型专家系统有用。第12章列举了一些能用CLIPS解决的典型问题。
作为一种可选方案,当讲授完第10章后,教师可返回到基本理论章节。如果学生有较好的逻辑与PROLOG知识,第2章与第3章基本上可以跳过。如果学生没有或只有一点人工智能课程中关于LISP的简单知识,第2章和第3章,主要是关于逻辑和专家系统的基本理论知识,则必须学习。如果学生有较好的概率和统计知识,则从第4章开始到4.11节可以跳过。
4. 从4.11节到第4章结束以及第5章主要是深入讨论专家系统中有关处理不确定性的方法。包括概率推理、确定性因子、Dempster-Shafer理论以及模糊理论。如果学生想阅读相关方面的文章或从事此领域研究工作,他们必须掌握好这些内容。
5. 第6章讨论专家系统中有关软件工程方面的问题,这部分内容主要针对那些想开发大型专家系统的学生。在布置课程项目前,可以不学此章。事实上,可以最后讲述此章,以使学生更好地熟悉建造一个高质量专家系统的所有因素。

图书序言

第 1 版序
当人工智能于50年代中期诞生时,它主要研究博弈、规划以及问题求解。在当时的环境下,是很难预测到30年后,人工智能最重要的应用领域会是知识工程,特别是专家系统。
专家系统最早期的研究工作是60年代末、70年代初斯坦福大学的Feigenbaum、Lederberg、Shortliffe及Buchanan等人首先开始的,其中一个代表性的研究成果就是MYCIN,直到今天,它仍是许多专家系统,更广泛一点说,是许多基于知识的系统的设计范例。
在过去几年中,专家系统在某些特定领域如医学诊断、计算机系统配置等方面的成功使得人们把它应用到更为广泛的领域,如:战略规划管理、故障诊断、证券市场投资和借贷信用评估等。
随着应用的不断扩大,导致了两个需求:(a) 如何处理一些关键问题如知识表示、推理以及不确定性处理等;(b) 开发专家系统外壳和编程语言以减少某些应用中设计知识表示与开发推理机的工作量。
由Joseph Giarratano与Gary Riley所著的此书是唯一一本结合了上述这两个需求的书,此书的第一部分主要是关于知识表示、逻辑推理以及不确定性等方面的内容。尤其值得注意的是那些关于不确定性推理的章节,它包含了目前最新的知识。此外,这部分还包括经典概率理论、MYCIN与PROSPECTOR中的确定性因子、Dempster-shafer理论及模糊逻辑。没有一本其他的书包含如此广泛的内容。
此书的第二部分详细地描述了CLIPS,一个用C语言编写的专家系统编程语言,它是一个功能强大的专家系统开发工具。CLIPS基于OPS5与ART,但具有不确定性推理的能力。
把这两个方面结合起来,使得此书是一本最新的理解专家系统原理与实践的书籍。写作此书显然不是一件容易的事,读者须花一定心力才能理解书中的内容。作为人工智能中一个最复杂最重要的领域,专家系统理论与实践包含许多高深的东西,其中很多至今我们也未能完全了解。我们应该感谢Joseph Giarratano 与Gary Riley写作此书,使得我们能够更容易且能更好地了解专家系统基本原理及其应用。


Lotfi A. Zadeh
1989年1月于加州伯克利



译者简介

印鉴 刘星成 汤庸 等:汤庸: 计算机科学系教授,博士生导师,现任中山大学计算机科学系系主任。中国计算机学会体系结构专委委员、CAD&CG专委委员。多次担任省市重大科技专项专家组、科技进步奖评审委员会、高级职称评委会组长或成员;多次担任国际国内学术会议程序委员副主席或委员。先后10多次到美国、法国、加拿大、巴西等国家进行学术交流和合作。科研成果获全国和省厅级科技进步奖、优秀论文奖和优秀CAI软件等奖励12项。

译者序

人工智能诞生于20世纪50年代,旨在研究如何利用计算机等工具来模仿人类的智能行为。自诞生以来,人工智能就一直是一个富有挑战性的领域,它以其诱人的目标和略显神秘的面纱,吸引了人类持久和狂热的追求。在众多的人工智能研究领域中,专家系统是一个最富有代表性和最重要的应用分支。
人工智能和专家系统曾取得过许多令人注目的成果,也走过不少弯路和经历过不少挫折。近几年来,随着计算机网络、通信等技术的发展,特别是Internet和WorldWideWeb的普及,人工智能与专家系统的研究再度活跃起来,并正向更为广泛的领域发展。
本书译自Joseph Giarrtano和Gary Riley的《Expert Systems Principles and Programming》第3版,这是一 本专家系统的著名教科书。本书全面介绍了专家系统原理,并通过CLIPS详细讨论了其实际应用。内容涉及知识表示、推理方法、不确定性推理、不精确推理以及开发专家系统的一系列实用技术。本书还附送了一个包括完整源代码、PC及Macintosh可执行代码、参考手册和程序实例的CD-ROM软件包。
本书理论与实际相结合,内容由浅入深,适合于计算机科学或工程专业本科生和研究生及CIS/MIS专业人员了解和设计专家系统,为他们提供了一个理论基础和编程工具。
本书第1~5章及附录由印鉴翻译,第6~7章由汤庸翻译,第8~12章由刘星成翻译,全书由印鉴组织、校阅和统稿。中山大学胡菁同志也给予很多帮助。
限于译者水平,书中难免有错误和不妥之处,敬请读者批评指正。



译  者
2000年1月于广州

图书目录

译者序
前言
第1版序
第1章  专家系统导论 1
1.1  概述 1
1.2  专家系统的定义 1
1.3  专家系统的优点 3
1.4  专家系统的基本概念 3
1.5  专家系统的特点 5
1.6  专家系统技术的发展 6
1.6.1  人类问题求解与产生式 7
1.6.2  知识系统的起源 9
1.7  专家系统的应用与领域 10
1.7.1  专家系统的应用 11
1.7.2  专家系统的适用领域 12
1.8  语言、外壳和工具 14
1.9  专家系统的要素 15
1.10  产生式系统 18
1.10.1  Post产生式系统 19
1.10.2  Markov算法 20
1.10.3  Rete算法 21
1.11  过程化程序规范 21
1.11.1  命令式程序设计 22
1.11.2  函数式程序设计 23
1.12  非过程化程序规范 25
1.12.1  说明性程序设计 25
1.12.2  面向对象程序设计 25
1.12.3  逻辑程序设计 26
1.12.4  专家系统 28
1.12.5  非说明性程序设计 29
1.12.6  基于归纳的程序设计 29
1.13  人工神经系统 30
1.13.1  货郎担问题 30
1.13.2  ANS的单元 30
1.13.3  ANS的特点 31
1.13.4  ANS技术的发展 32
1.13.5  ANS技术的应用 33
1.13.6  ANS的商业发展 33
1.14  专家系统与归纳学习的关系 33
1.15  小结 34
第2章  知识的表示 40
2.1  概述 40
2.2  知识的含义 40
2.3  产生式 42
2.4  语义网 44
2.5  对象-属性-值三元组 46
2.6  PROLOG和语义网 47
2.6.1  PROLOG本质 47
2.6.2  在PROLOG中搜索 49
2.7  语义网的困难之处 50
2.8  模式 51
2.9  框架 52
2.10  框架的困难之处 54
2.11  逻辑与集合 55
2.12  命题逻辑 57
2.13  一阶谓词逻辑 60
2.14  全称量词 61
2.15  存在量词 62
2.16  量词与集合 62
2.17  谓词逻辑的局限性 63
2.18  小结 63
第3章  推理方法 67
3.1  概述 67
3.2  树、格和图 67
3.3  状态与问题空间 69
3.3.1  状态空间的例子 70
3.3.2  非结构化问题空间 72
3.4  与或树和目标 73
3.5  演绎逻辑与三段论 75
3.6  推理规则 79
3.7  命题逻辑的局限性 84
3.8  一阶谓词逻辑 85
3.9  逻辑系统 86
3.10  归结 88
3.11  归结系统与演绎 90
3.12  浅推理和因果推理 92
3.13  归结与一阶谓词逻辑 94
3.13.1  转化为子句形式 95
3.13.2  合一与规则 97
3.14  正向链和反向链 98
3.15  其他推理方法 103
3.15.1  类比 103
3.15.2  生成与验证 104
3.15.3  溯因 105
3.15.4  非单调推理 106
3.16  元知识 109
3.17  小结 109
第4章  不确定性推理 115
4.1  概述 115
4.2  不确定性 115
4.3  误差种类 115
4.4  误差与归纳 117
4.5  经典概率 118
4.5.1  经典概率的定义 119
4.5.2  样本空间 120
4.5.3  概率理论 121
4.6  经验主观概率 121
4.7  复合概率 123
4.8  条件概率 124
4.8.1  乘法律 124
4.8.2  贝叶斯定理 126
4.9  假设推理与反向归纳 127
4.10  时间推理与马尔柯夫链 130
4.11  信任几率 133
4.12  充分性与必然性 134
4.13  推理链中的不确定性 136
4.13.1  专家的不一致性 136
4.13.2  不确定性证据 137
4.13.3  修正不确定性 139
4.14  证据组合 139
4.14.1  不确定性证据的分类 139
4.14.2  通过模糊逻辑组合证据 141
4.14.3  有效似然性 142
4.14.4  条件独立性的困难 143
4.15  推理网 144
4.15.1  PROSPECTOR 144
4.15.2  推理网 145
4.15.3  推理关系 147
4.15.4  推理网的结构 149
4.16  概率的传播 151
4.17  小结 153
第5章  不精确推理 159
5.1  概述 159
5.2  不确定性与规则 159
5.2.1  规则中不确定性的来源 159
5.2.2  缺乏理论基础 160
5.2.3  规则间相互影响 160
5.2.4  冲突归结 161
5.2.5  包含与不确定性 162
5.3  确定性因子 163
5.3.1  贝叶斯方法的难题 164
5.3.2  信任与不信任 164
5.3.3  信任与不信任的测度 166
5.3.4  确定性因子的计算 167
5.3.5  确定性因子的难题 170
5.4  Dempster-Shafer理论 171
5.4.1  识别框架 171
5.4.2  mass函数与未知 172
5.4.3  组合证据 174
5.4.4  信任的标准化 177
5.4.5  移动mass和集合 179
5.4.6  Dempster-Shafer理论的难题 179
5.5  近似推理 180
5.5.1  模糊集合和自然语言 180
5.5.2  模糊集合的操作 186
5.5.3  模糊关系 189
5.5.4  语言变量 193
5.5.5  扩张原理 196
5.5.6  模糊逻辑 196
5.5.7  模糊规则 198
5.5.8  最大-最小合成 200
5.5.9  最大值和瞬时方法 202
5.5.10  可能性和概率 205
5.5.11  转换规则 206
5.5.12  模糊专家系统中的不确定性 208
5.6  不确定性的研究现状 209
5.7  小结 210
第6章  专家系统设计 217
6.1  概述 217
6.2  选择合适的问题 217
6.2.1  选择合适的范例 217
6.2.2  收益 217
6.2.3  工具 218
6.2.4  成本 218
6.3  开发专家系统的步骤 218
6.3.1  项目管理 218
6.3.2  发行问题 219
6.3.3  维护和升级 220
6.4  开发过程中的误区 220
6.5  软件工程与专家系统 221
6.6  专家系统生命周期 223
6.6.1  维护成本 223
6.6.2  瀑布模型 223
6.6.3  代码修改模型 224
6.6.4  增量模型 224
6.6.5  螺旋模型 225
6.7  详细生命周期模型 225
6.7.1  计划 226
6.7.2  知识定义 226
6.7.3  知识设计 227
6.7.4  编码与校验 228
6.7.5  知识验证 228
6.7.6  系统评估 229
6.8  小结 229
第7章  CLIPS介绍 231
7.1  概述 231
7.2  CLIPS 231
7.3  记号 232
7.4  字段 233
7.5  进入和退出CLIPS 235
7.6  事实 235
7.6.1  自定义模板结构 236
7.6.2  多字段槽 236
7.6.3  有序事实 237
7.7  增加和删除事实 238
7.8  修改和复制事实 240
7.9  监视命令 240
7.10  自定义事实结构 241
7.11  规则的组成 242
7.12  议程与执行 244
7.12.1  议程显示 245
7.12.2  规则和反射 245
7.12.3  监视激活、规则和统计数据 246
7.13  结构处理命令 247
7.13.1  显示特定结构的成员清单 247
7.13.2  显示指定结构成员的文本描述 247
7.13.3  删除指定的结构成员 248
7.13.4  清除CLIPS环境中的所有结构 249
7.14  打印输出命令 249
7.15  使用复合规则 250
7.15.1  在规则中捕获真实世界 250
7.15.2  多模式的规则 250
7.16  设置断点命令 251
7.17  调入和保存结构 252
7.17.1  从文件中调入结构 252
7.17.2  监视编译 253
7.17.3  将结构保存到文件中 253
7.18  注释结构 253
7.19  小结 254
第8章  模式匹配 258
8.1  概述 258
8.2  变量 258
8.3  变量的复合用法 259
8.4  事实地址 259
8.5  单字段通配符 261
8.6  块世界 262
8.7  多字段通配符和变量 266
8.7.1  多字段通配符 266
8.7.2  多字段变量 267
8.7.3  以多种方式进行模式匹配 268
8.7.4  堆栈的实现 269
8.7.5  块世界问题的重新探讨 270
8.8  字段约束 270
8.8.1  非字段约束 270
8.8.2  或字段约束 271
8.8.3  与字段约束 271
8.8.4  字段约束组合 272
8.9  函数和表达式 273
8.9.1  基本数学函数 273
8.9.2  可变参数运算 274
8.9.3  优先级和嵌套表达式 275
8.10  使用规则求和 275
8.11  Bind函数 277
8.12  I/O函数 278
8.12.1  Read函数 278
8.12.2  Open函数 278
8.12.3  Close函数 279
8.12.4  对文件进行读写操作 280
8.12.5  Format函数 280
8.12.6  Readline函数 282
8.13  小结 282
第9章  高级模式匹配 288
9.1  概述 288
9.2  棍子游戏 288
9.3  输入技术 288
9.4  谓词函数 289
9.5  测试条件元素 290
9.6  谓词字段约束 291
9.7  返回值字段约束 292
9.8  棍子游戏程序 293
9.9  OR条件元素 294
9.10  AND条件元素 296
9.11  NOT条件元素 297
9.12  EXISTS条件元素 299
9.13  FORALL条件元素 300
9.14  LOGICAL条件元素 302
9.15  实用命令 305
9.15.1  System命令 305
9.15.2  Batch命令 305
9.15.3  Dribble-on和Dribble-off命令 307
9.16  小结 307
第10章  模块化设计和执行控制 312
10.1  概述 312
10.2  自定义模板属性 312
10.2.1  类型属性 312
10.2.2  静态和动态约束检查 313
10.2.3  允许值属性 314
10.2.4  范围属性 315
10.2.5  基数属性 315
10.2.6  缺省属性 315
10.2.7  缺省动态属性 317
10.2.8  冲突槽属性 318
10.3  优先级 318
10.4  阶段和控制事实 320
10.5  优先级属性的误用 323
10.6  自定义模块结构 325
10.7  输入输出事实 327
10.8  模块与执行控制 330
10.8.1  Focus命令 331
10.8.2  控制和检查焦点栈 333
10.8.3  Return命令 334
10.8.4  自动焦点特性 335
10.8.5  替换阶段和控制事实 336
10.9  小结 336
第11章  基于规则语言的效率 342
11.1  概述 342
11.2  Rete模式匹配算法 342
11.3  模式网络 344
11.4  连接网络 346
11.5  模式顺序的重要性 348
11.5.1  计算规则match-1的匹配 349
11.5.2  计算规则match-2的匹配 350
11.5.3  Matches命令 350
11.5.4  观察状态变化 352
11.6  排列模式以求高效 353
11.6.1  最特定的模式优先 353
11.6.2  匹配易变事实的模式置后 353
11.6.3  匹配最少事实的模式优先 353
11.7  多字段变量与效率 353
11.8  测试条件元素与效率 354
11.9  内置的模式匹配约束 356
11.10  通用规则与专用规则 356
11.11  过程函数 357
11.11.1  If函数 358
11.11.2  While函数 358
11.11.3  Halt函数 359
11.12  简单规则与复杂规则 360
11.13  装载和存储事实 361
11.14  小结 362
第12章  专家系统设计实例 366
12.1  概述 366
12.2  确定性因子 366
12.3  判定树 369
12.3.1  多叉判定树 371
12.3.2  判定学习树 371
12.3.3  一个基于规则的判定树程序 373
12.3.4  判定树程序的逐步跟踪 377
12.4  反向链 380
12.4.1  一个反向链的算法 380
12.4.2  CLIPS反向链规则的表达 381
12.4.3  CLIPS反向链推理机 383
12.4.4  反向链系统的逐步跟踪 385
12.5  监视问题 388
12.5.1  问题描述 389
12.5.2  开始必需的细节 390
12.5.3  知识定义 391
12.5.4  执行的控制 392
12.5.5  读取传感器的原始值 393
12.5.6  检测趋势 397
12.5.7  发出警告 399
12.6  小结 400
附录A  一些有用的等式 403
附录B  一些基本量词公式及其含义 404
附录C  一些集合性质 405
附录D  关于CLIPS 406
附录E  CLIPS命令与函数 407
附录F  CLIPS BNF范式 417

教学资源推荐
作者: [以] 谢伊·科恩(Shay Cohen)著
作者: (爱尔兰)约翰·D. 凯莱赫(John D.Kelleher);(爱尔兰)布莱恩·马克·纳米(Brian Mac Namee);(爱尔兰)奥伊弗·达西(Aoife D’Arcy) 著
作者: [美] 丹尼尔·怀特纳克(Daniel Whitenack)著
作者: (美)John F.Sowa
参考读物推荐
作者: [印] 纳温·库马尔·马纳西(Navin Kumar Manaswi) 著
作者: [印] 萨扬·穆霍帕迪亚(Sayan Mukhopadhyay) 著
作者: [保加利亚]伊凡·瓦西列夫(Ivan Vasilev) 著
作者: [印度]雅兰·萨纳卡(Jalaj Thanaki) 著