《高等学校教材·计算机科学与技术 人工智能(AI)程序设计 面向对象语言》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:雷英杰 邢清华 王涛等编著
  • 出 版 社:清华大学出版社
  • 出版年份:2005
  • ISBN:
  • 页数:417 页
图书介绍:

目录 2

第1部分 基础知识 2

第1章 人工智能概述 2

1.1 人工智能的概念 2

1.1.1 人工智能 2

1.1.2 为什么要研究人工智能 3

1.1.3 人类智能的计算机模拟 4

1.2 人工智能的研究目标 7

1.3 人工智能研究的基本内容及特点 9

1.3.1 人工智能研究的基本内容 9

1.3.2 人工智能的研究途径与方法 10

1.3.3 人工智能研究的主要特点 12

1.4.1 经典的人工智能研究领域 14

1.4 人工智能的研究领域 14

1.4.2 基于脑功能模拟的领域划分 24

1.4.3 基于实现技术的领域划分 28

1.4.4 基于应用领域的领域划分 28

1.4.5 基于应用系统的领域划分 33

1.4.6 基于计算机系统结构的领域划分 34

1.4.7 基于实现工具与环境的领域划分 35

1.5 人工智能的基本技术 35

1.5.1 推理技术 35

1.5.2 搜索技术 36

1.5.3 知识表示与知识库技术 37

1.5.4 归纳技术 37

1.5.5 联想技术 37

1.6.2 符号主义学派 38

1 6 1 人工智能学科的产生 38

1.6 人工智能的产生与发展 38

1.6.3 连接主义学派 40

1.6.4 人工智能的发展趋势 41

1.6.5 中国人工智能的研究与发展 42

本章小结 42

习题1 44

第2章 知识表示方法 45

2 1 知识的基本概念 45

2.1 1 知识层次 45

2 1 2 知识的属性 46

2 1.3 知识分类 47

2.1.4 知识表示 48

2.2.2 论域和谓词 51

2 2 1 命题与真值 51

2 2 一阶谓词逻辑表示法 51

2 2 3 谓词公式与量词 52

2 2 4 谓词逻辑表示方法 53

2 2 5 谓词逻辑表示方法的BNF描述 54

2.2.6 谓词逻辑表示方法的特点 54

2 3 产生式表示法 55

2 3 1 产生式 55

2 3 2 产生式系统 56

2 3.3 产生式表示法的特点 61

2 3 4 产生式表示法与其他知识表示方法的比较 61

2 4 语义网络表示法 62

2 4 1 语义网络的基本结构 62

2 4 2 语义网络的知识表示 62

2 4 3 语义网络与Prolog 64

2 4.4 语义网络的求解流程 65

2 4 5 基本的语义关系 65

2.4.6 语义网络表示法的特点 67

2 4 7 语义网络法与其他知识表示方法的比较 67

2 5 框架表示法 68

2 5 1 框架的基本结构 68

2.5.2 框架的BNF描述 70

2 5.3 框架系统中的预定义槽名 71

2 5.4 框架系统的问题求解过程 72

2 5.5 框架系统的程序语言实现 73

2 5 6 框架系统的特点 73

2 6 脚本表示法 73

2 6 2 脚本的结构 74

2 6 1 概念依赖理论 74

2 6 3 脚本的推理 75

2.6.4 脚本表示法的特点 76

2 7 过程表示法 76

2.7.1 表示知识的方法 77

2 7 2 过程表示的问题求解过程 78

2 7 3 过程表示的特点 79

2 7.4 过程性与说明性表示方法的比较 79

2 8 Petri网表示法 79

2 8 1 Petri网的基本概念 80

2 8.2 表示知识的方法 80

2 8.3 Petri网表示法的特点 81

2 9 面向对象表示法 81

2 9 1 面向对象的基本概念 81

2 9 3 面向对象的知识表示 83

2 9 2 面向对象的基本特征 83

2 9 4 面向对象表示方法的特点 84

2 10 状态空间表示法 85

2 11 问题归约表示法 85

本章小结 86

习题2 86

第3章 AI编程基础 88

