ArtificialIntelligence(AI)人工智能第二章:知识表示与推理内容提要第二章:知识表示与推理一、知识表示方法二、确定性推理内容提要第二章:知识表示与推理1.状态空间法2.问题归约法3.谓词逻辑法4.语义网络法5.其他方法一、知识表示方法其他知识表示方法框架表示法剧本表示法过程表示法……其他知识表示方法框架表示法剧本表示法过程表示法……框架表示法框架表示法:框架表示法是在框架理论的基础上发展起来的一种结构化知识表示方法。框架理论:框架理论是明斯基于1975年作为理解视觉、自然语言对话及其它复杂行为的一种基础提出来的。框架理论认为,人们对现实世界中各种事物的认识都是以一种类似于框架的结构存储在记忆中的。当遇到一个新事物时,就从记忆中找出一个合适的框架,并根据新的情况对其细节加以修改、补充,从而形成对这个新事物的认识。框架表示法框架理论:框架:是人们认识事物的一种通用的数据结构形式。即当新情况发生时,人们只要把新的数据加入到该通用数据结构中便可形成一个具体的实体(类),这样的通用数据结构就称为框架。实例框架:对于一个框架,当人们把观察或认识到的具体细节填入后,就得到了该框架的一个具体实例,框架的这种具体实例被称为实例框架。框架系统:在框架理论中,框架是知识的基本单位,把一组有关的框架连结起来便可形成一个框架系统。框架系统推理:由框架之间的协调来完成。框架表示法框架结构:框架名槽名1:侧面名11值111,值112,……侧面名12值121,值122,…………槽名2:侧面名21值211,值212,……侧面名22值221,值222,………………槽名n:侧面名n1值n11,值n12,……侧面名n2值n21,值n22,…………框架表示法框架结构:每个框架都有框架名,代表某一类对象一个框架由若干个槽(项目)组成,用于表示对象的某个方面的属性有时一个槽(属性)还要从不同的侧面来描述,每个侧面可具有一个或多个值。框架表示法框架表示法的例子:一个描述教师的框架框架名:教师姓名:单位(姓、名)年龄:单位(岁)性别:范围(男、女)缺省:男职称:范围(教授、副教授、讲师、助教)缺省:讲师部门:单位(院、系、教研室)住址:住址框架电话:办公电话:单位(电话号码)家庭电话:单位(电话号码)……槽名侧面名“单位”指出填写槽值时的标准限制“范围”指出槽值时只能在指定的范围内挑选“缺省”表示当相应槽值不填写时的默认值槽值或侧面值可以是另外一个框架的实例框架框架表示法槽(侧面)类型:值Default继承If-Needed四种侧面填写方式:由已知情况或物体属性提供通过默认隐含由继承获得对附加过程侧面通过执行附加过程实现Default:当其所在槽没有填入槽值时,系统就以此侧面值作为该槽的默认值。If-Needed:当某个槽不能提供统一的默认值时,可在该槽增加一个If-Needed侧面,系统通过调用该侧面提供的过程,产生相应的属性值。(赋值)框架表示法框架中的槽与侧面可任意定义槽与侧面也可以是另一框架,形成框架网络框架表示法框架网络:当知识比较复杂时,往往需要通过多个框架之间的横向或纵向联系形成一种框架网络。框架之间的纵向联系:是指那种具有继承关系的上下层框架之间的联系。框架之间的纵向联系通过预定义槽名AKO或ISA等来实现。框架之间的横向联系是指那种以另外一个框架名作为一个槽的槽值或侧面值所建立起来的框架之间的联系。框架表示法FrameStudentName:Unit(Lastname,Firstname)Sex:Area(male,female)Age:Unit(Years)If-Needed:Ask-AgeAddress:S-AddressTelephone:HomeUnit(Number)MobileUnit(Number)If-Needed:Ask-TelephoneFrameMasterAKO:StudentMajor:Unit(Major)If-Needed:Ask-MajorIf-Added:Check-MajorField:Unit(Field)If-Needed:Ask-FieldAdvisor:Unit(Lastname,Firstname)If-Needed:Ask-VisorProject:Area(National,Provincial,Other)Default:NationalPaper:Area(SCI,EI,Core,General)Default:Core学生框架:硕士生框架:描述了硕士生的个性,并继承“Student”框架的所有属性。框架表示法FrameMaster-1IAS:MasterName:YangYeSex:femaleMajor:ComputerField:Web-IntelligenceAdvisor:LinHaiProject:Provincial硕士生-1框架:框架表示法框架网络:师生员工框架教职工框架学生框架教职工框架教师框架工人框架计算机系学生框架***学生框架教师-1教师-N学生-1学生-N…………AKOAKOAKOAKOAKOAKOISAISAISAISA地址框架地址纵向联系横向联系框架表示法框架网络的例子:一般来讲,教师的工作态度是认真,行为举止大方得体,计算机系教师一般来讲性格内向,喜欢操作计算机。方园是计算机系教师,他性格内向,但工作不刻苦。问他的兴趣和举止如何?框架表示为:框架名:教师类属:职业态度:认真举止:大方得体框架名:计算机系教师类属:教师性格:内向兴趣:操作计算机框架名:方园类属:计算机系教师性格:内向态度:不刻苦兴趣:?举止:?推理框架表示法框架的推理:在框架网络中,问题求解主要是通过对框架的继承与匹配来实现的。继承下层框架从上层框架继承相关属性、属性值、条件匹配框架通常只能与现实做到部分匹配,完全匹配是一个特殊情况。因为框架是对一类事物的完整或典型的描述,待匹配的具体个体不可能做到完全一致。不匹配的情况:某个属性不存在,或与规定的属性值不符,或属性类型不符框架表示法框架表示法的优点:结构性:最突出特点是善于表示结构性知识,它能够把知识的内部结构关系以及知识间的特殊联系表示出来。深层性:框架表示法不仅可以从多个方面、多重属性表示知识,而且还可以通过ISA、AKO等槽以嵌套结构分层地对知识进行表示,因此能用来表达事物间复杂的深层联系。继承性:在框架网络中,下层框架可以继承上层框架的槽值,也可以进行补充和修改,这样既减少知识冗余,又较好地保证了知识的一致性。自然性:框架能把与某个实体或实体集相关特性都集中在一起,从而高度模拟了人脑对实体多方面、多层次的存储结构,直观自然,易于理解。框架表示法框架表示法的不足:缺乏框架的形式理论:至今,还没有建立框架的形式理论,其推理和一致性检查机制并非基于良好定义的语义。缺乏过程性知识表示:框架网络不便于表示过程性知识,缺乏如何使用框架中知识的描述能力。框架推理过程需要用到一些与领域无关的推理规则,而这些规则在框架网络中又很难表达。清晰性难以保证:由于各框架本身的数据结构不一定相同,从而框架网络的清晰性很难保证。其他知识表示方法框架表示法剧本表示法过程表示法……剧本表示法剧本表示法:剧本表示法(又称为脚本表示法)是夏克(R.C.Schank)依据他的概念依赖理论提出的一种知识表示方法,时间约在1975年。概念依赖理论的基本思想:把人类生活中各类故事情节的基本概念抽取出来,构成一组原子概念,确定这些原子概念的相互依赖关系,然后把所有故事情节都用这组原子概念及其依赖关系表示出来。剧本是框架的一种特殊形式,它用一组槽来描述某些事件的发生序列,就像剧本中的事件序列一样,故称为“剧本”表示法。剧本表示法剧本的构成开场条件:给出在剧本中描述的事件发生的前提条件。角色:用来表示在剧本所描述的事件中可能出现的有关人物的一些槽。道具:这是用来表示在剧本所描述的事件中可能出现的有关物体的一些槽。场景:描述事件发生的真实顺序,可以由多个场景组成,每个场景又可以是其它的剧本。结果:给出在剧本所描述的事件发生以后通常所产生的结果。剧本表示法剧本表示法的例子:餐厅剧本开场条件(a)顾客饿了,需要进餐。(b)顾客有足够的钱。角色顾客,服务员,厨师,老板。道具食品,桌子,菜单,钱。场景:5个场景剧本表示法剧本表示法的例子:餐厅剧本场景:5个场景场景1:进入餐厅(a)顾客走入餐厅。(b)寻找桌子。(c)在桌子旁坐下场景2:点菜(a)服务员给顾客菜单。(b)顾客点菜。(c)顾客把菜单还给服务员。(d)顾客等待服务员送菜。剧本表示法剧本表示法的例子:餐厅剧本场景:5个场景场景3:等待(a)服务员把顾客所点的菜告诉厨师。(b)厨师做菜。场景4:吃菜(a)厨师把做好的菜给服务员。(b)服务员给顾客送菜。(c)顾客吃菜。剧本表示法剧本表示法的例子:餐厅剧本场景:5个场景场景5:离开(a)服务员拿来帐单。(b)顾客付钱给服务员。(c)顾客离开餐厅。结果(a)顾客吃了饭,不饿了。(b)顾客花了钱。(c)老板挣了钱。(d)餐厅食品少了。剧本表示法剧本的推理:一旦剧本被启用,则可以应用它来进行推理。其中最重要的是运用剧本可以预测没有明显提及的事件的发生。例如:对于以下情节:“昨晚,约翰到了餐厅。他点了牛排。当他要付款时发现钱已用光。因为开始下雨了,所以他赶紧回家了“。推理:“昨晚,约翰吃饭了吗?”虽然上面的情节中没有提到约翰吃没吃饭的问题,但借助于餐厅剧本,可以回答:他吃了。因为启用了餐厅剧本,情节中的所有事件与剧本中所预测的事件序列相对应,可以推断出整个事件正常进行时所得出的结果。剧本表示法剧本的推理:但是,一旦一个典型的事件被中断,也就是给定情节中的某个事件与剧本中的事件不能对应时,则剧本便不能预测被中断以后的事件了。例如:如下情节:“约翰走进餐厅。他被带到餐桌旁。点了一大块牛排之后,他坐在那儿等了许久。于是,他生气走了。”该情节中,因为要久等,所以约翰走了,这一事件改变了餐厅脚本中所预测的事件序列,因而被中断了,这时就不能推断约翰是否付了帐等情节,但仍然可以推断出他看了菜单,这是因为看菜单事件发生在中断之前。剧本表示法剧本表示法的特点剧本表示法与框架表示法相比,比较呆板,知识表达的范围也很窄。人类日常的行为有各种各样,很难用一个剧本就理解各种各样的情节。剧本表示法对于表达预先构思好的特定知识,如理解故事情节等,是非常有效的。目前剧本表示法主要在自然语言理解方面获得了一些应用。其他知识表示方法框架表示法剧本表示法过程表示法……过程表示法过程表示法:过程性知识表示是将有关某一问题领域的知识,连同如何使用这些知识的方法,均隐式地表示为一个求解问题的过程。过程式不像陈述式那样具有固定的形式,如何描述知识完全取决于具体的问题。过程表示法的例子:八数码问题过程表示法过程表示法的例子:八数码问题我们用一个3×3的方格阵来表示该问题的一个状态,用a~i来标记这9个方格,如下图所示。12384765(a)状态描述(b)目标状态abcdefghi过程表示法过程表示法的例子:八数码问题当任意给定一初始状态后,求解该问题的过程如下:(1)首先移动棋牌,使得棋子1和空格均不在位置c上。(2)依次移动棋牌,使得空格位置沿下图(a)所示的箭头方向移动,直到棋子1位于a为止。abcdefghi(a)过程表示法过程表示法的例子:八数码问题(3)依次移动棋牌,使得空格位置沿图(b)所示的箭头方向移动,直到数码2位于b为止。若这时刚好数码3在位置c,则转(6)。(4)依次移动棋牌,使得空格位置沿图(c)所示的箭头方向移动,直到数码3位于e为止。这时空格刚好在位置d。(b)(c)过程表示法