专家系统:原理与编程(原书第4版)
作者 : Joseph Giarratano Gary D.Riley
译者 : 印鉴 陈忆群 刘星成
丛书名 : 计算机科学丛书
出版日期 : 2006-08-20
ISBN : 7-111-19203-6
定价 : 65.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 528
开本 : 16开
原书名 : Expert Systems: Principles and Programming,Fourth Edition
原出版社: TL
属性分类: 教材
包含CD :
绝版 :
图书简介

本书是人工智能领域里的著名教科书和参考书,详细介绍专家系统的基本原理与编程技术。本版在融合了前几个版本的理论知识和实际应用的基础上进行了改进。本书分两部分,第一部分介绍专家系统的基本理论,并对人工智能及其与专家系统的关系做了总体论述。第二部分集中介绍应用技术,包括CLIPS专家系统工具和新的面向对象语言COOL。读者将学习如何应用COOL语言通过定义规则和对象,开发一个完整的专家系统。书中每一章的最后都设计了有针对性的习题,帮助读者加强对知识的理解。

本书特点
  覆盖面广,包括专家系统的理论知识和基于规则的应用。
  内容全面更新,反映了快速发展的专家系统领域的最新趋势。
  书中每一章的最后都设计了有针对性的习题,帮助读者加强对知识的理解。

图书特色

图书前言

