第一部分 人工智能的历史渊源及研究范围 3
第1章 人工智能的历史及应用 3
1.1 从伊甸园到第一台电子计算机 3
1.1.1 人工智能基础的简要历史 4
1.1.2 理性主义和经验主义学派对人工智能的影响 6
1.1.3 形式逻辑的发展 7
1.1.4 图灵测试 10
1.1.5 智能的生物和社会模型:主体理论 12
1.2 人工智能的应用领域 15
1.2.1 博弈 15
1.2.3 专家系统 16
1.2.2 自动推理和定理证明 16
1.2.4 自然语言理解和语义建模 18
1.2.5 对人类工作能力建模 18
1.2.6 规划和机器人 19
1.2.7 人工智能的语言和环境 20
1.2.8 机器学习 20
1.2.9 另类表示:神经网络和遗传算法 21
1.2.10 AI和哲学 22
1.3 人工智能概要 22
1.4 结语和参考文献 23
1.5 习题 24
2.1.1 符号和语句 32
2.1 命题演算 32
第2章 谓词演算 32
2.0 简介 32
第二部分 作为表示和搜索的人工智能 32
2.1.2 命题演算的语义 33
2.2 谓词演算 35
2.2.1 谓词的语法和语句 35
2.2.2 谓词演算的语义 40
2.2.3 语义含义的积木世界例子 42
2.3 使用推理规则产生谓词演算表达式 44
2.3.1 推理规则 44
2.3.2 合一算法 46
2.3.3 合一的例子 49
2.4 应用:一个基于逻辑的财务顾问 52
2.5 结语和参考文献 55
2.6 习题 55
第3章 用以搜索状态空间的结构和策略 57
3.0 简介 57
3.1 图论 59
3.1.1 状态空间搜索的结构 59
3.1.2 有限状态自动机 61
3.1.3 问题的状态空间表示 62
3.2 用于状态空间搜索的策略 67
3.2.1 数据驱动搜索和目标驱动搜索 67
3.2.2 图搜索的实现 68
3.2.3 深度优先搜索和宽度优先搜索 71
3.2.4 迭代加深的深度优先搜索 76
3 3 利用状态空间来表示谓词演算推理 77
3.3.1 逻辑系统的状态空间描述 77
3.3.2 与或图 78
3.3.3 进一步的例子和应用 80
3.4 结语和参考文献 87
3.5 习题 87
第4章 启发式搜索 89
4.0 简介 89
4.1.1 爬山 92
4.1 启发式搜索算法 92
4.1.2 动态程序设计 93
4.2 最佳优先搜索算法 96
4.2.1 实现最佳优先搜索 96
4.2.2 实现启发评估函数 98
4.2.3 启发式搜索和专家系统 103
4.3 可采纳性、单调性和信息度 104
4.3.1 可采纳性尺度 104
4.3.2 单调性 106
4.3.3 信息度更高的启发是更好的启发 107
4.4 在博弈中使用启发 108
4.4.1 针对可穷举搜索情况的极小极大过程 108
4.4.2 固定层深的极小极大过程 109
4.4.3 α-β过程 113
4.5 复杂度问题 114
4.6 结语和参考文献 116
4.7 习题 117
第5章 随机方法 120
5.0 简介 120
5.1 计数基础(选读) 121
5.1.1 加法和乘法定理 121
5.1.2 排列与组合 123
5.2 概率论基础 124
5.2.1 样本空间、概率和独立性 124
5.2.2 概率推理:一个道路/交通例子 126
5.2.3 随机变量 127
5.2.4 条件概率 129
5.3 随机方法学的应用 131
5.4 贝叶斯定理 133
5.4.1 概述 133
5.4.2 道路/交通例子的扩展 136
5.5 结语和参考文献 137
5.6 习题 138
第6章 为状态空间搜索建立控制算法 140
6.0 简介 140
6.1 基于递归的搜索(可选) 141
6.1.1 递归 141
6.1.2 一个递归搜索的例子:模式驱动推理 142
6.2 产生式系统 145
6.2.1 定义和历史 145
6.2.2 产生式系统的例子 147
6.2.3 产生式系统中的搜索控制 153
6.2.4 AI产生式系统的优点 156
6.3 用于问题求解的黑板结构 157
6.4 结语和参考文献 159
6.5 习题 160
第三部分 表示和智能:AI中的挑战 164
第7章 知识表示 164
7.0 知识表示问题 164
7.1.1 语义关联理论 165
7.1 AI表象图式的简要历史 165
7.1.2 语义网络的早期研究 167
7.1.3 网络关系的标准化 170
7.1.4 脚本 174
7.1.5 框架 177
7.2 概念图:网络语言 180
7.2.1 概念图简介 180
7.2.2 类型、个体和名字 181
7.2.3 类型层次 182
7.2.4 泛化和特化 183
7.2.5 命题结点 185
7.2.6 概念图和逻辑 185
7.3.1 Brooks假设和包容结构 187
7.3 显式表示的替代方法 187
7.3.2 Copycat结构 189
7.4 基于主体的和分布式的问题求解方法 192
7.4.1 基于主体的定义 192
7.4.2 基于主体的应用 193
7.5 结语和参考文献 195
7.6 习题 197
第8章 求解问题的强方法 200
8.0 简介 200
8.1 专家系统技术概览 201
8.1.1 基于规则的专家系统设计 201
8.1.2 问题选择和知识工程的步骤 202
8.1.3 概念模型及其在知识获取中的作用 204
8.2 基于规则的专家系统 206
8.2.1 产生式系统和目标驱动问题求解 206
8.2.2 目标驱动推理中的解释和透明性 209
8.2.3 利用产生式系统进行数据驱动推理 210
8.2.4 专家系统的启发和控制 212
8.3 基于模型系统、基于案例系统和混合系统 214
8.3.1 基于模型推理简介 214
8.3.2 基于模型推理:来自NASA的例子 217
8.3.3 基于案例推理介绍 219
8.3.4 混合设计:强方法系统的优势和不足 222
8.4.1 简介 224
8.4 规划 224
8.4.2 使用规划宏:STRIPS 228
8.4.3 teleo-reactive规划 231
8.4.4 规划:来自NASA的例子 233
8.5 结语和参考文献 235
8.6 习题 236
第9章 不确定条件下的推理 238
9.0 简介 238
9.1 基于逻辑的反绎推理 239
9.1.1 非单调推理逻辑 239
9.1.2 真值维护系统 242
9.1.3 基于最小模型的逻辑 245
9.1.4 集合覆盖和基于逻辑的反绎 247
9.2 反绎:逻辑之外的办法 249
9.2.1 Stanford确信度代数 249
9.2.2 模糊集推理 251
9.2.3 Dempster-Shafer证据理论 254
9.3 处理不确定性的随机方法 258
9.3.1 有向图模型:贝叶斯信念网络 258
9.3.2 有向图模型:d-可分 260
9.3.3 有向图模型:一个推理算法 261
9.3.4 马尔可夫模型:离散马尔可夫过程 263
9.3.5 隐马尔可夫模型 265
9.3.6 用HMM和韦特比算法解码音素串 266
9.4 结语和参考文献 269
9.5 习题 270
第四部分 机器学习 275
第10章 基于符号的机器学习 275
10.0 简介 275
10.1 基于符号学习的框架 277
10.2 变型空间搜索 281
10.2.1 泛化操作和概念空间 281
10.2.2 候选解排除算法 282
10.2.3 LEX:启发式归纳搜索 287
10.2.4 评估候选解排除算法 289
10.3 ID33决策树归纳算法 290
10.3.1 自顶向下决策树归纳 292
10.3.2 测试选择的信息论方法 293
10.3.3 评价ID3 295
10.3.4决策树数据问题:打包、推进 296
10.4 归纳偏置和学习能力 296
10.4.1 归纳偏置 296
10.4.2 可学习性理论 298
10.5 知识和学习 299
10.5.1 Meta-DENDRAL 300
10.5.2 基于解释的学习 301
10.5.3 EBL和知识层学习 304
10.5.4 类比推理 304
10.6 无监督学习 306
10.6.1 发现和无监督学习 307
10.6.2 概念聚类 308
10.6.3 COBWEB和生物分类知识的结构 310
10.7 强化学习 313
10.7.1 强化学习的组成部分 313
10.7.2 一个例子:九宫游戏 315
10.7.3 强化学习的推理算法和应用 316
10.8 结语和参考文献 318
10.9 习题 319
第11章 连接主义的机器学习 321
11.0 简介 321
11.1 连接网络的基础 322
11.2 感知机学习 324
11.2.1 感知机学习算法 324
11.2.2 例子:用感知机进行分类 325
11.2.3 通用delta规则 328
11.3 反传学习 330
11.3.1 反传算法的起源 330
11.3.2 反传算法实例1:NETtalk 333
11.3.3 反传算法实例2:异或 334
11.4 竞争学习 335
11.4.1 对于分类的“胜者全拿”学习 335
11.4.2 学习原型的Kohonen网络 336
11.4.3 Outstar网络和逆传 337
11.4.4 支持向量机 339
11.5 Hebbian一致性学习 341
11.5.1 概述 341
11.5.2 无监督Hebbian学习的例子 342
11.5.3 有监督Hebbian学习 344
11.5.4 联想记忆和线性联想器 345
11.6 吸引子网络或“记忆” 348
11.6.1 概述 348
11.6.2 BAM,双向联想记忆 349
11.6.3 BAM处理的例子 350
11.6.4 自相关记忆和Hopfield网络 352
11.7 结语和参考文献 355
11.8 习题 356
第12章 机器学习:社会性和涌现性 357
12.0 社会性和涌现性的学习模型 357
12.1 遗传算法 358
12.1.1 两个例子:CNF可满足性问题和巡回推销员问题 360
12.1.2 遗传算法的评估 363
12.2 分类器系统和遗传程序设计 365
12.2.1 分类器系统 365
12.2.2 用遗传算子进行程序设计 369
12.3 人工生命和基于社会的学习 373
12.3.1 生命游戏 373
12.3.2 进化规划 375
12.3.3 涌现的实例研究 377
12.4 结语和参考文献 380
12.5 习题 381
第五部分 人工智能问题求解的高级课题 384
第13章 自动推理 384
13.0 定理证明中的弱方法 384
13.1 通用问题求解程序和差别表 385
13.2 归结定理证明 389
13.2.1 概述 389
13.2.2 为进行归结反驳生成子句形式 390
13.2.3 二元归结证明过程 393
13.2.4 归结策略和简化技术 396
13.2.5 从归结反驳中抽取解答 400
13.3 PROLOG和自动推理 402
13.3.1 概述 402
13.3.2 逻辑编程和PROLOG 403
13.4 自动推理进一步的问题 407
13.4.1 弱方法求解的统一表示法 407
13.4.2 可选推理规则 409
13.4.3 搜索策略及其使用 410
13.5 结语和参考文献 411
13.6 习题 411
14.0 自然语言理解问题 413
第14章 自然语言理解 413
14.1 解构语言:符号分析 415
14.1.1 概述 415
14.1.2 语言分析的过程 416
14.2 语法 417
14.2.1 使用上下文无关文法说明和解析 417
14.2.2 转移网络解析器 418
14.2.3 乔姆斯基层次和上下文相关文法 421
14.3 ATN解析器的语法和知识 423
14.3.1 扩充转移网络解析器 423
14.3.2 结合语法和语义知识 426
14.4.1 概述 430
14.4 语言分析随机工具 430
14.4.2 马尔可夫模型方法 431
14.4.3 决策树方法 432
14.4.4 随机技术的解析和其他语言应用 434
14.5 自然语言应用 435
14.5.1 故事理解和问题解答 435
14.5.2 数据库前端 436
14.5.3 Web信息抽取和摘要系统 438
14.5.4 用学习算法来泛化抽取的信息 440
14.6 结语和参考文献 440
14.7 习题 441
15.1.1 事实和规则的表示 447
15.0 简介 447
15.1 谓词演算程序设计的语法 447
第15章 PROLOG介绍 447
第六部分 人工智能语言与程序设计 447
15.1.2 创建、改变和监控PROLOG环境 450
15.1.3 PROLOG的列表和递归 451
15.1.4 PROLOG的递归搜索 454
15.1.5 在PROLOG中使用cut操作来控制搜索 455
15.2 PROLOG的抽象数据类型 457
15.2.1 ADT堆栈 457
15.2.2 ADT队列 458
15.2.3 ADT优先队列 458
15.2.4 ADT集合 459
15.3 一个PROLOG产生式系统的例子 460
15.4 设计各种搜索策略 464
15.4.1 采用closed列表的深度优先搜索算法 464
15.4.2 PROLOG的宽度优先搜索 466
15.4.3 PROLOG的最佳优先搜索 467
15.5 一个PROLOG规划器 468
15.6 PROLOG的元谓词、类型和合一 470
15.6.1 元逻辑谓词 470
15.6.2 PROLOG的类型 471
15.6.3 合一:用来启动谓词匹配和评估的工具 473
15.7 PROLOG的元解释器 475
15.7.1 有关PROLOG的PROLOG 475
15.7.2 基于规则的专家系统的外壳 478
15.7.3 PROLOG的语义网络 485
15.7.4 PROLOG的框架和模式 486
15.8 PROLOG的学习算法 488
15.8.1 PROLOG的变型空间搜索 488
15.8.2 候选消除算法 491
15.8.3 PROLOG的基于解释的学习 493
15.9 PROLOG的自然语言处理 495
15.9.1 自然语言处理的语义表示 495
15.9.2 PROLOG的递归下降上下文无关解析器 496
15.9.3 概率上下文无关解析器 498
15.9.4 概率词汇化上下文无关解析器 500
15.9.5 PROLOG上下文相关解析器 502
15.9.6 PROLOG的递归下降语义网解析器 503
15.10 结语和参考文献 505
15.11 习题 507
第16章 LISP介绍 511
16.0 简介 511
16.1 基本语法 511
16.1.1 符号表达式 511
16.1.2 控制LISP评估:quote和eval 514
16.1.3 LISP编程:创建新函数 515
16.1.4 LISP中的程序控制:条件和谓词 516
16.1.5 函数、表和符号计算 518
16.1.6 表的递归结构 520
16.1.7 嵌套表、结构以及car/cdr递归 522
16.1.8 用set绑定变量 524
16.1.9 用let定义局部变量 526
16.1.10 Common LISP中的数据类型 527
16.2 LISP中的搜索 528
16.3 高阶函数和抽象 532
16.3.1 映像和过滤器 532
16.3.2 函数参数和lambda表达式 534
16.4 LISP中的搜索策略 534
16.4.1 宽度优先和深度优先搜索 535
16.4.2 最佳优先搜索 537
16.5 LISP中的模式匹配 538
16.6 递归合一函数 539
16.7 解释器和嵌入式语言 542
16.8 LISP中的逻辑编程 544
16.8.1 一个简单的逻辑编程语言 544
16.8.2 流和流处理 546
16.8.3 基于流的逻辑程序解释器 547
16.9 流和延迟分析 550
16.10 一个LISP的专家系统外壳 553
16.10.1 实现确定性因子 553
16.10.2 lisp-shell的体系结构 554
16.10. 3用lisp-shell分类 557
16.11 LISP中的语义网络和继承 559
16.12 用CLOS的面向对象的编程 561
16.12.1 CLOS中类和实例的定义 562
16.12.2 定义通用函数和方法 564
16.12.3 CLOS中的继承 565
16.12.4 例子:自动调温器仿真 566
16.13 LISP中的学习:ID3算法 570
16.13.1 用defstruct定义结构 570
16.13.2 ID3算法 575
16.14 结语和参考文献 580
16.15 习题 580
第七部分 后记 587
第17章 人工智能是经验式的学科 587
17.0 简介 587
17.1.1 人工智能和物理符号系统假设 588
17.1 人工智能:修订的定义 588
17.1.2 连接主义或者“神经”计算 592
17.1.3 主体、涌现和智能 594
17.1.4 概率模型和随机技术 596
17.2 智能系统科学 598
17.2.1 心理学约束 598
17.2.2 认识论问题 600
17.3 人工智能:当前的挑战和未来的方向 605
17.4 结语和参考文献 608
参考文献 610
作者索引 634
主题索引 640