- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
用于人工智能的Prolog语言本章主要内容:归结原理与Prolog语言家庭关系程序示例TurboProlog程序结构Prolog程序分析回溯及控制表与递归文件与数据库字符串处理输入与输出
Prolog 是一种逻辑程序设计语言,基于一阶谓词逻辑,是典型的叙述型语言(Declaration Language)。Prolog语言的特点:建立在一阶谓词逻辑和归结原理基础上,有自动推理功能。用Prolog设计应用程序时,仅需指明领域中各对象间的关系和决策规 则,而应用这些知识的推理由Prolog 完成。Prolog应用程序,由数据库和规则库组成。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(“张三”)如三段论:事实:目标:M(张三).R(张三).Prolog语句:推理规则: R(X):-M(X).
用Prolog证明三段论:推理规则:R(X):-M(X).事实:M(张三).目标:R(张三).M(张三).□完整的Prolog程序:predicatesM(symbol)R(symbol)clausesR(X):-M(X).M(zhsan).goalR(zhsan).运行
4.2 家庭关系程序示例下图是一个表示家庭关系的实例:PamTomAnnBobLizPatJimparent(pam,bob).parent(tom,bob).parent(tom,liz).parent(bob,ann).parent(bob,pat).parent(pat,jim).用Prolog语句表示为:
完整的Prolog程序:predicatesparent(symbol,symbol)clausesparent(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).1.系统回答2.系统回答3.系统回答4.系统回答
5.谁是jim的祖父母?分析:程序中并没有直接的祖父母关系。此问题可分两步:谁是jim的父母?假设是Y,谁是Y的父母?假设是X,XjimYparentparentgrandparentProlog目标语句: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
Predicatesparent(symbol)clausesparent(pam,bob).parent(tom,bob).parent(tom,liz).parent(bob,ann).parent(bob,pat).parent(pat,jim).male(tom).male(bob).male(jim).female(pam).female(liz).female(pat).female(ann).在示例程序中,添加有关性别的信息:
关于sister的规则定义:predicatesparent(symbol,symbol)sister(symbol,symbol)female(symbol)male(symbol)clausesparent(pam,bob).parent(tom,bob).parent(tom,liz).parent(bob,ann).parent(bob,pat).parent(pat,jim).male(t
文档评论(0)