人工智能ArtficialIntelligenceAI.pptVIP

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

4 Prolog程序的结构 Prolog的程序分为两部分: 前提部分:所有事实和规则 问题部分:目标子句序列 注意: 这两部分不能颠倒。必须前提部分写在前面,问题部分写在后面 例: likes(m, f). likes(m, w). (事实) likes(j, w). likes(j, s). ?- likes(m, X), likes(j, X). (问题) 问题:是否 m 和 j 都喜欢什么东西? Prolog的求解过程 现在有两个问题:likes(m, X) 和 likes(j, X)) 第一步:第一个问题 likes(m, X) 去与事实匹配(置换与合一),按顺序得到 {f/X} likes(m, f). likes(m, w). likes(j, w). likes(j, s). 第二步:f 代替第二个问题 likes(j, X) 中的 X,则得 likes(j, f) 。再与事实匹配,不能匹配,失败,则回溯,忘掉刚才的匹配 likes(m, f). likes(m, w). likes(j, w). likes(j, s). 第三步:回到第一个问题 likes(m, X) ,重新匹配,得到 {w/X} 第四步:第二个问题变成likes(j, w)。再与事实匹配,成功 第五步:答案就是 X=w likes(m, f). likes(m, w). likes(j, w). likes(j, s). 说明: 实际运行中,要逐个试探(搜索),失败则要回溯,成功也要回溯(求出所有解) 例: father(a, b). father(c, d). brother(a, c). uncle(X, Y) :- brother(X, Z), father(Z, Y). ?- uncle(a, U). 问题: a是谁的叔叔? 第一步:问题uncle(a,U)与事实逐个匹配,不成功 Prolog的求解过程: 第二步:与规则头(左部)匹配,即寻找合一者,有 {a/X, U/Y} 转化为两个子问题:brother(a, Z)和father(Z, U) 第一个子问题brother(a, Z)与事实匹配,得到{c/Z} 代人第二个子问题,有father(c, U)。与事实匹配,得到 {d/U} 即U=d,解是:a是d的叔叔 Prolog的实现方法主要是:匹配与回溯 匹配:合一过程、消解过程 回溯:搜索,而且是深度优先搜索 关于匹配的几点说明: 第一、一个变量被置换后,代入了另一个项,则称该变量为实例化的变量 ①若与另一个未实例化的变量匹配,则视为同一变量,两者共享 ②若与另一个实例化的变量匹配,也变成了实例化的变量,且两者同值 ③若与常量匹配,也变成了实例化变量,并取常量的值 第二、一个未实例化的变量可以与任何项匹配: 第三、常量只能与相同的常量匹配 第四、实例化的变量与另一个实例化的值相同的变量匹配,也可以与另一个未实例化的变量匹配,使另一个变量实例化,且约束值相同 5 常用的内部谓词 内部谓词:Prolog系统本身定义的一些基本谓词 注意:可以直接使用,用户不能修改 ①算术运算 算术表达式由操作数(数、变量)、操作符和括号组成 算术运算符号:“+、-、* 、/”(加减乘除) 优先级:与通常的数学运算一致 形式:中缀:X+Y*Z 前缀:+(X,*(Y,Z)) ②比较谓词 eq(X, Y) X=Y ne(X, Y) XY gt(X, Y) XY ls(X, Y) XY 对于 “= 、 ”, X,Y 可以取 常量 变量 谓词 表 第一、当一个变量已经实例化,则可以与任意未实例化的变量相等,且将其实例化(赋值功能) 第二、两者均未实例化,eq(X, Y)恒为真,并视为同一变量 对于“=”(赋值与比较)的几点说明: 第三、均以实例化,由当前值来决定 第四、如果为表,要求对应的元素相等,才为真 第五、如果是谓词,谓词同名,变元个数相等,对应的变元相等 ③输入输出谓词 第一、write(X):向输出设备输出实例化结果 第二、read(X): 当 X 未实例化时,输入一个项 当 X 在输入前已经实例化,则读入项将与 X 匹配,根据匹配的成功与否,决定其真假值 ④谓词cut与fail(特殊谓词): cut ( ! ):禁止回溯 fail: 强迫回溯 第一、只允许作为一个子目标出现在程序中 第二、第一次遇到它时,总是立刻被满足,但是不能被重新满足 第三、用户可以使用它来控制回溯方

文档评论(0)

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

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

1亿VIP精品文档

相关文档