如何有效地使用本书
   本书第4版是对这本全球使用的专家系统与CLIPS专家系统工具编程课本的一个主要修订本。自从20世纪80年代进入商业应用以来,专家系统得到了巨大的发展。今天,专家系统已被广泛地运用到商业、科学、工程、农业、制造、医药、视频游戏以及实质上其他每一个领域。事实上,现在已很难举出一个没有应用专家系统的领域。
  本书主要介绍专家系统原理与编程,适用于计算机科学、管理信息系统、软件工程专业以及其他一些对专家系统有兴趣的高年级本科生或研究生。一些新出现的术语用黑体字表示并给出了解释。书中还给出了大量的实例和参考资料帮助理解并指导更深层次的阅读。在新的第4版中,许多新的软件工具的免费和试用版本可以作为额外练习的基础和学习材料,它们的链接都在附录G中。
  对新材料的讨论一般从其历史背景开始,这样便于学生理解为什么要开发它们,而不仅仅是学会如何使用它们。教育的核心应聚焦在为什么要创造新技术来解决问题,而不是简单地教授如何去应用。
  本书分为两部分:第1~6章介绍原理,第7~12章介绍CLIPS专家系统工具编程。第一部分包括了专家系统所涉及的理论以及专家系统如何适合计算机科学范畴。
  学过人工智能的有关课程会对学习本书帮助较大,在本书中,对与专家系统有关的一些人工智能知识也在第1章作了一个自我完备的介绍。单独一章自然无法涵盖人工智能的所有内容,但已足够概观人工智能以及专家系统所扮演的角色。本书第一部分包括了逻辑、概率、数据结构、人工智能概念和其他形成专家系统理论的内容。
  我们尝试通过对专家系统理论的介绍来使学生学会对专家系统技术的运用。这里,要强调一点,专家系统和其他工具一样,既有优点,也有缺点。在理论部分还介绍了专家系统与其他编程方法的关系,如传统程序设计。另外,也希望对理论的介绍使学生能够阅读有关专家系统的现行研究文章,但由于专家系统涉及面很广,对初学者来说,仅凭了解就阅读是非常困难的。
  本书第二部分介绍了CLIPS专家系统工具。这部分是专家系统编程的一个实例,可以补充和阐释第一部分的理论知识。有了第一部分的理论知识后,编程部分只要具有高级语言的编程经验就可以看懂。学生可以通过CLIPS这个功能强大的现代专家系统工具来了解专家系统开发中的一些实际问题。
  在本版中讨论的一个新特性是COOL,即CLIPS面向对象语言。COOL允许完全使用对象,或者使用规则和对象的混合方法来开发专家系统。面向对象方法的优点在于知识集可以方便地组织成比单独规则大的集合。所有对象的一般性质(例如多继承)使得用更多专门知识来扩展对象变得更加容易,而不用像纯规则系统一样,每次都从头开始编写。本版还讨论了CLIPS的过程化编程功能,包括全局变量、函数和类属函数。
  CLIPS最初是由Johnson太空中心NASA开发的。Gary Riley是开发基于规则组件的首席程序员。Joseph C.Giarratano作为顾问编写了NASA CLIPS的官方用户指南。现在,CLIPS已用于开发政府、商业、工业以及事实上任何部门的实际项目。使用因特网的任何搜索引擎都能返回成千上万个链接指向使用CLIPS编写的专家系统和采用了CLIPS的世界上很多大学的课程。
  由于CLIPS代码是可移植的,它实质上可运行在任何支持ANSI C或C++编译器的机器或操作系统上。本书附带的光盘内容包括:CLIPS在Windows以及MacOS上的可执行程序;CLIPS参考手册和CLIPS用户指南;文档齐备的完整CLIPS C源程序代码。
  有些专家系统课程包含一个课程设计,课程设计是提高专家系统开发技能的一个极好方法。学生们常常选择完成一个具有50~150条规则的小型专家系统作为一学期的课程设计。基于这本书已开发了成千上万个课程设计,包括医疗、汽车维修、的士调度、个人安排、计算机网络管理、天气预报、股市预测、购物咨询等。使用因特网搜索引擎将得到由世界各地的大学开发的很多课程设计与资源,如PowerPoint幻灯片、提纲和作业等。
  本书作为一学期的课程可安排如下:
  1.第1章简要介绍专家系统,习题1、2、3可作为练习。
  2.第7~10章介绍CLIPS基本编程。这部分内容对学生重新编写第1章习题2的程序,并比较专家系统方法与最初在第1章中所使用的语言方法非常有帮助。通过比较,可使学生发现基于规则的语言如CLIPS、LISP、PROLOG与在习题2中使用的其他语言的差别。可选地,讲授完第10章后,教师可返回到理论章节。如果学生具有较强的逻辑和PROLOG知识,可以跳过第2、3章的多数内容。对没有和只有一点人工智能课程中关于LISP简单知识的学生,如果希望重点加强逻辑和专家系统基础理论,则将从第2、3章得到很大提高。如果学生具有较强的概率和统计知识,则从第4章开始到第4.11节可以跳过。
  3.第4章和第5章讨论对不确定性的处理。这些非常重要,因为人类始终都在处理不确定性,如果没有它,专家系统并不比简单的判定树强多少。不确定性包括概率和贝叶斯推理、确定性因子、DempsterˉShafer理论以及模糊理论。如果学生想阅读相关方面的现行文章或从事此领域研究工作,他们必须掌握好这些内容。
  4.第6章讨论专家系统中的知识获取和软件工程问题,这部分内容主要针对那些想开发大型专家系统的学生。在布置课程设计前,可以不学此章。事实上,可以最后讲述此章,以使学生更好地熟悉建造一个高质量专家系统的所有因素。
  补充资源
   在出版社的网站http://www.course.com上可以下载具有单号习题和部分双号习题解答的手册,并有完整的PowerPoint幻灯片。另外,很多软件和其他资源的网址在本书中也随处可见。这些资源经过了筛选,学生使用软件可以对习题的关键部分进行实验,而不只是书面求解,这样能更好地理解书中的内容,例如逻辑和概率。大量有关人工智能、逻辑、概率、贝叶斯推理、模糊逻辑和其他主题的资源也都包含在内,以便学生对国际上人工智能和专家系统群体有更广泛的了解。(需要教辅资源的教师,可填写书后的教学支持服务表,并与原出版商联系。———编辑注)
  感谢对CLIPS有贡献者
   感谢所有对CLIPS的成功开发有贡献者。作为一个大的项目,CLIPS凝聚了许多人的心血。其中,主要有:Robert Savely,JSC高级软件技术首席科学家,是他构思出此项目,并自始至终给予指导与支持;Chris Culbert,软件技术分部主管,是他负责此项目并起草了CLIPS参考手册初稿;Gary Riley,设计开发了CLIPS中基于规则部分,合写了CLIPS参考手册、CLIPS结构手册,开发了Macintosh上的CLIPS界面,并维护CLIPS的官方网站http://www.ghg.net/
