人工智能artificialintelligence(ai)

上传人:ldj****22 文档编号:49488569 上传时间:2018-07-29 格式:PPT 页数:88 大小:365.50KB
返回 下载 相关 举报
人工智能artificialintelligence(ai)_第1页
第1页 / 共88页
人工智能artificialintelligence(ai)_第2页
第2页 / 共88页
人工智能artificialintelligence(ai)_第3页
第3页 / 共88页
人工智能artificialintelligence(ai)_第4页
第4页 / 共88页
人工智能artificialintelligence(ai)_第5页
第5页 / 共88页
点击查看更多>>
资源描述

《人工智能artificialintelligence(ai)》由会员分享,可在线阅读,更多相关《人工智能artificialintelligence(ai)(88页珍藏版)》请在金锄头文库上搜索。

1、人 工 智 能Artificial Intelligence (AI)许建华南京师范大学计算机科学系2006年9-12月Date2.5 消解原理2.5.1 子句集的求取2.5.2 消解原理2.5.3 消解推理规则2.5.4 含有变量的消解式2.5.5 消解反演求解过程2.5.6 Horn子句集消解2.5.7 Prolog 语言简介Date2.5.7 Prolog 语言简介 Prolog语言是一种以一阶谓词为基础的逻辑性语言(Programming in Logic) Date2.5.7.1 Prolog语言的特点2.5.7.2 Prolog语言的基本内容2.5.7.3 Visual Prolo

2、g编程环境与简单的例子DateProlog语言(或者系统)是以一阶谓词逻辑的HornHorn 子句集子句集为语法,以Robinson的消解原理消解原理为工具,加上深度优先的控制策略深度优先的控制策略而形成的人工智能通用程序设计语言 2.5.7.1 Prolog语言的特点 DateProlog系统Horn子句集消解原理深度优先DateProlog具有下列特点: 是一种描述性语言。只需要告诉 “系统做什么”,不要告诉系统 “如何做” 数据与程序的统一表达。提供一种统一的符号结构 “项” ,数据与程序都是由项组成 Date 自动实现模式匹配与回溯。这是人工智能中最常用的两项操作,Prolog自动实现

3、这些操作 程序易于编写与阅读。它是面向人的自然语言 语句句型少,语法简明。只有三种句型 Date参考资料:1 雷英杰,张雷,邢清华,孙金萍。Visual Prolog 语言教程。西安:陕西科学技术出版社,2002年2月(380页,35元)2 雷英杰,邢清华,孙金萍,张雷。Visual Prolog 编程、环境及接口。北京:国防工业出版社,2004年1月(412页,36元)Date2.5.7.2 Prolog语言的基本内容1 项2 Prolog中的语句3 表结构4 Prolog程序的结构5 常用内部谓词6 Prolog程序设计步骤Date符号说明:“ := ” 表示“ 定义为 ”“ | ” 表示

4、 “ 或 ”,可选“ ” 表示 “ 重复或者出现多个 ”1 项 Date项的定义项的定义::= | | Date:= | :=| | := | | Date命名:用小写字母或者小写字母开头的小写字母数字串用途:用于标识对象的名字、谓词(对象间的关系)或函数名标识符原子例:john, marry, classmate, teacherDate字符串原子是用引号括起来的符号串特殊原子指一些特殊符号,如 +、-、*、 / 等 Date变量:用于表示暂时不能命名或者不需要命名的对象,用大写字母开头 := | | Date特殊变量:空变量,记作:“_”含义:我们对问题的某一个变量的值不关心 Date:=

5、 ( , )| := | | Date复合项:由一组其它对象组成的单个对象例:函数项: like(john, apple)表: sa, sb, 1,2,3表达式: (12+59)*49-96 Date项常量变量复合项原子数标识符原子字符串原子特殊原子(, ) Date2 Prolog中的语句 事实: P.含义:无条件成立,恒为真例:like( monkey, banana)Prolog中的语句分成三种形式:Date规则: P :- P1 , P2 , , Pn . “ :- ” 表示“蕴涵” “ ,” 表示“合取”含义:若 P1 , , Pn 均为真时,P为真 Date问题(目标):?- Q1

6、 , Q2 , , Qm .含义:待回答的问题,即 Q1 , , Qm 同时为真吗?Date从消解角度来看:(事实)中,P是Horn子句Date(规则)可以表示为P1P2PnP可以转化为P1P2PnP也是Horn子句,并受全称量词约束Date(问题)是Q1Qm 受存在量词约束,取非后Q1Qm受全称量词约束,是Horn子句DateProlog三种形式的语言都是Horn子句问题求解就是Horn子句集消解Date3 表结构 表:若干个元素的有限序列表中的元素:常量、变量、项、表表用“ ”来表示,元素之间用逗号或者空格分开Date例:1, 2, 3a, b, c, dDate用符号“ | ”来划分表头

7、(第一个元素)和表尾(其余元素)特例:当只用一个元素时,表尾为空空表(无元素),既无表头又无表尾 Date例:P(the, cat, sat, down).?- P( X | Y ).答案:X=the, Y=cat, sat, down?-P( X , Y | Z ).答案:X=the, Y=cat, sat,Zdown Date4 Prolog程序的结构Prolog的程序分为两部分:前提部分:所有事实和规则问题部分:目标子句序列 Date注意:这两部分不能颠倒。必须前提部分写在前面,问题部分写在后面 Date例:likes(m, f).likes(m, w). (事实)likes(j, w)

