中山大学人工智能Prolog语言(耐心看完_你就入门了)讲述资料.ppt

中山大学人工智能Prolog语言(耐心看完_你就入门了)讲述资料.ppt

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

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * string: 用双引号括起来的字符序列 例:“I am from Nanjing” * * symbol:有两种形式: 以小写字母开头的字母、数字和下划线组成的序列 用双引号括起来的字符串序列 * * Prolog中表示成下列形式: integerlist = integer * “integer” 说明表中元素的类型 “* ” 告诉编译系统,这是一张表 表: * * 例 domains title , author = symbol pages = integer 注:每一个说明的最后无句号 “ . ” * * 谓词段(predicates) 说明用户自己定义的谓词 说明谓词变元的域 * * 谓词名: 由小写字母开头,由字母、数字和下划线组成(标识符原子) 谓词变元的类型 标准域 域段中说明的其它域 * * 例: domains person = symbol predicates father(person) 或者 father(symbol) alphabet_position(char, integer) 谓词后面无句号 “ . ” * * 子句段(clauses) 由事实与规则组成 说明: 每一个事实或规则后面必须有句号“ . ” * * 例: clauses likes(tom, football). classify(X, negative):- X0. classify(X, positive):- X0. * * 目标段(goal) 必须书写一个目标段,作为源码的一部分(内部目标) 外部目标 * * 例 goal likes(tom, X). * * 注释: 多行注释:/* …… */ (C/C++中采用的符号) 单行注释:% (Matlab中采用的符号) * * Visual Prolog 程序的基本结构: domains ……(说明变量类型,无句号) predicates ….. (说明谓词,无句号) clauses ….. (程序段,必须有句号) goal …… (目标或问题,必须有句号) * * 3 例子 * * * * * * * * * * * * * * * * * * * * 注意: 这两部分不能颠倒。必须前提部分写在前面,问题部分写在后面 * * likes(m, f). likes(m, w). (事实) likes(j, w). likes(j, s). goal likes(m, X), likes(j, X). (问题) 问题:是否 m 和 j 都喜欢什么东西?( X = ? ) f w s 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) likes(j, X) * * 第三步:回到第一个问题 likes(m, X) ,重新匹配,得到 { w / X} 第四步:第二个问题变成 likes(j, w)。再与事实匹配,成功 第五步:答案就是 X=w likes(m, f). likes(m, w). likes(j, w). likes(j, s). likes(m, X) likes(j, X) * * 说明: 实际运行中,要逐个试探(搜索),失败则要回溯,成功也要回溯(求出所有解) * * 例: father(a, b). a是b的父亲 father(c, d). brother(a, c). a与c是兄弟关系 uncle(X, Y) :- brother(X, Z), father(Z, Y). ?- uncle(a, U). 问题: a 是

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档