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

Example: cut ?- p(X). X=1; ?- p(X). ?- a(X). ?- b(X),c(X),!,d(X),e(X). X=1 p(X):- a(X). p(X):- b(X),c(X),!,d(X),e(X). p(X):- f(X). a(1). b(1). b(2). c(1). c(2). d(2). e(2). f(3). ?- c(1), !, d(1), e(1). X=1 ?- !, d(1), e(1). Example: cut ?- p(X). X=1; ?- p(X). ?- a(X). ?- b(X),c(X),!,d(X),e(X). X=1 p(X):- a(X). p(X):- b(X),c(X),!,d(X),e(X). p(X):- f(X). a(1). b(1). b(2). c(1). c(2). d(2). e(2). f(3). ?- c(1), !, d(1), e(1). X=1 ?- !, d(1), e(1). ?- d(1), e(1). X X Example: cut ?- p(X). X=1; no ?- p(X). ?- a(X). ?- b(X),c(X),!,d(X),e(X). X=1 p(X):- a(X). p(X):- b(X),c(X),!,d(X),e(X). p(X):- f(X). a(1). b(1). b(2). c(1). c(2). d(2). e(2). f(3). ?- c(1), !, d(1), e(1). X=1 ?- !, d(1), e(1). ?- d(1), e(1). ? 附加的控制机制cut(2) cut的几种用法: 放在产生器和测试器的后面。 example(X):-generate(X),test(X),!. 与内部谓词fail合用: Fail总是失败并且引起回溯。当fail前面有cut时,则由于cut的作用将改变正常的回溯方式,使匹配含有该cut的父目标立即失败 附加的控制机制cut(3) 如果一个人是健壮的,条件为:没有心脏病、肺病,不是近视眼。 strong(X):- heart_disease(X),fail. strong(X):- tuberculosis(X),fail. strong(X):- nearsight(X),fail. strong(X). heart_disease(xiao_li). ?- strong(xiao_li). ……. 附加的控制机制cut(4) strong(X):- heart_disease(X),!, fail. strong(X):- tuberculosis(X),!, fail. strong(X):- nearsight(X),!, fail. strong(X). heart_disease(xiao_li). ?- strong(xiao_li). Prolog 的实现 解释实现 “编译”阶段:即分析Prolog源程序的语法,把它翻译成便于解释执行的内部形式 解释阶段:即对SLD树的深度优先搜索 预定义谓词的解释:每一个预定义谓词有一个小的解释模块,互相之间基本上是独立的,但与全程数据结构和主控程序之间要协调 编译实现 Prolog的翻译:把Prolog程序翻译成一种高级程序语言代码 Prolog的编译:编译成Warren抽象机代码 Prolog 的并行执行 或并行 与并行 Reference R. Kowalski:计算机解题逻辑,西安交通大学出版社 Warren, D.H.D., An Abstract PROLOG instruction Set, Technical Note 309, SRI international ,1983 Visual prolog: http://www.visual_/ Quintus Prolog: http://www.sics.se/quintus/ SWI-Prolog: http://www.swi.psy.uva.nl/projects/SWI-Prolog/ JavaLog: .ar/~azunino/javalog.html .au/~lloyd/tildeLogic/Prolog.toy/Ch/ Another example loves(vincent,mia). loves(mar

文档评论(0)

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

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档