逻辑编程语言是什么,第1张

Prolog是一种面向演绎推理的逻辑编程语言Prolog以其简单的语法、丰富的表达能力和独特的非过程语言,非常适合表达人类的思维和推理规则,自问世以来就赢得了人工智能研究和应用开发者的广泛兴趣。

Prolog(Programming in logic)是一种面向演绎推理的逻辑编程语言,由法国马赛大学的Colmeraner及其研究团队于1972年首次提出。

逻辑编程语言是什么,逻辑编程语言是什么,第2张

关于逻辑编程语言

在处理一阶谓词演算的背景下,Prolog以其简单的语法、丰富的表达能力和独特的非过程语言非常适合表达人类的思维和推理规则,自问世以来就受到了人工智能研究者和应用开发者的广泛关注。特别是在西欧和日本,Prolog已经广泛应用于关系数据库、数理逻辑、抽象问题求解、自然语言理解和专家系统等许多应用领域。日本在1979年提出的第五代计算机研究计划中也将Prolog列为核心语言。

Prolog其实是一种基于反向规则的演绎推理技术,但是对规则和目标的表达有严格的限制。此外,演绎推理控制机制简单,难以应用于复杂的应用领域。

序言语言的基本概念

Prolog语言的基本组成部分是Horn子句,它的表达形式如下:

在Prolog语言中,Horn子句以目标、规则和事实三种形式表示逆向演绎推理中问题解决描述的三个部分。

目标

表示为只有左边部分的Horn子句:

也就是说,在Prolog语言中,目标公式只表示为原子公式的合取,不能是任意的单词和或形式。

规则

代表典型的霍恩条款:

这是逆向演绎推理中使用的规范化B规则,只是规则的左边部分仅限于原子公式的合取,而不是任意的单词和或形状。

事实

事实表示为事实元素的集合,每个事实元素表示为只有右半部分的Horn子句,即单个原子公式p .事实元素之间的隐式连词。

只要问题描述的三个部分用Prolog语言表示,支持Prolog语句的推理机制就会自动执行基于规则的逆向演绎推理,最终给出解决方案。

因为目标和规则的左边部分仅限于原子公式的合取,而这些原子公式可以激活多个规则(这些规则之间隐含的或关系的)。所以Prolog演绎推理过程建立的AND-OR图存在AND-OR关系层层交替的情况。随着与或图的向下扩展,将形成(搜索)一致的解图,从而演绎推理成功;否则推理失败。

目标中包含的每个原子公式都被视为子目标。每当由子目标激活的规则被插入到“与或”图中时,规则左侧的每个原子公式都成为一个新的子目标,并用于激活新的规则。因此,随着规则的激活和新的子目标的生成,与或图逐渐扩展,直到子目标直接匹配事实元素(原子公式)。

特征

Prolog语言的语法结构相当简单,但描述能力很强。比如当事实和规则描述某个学科的公理时。那么问题就是要证明的命题;当事实和规则描述某些数据和关系时,那么问题就是数据查询语句;当事实和规则描述某种状态变化规律时,那么问题就是目标状态。因此,Prolog语言是一种智能编程语言。

Prolog程序没有具体的运行顺序,程序的运行顺序完全以数理逻辑推演的方式(消化法)进行,而不是由程序员来决定。Prolog是一种描述性语言,用特定的方式描述一个问题,然后计算机自动找到问题的答案。举个极端的例子:建立事实和规则后,只要对它说一个问题,它就会自动找到答案。

Prolog程序中没有if、case、for等控制流语句。通常程序员不需要知道程序的运行过程,只需要注意程序的描述是否全面。但是Prolog也提供了一些控制程序流程的方法,与其他语言中的方法有很大的不同。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 逻辑编程语言是什么

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情