人工智能复习(一)

复习任务安排

过一遍PPT上的知识点

每章作业题

一套模拟卷

一、概述

1. 人工智能的概念

概念的定义:

  • 概念名:一个词语,属于符号体系(认知世界)
  • 概念内涵:命题(判断出真假)(内心世界)
  • 概念外延:满足内涵表示的对象集合(可观可测)(物理世界)

人工智能: 人工智能是人工方法实现的智能

智能: 智慧和能力

人工智能的层次:

  • 高层智能
  • 中层智能
  • 低层智能

典型的四种定义方法: 类人,理性,思维,行为

2. 历史,流派

人工智能研究的三大学派:

  • 符号主义流派:基于符号运算,认为知识可以用符号来表示,认知可以通过符号运算来实现。
    • 运用计算机科学的方法(逻辑演绎)
    • 例如,图灵测试,专家系统和知识工程,中文屋测试
  • 联结主义流派:神经网络学派
    • 运用仿生学的方法(网络连接机制)
    • 例如,深度学习,缸中之脑实验
  • 行为主义流派:进化主义学派
    • 运用进化论的思想(控制论和机器学习算法)
    • 例如,在动态环境中漫游的有六条腿的机器虫,波士顿机器人,完美伪装者和斯巴达

如今三大学派综合集成,取长补短,相互结合: AlphaGo ZERO

标志人工智能诞生的事件: Dartmouth 会议

3. 研究及应用领域

机器思维:搜索

机器感知:利用计算机来模拟实现人类视觉的功能,使计算机具有通过二维图像认知三维环境信息的能力。

  1. 计算机视觉
  2. 模式识别:让计算能够对给定事物进行鉴别,并把它归入与其相同或相似的模式中。被鉴别的事物可以是物理的,化学的、生理的,也可以是文字、声音图像等。
  3. 自然语言处理:研究人类与计算机之间进行有效交流的各种理论和方法。

机器行为:智能控制和制造

二、知识表示

1. 知识及知识表示的基本概念

知识: 有关信息关联在一起所形成的信息结构

2. 表示方法(重点)

知识表示就是将人类的知识形式化或者模型化,以便于计算机存储与处理。

2.1 一阶谓词逻辑表示法

它以数理逻辑为基础,是到目前为止能够表达人类思维活动规律的一种最精确的形式语言。

1
2
3
4
5
6
7
8
9
10
11
12
命题
断言: 一个陈述句称为一个断言.
命题: 具有真假意义的断言称为命题.
真值
T: 表示命题的意义为真
F: 表示命题的意义为假
说明:
一个命题不能同时既为真又为假
一个命题可在一定条件下为真,而在另一条件下为假
论域
由所讨论对象的全体构成的集合。也称为个体域
论域中的元素称为个体

连接符号的使用

  • ¬\neg : “机器人不在2号房间”,可表示为

¬INROOM(Robot,R2)\neg INROOM(Robot, R2)

  • \wedge : “我喜欢音乐和绘画”,可表示为

LIKE(I,Music)LIKE(I,Painting)LIKE(I, Music) \wedge LIKE(I, Painting)

  • \vee : “小张打篮球或踢足球”,可表示为

PLAY(Zhang,Basketball)PLAY(Zhang,football)PLAY(Zhang, Basketball) \vee PLAY(Zhang, football)

  • \rightarrow : “如果小王跑得最快,那么他获得冠军。”

RUN(Wang,Fastest)WIN(Wang,Champion)RUN(Wang, Fastest) \rightarrow WIN(Wang, Champion)

  • \leftrightarrow : “燕子飞回北方,春天来了。”

FLY(Swallow,North)Is(Spring)FLY(Swallow, North) \leftrightarrow Is(Spring)

关于量词的使用

(1) 所有的人都是要死的。

(2) 有的人活到100岁以上。

在个体域D为人类集合时,可符号化为:

(1) (x)P(x)(\forall x)P(x) ,其中 P(x)P(x) 表示 xx 是要死的

(2) (x)Q(x)(\exists x)Q(x) ,其中 Q(x)Q(x) 表示 xx 活到 100 岁以上

一阶谓词表达式虽然准确,但是繁琐,下面看看有多繁琐

例题1:猴子摘香蕉

解:

  • 分别定义描述状态得谓词:

SITE(x,y):xySITE(x, y):x在y处

ON(z):z站在箱子上ON (z):z站在箱子上

HANG(w,y):w悬挂在yHANG(w,y):w悬挂在y处