clips/CLIPS.html;Brian Donnell,开发了CLIPS中面向对象的语言(COOL),合写了CLIPS参考手册、CLIPS结构手册;Bebe Ly,开发了CLIPS的X Window界面;Chris Ortiz,开发了CLIPS的Windows3.1界面,Houstonˉclear Lake大学的Joseph Giarratano博士,编写了NASA的每个CLIPS版本的官方用户指南;特别是,Frank Lopez,编写了CLIPS的最初原型版本。
   致谢
  在写作本书的过程中,很多人给予了大量的帮助,包括:Ted Leibfried,JeanneLeslie,Mac Umphrey,Terry Feagin,Dennis Murphy,Jenna Giarratano和Melissa Giarratano。我们还要感谢反馈了信息的第4版审稿者:Akron大学的ChienˉChung Chan;Ohio大学的Constantine Vassiliadis;加拿大Concordia大学的Jenny Scott;Villanova大学的Anthony Zygmont。
  我们还要感谢许多从1985年CLIPS第一版发布起,20年来一直致力于提高CLIPS的人们。通过提供免费的CLIPS完整源代码,开源组织极有效地提高了CLIPS的功能及影响力。这一切在我们1985年刚开发CLIPS时是不可想像的。那时候专家系统只是新的未经试验的技术,没有人知道它能否经得起时间的考验。在过去的20年中,CLIPS从NASA的最初谨慎开始,发展成为在世界各地有成千上万的人们使用,并证明了各个领域都从中受益。我们特别要感谢这些扩展了CLIPS功能和能力的开发者,是他们使CLIPS一开始在NASA中仅作为人工智能技术简单试