3 1 命题逻辑 88

3 1.1 命题 88

3 1 2 命题定律 90

3 1 3 范式 92

3 1 4 命题逻辑的推论规则 94

3.1 5 命题逻辑的局限性 94

3 2 1 谓词 95

3 2 一阶谓词逻辑 95

3 2 2 量词 96

3 2 3 谓词逻辑的合式公式 97

3 2 4 自由变元与约束变元 97

3 2 5 谓词公式的解释 98

3 2.6 含有量词的等价式和蕴含式 99

3 2 7 谓词逻辑中的推论规则 101

3 2.8 谓词公式的范式与斯柯林标准形 102

3 3 产生式系统 104

3 3 1 产生式系统的基本组成 104

3 3 2 产生式系统的基本过程 106

3.3.3 基于产生式系统的具体问题建模 107

3.3.4 产生式系统的类型 108

3.3.5 产生式系统的搜索策略 109

3.3.6 两种典型的产生式系统 112

3.4.1 专家系统的概念与组成 117

3.4 专家系统 117

3.4.2 专家系统的类型 120

3.4.3 专家系统的特点 122

3.4.4 专家系统的开发工具 123

3.4.5 新一代专家系统研究 124

本章小结 126

习题3 127

第2部分 编程指南 130

第4章 Visual Prolog概述 130

4.1 Visual Prolog 6概述 130

4.2 Visual Prolog 6基本特性 131

4.2.1 语言特性 131

4.2.4 链接器 132

4.2.5 调试器 132

4.2.2 图形化开发环境 132

4.2.3 编译器 132

4.3 创建项目 133

4.4 建立项目 134

4.5 浏览项目 135

4.6 开发项目 137

4.7 调试项目 140

本章小结 142

习题4 142

第5章 Prolog基础 143

5.1 Horn子句逻辑 143

5.2 Prolog推理机 145

5.3 扩展家庭定理 146

5.4 Prolog是一种编程语言 147

5.5 程序控制 148

5.5.1 失败 149

5.5.2 回溯 149

5.5.3 改进家庭定理 151

5.5.4 递归 152

5.5.5 副效应 153

5.5.6 小结 154

5.6 Prolog算符 154

5.6.1 算符 155

5.6.2 深入理解算符 156

5.6.3 算符与谓词 158

5.6.4 算符作为参数 158

5.6.5 算符递归 160

5.6.6 算符使用策略 161

5.6.7 小结 161

本章小结 161

习题5 162

第6章 类与对象 164

6.1 对象模型 164

6.2 类实体 165

6 3 模块 166

6 4 创建和访问对象 166

6.5 接口对象类型 167

6.6 多重实现 167

6 7 包容多态性 168

6 8 support类型扩展 168

6.10 继承 169

6.9 object超类型 169

6.11 对象体系的其他特点 171

6.12 Visual Prolog 5与Visual Prolog 6的差异 171

6.12.1 句点 171

6.12.2 谓词 171

6.12.3 谓词论域 172

6.12 4 引用论域 172

6.12.5 函数子句 172

6.12.6 常量 173

6.12.7 事实 173

6.12.8 事实变量 173

6.12.10 编译器命令 174

6.12.11 条件编译 174

6.12.9 嵌套表达式与函数 174

6.12.12 输入输出及特殊论域 175

6.12.13 省略与匿名参数类型 175

6.12.14 对象与类 176

6.12 15 库支持 176

本章小结 180

习题6 180

第7章 Visual Prolog编程 182

7.1 Visual Prolog基础 182

7.1.1 程序结构 182

7 1.2 目标 184

7.1.3 文件考虑 185

7.1.4 作用域访问 185

7 1.5 面向对象 186

7.1.6 一个完整的例子:family1.prj6 186

7.1.7 程序的取舍 192

7 2 Visual Prolog的GUI编程 193

7.1.8 小结 193

7 2 1 GUI概述 194

7 2.2 GUI对事件的响应 195

7.2.3 开始一个GUI项目 195

7.2.4 创建模态对话框 196

7.2.5 修改菜单 200

