人工智能期末大作业
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
人工智能期末考查
学号:2010118504150 姓名:朱胜强 专业:2010 级电子信息工程 1012 班
几种结构化知识表示及其推理
一、框架及其推理
1、框架的概念 <槽名 1><槽值 1>|<侧面名 11><侧面值 111 ,侧面值 112 , …>
<侧面名 12> <侧面值 121 ,侧面值 122 , …>
即一个框架一般有若干个槽,一个槽有一个槽值或者有若干个侧面,而一个 侧面又有若干个侧面值。其中槽值和侧面值可以是数值、字符串、布尔值,也可 以是一个动作或过程,甚至还可以是另一个框架的名字。 例:描述一个“教师”的框架。
框架名:<教师> 类属 :<知识分子> 工作: 范围: (教学,科研)
缺省: (教学) 性别 : (男,女) 学历 : (中师,高师) 类型 : (<小学教师>,<中学教师>,<大学教师>) 这个框架的名字为“教师”,它含有 5 个槽,槽名分别是“类属”、“工作”、“性别”、“学 历”、和“类型”。这些槽名的右面就是其值,如“<知识分子>”、“男”、“女”、“高师”、“中 师”等。其中“<知识分子>”又是一个框架名,“范围”、“缺省”就是侧面名,其后是侧面 值,如“教学”、“科研”等。另外,用<>括的槽值也是框架名。 一个框架的槽值可以是另一个框架的名,这就把有关框架横向联系了起来。 框架间的“父子”关系是框架间的一种纵向联系。 某一论域的全体框架构成了一个框架网络或框架系统。 框架的槽值可以是规则或逻辑式、运算式甚至过程调用等。 2、框架的表达能力 ⑴框架适合表达结构性知识 ①概念对象等知识用框架表示 ②框架的槽是对象的属性或状态 ③框架的值是属性值或状态值 ⑵框架网络可以表示过程性事件或情节 例:关于房间的框架 框架名:<房间> 墙数 x1 :缺省:x1=4
课后习题解答
1、试写出“学生框架”的描述,并用 Prolog 语言实现。 框架名:<学生> 类属:<受教育者> 专业:范围:(计算机,英语,音乐,数学)
缺省:计算机 性别:<男,女> 类型:(<小学生>,<中学生>,<大学生>) frame(name(“学生”)), Kind_of(“<知识分子>”), Major(scope(“计算机”,“英语”,“音乐”,“数学”),default(“计算机”)), Sex(“男”,“女”), Type(“<小学生>”,“<中学生>”,“<大学生>”)。
所属关系表示“具有”的意思。 3、基于语义网络的推理 ⑴基于语义网络的推理也是继承,继承通过匹配、搜索实现。 ⑵推理步骤 ①首先根据待求问题要求构造一个网络片断 ②在知识库中查找与之匹配的语义网络,当网络片断中询问部分与知识库中某网络结构匹配 时,则与询问处匹配的事实就是问题的解。 ③匹配的结果不一定是完全匹配,需考虑匹配的程度。 4、语义网络的程序语言实现
条件:x1>0 窗数 x2 :缺省:x2=2
条件:x2>=0
wenku.baidu.com
门数 x3 :缺省:x3=1 条件:x3>0
前墙: (墙框架(w1,d1)) 后墙: (墙框架(w2,d2)) 左墙: (墙框架(w3,d3)) 右墙: (墙框架(w4,d4)) 天花板 :<天花板框架> 地板 : <地板框架> 门 : <门框架> 窗: <窗框架> 条件:w1+w2+w3+w4=x2
arc(taste,"苹果","甜"). arc(a_kind_of,"富士","苹果"). arc(intro_from,"富士","日本"). arc(is_a,"日本","亚洲国家").
……… 或者
net1( a_kind_of(“苹果”,“水果”), taste(“苹果”,“甜”), a_kind_of(“秦冠”,“苹果”), produ_in("秦冠","陕西")).
二、语义网络及其推理
1、语义网络的概念 ⑴语义网络由节点和有向边组成的有向图。 ①节点表示事物、对象、概念、行为、性质、状态等。 ②有向边表示节点之间的某种联系或关系。
节点一
语义关系
节点二
⑵语义网络的级别划分 ①执行级 ②逻辑级 ③认识论级 ④概念级 ⑤语言学级 ⑶语义网络类型 ①命题语义网(分块联想网络) ②数据语义网:以数据为中心的语义网络 ③语言语义网:用于自然语言分析和理解 ④结构语义网:描述客观事物的结构 ⑤分类语义网:描述抽象概念及层次
d1+d2+d3+d4=x3 类型:(<办公室>,<教室>,<会客室>,<卧室>,<厨房>,<仓库>…) 3、基于框架的推理 ⑴基于框架的推理方法是继承。就是子框架可以拥有其父框架的槽及槽值。 ⑵实现继承的操作有: ①匹配:将问题框架同知识库中的框架的模式匹配。 ②搜索:沿着框架间的纵向和横向联系,在框架网络中进行查找。 ③填槽:问题框架同某一框架匹配时,可以通过它的父框架来将它的空槽值填上。 4、框架的程序语言实现 ⑴FRL 程序设计语言 ⑵PROLOG 语言
总结与收获
通过这学期的学习,我对人工智能也有了一定的认识,从一开始觉得这课时那么的神 奇,到现在我的神秘感也慢慢的消失了。我觉得人工智能这么学科是一个富有挑战力的学科, 里面我们要学习的东西太多太多,也只有弄懂这些基础的东西,才能在以后这课的学习中跟 的上进度。在这门的学科中,我觉得值得我们认真学习的就是其中的推理。起始所谓的人工 智能也就是让机器人拥有像我们人一样的推理能力,但是要想让机器人跟我们人一样要有思 维能力,那可是相当的难。估计这方面也是人工智能的一个发展方向。因为那样的人工智能 才是真正的人工智能。在这门课上我学到的这些推理也是丰富我的知识面,开拓了我的视野, 让我对这门神秘的课程也有了一个初步认识。在这门课上学到的东西也会给我以后的工作和 学习有很大的。
⑥推理语义网:命题网 ⑦框架语义网:与框架相结合的语义网。
2、语义网络的表达能力 语义网络可以表示事物之间的联系和关系。
语义网络对事件的表示。 语义网络对含有全称量词和存在量词的谓词的表示。
⑴实例关系。
表示类与实例之间的关系。
是一个
小
大学
华
生
⑵分类关系。 (从属、泛化)关系 指事物之间的类属关系。
⑶组装关系。 下层概念是上层概念的一部分。
⑷属性关系。 对象的属性及其属性值。
⑸集合—成员关系。 表示成员与集合之间的关系。
⑹逻辑关系。 一个概念可由另一个概念推出,存在因果关系。
⑺方位关系。 在描述一个事物时,经常需要指出它发生的时间、位置,或者指出它的组成、形状等,
此时可用相应的方位关系语义网络表示。 ⑻所属关系。
<槽名 2><槽值 2>|<侧面名 21><侧面值 211 ,侧面值 212 , …> <侧面名 22> <侧面值 221 ,侧面值 222 , …> …
<槽名 k><槽值 k>|<侧面名 k1><侧面值 k11 ,侧面值 k12 , …> <侧面名 k2> <侧面值 k21 ,侧面值 k22 , …>
三、类与对象及其推理
面向对象技术现已是软件开发和程序设计的主流技术,面向对象技术中的核心概念是 对象和类。对象可以泛指一切事物,类则是一类对象的抽象模型。
通常,在面向对象的程序设计语言中,只给出类的定义,其对象由类生成。类的定义 中就说明了所辖对象的共同特征(属性、状态等)和行为。特征用变量表示,行为则是作用 于这些特征和作用于对象的一组操作,如函数、过程等。
由于语义网络是一个二元关系图,所以 Prolog 课方便地实现语义网络知识表示。 a_kind_of("苹果","水果"). taste("苹果","甜"). a_kind_of("富士","苹果"). intro_from("富士","日本"). is_a("日本","亚洲国家"). ………
也可以表示为 arc(a_kind_of,"苹果","水果").
学号:2010118504150 姓名:朱胜强 专业:2010 级电子信息工程 1012 班
几种结构化知识表示及其推理
一、框架及其推理
1、框架的概念 <槽名 1><槽值 1>|<侧面名 11><侧面值 111 ,侧面值 112 , …>
<侧面名 12> <侧面值 121 ,侧面值 122 , …>
即一个框架一般有若干个槽,一个槽有一个槽值或者有若干个侧面,而一个 侧面又有若干个侧面值。其中槽值和侧面值可以是数值、字符串、布尔值,也可 以是一个动作或过程,甚至还可以是另一个框架的名字。 例:描述一个“教师”的框架。
框架名:<教师> 类属 :<知识分子> 工作: 范围: (教学,科研)
缺省: (教学) 性别 : (男,女) 学历 : (中师,高师) 类型 : (<小学教师>,<中学教师>,<大学教师>) 这个框架的名字为“教师”,它含有 5 个槽,槽名分别是“类属”、“工作”、“性别”、“学 历”、和“类型”。这些槽名的右面就是其值,如“<知识分子>”、“男”、“女”、“高师”、“中 师”等。其中“<知识分子>”又是一个框架名,“范围”、“缺省”就是侧面名,其后是侧面 值,如“教学”、“科研”等。另外,用<>括的槽值也是框架名。 一个框架的槽值可以是另一个框架的名,这就把有关框架横向联系了起来。 框架间的“父子”关系是框架间的一种纵向联系。 某一论域的全体框架构成了一个框架网络或框架系统。 框架的槽值可以是规则或逻辑式、运算式甚至过程调用等。 2、框架的表达能力 ⑴框架适合表达结构性知识 ①概念对象等知识用框架表示 ②框架的槽是对象的属性或状态 ③框架的值是属性值或状态值 ⑵框架网络可以表示过程性事件或情节 例:关于房间的框架 框架名:<房间> 墙数 x1 :缺省:x1=4
课后习题解答
1、试写出“学生框架”的描述,并用 Prolog 语言实现。 框架名:<学生> 类属:<受教育者> 专业:范围:(计算机,英语,音乐,数学)
缺省:计算机 性别:<男,女> 类型:(<小学生>,<中学生>,<大学生>) frame(name(“学生”)), Kind_of(“<知识分子>”), Major(scope(“计算机”,“英语”,“音乐”,“数学”),default(“计算机”)), Sex(“男”,“女”), Type(“<小学生>”,“<中学生>”,“<大学生>”)。
所属关系表示“具有”的意思。 3、基于语义网络的推理 ⑴基于语义网络的推理也是继承,继承通过匹配、搜索实现。 ⑵推理步骤 ①首先根据待求问题要求构造一个网络片断 ②在知识库中查找与之匹配的语义网络,当网络片断中询问部分与知识库中某网络结构匹配 时,则与询问处匹配的事实就是问题的解。 ③匹配的结果不一定是完全匹配,需考虑匹配的程度。 4、语义网络的程序语言实现
条件:x1>0 窗数 x2 :缺省:x2=2
条件:x2>=0
wenku.baidu.com
门数 x3 :缺省:x3=1 条件:x3>0
前墙: (墙框架(w1,d1)) 后墙: (墙框架(w2,d2)) 左墙: (墙框架(w3,d3)) 右墙: (墙框架(w4,d4)) 天花板 :<天花板框架> 地板 : <地板框架> 门 : <门框架> 窗: <窗框架> 条件:w1+w2+w3+w4=x2
arc(taste,"苹果","甜"). arc(a_kind_of,"富士","苹果"). arc(intro_from,"富士","日本"). arc(is_a,"日本","亚洲国家").
……… 或者
net1( a_kind_of(“苹果”,“水果”), taste(“苹果”,“甜”), a_kind_of(“秦冠”,“苹果”), produ_in("秦冠","陕西")).
二、语义网络及其推理
1、语义网络的概念 ⑴语义网络由节点和有向边组成的有向图。 ①节点表示事物、对象、概念、行为、性质、状态等。 ②有向边表示节点之间的某种联系或关系。
节点一
语义关系
节点二
⑵语义网络的级别划分 ①执行级 ②逻辑级 ③认识论级 ④概念级 ⑤语言学级 ⑶语义网络类型 ①命题语义网(分块联想网络) ②数据语义网:以数据为中心的语义网络 ③语言语义网:用于自然语言分析和理解 ④结构语义网:描述客观事物的结构 ⑤分类语义网:描述抽象概念及层次
d1+d2+d3+d4=x3 类型:(<办公室>,<教室>,<会客室>,<卧室>,<厨房>,<仓库>…) 3、基于框架的推理 ⑴基于框架的推理方法是继承。就是子框架可以拥有其父框架的槽及槽值。 ⑵实现继承的操作有: ①匹配:将问题框架同知识库中的框架的模式匹配。 ②搜索:沿着框架间的纵向和横向联系,在框架网络中进行查找。 ③填槽:问题框架同某一框架匹配时,可以通过它的父框架来将它的空槽值填上。 4、框架的程序语言实现 ⑴FRL 程序设计语言 ⑵PROLOG 语言
总结与收获
通过这学期的学习,我对人工智能也有了一定的认识,从一开始觉得这课时那么的神 奇,到现在我的神秘感也慢慢的消失了。我觉得人工智能这么学科是一个富有挑战力的学科, 里面我们要学习的东西太多太多,也只有弄懂这些基础的东西,才能在以后这课的学习中跟 的上进度。在这门的学科中,我觉得值得我们认真学习的就是其中的推理。起始所谓的人工 智能也就是让机器人拥有像我们人一样的推理能力,但是要想让机器人跟我们人一样要有思 维能力,那可是相当的难。估计这方面也是人工智能的一个发展方向。因为那样的人工智能 才是真正的人工智能。在这门课上我学到的这些推理也是丰富我的知识面,开拓了我的视野, 让我对这门神秘的课程也有了一个初步认识。在这门课上学到的东西也会给我以后的工作和 学习有很大的。
⑥推理语义网:命题网 ⑦框架语义网:与框架相结合的语义网。
2、语义网络的表达能力 语义网络可以表示事物之间的联系和关系。
语义网络对事件的表示。 语义网络对含有全称量词和存在量词的谓词的表示。
⑴实例关系。
表示类与实例之间的关系。
是一个
小
大学
华
生
⑵分类关系。 (从属、泛化)关系 指事物之间的类属关系。
⑶组装关系。 下层概念是上层概念的一部分。
⑷属性关系。 对象的属性及其属性值。
⑸集合—成员关系。 表示成员与集合之间的关系。
⑹逻辑关系。 一个概念可由另一个概念推出,存在因果关系。
⑺方位关系。 在描述一个事物时,经常需要指出它发生的时间、位置,或者指出它的组成、形状等,
此时可用相应的方位关系语义网络表示。 ⑻所属关系。
<槽名 2><槽值 2>|<侧面名 21><侧面值 211 ,侧面值 212 , …> <侧面名 22> <侧面值 221 ,侧面值 222 , …> …
<槽名 k><槽值 k>|<侧面名 k1><侧面值 k11 ,侧面值 k12 , …> <侧面名 k2> <侧面值 k21 ,侧面值 k22 , …>
三、类与对象及其推理
面向对象技术现已是软件开发和程序设计的主流技术,面向对象技术中的核心概念是 对象和类。对象可以泛指一切事物,类则是一类对象的抽象模型。
通常,在面向对象的程序设计语言中,只给出类的定义,其对象由类生成。类的定义 中就说明了所辖对象的共同特征(属性、状态等)和行为。特征用变量表示,行为则是作用 于这些特征和作用于对象的一组操作,如函数、过程等。
由于语义网络是一个二元关系图,所以 Prolog 课方便地实现语义网络知识表示。 a_kind_of("苹果","水果"). taste("苹果","甜"). a_kind_of("富士","苹果"). intro_from("富士","日本"). is_a("日本","亚洲国家"). ………
也可以表示为 arc(a_kind_of,"苹果","水果").