验的充满风险的小项目发展成为世界范围的潮流。
  Ernest FriedmanˉHill,对专家系统的推广做出了重要的贡献,他独自开发了具有新特性的CLIPS Java版本,称为JESS。他还写了一本关于JESS的书:《Jess in Action:RuleˉBased Systems in Java》,里面有很多有趣的项目。
  JESS:(http://herzberg.ca.sandia.gov/jess/)和KAPICLIPS1.0:(http://www.cs.umbc.edu/kqml/software/kapiclips.shtml)更加完备了CLIPS。
  CLIPS的其他后代版本
   PerlCLIPS(http://www.discomsys.com/~mps/dnld/clipsˉstuff/)
  Prot g :CLIPS的一个本体和基于知识的编辑器 
  (http://protege.stanford.edu/index.html)
  PythonˉCLIPS interface(http://www.yodanet.com/portal/Products/download/cli
psˉpython.tar.gz/view)TixClips:使用Tix的CLIPS专家系统集成开发环境(http://tix.sourceford.net/)TclClips(www.eolas.net/tcl/clips),SWIG(http://www.swig.org/
)wrapping (http://starship.python.net/crew/mike/TixClips/)WebCLIPS:作为CGI应用程序的CLIPS实现。
  WebCLIPS:(http://www.monmouth.com/~km2580/wchome.htm)
  wxCLIPS,一个使用图形用户界面的开发知识库系统应用程序的环境: (http://www.anthemion.co.uk/wxclips/wxclips2.htm)ZClips0.1允许Zope和CLIPS交互:
   (http://www.zope.org/Members/raystream/zZCLIPS0.1)CLIPS/R2,Production Systems Technologies公司的: (http://www.pst.com/clips r2.htm)
  可获取的其他CLIPS版本,如加拿大国家研究委员会的FuzzyClips:
   (http://ai.iit.nrc.ca/IR public/fuzzy/fuzzyClips/fuzzyCLIPSIndex.html)To
gai InfraLogic公司的FuzzyClips:
   (http://www.ortechˉengr.com/fuzzy/fzyclips.html)
  AdaCLIPS:(http://www.telepath.com/~dennison/Ted/AdaClips/AdaClips.html)CL
IPS与Perl的扩展:(http://cape.sourceforge.net/)许多其他基于CLIPS的工具版本列在:

   (http://www.ghg.net/clips/OtherWeb.html)

作者简介

Joseph Giarratano Gary D.Riley:Joseph Giarratano: Joseph Giarratano美国休斯敦大学明湖分校计算机科学系教授。作为NASA的顾问,他参与了专家系统工具CLIPS (包含在本书中) 的开发。另外,他发表了30多篇研究论文并著有10多本书。
Gary D.Riley:  Gary D. Riley 于1984年在美国得克萨斯A&M大学获计算机科学硕士学位。他在NASA工作了11年,并为CLIPS专家系统语言开发了基于规则的特性部分。目前他居住在得克萨斯州,任职于PeopleSoft有限公司。

译者简介

印鉴 陈忆群 刘星成:印鉴: 印鉴:男,博士,教授,博士生导师,1968年生。1994年毕业于武汉大学计算机科学系,获工学博士学位。现任中山大学信息科学与技术学院计算机科学系副主任和计算机基础教育中心主任。1993年,曾在美国洛杉矶ALPHA OMEGA公司从事合作科研。1997年、2000年曾在香港浸会大学电脑学系作访问学者。2005年在美国东华盛顿大学(Eastern Washingˉton University)作访问学者。目前主要从事数据挖掘、人工智能、知识工程等方面的研究工作。
陈忆群: 陈忆群:女,硕士,助教,1979年生。2005年毕业于中山大学计算机科学系,获工学硕士学位。现任广东教育学院计算机科学系教师。2004年,曾在新加坡国立大学计算机学院访问学习。目前主要从事信息处理、数据挖掘、知识工程等方面的研究工作。
刘星成: 刘星成:男,博士,副教授。1964年生于江西安福。1989年毕业于华中理工大学(现华中科技大学)自动化专业,获硕士学位。2001年毕业于中山大学无线电物理专业,获博士学位。2002年~2003年,在英国Southampton大学作博士后研究;2004年~2005年,在美国俄勒冈州立大学(Oregon State University)作访问学者。现于中山大学信息科学与技术学院电子与通信工程系任教。目前主要从事智能信息处理、无线通信及安全等方面的研究工作。

译者序

人工智能学科诞生于20世纪50年代,旨在研究如何利用计算机等工具来模仿人类的智能行为。自诞生以来,人工智能就一直是一个富有挑战性的领域,它以其诱人的目标和略显神秘的面纱,吸引了人类持久和狂热的追求,在众多的人工智能领域中,专家系统是一个最富有代表性和最重要的应用分支。
  人工智能和专家系统曾取得过许多令人瞩目的成果,也走过不少弯路、经历过不少挫折。近几年来,随着计算机网络、通信等技术的发展,特别是Internet和World Wide Web的普及,人工智能与专家系统的研究再度活跃起来,并正向更为广泛的领域发展。
  本书是一本关于专家系统的著名教科书。本书全面介绍了专家系统原理,并通过CLIPS详细讨论了其实际应用。内容涉及知识表示、推理方法、不确定性推理、不精确推理以及开发专家系统的一系列实用技术。本书还附送1张包括CLIPS程序、源代码以及其他相关文档的光盘。
  本书理论与实际相结合,内容由浅入深,适用于计算机科学、管理信息系统、软件工程专业高年级本科生和研究生及相关专业人员,为其了解和设计专家系统提供了理论基础和编程指导。
  本书前言及第1~5章、附录A~C由印鉴翻译,第6、10~12章及附录D~G由陈忆群翻译,第7~9章由刘星成翻译,全书由印鉴组织、校阅和统稿,中山大学胡菁同志也给予很多帮助,参加了文字校对工作。
  限于译者水平,书中疏漏之处,敬请读者批评指正。

图书目录

第1章 专家系统导论 1
1.1 概述 1
1.2 专家系统的定义 1
1.3 专家系统的优点 5
1.4 专家系统的基本概念 5
1.5 专家系统的特点 7
1.6 专家系统技术的发展 8
1.7 专家系统的应用与领域 12
1.8 语言、外壳、工具 15
1.9 专家系统要素 16
1.10 产生式系统 20
1.11 过程化程序规范 23
1.12 非过程化程序规范 27
1.13 人工神经系统 30
1.14 专家系统与归纳学习的关系 34
1.15 人工智能的发展状况 34
1.16 小结 37
习题 38
参考文献 38
第2章 知识的表示 41
2.1 概述 41
2.2 知识的含义 42
2.3 产生式 45
2.4 语义网 47
2.5 对象-属性-值三元组 50
2.6 PROLOG和语义网 50
2.7 语义网的困难之处 53
2.8 模式 54
2.9 框架 55
2.10 框架的困难之处 57
2.11 逻辑与集合 58
2.12 命题逻辑 60
2.13 一阶谓词逻辑 63
2.14 全称量词 63
2.15 存在量词 64
2.16 量词与集合 65
2.17 谓词逻辑的局限性 66
2.18 小结 66
习题 67
参考文献 68
第3章 推理方法 71
3.1 概述 71
3.2 树、格、图 71
3.3 状态与问题空间 74
3.4 与或树和目标 77
3.5 演绎逻辑与三段论 79
3.6 推理规则 83
3.7 命题逻辑的局限性 89
3.8 一阶谓词逻辑 90
3.9 逻辑系统 91
3.10 归结 93
3.11 归结系统与演绎 95
3.12 浅推理和因果推理 97
3.13 归结与一阶谓词逻辑 99
3.14 正向链和反向链 103
3.15 其他推理方法 107
3.16 元知识 112
3.17 隐马尔可夫模型 113
3.18 小结 114
习题 114
参考文献 117
第4章 不确定性推理 119
4.1 概述 119
4.2 不确定性 119
4.3 误差种类 121
4.4 误差与归纳 122
4.5 经典概率 124
4.6 经验主观概率 127
4.7 复合概率 128
4.8 条件概率 129 
4.9 假设推理与反向归纳 133
4.10 时间推理与马尔可夫链 135
4.11 信任几率 138
4.12 充分性与必然性 139
4.13 推论链中的不确定性 141
4.14 证据组合 144
4.15 推理网 148
4.16 概率的传播 155
4.17 小结 158
习题 158
参考文献 161
第5章 不精确推理 163
5.1 概述 163
5.2 不确定性与规则 163
5.3 确定性因子 167
5.4 DempsterˉShafer理论 174
5.5 近似推理 182
5.6 不确定性的现状 210
5.7 模糊逻辑的一些商业应用 211
5.8 小结 212
习题 212
参考文献 215
第6章 专家系统设计 217
6.1 概述 217
6.2 选择合适的问题 217
6.3 开发专家系统的步骤 220
6.4 开发过程中的误区 222
6.5 软件工程与专家系统 225
6.6 专家系统生命周期 226
6.7 详细生命周期模型 229
6.8 小结 232
习题 232
参考文献 233
第7章 CLIPS介绍 235
7.1 概述 235
7.2 CLIPS 235
7.3 记号 236
7.4 字段 237
7.5 进入和退出CLIPS 239
7.6 事实 240
7.7 增加和删除事实 242
7.8 修改和复制事实 243
7.9 监视命令 244
7.10 自定义事实结构 245
7.11 规则的组成 246
7.12 议程与执行 247
7.13 结构处理命令 250
7.14 打印输出命令 252
7.15 使用复合规则 252
7.16 设置断点命令 253
7.17 调入和保存结构 254
7.18 注释结构 255
7.19 变量 256
7.20 变量的复合用法 257
7.21 事实地址 257
7.22 单字段通配符 259
7.23 块世界 260
7.24 多字段通配符和变量 263
7.25 小结 267
习题 267
参考文献 271
第8章 高级模式匹配 273
8.1 概述 273
8.2 字段约束 273
8.3 函数和表达式 275
8.4 使用规则求和 277
8.5 BIND函数 279
8.6 I/O函数 279
8.7 棍子游戏 283
8.8 谓词函数 284
8.9 测试条件元素 285
8.10 谓词字段约束 286
8.11 返回值字段约束 287
8.12 棍子游戏程序 288
8.13 OR条件元素 288
8.14 AND条件元素 290
8.15 NOT条件元素 291
8.16 EXISTS条件元素 292
8.17 FORALL条件元素 294
8.18 LOGICAL条件元素 295
8.19 小结 298
习题 298 
第9章 模块化设计、执行控制和规则效率 305
9.1 概述 305
9.2 自定义模板属性 305 
9.3 优先级 310
9.4 阶段和控制事实 312
9.5 优先级属性的误用 314
9.6 自定义模块结构 316
9.7 输入、输出事实 318
9.8 模块与执行控制 320
9.9 Rete模式匹配算法 326
9.10 模式网络 327
9.11 连接网络 329
9.12 模式顺序的重要性 331
9.13 排列模式以求高效 335
9.14 多字段变量与效率 335
9.15 测试条件元素与效率 336
9.16 内置的模式匹配约束 337
9.17 通用规则与专用规则 337
9.18 简单规则与复杂规则 339
9.19 小结 340
习题 341
参考文献 346
第10章 过程化程序设计 347
10.1 概述 347
10.2 过程化函数 347
10.3 自定义函数结构 352
10.4 自定义全局变量结构 358
10.5 自定义类属和自定义方法结构 363
10.6 过程化结构和自定义模块 374
10.7 有用的命令和函数 375
10.8 小结 379
习题 380
第11章 类、实例和消息处理程序 383
11.1 概述 383
11.2 自定义类结构 383
11.3 创建实例 384
11.4 系统定义消息处理程序 384
11.5 自定义实例结构 386
11.6 类与继承 386
11.7 对象模式匹配 392
11.8 用户定义消息处理程序 399
11.9 槽存取和处理程序创建 403 
11.10 BEFORE、AFTER和AROUND消息处理程序 405 
11.11 实例创建、初始化和删除消息处理程序 416
11.12 修改和复制实例 418
11.13 类和类属函数 420
11.14 实例集合查询函数 421
11.15 多继承 424
11.16 自定义类和自定义模块 429
11.17 调入和保存实例 430
11.18 小结 431
习题 431
第12章 专家系统设计实例 433
12.1 概述 433
12.2 确定性因子 433
12.3 判定树 436
12.4 反向链 445
12.5 监视问题 453
12.6 小结 464
习题 465
参考文献 466
附录A 一些有用的等式 467
附录B 一些基本量词公式及其含义 468
附录C 一些集合性质 469
附录D CLIPS支持信息 470
附录E CLIPS命令与函数概要 471
附录F CLIPS BNF范式 492
附录G 软件资源 498

教学资源推荐
作者: [德]伯恩哈德·G. 胡姆(Bernhard G. Humm) 著
作者: Nils J.Nilsson
作者: [希腊] 斯皮罗斯·G. 扎菲斯塔斯(Spyros G. Tzafestas) 著
作者: 郭斌 梁韵基 於志文 著
参考读物推荐
作者: [西班牙]阿尼尔?马哈塔尼(Anil Mahtani)路易斯?桑切斯(Luis sanchez)恩里克?费尔南德斯(Enrique Fern?ndez)亚伦?马丁内斯(Aaron Mart?nez)著
作者: [美]加里·F. 马库斯(Gary F. Marcus) 著
作者: [美]约翰?白赫泰(John Baichtal) 著