7.2 6 修改工具栏 202

7.2 7 在程序中添加主代码 204

7 2.8 压缩相关代码 206

7.2.9 分析所做的工作 209

7.2.10 运行程序 211

7.3.1 初始准备阶段 212

7 3.2 创建业务逻辑层 212

7.3 Visual Prolog的逻辑层 212

7 2.11 小结 212

7 3.3 在业务逻辑层上工作 213

7 3 4 创建业务逻辑类 214

7 3.5 理解业务逻辑类 217

7 3.6 连接业务逻辑层到GUI 217

7.3.7 理解事件处理程序 220

7 3 8 运行代码 221

7.3.9 细节考虑 221

7.3.10 小结 221

7.4 Visual Prolog的数据层 222

7.4.1 基本概念 222

7.4 2 程序 222

7.4 3 非模态对话框 225

7 4.5 接口 226

7.4 4 FamilyData包 226

7 4.6 FamilyDL包 227

7 4.7 FamilyDL包的代码 228

7 4.8 FamilyBLL包的代码 229

7.4 9 数据层的特征 230

7 4.10 小结 231

本章小结 231

习题7 231

第8章 编写CGI程序 232

8 1 概述 232

8 2 编写CGI程序基础 232

8 2.1 公共网关接口 232

8 2 2 CGI程序 235

8 2 3 测试CGI程序 238

8.2 4 用Visual Prolog 6创建CGI程序 239

8.2.5 测试examplel 241

8.2.6 应用程序功能分析 242

8.2 7 输入流分析 242

8 3 编写实用的CGI应用程序 242

8.3.1 将信息从HTML文件传输至CGI程序 242

8.3.2 解释信息流的高级CGI应用程序 244

8 3.3 信息从网络服务器到浏览器的传输 246

8.3.4 CGI应用程序简评 247

8 3.5 取代CGI程序的候选方案 247

8 3 6 加速CGI应用程序 247

8.3 7 CGI程序的客户端 247

8 3 8 使用Javascript对象的高级CGI应用程序 249

8 3 9 安全性问题 251

8 3.10 防止CGI程序被盗链 252

8 4 CGI应用程序测试实例 253

8 4 1 安装TinyWeb网络服务器 253

8 3 11 小结 253

8.4.2 TinyWeb的根目录 254

8.4.3 TinyWeb的端口 254

8.4.4 调试例子程序 254

8.4.5 用其他网络服务器运行例子程序 254

本章小结 254

习题8 255

第9章 编码风格 256

9.1 基本元素 256

9.1.1 关键字 256

9.1.2 半关键字 256

9.1.6 变量 257

9.1.7 谓词 257

9.1.3 文字 257

9.1.5 常量 257

9.1.4 标识符 257

9.1.8 论域 258

9.1.9 类和接口 258

9.2 推荐格式 258

9.2.1 折行 258

9.2.2 缩排 259

9.2.3 对齐 259

9.2.4 空格字符 259

9 3 程序结构 259

9.3.1 段 259

9.3.4 论域 260

9.3.2 类、接口及实现 260

9.3.3 谓词声明 260

9.3.5 子句 261

9.3.6 不确定性循环 261

9.3.7 Word格式化代码 261

9 4 程序设计语用学 262

9.4.1 常规技巧 262

9.4.2 布尔值 263

9.4.3 截断 263

9.4.4 红色截断和绿色截断 264

9.4.5 指派输入格式 265

9.4.6 异常和错误处理 266

9.4.7 内部错误和其他错误 266

9.5.2 运行堆栈 267

9.5.1 存储器 267

9.5 存储管理 267

9.5.3 尾部调用优化 268

9.5.4 运行栈耗尽 268

9.5.5 全局栈 268

9.5.6 G-堆栈耗尽 268

9.5.7 堆和垃圾回收 269

9.5.8 垃圾回收 269

9.5.9 Finalizers 270

9.5.10 数据在什么地方分配 270

9.5.11 堆中数据 270

9.5.12 多线程和存储 271

9.6 异常处理 271

9.6.1 如何捕获异常 271