HOLDS(z):z手里拿着香蕉HOLDS(z): z手里拿着香蕉

  • 变元的个体域

x的个体域是{Monkey,Box}y的个体域是{a,b,c}z的个体域是{Monkey}w的个体域是{Banana}x的个体域是\{Monkey, Box\} \\ y的个体域是\{a, b, c\} \\ z的个体域是\{Monkey\} \\ w的个体域是\{Banana\}

  • 初始状态

S0=SITE(Monkey,a)HANG(Banana,b)SITE(Box,a)¬ON(Monkey)¬HOLDS(Monkey)S_0=SITE(Monkey, a) \\ \wedge HANG(Banana, b) \\ \wedge SITE(Box, a) \\ \wedge \neg ON(Monkey) \\ \wedge \neg HOLDS(Monkey)

  • 目标状态

Sg=SITE(Monkey,b)¬HANG(Banana,b)SITE(Box,b)ON(Monkey)HOLDS(Monkey)S_g = SITE(Monkey, b) \\ \wedge \neg HANG(Banana, b) \\ \wedge SITE(Box, b) \\ \wedge ON(Monkey) \\ \wedge HOLDS(Monkey)

  • 定义四个操作

Goto(u,v):猴子从u走到v处。Pushbox(v,w):猴子推着箱子从v走到w处。Climbbox:猴子爬上箱子。Grasp:猴子摘到香蕉。Goto(u,v): 猴子从 u 走到 v 处。\\ Pushbox(v,w):猴子推着箱子从v 走到w 处。\\ Climbbox: 猴子爬上箱子。\\ Grasp: 猴子摘到香蕉。

  • 各种操作的条件和动作

Goto(u,v)Goto(u,v)

条件: ¬ON(Monkey),SITE(Monkey,u)\neg ON(Monkey), SITE(Monkey, u)

动作: 删除表:SITE(Monkey,u)SITE(Monkey, u) 添加表:SITE(Monkey,v)SITE(Monkey, v)

Pushbox(v,w)Pushbox(v,w)

条件: ¬ON(Monkey),SITE(Monkey,v),SITE(Box,v)\neg ON(Monkey), SITE(Monkey, v), SITE(Box, v)

动作: 删除表: SITE(Monkey,v),SITE(Box,v)SITE(Monkey, v), SITE(Box, v)

​ 添加表: SITE(Monkey,w),SITE(Box,w)SITE(Monkey, w),SITE(Box, w)

ClimbboxClimbbox

条件: ¬ON(Monkey),SITE(Monkey,w),SITE(Box,w)\neg ON(Monkey),SITE(Monkey, w),SITE(Box, w)

动作: 删除表: ¬ON(Monkey)\neg ON(Monkey) 添加表:ON(Monkey)ON(Monkey)

GraspGrasp

条件: ON(Monkey),SITE(Box,b),SITE(Banana,b)ON(Monkey),SITE(Box, b),SITE(Banana,b)

动作: 删除表: ¬HOLD(Monkey),HANG(Banana,b)\neg HOLD(Monkey),HANG(Banana,b)

​ 添加表: HOLD(Monkey),¬HAND(Banana,b)HOLD(Monkey),\neg HAND(Banana,b)

至此一阶谓词逻辑的推理基础就搭建好了,下面进行猴子摘香蕉问题的求解

2.2 产生式表示法

规则的产生式表示形式常称为产生式规则,简称产生式或规则。

  • 知识的产生式表示方法

    PQP \rightarrow Q

    或者

    IF   P   THEN   QIF \space\space\space P \space\space\space THEN \space\space\space Q

    PP 是产生式的前提,也称前件。它给出了该产生式可否使用的先决条件。

    QQ 是一组结论或操作,也称后件。它指出当 PP 满足时,应该推出的结论或者应该执行的动作。

    知识产生式的表示方法:

  • 产生式系统的基本结构

    • 综合数据库 DB(Data Base)

      存放推理过程的 初始状态输入的事实中间结论最终结论

    • 规则库 RB(Rule Base),又称知识库 KB(Knowledge Base)

      1. 作用: 用于存放这个推理过程中所需要的所有规则,是整个产生式系统能够进行推理的根本。
      2. 要求: 知识的完整性,一致性,准确性,灵活性和可组织性
    • 控制系统 (Control system)

      推理机,执行推理过程

  • 产生式系统的运行过程

  • 利用产生式表示方法求解问题

例题1:动物识别系统