8、.likes(j, s).?- likes(m, X), likes(j, X). (问题)问题:是否 m 和 j 都喜欢什么东西? DateProlog的求解过程现在有两个问题:likes(m, X) 和 likes(j, X))第一步:第一个问题 likes(m, X) 去与事实匹配(置换与合一),按顺序得到 f/Xlikes(m, f). likes(m, w). likes(j, w). likes(j, s).Date第二步:f 代替第二个问题 likes(j, X) 中的 X,则得 likes(j, f) 。再与事实匹配,不能匹配,失败,则回溯,忘掉刚才的匹配likes(m, f)

9、.likes(m, w). likes(j, w).likes(j, s).Date第三步:回到第一个问题 likes(m, X) ,重新匹配,得到 w/X第四步:第二个问题变成likes(j, w)。再与事实匹配,成功第五步:答案就是 X=wlikes(m, f). likes(m, w). likes(j, w). likes(j, s).Date说明:实际运行中,要逐个试探(搜索),失败则要回溯,成功也要回溯(求出所有解)Date例:father(a, b).father(c, d).brother(a, c).uncle(X, Y) :- brother(X, Z), father(Z

10、, Y).?- uncle(a, U). 问题: a是谁的叔叔? Date第一步:问题uncle(a,U)与事实逐个匹配,不成功Prolog的求解过程:Date第二步:与规则头(左部)匹配,即寻找合一者,有 a/X, U/Y转化为两个子问题:brother(a, Z)和father(Z, U)第一个子问题brother(a, Z)与事实匹配,得到c/Z代人第二个子问题,有father(c, U)。与事实匹配,得到 d/U即Ud,解是:a是d的叔叔DateProlog的实现方法主要是:匹配与回溯匹配:合一过程、消解过程回溯:搜索,而且是深度优先搜索Date关于匹配的几点说明:第一、一个变量被置换

11、后,代入了另一个项,则称该变量为实例化的变量Date若与另一个未实例化的变量匹配,则视为同一变量,两者共享若与另一个实例化的变量匹配,也变成了实例化的变量,且两者同值若与常量匹配,也变成了实例化变量,并取常量的值第二、一个未实例化的变量可以与任何项匹配:Date第三、常量只能与相同的常量匹配第四、实例化的变量与另一个实例化的值相同的变量匹配,也可以与另一个未实例化的变量匹配,使另一个变量实例化,且约束值相同Date5 常用的内部谓词内部谓词:Prolog系统本身定义的一些基本谓词注意:可以直接使用,用户不能修改Date算术运算算术表达式由操作数(数、变量)、操作符和括号组成算术运算符号:“+、

12、-、* 、/”(加减乘除)Date优先级:与通常的数学运算一致形式:中缀:X+Y*Z前缀:+(X,*(Y,Z)Date比较谓词eq(X, Y) X=Yne(X, Y) XYls(X, Y) X ”,X,Y 可以取常量变量谓词表Date第一、当一个变量已经实例化,则可以与任意未实例化的变量相等,且将其实例化(赋值功能)第二、两者均未实例化,eq(X, Y)恒为真,并视为同一变量对于“”(赋值与比较)的几点说明:Date第三、均以实例化,由当前值来决定第四、如果为表,要求对应的元素相等,才为真第五、如果是谓词,谓词同名,变元个数相等,对应的变元相等Date输入输出谓词第一、write(X):向输出

13、设备输出实例化结果第二、read(X):当 X 未实例化时,输入一个项当 X 在输入前已经实例化,则读入项将与 X 匹配,根据匹配的成功与否,决定其真假值 Date谓词cut与fail(特殊谓词):cut ( ! ):禁止回溯fail: 强迫回溯Date第一、只允许作为一个子目标出现在程序中第二、第一次遇到它时,总是立刻被满足,但是不能被重新满足第三、用户可以使用它来控制回溯方式,切断一些不必要的回溯,提高程序运行效率关于cut的几点说明:Date关于 fail 的说明:作为一个子目标,使Prolog程序运行到 fail,必定引起回溯Date例:求 1 到 n 之间的和定义一个二元谓词sum(

14、N, X),其中X表示和答案是:X=21 去掉“ !”,会发生什么?sum(1,1):-!.sum(N,R):- N1=N-1, sum(N1, R1), R=R1+N.?- sum(6,X).Date6 Prolog程序设计步骤第一、说明事实:说明与待求解的问题有关的事实。例如,人物事及相互关系,对应于叙述性知识对应于Prolog程序的组成部分,设计步骤分为:Date第二、定义规则:定义个体及其相互关系的推理规则,反映与待求解问题有关的过程性知识第三:确定目标(问题):提出待求解的问题或者确定逻辑推理的目标Date2.5.7.3 Visual Prolog编程环境及简单的例子 Visual

15、Prolog指可视化逻辑程序设计语言、是基于 Prolog语言的可视化集成开发环境,由Prolog研发中心最新推出的基于Windows环境的智能化编程工具1 Visual Prolog 编程环境Date安装好Visual Prolog 5.2 后,第一次启动的界面Date创建一个新项目: Project New Project弹出一个会话窗Application Expert在General中,设置:Date在Target中设置:按下“Create”,创建一个缺省的项目文件。同时出现一个项目窗口Date模块对话框窗口菜单工具栏字符串图标光标位图帮助项目组件的名称组件的操作新建/加入编辑删除属性代码专家Date设置编译程序选项Opitions Project Compiler OpitionsDate用 File 与 Edit 等一系列菜单来编辑源代码用 Project TestGoal 来编译、运行程序如果编译出错,则弹出一个Errors窗,双击其中一个错误指向源代码中的出错位置Date启动Visual Prolog创建一个新项目设置有关选项调试程序的步骤

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号