9.6.2 如何构造自己的异常 273

9.6.3 如何继续另一个异常 274

本章小结 276

习题9 276

第3部分 语言参考 280

第10章 Visual Prolog语言元素 280

10.1 类型 280

10.2 对象系统 281

10.2.1 外部视图 281

10.2.2 内部视图 282

10.3 作用域和可视性 283

10.3.1 名字分类 283

10.3.2 可视性、隐蔽性及限定性 285

10.4.1 程序单元 286

10.4 词法结构 286

10.4.2 标记 287

10.4.3 文字 289

本章小结 291

习题10 291

第11章 Visual Prolog数据元素 292

11 1 论域段 292

11.1.1 类型名 292

11.1.2 复合论域 293

11 1 3 列表论域 295

11.1 4 引用论域 296

11 1 5 谓词论域 296

11 1 6 整型论域 301

11 1 7 实型论域 302

11 2 1 通用类型 303

11 2 通用类型和根类型 303

11 2 2 根类型 304

本章小结 304

习题11 304

第12章 Visual Prolog程序元素 305

12 1 项 305

12 1 1 项的基本概念 305

12 1 2 运算符 306

12 1 3 类成员访问 307

12 1 6 论域、算符和常量访问 308

12 2 1 常量段 308

12 2 常量 308

12 1 5 全局实体的访问 308

12 1 4 对象成员访问 308

12 2.2 常量定义 309

12 3 谓词 309

12 3.1 谓词段 309

12 3.2 构造段 310

12 3.3 接口谓词 311

12 3 4 变元 313

12 4 子句 313

12 4 1 子句段 313

12 4 2 目标段 314

12 5 事实 315

12 5 1 事实段 315

12 5 2 事实声明 315

12 5 4 事实 316

12 5 3 事实变量 316

12 6 评估 317

12 6 1 回溯 317

12 6.2 谓词调用 317

12.6.3 合一 318

12.6.4 引用论域 319

12.6.5 匹配 319

12.6.6 嵌套的函数调用 320

12.6.7 变量与常量 320

12.6.8 算术表达式 321

12.6.9 事实断言与撤销 322

12.6.10 失败谓词和成功谓词 322

12.6.11 逻辑与 322

12.6.12 逻辑或 322

12.6.14 截断 323

12.6.13 逻辑非 323

12.6.15 谓词finally/2 324

12 7 程序段 325

本章小结 325

习题12 326

第13章 编译单元 327

13.1 接口 327

13.1.1 接口的基本概念 327

13.1.2 接口与对象 328

13.1.3 开放限定 328

13.1.4 支持限定 329

13 2 类声明 330

13 3 类实现 332

13.3.1 类实现的基本概念 332

13.3.3 归结限定 334

13.3.2 继承限定 334

13.3.4 委托限定 337

13.3.5 This修饰 339

13.3.6 构造器 341

13.3.7 终结 344

13.4 类型转换 345

13.4.1 隐式转换 345

13.4.2 显式转换 346

13.5 条件编译 349

13 6 异常处理 349

13.7 预处理程序指令 350

13.7.1 条件编译指令 350

13.7.3 编译时间信息 351

13.7.2 源文件包含 351

本章小结 353

习题13 354

第14章 内部论域、谓词和常量 355

14.1 概述 355

14.2 内部常量详解 357

14.3 内部论域详解 358

14.4 内部谓词详解 363

本章小结 380

习题14 380

第15章 与其他编程语言接口 381

15.1 外部代码 381

15.2 关键问题 381

15.3 调用约定和链接名 382

15.4.1 举例 383

15.4 数据表示 383

15.4 2 外部链接库 384

15.5 存储管理 385

15.5.1 典型解决方案 385

15.5.2 垃圾收集和全局堆栈 386

15.6 Win32 API函数 386

本章小结 388

习题15 388

附录 术语表 389

A 389

B 390

C 391

D 394

E 396

F 397

G 398

H 399

I 399

K 401

L 401

M 402

N 403

O 404

P 405

R 407

S 408

T 411

U 412

V 413

参考文献 414