该系统可以识别老虎、金钱豹、斑马、长颈鹿、鸵鸟、企鹅、信天翁这7种动物。其规则库包含如下15条规则:
r1 IF 动物有毛发THEN 动物是哺乳动物
r2 IF 动物有奶THEN 动物是哺乳动物
r3 IF 动物有羽毛THEN 动物是鸟
r4 IF 动物会飞AND 动物会下蛋THEN 动物是鸟
r5 IF 动物吃肉THEN 动物是食肉动物
r6 IF 动物有犬齿AND 动物有爪AND 该物眼盯前方THEN 动物是食肉动物
r7 IF 动物是哺乳动物AND 动物有蹄THEN 动物是有蹄类动物
r8 IF 动物是哺乳动物AND 动物是反刍动物THEN 动物是有蹄类动物
r9 IF 动物是哺乳动物AND 动物是食肉动物AND 动物是黄褐色AND 动物身上有暗斑点 THEN 动物是金钱豹
r10 IF 动物是哺乳动物AND 动物是食肉动物AND 动物是黄褐色 AND 动物身上有黑色条纹 THEN 动物是虎
r11 IF 动物是有蹄类动物AND 动物有长脖子AND 动物有长腿AND 动物身上有暗斑点 THEN 动物是长颈鹿
r12 IF 动物是有蹄类动物AND 动物身上有黑色条纹THEN 动物是斑马
r13 IF 动物是鸟AND 动物有长脖子AND 动物有长腿AND 动物不会飞AND 动物有黑白二色 THEN 动物是鸵鸟
r14 IF 动物是鸟AND 动物会游泳AND 动物不会飞AND 动物有黑白二色THEN 动物是企鹅
r15 IF 动物是鸟AND 动物善飞THEN 动物是信天翁

其中,ri (i=1,2,…….,15)是规则的编号

初始综合数据库包含的事实有:
动物有暗斑点,动物有长脖子,动物有长腿,动物有奶,动物有蹄

推理过程如下:

1
动物有暗斑,动物有长脖子,动物有长腿,动物有奶,动物有蹄, 动物是哺乳动物
1
动物有暗斑,动物有长脖子,动物有长腿,动物有奶,动物有蹄,动物是哺乳动物,动物是有蹄类动物

例题2:猴子摘香蕉

解:

  1. 综合数据库: (M,B,Box,On,H)(M, B, Box, On, H)

    M:M: 猴子的位置
    BB: 香蕉的位置
    BoxBox: 箱子的位置
    On=0On=0: 猴子在地板上
    On=1On=1: 猴子在箱子上
    H=0H=0: 猴子没有抓到香蕉
    H=1H=1: 猴子抓到了香蕉

  2. 规则集:

    r1:IF  (x,y,z,0,0)  THEN  (w,y,z,0,0)r_1: IF \space\space (x, y, z, 0, 0) \space\space THEN \space\space (w, y, z, 0, 0) :猴子移动动

    r2:IF  (x,y,x,0,0)  THEN  (z,y,z,0,0)r2: IF\space\space (x, y, x, 0, 0) \space\space THEN \space\space (z, y, z, 0, 0) : 猴子和箱子一起移动

    r3:IF  (x,y,x,0,0)  THEN  (x,y,x,1,0)r3: IF \space\space (x, y, x, 0, 0) \space\space THEN \space\space (x, y, x, 1, 0) : 猴子跳到箱子上

    r4:IF  (x,y,x,1,0)  THEN  (x,y,x,0,0)r4: IF \space\space (x, y, x, 1, 0) \space\space THEN \space\space (x, y, x, 0, 0) : 猴子跳下箱子

    r5:IF  (x,x,x,1,0)  THEN  (x,x,x,1,1)r5: IF \space\space (x, x, x, 1, 0) \space\space THEN \space\space (x, x, x, 1, 1) : 猴子摘下香蕉

    其中 x,y,z,wx, y, z, w 为变量。

  3. 初始状态: (a,b,c,0,0)(a,b,c,0,0)

  4. 结束状态: (b,b,b,1,1)(b,b,b,1,1)

定义好 DBDBRBRB 之后,就可以进行问题求解了

根据具体问题可将规则具体为:
r1:IF  (a,b,c,0,0)  THEN  (c,b,c,0,0)r1: IF \space\space (a, b, c, 0, 0) \space\space THEN \space\space (c, b, c, 0, 0)
r2:IF  (c,b,c,0,0)  THEN  (c,b,c,0,0)r2: IF \space\space (c, b, c, 0, 0) \space\space THEN \space\space (c, b, c, 0, 0)
r3:IF  (b,b,b,0,0)  THEN  (b,b,b,1,0)r3: IF \space\space (b ,b, b, 0, 0) \space\space THEN \space\space (b, b, b, 1, 0)
r5:IF  (b,b,b,1,0)  THEN  (b,b,b,1,1)r5: IF \space\space (b, b, b, 1, 0) \space\space THEN \space\space (b, b, b, 1, 1)
在已知事实下,r1r2r3r5r1 \rightarrow r2 \rightarrow r3 \rightarrow r5 ,可得到香蕉

