×

人工智能PROLOG编程。 (英语) Zbl 0599.68007号

国际计算机科学系列。沃金汉,英国等:艾迪生-卫斯理出版公司。XVII、 423页(1986年)。
从事人工智能系统实施的人们对PROLOG越来越感兴趣。因此,最近出版了许多关于这种语言的教科书。他们中的大多数主要致力于PROLOG的技术问题,而没有揭示如何设计程序来解决复杂问题。布拉特科的文本没有这样的缺陷。作者成功地揭示了PROLOG在典型人工智能问题领域的优势,包括启发式搜索方法、自然语言处理、问题解决、专家系统、游戏和模式导向编程。
这本书中的材料分为两部分。第1部分分为八章,主要介绍PROLOG语言,而第二部分则说明PROLOG对于人工智能问题的重要性和有用性。
前两章介绍PROLOG编程的基本概念,如事实、规则和问题的构造、问题答案的推导过程以及数据结构的组成。此外,还解释了PROLOG的声明语义和过程语义,并相互关联。在第三章中,讨论了列表的不同表示及其在PROLOG程序中的使用。此外,本章还研究了运算符的声明和算术表达式的求值。
在第四章中,我们给出了PROLOG程序的一些有趣且信息丰富的示例。它们包括关系数据库的构建、信息检索、数据抽象、有限自动机的模拟、旅行计划和八皇后问题。如何控制PROLOG系统搜索知识库时固有的回溯过程,在第五章中进行了解释。为此,对切割算子进行了解释,并指出了其优缺点。
第6章和第7章介绍了一些最常用的系统谓词,用于执行输入/输出、组合和分解术语、动态修改PROLOG子句列表等。下一章探讨了成功设计PROLOG程序的技术。因此,诸如递归、通过泛化解决问题、调试和效率等方面都得到了解决。
如本报告开头所述,Bratko的书的第二部分致力于使用PROLOG解决通常归因于人工智能领域的问题。
第9章只不过是为后续章节做准备。它包含不同列表排序方法的PROLOG程序,用于在二进制搜索树上实现操作,用于表示图,以及用于在图中查找路径。在第十章中,我们很好地展示了如何在PROLOG中操作平衡树结构,如2-3树和AVL树。
第11章和第12章涉及通过状态空间对问题进行建模。在这个模型中,解决问题相当于在图中寻找路径,深度优先和宽度优先方法是其中最基本的方法。作者在PROLOG中实现了这两种算法以及启发式的宽度优先搜索的最佳优先变量。
第13章涉及可分解问题,其解可以被构造为AND/OR图。这本书包含了关于这个主题的有趣材料,并展示了它的适用性,例如在路线查找和游戏中。专家系统及其在PROLOG中的实现是下一章的主题。它最终构建了一个小型但设备丰富的专家系统外壳。对我来说,这是本文的亮点之一!。
第15章深入研究了两人完美信息游戏,这类游戏包括跳棋和国际象棋等流行游戏。Bratko巧妙地演示了如何在PROLOG中对minimax游戏策略进行编码。最后一章介绍了模式定向编程风格及其在PROLOG中的实现。实现了模式定向程序的解释器,并将其应用于命题逻辑中基于分辨率的定理证明。
总之,在阅读这本书的同时,我对其质量的热情与日俱增。这真是教科书写作中罕见的杰作!很长一段时间以来,我都没有读过一本在丰富有趣的材料、清晰度、组织性、插图和写作风格方面与之相匹配的书。我强烈推荐这本书给那些好奇PROLOG是关于什么的人。
审核人:G.巴特

MSC公司:

68-01年 与计算机科学相关的介绍性说明(教科书、教程论文等)
68号01 软件理论的一般主题
68N25号 操作系统理论

关键词:

逻辑程序设计