文档详情

用于人工智能的Prolog语言.ppt

发布:2025-03-17约1.08万字共10页下载文档
文本预览下载声明

用于人工智能的Prolog语言归结原理与Prolog语言家庭关系程序示例TurboProlog程序结构表与递归Prolog程序分析本章主要内容:文件与数据库字符串处理回溯及控制输入与输出4.1归结原理与Prolog语言Prolog是一种逻辑程序设计语言,基于一阶谓词逻辑,是典型的叙述型语言(DeclarationLanguage)。Prolog语言的特点:(1)建立在一阶谓词逻辑和归结原理基础上,有自动推理功能。(2)用Prolog设计应用程序时,仅需指明领域中各对象间的关系和决策规则,而应用这些知识的推理由Prolog完成。(3)Prolog应用程序,由数据库和规则库组成。(4)Prolog程序设计要做三件事,即说明事实、定义规则、提出问题。Prolog有三种形式的语句:1. B:-A1,A2,…,An.含义是A1?A2?...?An?B,相当于~A1?~A2?…?~An?B。可视作人工智能系统中的推理规则。也可将该句看作一个过程,B为过程头,是过程名,而{A1,A2,…,An}为过程体。2. A1,A2,…,An.含义是A1?A2?...?An?F,相当于~A1?~A2?…?~An,可视作推理的目标,或称目标子句。3. B.含义是公式B无条件地为真。可视作已知的事实。?x(M(x)?R(x))M(“张三”)R(“张三”)如三段论:推理规则: R(X):-M(X).事实: M(张三).目标: R(张三).Prolog语句:证明公式:((M(X)?R(X))?M(张三))?R(张三)恒真即证明公式:?(((M(X)?R(X))?M(张三))?R(张三))恒假化成公式集:{((M(X)?R(X))?M(张三)),?R(张三)}子句集:{?M(X)?R(X),M(张三)),?R(张三)}推理规则事实目标子句B:-A1,A2,…,An.和子句B.都是仅有一个正文字的子句。称作定子句。目标子句A1,A2,…,An.是没有正文字出现的子句。定子句和目标子句统成为Horn子句。Prolog子句都是Horn子句。用Prolog证明三段论:推理规则:R(X):-M(X).事实: M(张三).?完整的Prolog程序:M(symbol)R(symbol)predicates01R(X):-M(X).M(zhsan).clauses02R(zhsan).goal03M(张三).目标: R(张三).044.2家庭关系程序示例下图是一个表示家庭关系的实例:PamTomAnnBobLizPatJim parent(pam,bob). parent(tom,bob). parent(tom,liz). parent(bob,ann). parent(bob,pat). parent(pat,jim).用Prolog语句表示为:完整的Prolog程序:predicates parent(symbol,symbol)clauses parent(pam,bob). parent(tom,bob). parent(tom,liz). parent(bob,ann). parent(bob,pat). parent(pat,jim).此程序可以回答的问题:1.bob是pat的父母吗?parent(bob,pat).2.liz是pat的父母吗?parent(liz,pat).3.谁是liz的父母?parent(X,liz).4.谁是谁的父母?parent(X,Y).5.谁是jim的祖父母?分析:程序中并没有直接的祖父母关系。此问题可分两步:(1)谁是jim的父母?假设是Y,(2)谁是Y的父母?假设是X,XjimYparentparentgrandparentProlog目标语句:parent(Y,jim),parent(X,Y).6.类似的问题可以是:“谁是tom的孙子?”prolog目标语句:parent(tom,X),parent(X,Y).parent(pam,bob).parent(tom,bob).parent(tom,liz).parent(bob,ann).parent(bob,pat).pa

显示全部
相似文档