2.3 语义网络表示法

  • 语义网络:通过概念及语义关系来表示知识的一种网络图,它是一个带标注的有向图。

    • 节点表示各种概念、事物、对象、行为、状态等;
    • 有向弧表示节点间的联系或关系。
  • 知识的语义网络表示方法

    • 一般由一些最基本的语义单元组成。这些最基本的语义单元被称为语义基元。可用如下三元组来表示:

      (节点1,弧,节点2)

    • 也可用有向图表示:

  • 语义网络的表示实例:

    例1:“小李和小王是朋友”

    • 语义网络表示

    • 一阶谓词逻辑表示

      定义谓词:Friend(x,y)Friend(x, y)。定义个体词:LiLi:小李;WangWang:小王
      表示为:Friend(Li,Wang)Friend( Li, Wang)

  • 基本语义关系

    一个最主要的特征是属性的继承性,处在具体层的节点可以继承所有抽象层节点的所有属性。

    • 实例关系:ISA (is a)

      体现的是“具体与抽象”的概念,含义为“是一个”,表示一个事物是另一个事物的一个实例。

    • 分类关系:AKO (a kind of)

      亦称泛化关系,体现的是"子类与超类"的概念,含义为"是一种",表示一个事物是另一个事物的一种类型。

    • 成员关系:A-Member-of

      体现的是"个体与集体"的关系,含义为"是一员",表示一个事物是另一个事物的一个成员。

    • 聚类关系:Part-of

      亦称包含关系。指具有组织或结构特征的"部分与整体"之间的关系,含义为"是一部分",表示一个事物是另一个事物的一部分。

      聚类关系与实例、分类、成员关系的主要区别聚类关系一般不具备属性的继承性。如上例, 手不一定具有人的各种属性

    • 属性关系: Have, Can

      指事物和其属性之间的关系。

      Have: 含义为"有" , 表示一个结点具有另一个结点所描述的属性

      Can: 含义为"能"、“会”,表示一个结点能做另一个结点的事情

    • 时间关系:Before, After

      Before: 含义为"在前"
      After: 含义为"在后"

    • 位置关系: Located-on,Located-under,Located-at,Located-inside,Located-outside

      指不同事物在位置方面的关系.常用的有:
      Located-on: 含义为"在…上面"
      Located-under : 含义为"在. . .下面"
      Located-at: 含义为"在…"
      Located-inside : 含义为"在. . .内"
      Located-outside : 含义为"在…外"

    • 相近关系:Similar-to,Near-to

      指不同事物在形状、内容等方面相似或接近。
      常用的相近关系有:
      Similar-to: 含义为"相似"
      Near-to: 含义为"接近"

  • 情况的表示

    例题: “小燕子这只燕子从春天到秋天占有一个巢”

    解: 需要设立一个占有权结点,表示占有物和占有时间等。

  • 动作的表示

    用这种方法表示事件或动作时,需要设立一个事件节点动作结点

    例题1: 用于语义网络表示:“常河给江涛一个优盘”

    解: 事件结点表示

    例题2:

    解: 动作结点表示

  • 连词的表示

    • 合取/析取

      在语义网络中,合取通过引入合取/析取结点来表示。

      例 :“约翰给了玛丽一本《战争与和平》,并且玛丽读了这本书”。

      解:

      $give(John, Mary, “War and Peace”) ∧ read(Mary, “War and Peace”) $

    • 否定

      引入非结点

      对于基本联系的否定,可以直接采用 ¬ISA¬ISA¬AKO¬ AKO ,以及 ¬partof¬ part-of 的有向弧来标注。对于一般结点,则需要通过引进非结点来表示。

    • 蕴含

      引入关系结点蕴含,从关系结点出发,一条弧指向命题的前提条件,记为ANTE(antecedent),另一条弧指向该规则的结论,记为CONSE(consequence)。

  • 量词

    • 存在量词,可以用“是一种”“是一个”等语义关系来表示。

    • 全称量词,可以用G.G.Hendrix在1975年提出的“语义网络分区技术”实现,也称分块语义网络(Partitioned Sematic Net)。

    例 :“每个学生都学习了一门外语”。

    解:

