Prolog语言(耐心看完,你就入门了)课件.ppt

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

人 工 智 能 Artificial Intelligence (AI);Prolog 语言简介 ;Prolog语言的特点 Prolog语言的基本内容 简单的例子;Prolog语言(或者系统)是以一阶谓词逻辑的Horn 子句集为语法,以Robinson的消解原理为工具,加上深度优先的控制策略而形成的人工智能通用程序设计语言 ;Horn子句集;Prolog具有下列特点: ;③ 自动实现模式匹配与回溯。这是人工智能中最常用的两项操作,Prolog自动实现这些操作 ④ 程序易于编写与阅读。它是面向人的自然语言 ⑤ 语句句型少,语法简明。只有三种句型 ;参考资料: 雷英杰,张雷,邢清华,孙金萍。Visual Prolog 语言教程。西安:陕西科学技术出版社,2002年2月(380页,35元) 雷英杰,邢清华,孙金萍,张雷。Visual Prolog 编程、环境及接口。北京:国防工业出版社,2004年1月(412页,36元);Prolog语言的基本内容 1 项 2 Prolog中的语句 3 表结构 4 Prolog程序的结构 5 常用内部谓词 6 Prolog程序设计步骤;符号说明: “ ::= ” 表示“ 定义为 ” “ | ” 表示 “ 或 ”,可选 “ { } ” 表示 “ 重复或者出现多个 ”;项的定义: 项::= 常量 | 变量 | 复合项;常量::=原子 | 数 原子 ::= 标识符原子 | 字符串原子 | 特殊原子;命名:用小写字母或者小写字母开头的小写字母数字串 用途:用于标识对象的名字、谓词(对象间的关系)或函数名;字符串原子是用引号括起来的符号串 特殊原子指一些特殊符号,如 +、-、*、 / 等 ;变量:用于表示暂时不能命名或者不需要命名的对象,用大写字母开头 ;特殊变量:空变量,记作:“_” 含义:我们对问题的某一个变量的值不关心 ;复合项 ::= 原子(项 { , 项 })| 项 原子 项 { 原子 项 } ;复合项:由一组其它对象组成的单个对象 例: 函数项: like(john, apple) 表: [sa, sb], [1,2,3] 表达式: (12+59)*49-96 ;项;2 Prolog中的语句 ;②规则: P :- P1 , P2 , … , Pn . “ :- ” 表示“蕴涵” “ ,” 表示“合取” 含义:若 P1 , … , Pn 均为真??,P为真 ;③问题(目标) Goal Q1 , Q2 , … , Qm . 含义:待回答的问题,即 Q1 , … , Qm 同时为真吗?;从消解角度来看: ①(事实)中,P是Horn子句;②(规则)可以表示为 P1∧P2∧…∧Pn?P 可以转化为 ~P1∨~P2∨…∨~Pn∨P 也是Horn子句,并受全称量词约束;③(问题)是 Q1∧…∧Qm 受存在量词约束,取非后 ~Q1∨…∨~Qm 受全称量词约束,是Horn子句;Prolog三种形式的语言都是Horn子句 问题求解就是Horn子句集消解;3 表结构 ;例: [1, 2, 3] [a, b, c, d];用符号“ | ”来划分表头(第一个元素)和表尾(其余元素) 特例: 当只用一个元素时,表尾为空 空表(无元素),既无表头又无表尾 ;例: P([the, cat, sat, down]). ?- P([ X | Y ]). 答案:X=the, Y=[cat, sat, down] ? ?-P([ X , Y | Z ]). 答案:X=the, Y=cat,Z=[sat, down] ;4 Prolog程序的结构;注意: 这两部分不能颠倒。必须前提部分写在前面,问题部分写在后面 ;likes(m, f). likes(m, w). (事实) likes(j, w). likes(j, s). goal likes(m, X), likes(j, X). (问题) 问题:是否 m 和 j 都喜欢什么东西?( X = ? ) ;Prolog的求解过程 现在有两个问题:likes(m, X) 和 likes(j, X)) 第一步:第一个问题 likes(m, X) 去与事实匹配(置换与合一),按顺序得到 {f/X};第二步:f 代替第二个问题 likes(j, X) 中的 X,则得 likes(j, f) 。再与事实匹配,不能匹配,失败,则回溯,忘掉刚才的匹配;第三步:回到第一

文档评论(0)

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

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

1亿VIP精品文档

相关文档