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

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用于人工智能的Prolog语言PPT

* 用于人工智能的Prolog语言 归结原理与Prolog语言 家庭关系程序示例 Turbo Prolog程序结构 表与递归 Prolog 程序分析 本章主要内容: 文件与数据库 字符串处理 回溯及控制 输入与输出 Prolog 是一种逻辑程序设计语言,基于一阶谓词逻辑,是典型的叙述型语言(Declaration Language)。 Prolog语言的特点: (1) 建立在一阶谓词逻辑和归结原理基础上,有自动推理功能。 (2) 用Prolog设计应用程序时,仅需指明领域中各对象间的关系和决策规 则,而应用这些知识的推理由Prolog 完成。 (3) Prolog应用程序,由数据库和规则库组成。 (4) Prolog程序设计要做三件事,即说明事实、定义规则、提出问题。 4.1 归结原理与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(张三). 目标: R(张三). M(张三). ? 完整的Prolog程序: predicates M(symbol) R(symbol) clauses R(X):- M(X). M(zhsan). goal R(zhsan). 运行 4.2 家庭关系程序示例 下图是一个表示家庭关系的实例: Pam Tom Ann Bob Liz Pat Jim parent(pam,bob). parent(tom,bob). parent(tom,liz). parent(bob,ann). parent(bob,pat). parent(pat,jim). 用Prolog 语句表示为: 5.谁是jim的祖父母? 分析:程序中并没有直接的祖父母关系。此问题可分两步: (1)谁是jim 的父母?假设是Y, (2)谁是Y 的父母?假设是X, X jim Y parent parent grandparent Prolog目标语句: parent(Y,jim), parent(X,Y). 6.类似的问题可以是: “谁是tom的孙子?” prolog目标语句: parent(tom,X), parent(X,Y). 5.系统回答 6.系统回答 parent(pam,bob). parent(tom,bob). parent(tom,liz). parent(bob,ann). parent(bob,pat). parent(pat,jim). clauses 以上程序说明的几个重要观点: (1)在Prolog中定义一个关系是容易的,可以通过满足关系的n个对象来表达。 (2)对程序中已定义的关系,用户可以轻而易举地询问Prolog 系统。 (3)关系的对象可以是常量 (如:tom,ann) ,也可以是变量(如:X,Y)。 (4)向系统提出问题,可由一个或多个目标组成。 (5)一个Prolog 程序由一些子句(clauses)组成。每个子句用句号结束。 (6)对一个问题的回答是肯定的或者是否定的,取决于相应的目标是否满足。在肯定回答的情况下,说相应的目标是可满足的,而且这个目标成功了。否则,说目

文档评论(0)

djdjix + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档