语义网络的推理过程有两种,一种是继承一种是匹配

  1. 属性的继承

    继承的概念: 是指把对事物的描述从抽象结点传递到实例结点。通过继承可以得到所需结点的一些属性值,它通常是沿着ISA、AKO等继承弧进行的。

    继承的一般过程:

    1. 建立一个结点表,用来存放待求解结点和所有以ISA 、AKO等继承弧与此结点相连的那些结点。初始情况下,表中只有待求解结点。
    2. 检查表中的第一个结点是否是有继承弧。如果有,就把该弧所指的所有结点放入结点表的末尾,记录这些结点的所有属性,并从结点表中删除第一个结点。如果没有继承孤,仅从结点表中删除第一个结点。
    3. 重复(2) ,直到结点表为空。此时,记录下来的所有属性都是待求解结点继承来的属性。

    **例1:**用语义网络表示:

    • 动物能运动、会吃。

    • 鸟是一种动物,鸟有翅膀、会飞。

    • 麻雀有爪子,麻雀是一种鸟。

    • 小麻雀是一只麻雀。

    解:

    例2: 把下列命题用一个语义网络表示出来,求梨树的属性

    树和草都是植物;

    树和草都有叶和根;

    水草是草,且生长在水中;

    果树是树,且会结果;

    梨树是果树中的一种,它会结梨。

    解:

    把梨树放入检查表中查找其属性,步骤如下

    • 结梨,是果树
    • 结果,是树
    • 是一种植物,有叶子,有根

    此时检查表为空,上述过程中找到的属性都是梨树的属性。

  2. 匹配推理

    匹配的概念:

    是指在知识库的语义网络中寻找与待求解问题相符的语义网络模式。

    匹配的过程:

    1. 根据待求解问题的要求构造一个网络片断,该网络片断中有些结点或孤的标识是空的,称为询问处,它反映的是待求解的问题。
    2. 根据该语义片断到知识库中去寻找所需要的信息。
    3. 当待求解问题的网络片断与知识库中的某语义网络片断相匹配时,则与询问处相匹配的事实就是问题的解。

    说起来不好理解,看个对应着上面的步骤看例题就懂了:

    例: 设在语义网络系统的知识库中存在以下事实的语义网络:

    “哈尔滨工业大学是一所学校,位于哈尔滨市,成立于1920年。”

    假若要求解的问题是:哈尔滨工业大学位于哪个城市?

    如何利用语义网络进行推理求解?

    解:

    1. 构造一个网络片断,反映待求解的问题

    2. 根据该语义片段去知识库里匹配答案

    3. 匹配到答案是:哈尔滨市

2.4 知识图谱(了解)

知识图谱(Knowledge Graph)本 质上是一种大规模语义网络(semantic network)

