目录 2
第一部分 PROLOG语言 2
第一章 Prolog综述 2
1.1 一个程序实例:定义家庭关系 2
1.2 用规则扩展这个程序实例 7
1.3 一条递归规则的定义 13
1.4 Prolog怎样回答问题 19
1.5 程序的陈述性意义和过程性意义 23
第二章 Prolog程序的句法和意义 26
2.1 数据对象 26
2.2 匹配 35
2.3 Prolog程序的陈述性意义 40
2.4 过程性意义 43
2.5 例题:猴子和香蕉 49
2.6 子句和目标的顺序 54
2.7 谈谈Prolog和逻辑之间的关系 61
第三章 表、算子、算术运算 65
3.1 表的表示 65
3.2 对于表的若干运算 68
3.3 算子的标记 80
3.4 算术运算 86
第四章 结构的使用:程序实例 95
4.1 从数据库中检索结构化信息 95
4.2 数据的抽象化 99
4.3 模拟一个不确定性自动机 102
4.4 旅行规划 107
4.5 八皇后问题 112
第五章 回溯的控制 124
5.1 阻止回溯 124
5.2 采用cut的例子 129
5.3 把否定当作失败 133
5.4 使用cut和否定词的问题 137
第六章 输入和输出 141
6.1 与文件进行通讯 141
6.2 项文件的处理 144
6.3 对字符的运算 153
6.4 原子的构造和分解 154
6.5 程序的读取 158
第七章 其它内部过程 161
7.1 测试项的类型 161
7.2 项的构造和分解:=..,functor,arg,name 170
7.3 各种相等性 175
7.4 对数据库的操纵 177
7.5 控制设施 182
7.6 bagof,setof和findall 183
第八章 程序设计的风格和技巧 187
8.1 良好的程序设计的一般原则 187
8.2 如何思考Prolog程序 189
8.3 程序设计的风格 192
8.4 调试 196
8.5 效率 197
第二部分 PROLOG在人工智能中的应用 212
第九章 对数据结构的运算 212
9.1 表的表示和排序 212
9.2 用二叉树表示集合 219
9.3 在二叉字典中的插入和删除 225
9.4 树的显示 230
9.5 图 232
第十章 先进的树表示 242
10.1 2-3字典 242
10.2 AVL树:一种近似平衡的树 250
第十一章 基本的问题求解策略 255
11.1 初步的概念和例子 255
11.2 深度优先搜索策略 260
11.3 宽度优先搜索策略 265
11.4 对图搜索及其最佳性和搜索复杂性的评论 272
第十二章 最佳优先——一种启发式搜索原理 275
12.1 最佳优先搜索 275
12.2 对八数码难题应用最佳优先搜索 284
12.3 把最佳优先搜索用于调度问题 289
第十三章 问题归约和与/或图 297
13.1 问题的与/或图表示 297
13.2 与/或表示的例题 302
13.3 基本的与/或搜索过程 306
13.4 最佳优先与/或搜索 311
第十四章 专家系统 327
14.1 专家系统的功能 327
14.2 专家系统的主要结构 328
14.3 表示知识的if-then规则 329
14.4 骨架的开发 336
14.5 实现 343
14.6 处理不确定性 363
14.7 结论 371
15.1 双人完备信息博弈 376
第十五章 博弈 376
15.2 极小极大原理 378
15.3 α-β算法:极小极大原理的一种有效实现 381
15.4 基于极小极大原理的程序:改进和限制 385
15.5 模式知识和“建议”机制 388
15.6 采用Advice Language 0的一个国际象棋残局程序 392
第十六章 用模式导引的程序设计 409
16.1 模式导引的结构体系 409
16.2 用于模式导引程序的一个简单解释程序 414
16.3 一个简单的定理证明程序 416
16.4 结论 422
练习选答 425
汉英名词对照索引 439