第2章逻辑程序设计语言prolog(白).ppt-西安石油大学.ppt

第2章逻辑程序设计语言prolog(白).ppt-西安石油大学.ppt

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

第2章 逻辑程序设计语言PROLOG 2.1 基本PROLOG 2.2 Turbo PROLOG程序设计  2.1 基本PROLOG 2.1.1 PROLOG的语句  1. 事实(fact)  格式 〈谓词名〉(〈项表〉). student(john).   like(mary,music). abc. repeat. 功能 一般表示对象的性质或关系。  2. 规则(rule) 格式 〈谓词名〉(〈项表〉):-〈谓词名〉(〈项表〉){,〈谓词名〉(〈项表〉)}.  bird(X):-animal(X),has(X,feather). grandfather(X,Y):- father(X,Z),father(Z,Y). run:-start,step1(X),step2(X),end.  功能 一般表示对象间的因果关系、蕴含关系或对应关系。 3. 问题(question) 格式 ?-〈谓词名〉(〈项表〉){,〈谓词名〉(〈项表〉)}.   ? -student(john). ? -like(mary,X).  功能 问题表示用户的询问, 它就是程序运行的目标。 2.1.2 PROLOG的程序 PROLOG程序一般由一组事实、 规则和问题组成。问题是程序执行的起点, 称为程序的目标。 likes(bell,sports). likes(mary,music). likes(mary,sports). likes(jane,smith). friend(john,X):-likes(X,reading),likes(X,music). friend(john,X):-likes(X,sports),likes(X,music). ?-friend(john,Y). ?-likes(mary,X). 或 ?-likes(mary,music). 或 ?-friend(X,Y). 或 ?-likes(bell,sports), likes(mary,music), friend(john,X). 2.1.3 PROLOG程序的运行机理 1. 自由变量与约束变量 2. 匹配合一 两个谓词可匹配合一, 是指两个谓词的名相同, 参量项的个数相同, 参量类型对应相同, 并且对应参量项还满足下列条件之一: (1) 如果两个都是常量, 则必须完全相同。  (2) 如果两个都是约束变量, 则两个约束值必须相同。  (3) 如果其中一个是常量, 一个是约束变量, 则约束值与常量必须相同。  (4) 至少有一个是自由变量。 考虑下面的各组谓词是否可匹配合一? pre1(″ob1″,″ob2″,Z) pre1(″ob1″, ″ob3″,Y) pre1(″ob1″,″ob2″,Z) pre1(″ob1″,X, ″ob3″) pre1(″ob1″,″ob2″,Z) pre1(″ob1″,X,Y) 3. 回溯   所谓回溯, 就是在程序运行期间, 当某一个子目标不能满足(即谓词匹配失败)时,控制就返回到前一个已经满足的子目标(如果存在的话), 并撤消其有关变量的约束值, 然后再使其重新满足。 成功后, 再继续满足原子目标。如果失败的子目标前再无子目标, 则控制就返回到该子目标的上一级目标(即该子目标谓词所在规则的头部)使它重新匹配。回溯也是PROLOG的一个重要机制。 likes(bell,sports). likes(mary,music). likes(mar

文档评论(0)

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

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

1亿VIP精品文档

相关文档