富含实体(entity)、概念(concepts) 及其之间的各种语义关系 (semantic relationships)

  • 了解知识图谱的历史和意义

    2012516日, Google发布了知识图谱,并指出知识 图谱技术极大增强了Google搜索引擎返回结果的价值, 从而掀起了一场知识图谱技术的热潮。

    • 作为一种语义网络,是大数据时代知识表示的重要方式之一
    • 作为一种技术体系,是大数据时代知识工程的代表性进展
  • 知识的 RDF 表示方法

    知识图谱—RDF(Resource Description Framework)模型

    • 在RDF中,知识总是以三元组的形式出现

    • RDF模型是三元组(Triple)模型,即每一份知识可以被分解为:

      subject(主),predicate(谓),object(宾))(subject (主), predicate(谓), object(宾))

    • RDF示例

      小王认识小明,小明认识小张
      (wang, knows, ming)
      (ming, knows, zhang)

    • RDF Schema (RDFS)

      • RDFS在RDF的基础上提供了一组建模原语,用来描述类、属性以及它们之间的关系。

      • Class, subClassOf:描述类别层次结构。

      • Property, subPropertyOf:描述属性层次结构。

      • domain, range:声明属性所应用的资源类和属性值类。

      • type:声明一个资源是一个类的实例。

  • 利用 SPARQL 查询问题答案

    SPARQL是基于RDF的查询语言,Simple Protocol and Query Language (pronounced “sparkl”)

    Queries can go across multiple sources 查询可以跨越多个来源

    • Show me on a map the birthplace of people who died in Winterthour

    Full-featured query language 是一种功能齐全的查询语言

    • Required/optional parameters 可以查询或者选择参数
    • Filtering the results 可以筛选结果
    • Results can be graphs 查询结果可以生成图
  • 典型知识图谱

    Cyc: 常识知识图谱

    • 特点:通过人工方法将上百万条人类常识编码成机器可用的形式,用以进行智能推断
  • **WordNet:**基于认知语言学的英语词典

    • 特点:以同义词集合( synset )作为一个基本单元
  • ConceptNet: 大型的多语言常识知识库

    • 特点:知识来源丰富
  • GeoNames: 全球地理数据库

    • 特点:多语言地理位置信息
  • Freebase/Wikidata:

    • Freebase 2016年8月31日,所有知识采用结构化的表示形式,可由机器和人编辑

    • Wikidata是维基百科的姐妹工程,同样可由机器和人自由编辑

    • Freebase宣布关闭,所有数据汇入Wikidata

    • 特点:

      • 众包构建
      • 结构化三元组
  • DBpedia: 从维基百科页面中自动抽取出结构化的知识,构建而成的大型通用百科图谱

    • 特点

      • 多语言

      • 自动构建

  • YAGO: 采用自动的方式构建,数据来源于维基百科、WordNet 以及GeoNames

    • 特点:
      • 每类关系的准确率都经过人工评估,达到95%以上
      • 融合了WordNet的纯层次结构以及维基百科的标签分类体系
      • 部分事实增加了时间和空间两种维度
      • 多语言融合
  • Open IE: 互联网开放关系抽取系统,主要从句子中抽取开放关系

    • 特点:开放关系抽取,Never-Ending
  • BabelNet: 多语言知识图谱

    • 特点
      • 271 种语言
      • 自动融合
  • Google KG: 谷歌知识图谱于2012 年发布,被认为是搜索引擎的一次重大革新

    • 特点
      • 规模巨大
      • 用于增强搜索引擎的搜索能力
  • Probase: 概念图谱,数据源来自微软搜索引擎Bing 的网页,主要利用 Hearst Pattern 从 文本中抽取 IsA 关系

    • 特点
      • 概念规模最大
      • 自动构建
  • 搜狗知立方: 中文知识图谱,应用于搜狗搜索引擎

    • 特点:侧重于娱乐领域
  • 百度知心: 中文知识图谱,应用于百度搜索引擎

    • 特点:融合百度百科知识
  • CN-DBpedia: 由复旦大学知识工场实验室构建融合通用百科和领域百科数据

    • 特点
      • 实时更新
      • 完整的数据/服务接口

2.5 框架表示法

心理学的框架理论认为人们对现实世界中各种事物的认识都是以一种类似于框架的结构存储在记忆中的,当遇到一个新事物时,就从记忆中找出一个合适的框架,并根据新的情况对其细节加以修改、补充,从而形成对这个新事物的认识。例如,对饭店、教室等的认识。

