第一部分 人工智能编程导论 1
第一章 PROLOG入门 1
1.1 Prolog中的事实表达 1
习题 3
1.2 只含事实和询问的简单程序 3
A.Prolog程序 3
B.资料对象 5
C.匹配 5
习题 6
1.3 Prolog中的规则 7
A.规则的描述 7
B.Prolog中规则的用法 9
习题 16
1.4 Prolog中的递归规则 16
A.递归的引入 16
B.Prolog中递归规则的处理 19
习题 22
1.5 本章小结 22
下章概要 23
参考文献 23
第二章 对PROLOG更深入的探讨 25
2.1 资料表达和语法 25
A.常量 25
B.变量 29
C.简单对象和结构对象 30
D.小结 32
习题 33
2.2 匹配 34
A.变量的实例化 34
B.匹配的要求 34
C.等式 37
习题 38
2.3 Prolog的说明特性和过程特性 38
A.说明语言和过程语言的理解 38
B.子句的排序:死循环的危险 39
C.子句排序的技巧 42
习题 47
2.4 Prolog和逻辑 48
A.谓词逻辑 48
B.Horn子句 48
2.5 本章小结 49
下章概要 49
参考文献 50
第三章 算术、表和递归 51
3.1 Prolog中的算术 51
A.算术运算符 51
B.算术比较运算符 55
A.描述和语法 58
习题 58
3.2 表 58
B.表头和表尾 59
C.表和二元树 60
习题 61
3.3 Prolog中的递归和表处理 61
A.使用表进行递归 61
B.与迭代相比较 65
3.4 表处理的实际应用 66
A.附加 66
B.反向 68
C.增加和删除 70
D.子表 71
E.第一个和第末个元素 72
F.长度 73
G.除去重复 73
H.表处理关系小结 75
习题 75
3.5 本章小结 78
3.6 实际问题 79
下章概要 80
参考文献 80
4.1 阻止回溯:截断 81
第四章 回溯和程控 81
4.2 Prolog中的回溯 84
A.截断的理解 84
B.Prolog为什么要回溯 87
C.Prolog如何回溯 87
习题 88
4.3 截断的通常用法 88
A.让关系确定 88
B.“锁住”简单规则 89
C.因失败而否定 90
习题 90
A.过程排序后果 92
4.4 截断的果 92
B.目标匹配后果 93
习题 97
4.5 本章小结 97
下章概要 97
参考文献 98
第五章 输入和输出 99
5.1 项的读写 99
A.输入和输出流 99
B.谓词write,tab,nl和read 99
5.2 表的写操作 101
习题 102
A.谓词put 103
5.3 字符的读写 103
B.谓词get和getn 104
习题 104
5.4 文件的读写 104
A.谓词see和seen 104
B.谓词tell和told 105
C.谓词seeing和telling 106
习题 106
5.5 程序的读操作 106
A.谓词consult 107
B.谓词reconsult 107
习题 109
5.6 本章小结 110
下章概要 111
参考文献 111
第六章 内部工具 112
6.1 内部算符及用户定义算符 112
A.算符的类型 112
B.用户定义算符的书写 112
习题 116
6.2 等同 116
6.3 程控工具 117
A.逗号和分号算符 117
C.谓词tail 118
B.谓词cut 118
D.谓词true 119
E.谓词call 119
F.谓词not 120
G.谓词repeat 121
习题 122
6.4 维持多解 123
A.谓词findall 123
B.谓词bagof 123
C.谓词setof 124
习题 124
下章概要 125
6.5 本章小结 125
参考文献 126
第七章 其它的内部工具 127
7.1 评估Prolog项 127
A.谓词var和nonvar 127
B.谓词atom,integer,float,number和atomic 128
习题 129
7.2 构造和分解原子:谓词name 130
7.3 存取和修改子句 131
A.谓词assert和retract 131
B.谓词listing 135
C.谓词clause 135
7.4 构造和分解结构对象 136
习题 136
A.谓词= 137
B.谓词functor 139
C.谓词arg 140
习题 141
7.5 Prolog的调试工具 141
A.谓词trace和notrace 142
B.谓词spy和nospy 144
习题 145
7.6 本章小结 145
下章概要 145
参考文献 146
第八章 PROLOG程序设计技术 147
8.1 优秀编程原则 147
8.2 程序布局 147
A.注释 147
B.意会 148
C.布局一致 148
D.子句要短 149
E.分号操作符的限制使用 149
F.谨慎使用assert,retract和cut 150
G.实用谓词 150
A.过程序程序的回避 151
B.更多的变量 151
8.3 程序设计的有效性技术 151
C.基本状态与递归状态 152
D.左递归、中心递归和尾递归 153
E.子句中的子目标排序 158
F.迭代与递归 159
G.驱动程序driver 160
8.4 程序开发 161
A.展开的方法 161
B.利用驱动程序进行模块化开发 162
C.问题的特征描述 162
习题 162
8.5 本章小结 163
参考文献 164
下章概要 164
第九章 PROLOG和LISP 165
9.1 LISP 165
A.LISP的起源 165
B.语言 165
9.2 Prolog和LISP的对比 173
A.理解语言的发展 174
B.Prolog与LISP的优点和局限 174
9.3 本章小结 176
下章概要 176
参考文献 177
A.人工智能的说明 179
10.1 人工智能简介 179
第十章 人工智能介绍 179
第二部分 人工智能原理导论 179
B.人工智能的简短历史 180
C.人工智能的用途 184
D.人工智能的挑战 184
习题 185
10.2 专家系统介绍 185
A.专家系统的描述 185
B.在科学和工程中专家系统的用途 187
C.专家系统中的知识表达 188
D.基于逻辑的系统 189
E.语义网络 192
F.基于框架的系统 194
G.面向对象程序 200
H.黑板系统 209
习题 212
10.3 本章小结 213
下章概要 213
参考文献 213
第十一章 人工智能中的PROLOG 215
11.1 Prolog中的搜索策略 215
A.搜索策略的一般定义和描述 215
B.深度优先搜索 216
C.宽度优先搜索 221
D.最佳优先搜索 223
E.小结 224
习题 225
11.2 Prolog中的知识表达 225
A.基于规则的知识 225
B.语义网络知识 227
C.基于框架的知识 230
D.面向对象程序 240
习题 241
11.3 其它的问题求解策略 242
A.与或策略 242
B.约束满足 246
C.产生-检测法 248
D.中间-结局分析 250
习题 252
11.4 本章小结 252
下章概要 254
参考文献 254
第三部分 化学工程实例研究:分离综合专家系统EXSEP的开发 257
第十二章 EXSEP简介 257
12.1 应用:分离流程开发和多组分分离排序 257
A.分离系统综合或分离流程开发 257
B.多组分分离的排序问题 258
C.分离排序对有效的解题技巧的需求 259
D.分离排序技术 259
E.分离规则和EXSEP 260
A.一般性开发技术 261
12.2 专家系统开发简介 261
D.EXSEP开发计划 262
C.专家系统的局限 262
12.3 本章小结 266
下章概要 266
参考文献 266
第十三章 EXSEP在化工领域的应用前景 268
13.1 引言 268
A.例1:四组分混合物的分离 268
B.过程流程综合中的挑战 269
A.组分分配图与组分分配矩阵 273
13.2 分离步骤综合过程的表达 273
B.组分和产品分离的表达 274
13.3 分离任务的可行性分析 276
A.轻关键组分与重关键组分的选择 276
B.简捷的可行性分析 279
13.4 分离规范表 283
13.5 旁路分析与伪产物转换 286
A.采用物流旁路 286
B.物流旁路的效果 288
C.伪产品变换 289
13.6 分离综合的经验规则 290
A.入选的有序经验规则 291
B.一个实例 292
C.EXSEP中经验规则的执行 297
D.落选的经验规则 298
13.7 本章小结 302
下章概要 302
符号表 303
参考文献 304
第十四章 从用户的角度来看EXSEP 306
14.1 使用要求 306
A.硬件要求 306
B.技术资料 306
B.问题 307
A.EXSEP的操作过程 307
14.2 使用EXSEP:例1 307
C.启动程序 308
D.运行程序 312
14.3 生成其它候选流程 324
14.4 其它示例问题 333
A.例2:修改例1使其包括伪产品 333
B.例3 348
C.实际问题 357
14.5 本章小结 359
下章概要 359
参考文献 360
A.逻辑结构 361
第十五章 从人工智能的角度来看EXSEP 361
15.1 知识表达 361
B.问题分解 363
C.约束 366
15.2 搜索 368
A.总体控制策略:计划-产生-检验 368
B.搜索和控制 369
15.3 Prolog编程 371
A.概述 371
B.程序驱动 372
C.程序模块 373
D.Prolog技术的应用 377
E.开发Prolog关系 385
15.4 实际问题 390
15.5 本章小结 395
下章概要 396
参考文献 396
第四部分 基于知识的系统和人工神经网络在化工中的应用 397
第十六章 基于知识的系统在化工中的应用概述 397
16.1 引言 397
参考文献与进一步读物 397
16.2 专家系统的开发 398
A.确定专家系统的可能性 399
B.确定开发专家系统的适宜性 400
C.开发专家系统是否值得 401
参考文献与进一步读物 402
16.3 过程故障诊断中的应用 403
A.引言 403
B.FALCON 404
C.CATDEX 406
D.BIOEXPERT 407
E.故障诊断中的问题求解方法 409
P.过程故障诊断中的挑战 411
G.未来的方向 411
参考文献与进一步读物 412
A.引言 415
16.4 过程控制中的应用 415
B.应用 416
C.人工神经网络 417
D.过程控制中的挑战 418
E.未来的方向 419
参考文献与进一步读物 419
16.5 过程设计中的应用 423
A.引言 423
B.应用 423
C.过程设计中的挑战 428
D.未来的方向 428
参考文献与进一步读物 429
B.应用 432
A.引言 432
16.6 过程计划与操作中的应用 432
C.未来的方向 434
参考文献与进一步读物 434
16.7 过程建模与模拟中的应用 436
A.引言 436
B.应用 436
C.未来的方向 439
参考文献与进一步读物 440
16.8 产品设计、开发与选择中的应用 441
A.引言 441
B.应用 441
C.未来的方向 444
参考文献与进一步读物 445
16.9 实际问题 445
16.10 本章小结 447
第十七章 人工神经网络导论 448
17.1 引言 448
A.人工神经网络的本质 448
B.人工神经网络与经验建模方法 451
C.人工神经网络与专家系统 452
17.2 神经计算基础 452
A.节点的组成部分 452
B.人工神经网络的拓扑结构 455
C.人工神经网络的学习与训练简介 456
D.反向传播学习:Vanilla反向传播算法 457
E.反向传播学习的一个例子 460
P.反向传播中的Sigmoid阈值函数 466
G.广义Delta规则算法 467
H.广义Delta规则的一个实例 469
I.反向传播备注 475
J.实际问题 476
17.3 人工神经网络的应用 479
A.过程控制 480
B.故障诊断 485
C.过程模拟 489
D.过程预报 490
E.实际问题 491
17.4 评语与结论 496
A.人工神经网络的优点 496
B.人工神经网络的局限性 496
C.结束语 498
符号表 498
参考文献与进一步读物 499
第五部分 附录 503
附录1 美国信息交换标准代码(ASCII) 503
附录2 带有注释的EXSEP程序清单 506
附录3 术语集注 569
附录4 部分习题和实际问题的答案 591