人工智能是研究理解和模拟人类智能、智能行为及其规律的一门学科。其主要任务是建立智能信息处理理论,进而设计可以展现某些近似于人类智能行为的计算系统。本书系统介绍人工智能的理论、方法、技术及其应用,除了讨论仍然有用的和有效的基本原理与方法之外,着重阐述新的和正在研究的人工智能方法与技术,特别是近期发展起来的方法与技术。此外,用比较多的篇幅论述人工智能的应用,包括人工智能新的应用研究。
本书适合作为高等学校计算机专业高年级本科生和非计算机专业研究生人工智能的教材,也可作为希望深入学习人工智能的科技人员的参考书。
智能(intelligence)是人类所特有的区别于一般生物的主要特征。智能解释为“感知、学习、理解、知道的能力,思维的能力”。智能通常被理解为“人认识客观事物并运用知识解决实际问题的能力……往往通过观察、记忆、想象、思维、判断等表现出来”。
人工智能就是用计算机来模拟人的智能,因此又叫做机器智能。研究人工智能的目的,一方面是要造出具有智能的机器,另一方面是要弄清人类智能的本质。通过研究和开发人工智能,可以辅助、部分代替甚至拓宽人的智能,使计算机更好地造福于人类。
信息经抽象结晶为知识,知识构成智能的基础。因此,信息化到知识化再到智能化,必将成为人类社会发展的趋势。人工智能已经并正在广泛而深入地结合到科学技术的各门学科和社会的各个领域中,它的概念、方法和技术,正在各行各业广泛渗透。智能已经成为当今各种新产品、新装备的发展 方向。
随着人工智能的发展,其课程的内容也应不断更新。在美国,由IEEE Computer Society和ACM计算教程联合工作组共同制定了Computing Curricula 2001(CC2001),主要修订了CC1991,以反映计算机领域十余年来的发展。从CC2001/CC2005可以看出,人工智能课程除包括人工智能概论、问题状态与搜索、知识表示、机器人学等传统内容外,还增加了机器学习、智能体、自然语言处理、语音处理、知识库系统、神经网络、遗传算法等内容。这也充分反映了对人工智能课程的重视。在我国,从20世纪70年代末开始,随着改革开放政策的实施,人工智能的教学和科研逐步展开。
本书介绍人工智能的理论、方法、技术及其应用,除了讨论仍然有用的和有效的基本原理与方法之外,着重阐述新的和正在研究的人工智能方法与技术,特别是近期发展起来的方法与技术。此外,用比较多的篇幅论述人工智能的应用,包括人工智能新的应用研究。具体包括下列内容。
(1)简述人工智能的起源与发展,讨论人工智能的定义、人工智能与计算机的关系以及人工智能的研究和应用领域。
(2)论述知识表示、推理和不确定推理的主要方法,包括谓词逻辑、产生式系统、语义网络、框架、面向对象、归结推理、非单调推理、主观Bayes方法、确定性理论、证据理论、模糊逻辑和模糊推理等。
(3)讨论常用搜索原理,如盲目搜索、启发式搜索、min-max搜索、(-( 剪枝和约束满足等;并研究一些比较高级的搜索技术,如贪婪局部搜索、局部剪枝搜索、模拟退火算法、遗传算法等。
(4)介绍近期发展起来的已成为当前研究热点的人工智能技术和方法,即分布式人工智能与Agent、计算智能、机器学习、反向传播神经网络、Hopfield神经网络、知识发现等。
(5)比较详细地分析人工智能的主要应用领域,涉及自动规划系统、自然语言处理、信息检索、语言翻译、语音识别、机器人等。
本书第3,4,9,10章由张彦铎撰写,其余各章由贲可荣撰写。全书由贲可荣统稿。吴荣华撰写了附录初稿。陈志刚教授对全书进行了认真审校,特此致谢。
在本书编写过程中,参考和引用了许多专家、学者的著作和论文,正文中未一一注明。在此,作者谨向相关参考文献的作者表示衷心的感谢。
不当之处,恳请读者批评指正。
作 者
2006年1月
第1章 绪论1
1.1 人工智能的定义与发展1
1.2 人类智能与人工智能3
1.2.1 智能信息处理系统的假设3
1.2.2 人类智能的计算机模拟5
1.3 人工智能各学派的认知观6
1.4 人工智能的研究与应用领域8
1.4.1 智能感知8
1.4.2 智能推理11
1.4.3 智能学习14
1.4.4 智能行动16
1.5 未来50年的人工智能问题21
习题24
第2章 知识表示和推理25
2.1 概述25
2.1.1 知识和知识表示25
2.1.2 知识-策略-智能27
2.1.3 人工智能对知识表示方法的要求28
2.1.4 知识的分类28
2.1.5 知识表示语言问题29
2.1.6 现代逻辑学的基本研究方法30
2.2 命题逻辑32
2.2.1 语法33
2.2.2 语义33
2.2.3 命题演算形式系统PC35
2.3 谓词逻辑36
2.3.1 语法37
2.3.2 语义39
2.3.3 谓词逻辑形式系统FC41
2.3.4 一阶谓词逻辑的应用43
2.4 归结推理44
2.4.1 命题演算中的归结推理44
2.4.2 谓词演算中的归结推理48
2.4.3 谓词演算归结反演的合理性和完备性56
2.5 产生式系统60
2.5.1 产生式系统的组成部分61
2.5.2 产生式系统的基本过程65
2.5.3 产生式系统的控制策略66
2.6 知识表示的其他方法68
2.6.1 语义网络68
2.6.2 框架74
2.6.3 面向对象77
2.7 基于知识的系统80
2.7.1 知识获取80
2.7.2 知识组织83
2.7.3 知识应用84
2.8 小结84
习题85
第3章 搜索技术91
3.1 引言91
3.2 盲目搜索方法93
3.2.1 宽度优先搜索93
3.2.2 深度优先搜索95
3.2.3 迭代加深搜索96
3.3 启发式搜索97
3.3.1 启发性信息和评估函数97
3.3.2 最好优先搜索算法98
3.3.3 通用图搜索算法99
3.3.4 A*算法102
3.3.5 迭代加深A*算法106
3.4 问题归约和AND-OR图启发式搜索107
3.4.1 问题归约的描述107
3.4.2 AND-OR图表示107
3.4.3 AO*算法109
3.5 博弈113
3.5.1 极大极小过程115
3.5.2 ( - ( 过程117
3.6 约束满足搜索119
3.7 小结122
习题123
第4章 高级搜索124
4.1 爬山法搜索124
4.2 模拟退火搜索127
4.2.1 模拟退火搜索的基本思想127
4.2.2 模拟退火算法128
4.2.3 模拟退火算法关键参数和操作的设计129
4.2.4 模拟退火算法的改进131
4.3 遗传算法132
4.3.1 遗传算法的基本思想133
4.3.2 遗传算法的基本操作135
4.3.3 遗传算法的应用情况139
习题141
第5章 不确定知识表示和推理142
5.1 概述142
5.1.1 什么是不确定推理142
5.1.2 不确定推理要解决的基本问题143
5.1.3 不确定性推理方法分类145
5.2 非单调逻辑146
5.2.1 单调性与非单调性146
5.2.2 非单调逻辑的产生146
5.2.3 缺省推理逻辑147
5.2.4 非单调逻辑系统151
5.3 主观 Bayes方法153
5.3.1 全概率公式和Bayes公式154
5.3.2 主观Bayes方法155
5.4 确定性理论160
5.4.1 建造医学专家系统中的问题161
5.4.2 C-F模型162
5.5 证据理论166
5.5.1 假设的不确定性167
5.5.2 证据的不确定性169
5.5.3 证据的组合函数169
5.5.4 规则的不确定性170
5.5.5 不确定性的传递170
5.5.6 不确定性的组合171
5.6 模糊逻辑和模糊推理173
5.6.1 模糊集合及其运算173
5.6.2 模糊关系175
5.6.3 语言变量176
5.6.4 模糊逻辑176
5.6.5 模糊推理177
5.7 小结181
习题182
第6章 Agent184
6.1 概述184
6.2 Agent及其结构186
6.2.1 Agent要素及特性186
6.2.2 Agent的结构特点188
6.2.3 Agent的结构分类189
6.3 Agent通信192
6.3.1 通信方式192
6.3.2 Agent通信语言KQML193
6.3.3 SACL语言196
6.4 协调与协作199
6.4.1 引言199
6.4.2 合同网202
6.4.3 协作规划204
6.5 移动Agent207
6.5.1 引言208
6.5.2 定义和系统组成211
6.5.3 实现技术212
6.5.4 技术优势221
6.6 基于Agent的系统及其应用223
6.6.1 移动Agent系统223
6.6.2 移动Agent技术的应用225
6.6.3 多Agent系统的应用227
6.7 小结228
习题228
第7章 自然语言处理技术230
7.1 自然语言理解的一般问题230
7.1.1 自然语言理解的概念及意义230
7.1.2 自然语言理解研究的发展231
7.1.3 自然语言理解的层次233
7.2 词法分析233
7.3 句法分析234
7.3.1 短语结构文法和Chomsky文法体系235
7.3.2 句法分析树237
7.3.3 转移网络238
7.4 语义分析239
7.4.1 语义文法239
7.4.2 格文法240
7.5 大规模真实文本的处理242
7.5.1 语料库语言学及其特点242
7.5.2 统计学方法的应用及所面临的问题244
7.5.3 汉语语料库加工的基本方法244
7.6 信息搜索247
7.6.1 信息搜索概述247
7.6.2 搜索引擎248
7.6.3 智能搜索引擎252
7.7 机器翻译258
7.7.1 机译系统概述258
7.7.2 机器翻译理论与方法260
7.8 自动文摘262
7.9 语音识别263
7.9.1 组成单词读音的基本单元264
7.9.2 信号处理264
7.9.3 识别266
7.9.4 隐马尔可夫模型267
7.10 小结269
习题269
第8章 机器学习和神经网络271
8.1 机器学习概述271
8.1.1 学习中的元素272
8.1.2 目标函数的表示273
8.1.3 学习任务的类型275
8.1.4 机器学习的定义和发展史276
8.1.5 机器学习的主要策略277
8.1.6 机器学习系统的基本结构278
8.2 经典机器学习方法279
8.2.1 机械学习279
8.2.2 归纳学习281
8.2.3 类比学习284
8.2.4 解释学习286
8.3 基于神经网络的学习289
8.3.1 神经网络概述289
8.3.2 基于反向传播网络的学习294
8.3.3 Hopfield网络模型306
8.4 知识发现311
8.4.1 知识发现的处理过程312
8.4.2 知识发现的方法313
8.4.3 知识发现的应用315
8.5 小结316
习题317
第9章 智能规划320
9.1 规划问题与实例320
9.1.1 规划问题及其描述语言320
9.1.2 规划问题实例323
9.2 状态空间搜索规划326
9.2.1 前向状态空间搜索326
9.2.2 后向状态空间搜索327
9.2.3 状态空间搜索的启发式328
9.3 偏序规划329
9.3.1 偏序规划的描述329
9.3.2 偏序规划的实例332
9.3.3 无约束变量的偏序规划334
9.3.4 启发式偏序规划335
9.4 命题逻辑规划335
9.5 分层任务网络规划338
9.6 非确定性规划340
9.7 多Agent规划342
9.7.1 合作:联合目标和规划343
9.7.2 多Agent规划343
9.7.3 协调机制345
9.7.4 竞争346
习题346
第10章 机器人学347
10.1 概述347
10.1.1 机器人的由来347
10.1.2 机器人的定义348
10.1.3 机器人的分类350
10.1.4 机器人的特性350
10.1.5 机器人的发展概况351
10.1.6 机器人学的形成353
10.1.7 机器人学的研究领域354
10.2 机器人系统354
10.2.1 机器人系统的组成354
10.2.2 机器人系统的几个重要概念356
10.3 机器人的编程模式与语言359
10.4 机器人的社会问题362
习题362
附录A Turbo Prolog核心机制363
A.1 逻辑型程序设计语言Prolog364
A.1.1 Prolog语句364
A.1.2 Prolog程序365
A.1.3 Prolog程序运行机理366
A.2 Turbo Prolog程序设计368
A.2.l 程序结构368
A.2.2 数据与表达式370
A.2.3 输入与输出374
A.2.4 分支与循环375
A.2.5 动态数据库376
A.2.6 表处理与递归376
A.2.7 回溯控制379
附录B Visual Prolog编程环境380
B.1 Visual Prolog概述380
B.2 系统安装381
B.2.1 安装环境381
B.2.2 安装步骤381
B.3 编程初步381
B.3.1 测试目标381
B.3.2 应用程序专家382
B.3.3 了解默认应用程序所生成的代码383
B.4 编写第一个应用程序Hello World384
B.4.1 调用菜单编辑器修改菜单385
B.4.2 使用对话框与窗口专家386
B.5 VP调试器389
参考文献391