知识的框架表示方法

  • 框架表示法概述

    • 框架

      是人们认识事物的一种通用的数据结构形式。即当新情况发生时,人们只要把新的数据加入到该通用数据结构中,便可形成一个具体的实体(类),这样的通用数据结构就称为框架。

    • 实例框架

      对于一个框架,当人们才把观察或认识到的具体细节填入后,就得到了该框架的一个具体实例,框架的这种具体实例被称为实例框架。

    • 框架系统

      在框架理论中,框架是知识的基本单位,把一组有关的框架连结起来使可形成一个框架系统。

    • 框架系统推理

      由框架之间的协调来完成。

  • 框架的组成

    框架名槽名侧面组成

    • 一个“框架”由若干个“槽”组成
    • 每个“槽”又划分为若干个“侧面”
    • 一个“槽”描述对象的一个方面属性
    • 一个“侧面”描述相应属性的一个方面

    一个框架示例结构如下:

    **例:**一个直接描述硕士生有关情况的框架

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Frame <MASTER>
    Name: Unit (Last-name, First-name)
    Sex: Area (male, female)
    Default: male
    Age: Unit (Years)
    Major: Unit (Major)
    Field: Unit (Field)
    Advisor: Unit (Last-name, First-name)
    Project: Area (National, Provincial, Other)
    Default: National
    Paper: Area (SCI, EI, Core, General)
    Default: Core
    Address: < S-Address>
    Telephone: Home Unit (Number)
    Mobile Unit (Number)

    对那些结构比较复杂的知识,往往需要用多个相互联系的框架来表示。例如,对前面硕士生框架“MASTER"可分为:

    • "Student"框架,描述所有学生的共性,上层框架
    • "Master"框架,描述硕士生的个性,子框架,继承"Student"框架的属性

    学生框架

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Frame <Student>
    Name: Unit (Last-name, First-name)
    Sex: Area (male, female)
    Default: male //缺省
    Age: Unit (Years)
    If-Needed: Ask-Age //询问赋值
    Address: < S-Address>
    Telephone: Home Unit (Number)
    Mobile Unit (Number)
    If-Needed: Ask-Telephone //询问赋值

    硕士生框架

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Frame <Master>
    AKO: <Student> //预定义槽名
    Major: Unit (Major) //专业
    If-Needed: Ask - Major //询问赋值
    If-Added: Check-Major //后继处理
    Field: Unit (Field) //方向
    If-Needed : Ask - Field //询问赋值
    Advisor: Unit (Last-name, First-name) //导师
    If-Needed : Ask -Visor //询问赋值
    Project: Area (National, Provincial, Other) //项目
    Default: National //缺省
    Paper: Area (SCI, EI, Core, General) //论文
    Default: Core //缺省

    这里,用到了一个系统预定义槽名AKO ,其含义为"是一种"。
    当AKO作为下层框架的糟名时,其槽值为上层框架的框架名,表示该下层框架所描述的事物比其上层框架更具体。并且,由AKO所联系的框架之间具有属性的继承关系。

    实例框架

    例: 有杨叶和柳青2个硕士生,

    ​ 杨叶,女,计算机专业,参加了导师1的网络智能研究方向的省部级项目

    ​ 柳青,22岁,计算机专业,导师是导师1,论文被EI收录

    硕士生-1框架:

    1
    2
    3
    4
    5
    6
    7
    8
    Frame <Master-1>
    ISA: <Master> //是一个
    Name: Yang, Ye
    Sex: female
    Major: Computer
    Field: Web-Intelligence //方向Web智能
    Advisor: Advisor1 //导师1
    Project: Provincial //项目省部级

    硕士生-2框架:

    1
    2
    3
    4
    5
    6
    7
    Frame <Master-2>
    ISA: <Master>
    Name: Liu, Qing
    Age: 22
    Major: Computer
    Advisor: Advisor1
    Paper: EI //论文EI收录

    其中用到了系统预定以槽名ISA,即Master-1和Master-2是2个具体的Master

  • 框架系统的基本结构

    框架系统由框架之间的横向或纵向联系构成。

    纵向联系

    • 是指那种具有继承关系的上下层框架之间的联系。如:学生可按照接受教育的层次分为本、硕和博。每类学生又可按照所学专业的不同划分。
    • 纵向联系通过预定义槽名AKO和ISA等来实现。

    横向联系

    • 是指那种以另外一个框架名作为一个槽的槽值或侧面值所建立起来的框架之间的联系。如Student框架与S-Address框架之间就是一种横向联系。

框架的继承特性,框架的匹配

  • 框架的继承特性

    • 特性继承过程

      通过ISA 、AKO链来实现。

      当需要查询某一事物的某个属性,且描述该事物的框架未提供其属性值时,系统就沿ISA和AKO链追溯到具有相同槽的类或超类框架。
      Default:如果该槽提供有Default侧面值,就继承该默认值作为查询结果返回。
      If-Needed: 如果该槽提供有If-Needed侧面供继承,则执行If-Needed操作,去产生一个值作为查询结果。
      If-Added: 如果对某个事物的某一属性进行了赋值或修改操作,则系统会自动沿ISA和AKO链追溯到具有相应的类或超类框架,去执行If-Added操作,作相应的后继处理。

    • If-Needed与If-Added过程的区别
      它们的主要区别在于激活时机和操作目的不同。

      • If-Needed操作是在系统试图查询某个事物框架中未记载的属性值时激活,并根据查询需求,被动地即时产生所需要的属性值;
      • If-Added操作是在系统对某个框架的属性作赋值或修改工作后激活,目的在于通过这些后继处理,主动做好配套操作,以消除可能存在的不一致。
    • 特性继承的例

      如前面的学生框架

      若要查询Master-l 的Sex , 则可直接回答; 但要查询Master-2的Sex , 则需要沿ISA链和AKO链到Student框架取其默认佳male.

      若要查询Master-2的Field,需要沿ISA链到Master框架,执行Field槽If-Needed侧面的Ask-Field操作, 即时产生一个值,假设产生的值是Data-Mining, 则表示Master-2的研究方向为数据挖掘。

      如果要修改Master-2 的Major,需要沿ISA链到Master框架, 执行Major槽If-Added侧面的Check-Major操作,对Field, Advisor进行修改, 以保持知识的一致性。

  • 匹配和填槽

    框架的匹配实际上是通过对相应槽的槽名和槽值逐个进行比较,并利用继承关系来实现的。
    例1: 假设前面讨论的学生框架系统已建立在知识库中,若要求从知识库中找出一个满足如下条件的硕士生:

    1
    2
    3
    4
    5
    6
    Frame <Master-x>
    Name:
    Sex: male
    Age: Years <25
    Major: Computer
    Project: National

    ​ 用此框架和知识库中的框架匹配,显然“Master -2”框架可以匹配。因为Age、Major槽都符合要求, Sex 槽和Project槽虽然没有给出,但由继承性可知它们分别取默认值male和National, 完全符合初始问题框架Master-x的要求,所以要找的学生有可能是Liu Qing。

    例2: 请用框架表示这一知识:范伟,男,30岁, 1996年10月到2012年8月间在计算机学院任讲师。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    Frame:<Teacher-1>
    Name: Fan,Wei
    Sex: Male
    Age: 30
    Job: Lecturer
    Work-time:
    Start: 1996-10
    End: 2012-08
    Department: Computer Science
  • 框架表示法的特征:

