实验二:使用Prolog的一阶逻辑推理实验.docVIP

实验二:使用Prolog的一阶逻辑推理实验.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二:使用Prolog的一阶逻辑推理实验.doc

实验:使用|?- p(a).的真假; p(b). p(a) :- p(b). p(a) :- p(c) 推理分析: 事实:p(b)为真. 推理:由p(b)为真可以推出p(a)为真,由p(c)为真可以推出p(a)为真. 结论:p(a)为真. 运行结果: b. p(c). p(a) :- p(b). p(a) :- p(c). 推理分析: 事实:p(c)为真. 推理:由p(b)为真可以推出p(a)为真,由p(c)为真可以推出p(a)为真. 结论:p(a)为真. 运行结果: c. p(b). p(a) :- p(b) ,p(c). 推理分析: 事实:p(b)为真. 推理:由p(b)为真且p(c)为真可以推出p(a)为真. 结论:p(a)为假.因为p(b)未知. d. p(c). p(a):- p(b) ; p(c). 推理分析: 事实:p(b)为真. 推理:由p(b)为真或p(c)为真可以推出p(a)为真. 结论:p(a)为真. 验证 ?-friend(john,Y). 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). 推理分析: 1.如果X喜欢音乐,而且喜欢阅读,那么X是john的朋友。 2.如果X喜欢音乐,而且喜欢运动,那么X是john的朋友。 相关事实:mary喜欢音乐也喜欢运动。 结论:mary是john的朋友。 运行结果: 验证 likes(bill,X) likes(ellen,tennis). likes(john,football). likes(tom,baseball). likes(eric,swimming). likes(mark,tennis). likes(bill,X) if likes(tom,X). 推理分析: 如果tom喜欢X,则bill喜欢X。相关事实:tom喜欢baseball 结论:bill喜欢baseball 运行结果: 构建与,或,非,异或表达,并验证。 代码: and(X,Y) :- X,Y. or(X,Y) :- X;Y. no(X) :- not(X). xor(X,Y) :- X\==Y. 推理分析: 推理:X,Y都为真时and(X,Y)为真。 X,Y有一个为真时or(X,Y)为真。X为真时no(X)为真。 X不等于Y时,异或xor(X,Y)为真。 运行结果: 5.已知兄弟sib(X, Y)的定义如下 sib(X, Y):- p(Z, X), p(Z, Y), X \== Y. 5.1:定义堂兄弟co(X, Y); sco(X, Y), 6.自动实现搜索算法-回溯,判断JOHN是谁的朋友 TOM喜欢TALK,BILL喜欢游泳,BILL喜欢谈话;若X既喜欢TALK,有喜欢SWIM,则JOHN是X的朋友。 代码: likes(tom,talk). likes(bill,swim). likes(bill,talk). friend(X,Y) :- likes(X,talk),likes(X,swim). 推理分析: 当X喜欢talk,且喜欢swimming,则X是Y的朋友。 相关事实:bill喜欢talk,且喜欢swimming。 结论:bill是JOHN的朋友。 运行结果: 7.谁是盗窃犯问题:某人被盗,公安局派出所派出5个侦察员去调查。研究案情时: 侦察员A说:“赵与钱中至少有一人作案”; 侦察员B说:“钱与孙中至少有一人作案”; 侦察员C说:“孙与李中至少有一人作案”; 侦察员D说:“赵与孙中至少有一人与此案无关”; 侦察员E说:“钱与李中至少有一人与此案无关”。 如果这5个侦察员的话都是可信的,试编程求出谁是盗窃犯,并给出Prolog.程序。 代码: spyA(X,Y):-(X=true);(Y=true). spyB(X,Y):-(X=true);(Y=true). spyC(X,Y):-(X=true);(Y=ture). spyD(X,Y):-(X=false);(Y=false). spyE(X,Y):-(X=false);(Y=false). find([Zhao,Qian,Sun,Li]):-spyA(Zhao,Qian),spyB(Qian,Sun),spyC(Su

文档评论(0)

381697660 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档