实战练手

有一个容积为8升的水桶里装满了水,另外还有一个容积为3升的空桶和一个容积为4升的空桶,如何利用这三个桶将8升水分成2等份?(注:三个水桶都没有体积刻度,也不能使用其它辅助容器。)
(1). 请任意选用一种知识表示方法,如谓词逻辑,产生式或状态空间法等,解决此问题。并给出消耗步数最少的解决问题的操作序列。

解:

好家伙,还没用到学的知识呢,光想出来这个水怎么倒我这个大笨蛋都想了快10min,我想到的解法如下

产生式法写起来比较方便,这里使用产生式法:

  • 定义综合库

    • C3 表示容量为 3 的杯子
    • C4 表示容量为 4 的杯子
    • C8 表示容量为 8 的杯子
    • CUP3 表示容量为 3 的杯子剩余的水量
    • CUP4 表示容量为 4 的杯子剩余的水量
    • CUP8 表示容量为 8 的杯子剩余的水量
    • R3 表示容量为 3 的杯子还可装入的水量
    • R4 表示容量为 4 的杯子还可装入的水量
    • R8 表示容量为 8 的杯子还可装入的水量
    • (CUP3, CUP4, CUP8) 表示当前的状态
  • 规则库

    • r1 : IF \space\space (A \rightarrow B) \and (CUPA > RB) \space\space THEN \space\space CUPA = CUPA-RB , RB = 0 // 用A中的水把B倒满
    • r2 : IF \space\space (A \rightarrow B) \and (CUPA <= RB) \space\space THEN \space\space CUPA = 0 , RB = RB - CUPA // 把A剩下的水全部导入B中
  • 初始状态

    (0, 0, 8) // 开始只有 C8 有水

  • 结束状态

    (0, 4, 4) // 要分为相等的两份,只能是放在 C4 和 C8 中

  • 问题解决如下

    1. r1:(0,0,8)(3,0,5)r1 : (0, 0, 8) \rightarrow (3, 0, 5)

    2. r2:(3,0,5)(0,3,5)r2: (3, 0, 5) \rightarrow (0, 3, 5)

    3. r1:(0,3,5)(3,3,2)r1:(0, 3, 5) \rightarrow (3, 3, 2)

    4. r1:(3,3,2)(1,5,2)r1:(3, 3, 2) \rightarrow (1, 5, 2)

    5. r2:(1,5,2)(1,0,7)r2:(1, 5, 2) \rightarrow (1, 0, 7)

    6. r2:(1,0,7)(0,1,7)r2:(1, 0, 7) \rightarrow (0, 1, 7)

    7. r1:(0,1,7)(3,1,4)r1:(0, 1, 7) \rightarrow (3, 1, 4)

    8. r2:(3,1,4)(0,4,4)r2:(3, 1, 4) \rightarrow (0, 4, 4)

六、附录

逻辑运算符的 markdown 语法

顺手记录几个markdown的逻辑运算符语法

输入 显示 输入 显示
\neg ¬\neg
\exists \exists \forall \forall
\vee \vee \wedge \wedge
\subset \subset \supset \supset
\leftarrow \leftarrow \rightarrow \rightarrow
\leftrightarrow \leftrightarrow \longleftrightarrow \longleftrightarrow
\longleftarrow \longleftarrow \longrightarrow \longrightarrow