人工智能知识表示
知识就是力量
*
第2章 知识表示
知识表示与知识表示的概念
一阶谓词逻辑表示法
产生式表示法
语义网络表示法
框架表示法
状态空间表示法
问题规约表示法
剧本表示法
面向对象表示法
*
*
知识的概念
----何谓知识(一)
知识的一般概念
知识是人们在改造客观世界的实践中积累起来的认识和经验
认识:包括对事物现象、本质、属性、状态、关系、联系和运动等的认识
经验:包括解决问题的微观方法,如步骤、操作、规则、过程、技巧等
宏观方法,如战略、战术、计谋、策略等
知识、信息、数据及其关系
原因:认识客观世界的前提是能对其描述,而描述由数据和信息来实现的
解释:数据是为描述客观事物而引入的一些数字、符号、文字等
信息是对客观事物的一般性描述,它还不是知识。数据组成结构。
关系:数据是信息的载体,本身无确切含义,其关联构成信息
信息是数据的关联,赋予数据特定的含义,仅可理解为描述性知识
知识可以是对信息的关联,也可以是对已有知识的再认识
例如:(1) if 计算机能听懂人类语言 then 可直接与计算机对话
(2) if 计算机能听懂人类语言就可直接与计算机对话
then 人类将努力研究自然语言理解问题
*
*
知识的概念
----何谓知识(二)
“知识”有代表性的定义
(1)知识是经过剪裁、塑造、解释、选择和转换了的信息
(2)知识由特定领域的描述、关系和过程组成
(3)知识=事实+信念+启发式
“信息”与“关联”是构成知识的两个要素。信息之间关联的形式可以多种多样,最常见的一种形式是:
“如果。。。。。。,则。。。。。。”
*
*
知识的概念
----知识的属性
真假性与相对性
真假性:可以通过实践和推理来证明知识是真的还是假的
相对性:非绝对性。知识的真与假是相对于条件、环境、事件而言的
不确定性
不完备性:解决问题时不具备解决该问题的全部知识
不精确性:知识本身有真假之分,但由于认识水平限制说不清其真假
这时可由可信度、概率等进行描述。
模糊性:知识的边界本身就是不清楚的(人的相貌)
用可能性、隶属度来描述(模糊搜索)
矛盾性和相容性
矛盾性:同一知识集中的知识之间相互对立或不一致(保健专家系统)
相容性:一个知识集中的所有知识之间相互不矛盾
可表示性与可利用性
可表示性:知识可用适当的形式表示出来。如语言、文字、图形等
可利用性:知识可用来解决各种各样的问题
*
*
知识的概念
----知识的类型(一)
按知识的性质
概念、命题、公理、定理、规则和方法
按知识的作用域
常识性知识:通用通识的知识。人们普遍知道的、适应所有领域的
领域性知识:面向某个具体专业领域的。该领域专家才知道的
如:专家经验。专家系统拥有的是此类知识
按知识的作用效果
事实性知识:(叙述性知识)描述事物的概念、定义、属性等
(神5实现了中华民族的飞天梦想)
问题的状态、环境、条件等(气温逐渐下降)
过程性知识:用于问题求解过程的操作、演算和行为的知识
用来指出如何使用那些与问题有关的事实性知识的知识
由与求解问题有关的规则、定律、定理及经验所构成
例如:AX2+BX+C=0
控制性知识:即元知识或超知识
如何使用知识的知识,也称为关于知识的知识。
例如:推理策略、搜索策略(深度优先、广度优先、启发式)
不确定性的传播策略
*
*
知识的概念
----知识的类型(二)
按知识的层次
表层知识:客观事物的现象及这些现象与结论之间关系的知识
他描述简单,但不反映事物的本质。
如:经验、感性、事实性知识(专家系统)
深层知识:客观事物本质、因果关系内涵、基本原理之类的知识
如:理论知识、理性知识(数据挖掘)
按知识的确定性
确定性知识:可以说明其真值为真或为假的知识
不确定性知识:不能确切说明其真假或不能完全知道的知识
包括:不精确、模糊、不完备
按知识的等级
零级知识:叙述性知识。描述事物的属性,问题的状态等
一级知识:过程性知识。经验型、启发性的知识
二级知识(元知识、超知识):如何使用一级知识
三级知识(元元知识)
*
*
知识表示的概念
----知识表示的含义及要求
什么是知识表示
是对知识的描述,即用一组符号把知识编码成计算机可以接受的某种结构。其表示方法不唯一。(请对比计算机如何了解+5V电压信号?)
知识表示的要求(难度很大)
表示能力:能否正确、有效地将问题求解所需的各种知识表示出来
表示范围的广泛性
领域知识表示的高效性
对非确定性知识表示的支持程度
可利用性:利用这些知识进行推理,可以求得待解决问题的解
对推理的适应性:推理是根据已知事实利用知识导出结果的过程
对高效算法的支持程度:知识表示要有较高的处理效率
可实现性:要便于计算机直接对其进行处理
可组织性:可以按某种方式把知识组织成某种知识结构
可维护性:便于对知识的增、删、改等操作(知识的一致性)
自然性:符合人们的日常习惯
可理解性:知识应易读、易懂、易获取等
*
*
知识表示的概念
----知识表示的观点及方法
知识表示的观点
陈述性观点:知识按某种结构存储,知识的使用由过程来实现
优点:灵活、简洁,演绎过程完整、确定,知识维护方便
缺点:推理效率低、推理过程不透明(1965归结定理)
过程性观点:知识寓于使用知识的过程中,表示与运用相结合(P38) 。
优点:推理效率高、过程清晰
缺点:灵活性差、知识维护不便
知识表示的方法
逻辑表示法:一阶谓词逻辑
产生式表示法:产生式规则
结构表示法:语义网络,框架,脚本
过程表示法:
面向对象表示法:
*
*
一阶谓词逻辑表示法
本节主要讨论:
一阶谓词逻辑表示的逻辑基础
仅与知识表示有关的,推理有关的在下一章
命题和真值;论域和谓词;连词和量词;
项与合式公式;自由变元与约束变元
谓词逻辑表示的方法
谓词逻辑表示的应用
谓词逻辑表示的特性
*
*
一阶谓词逻辑表示的逻辑基础
----命题与真值
命题的定义:
断言:一个陈述句称为一个断言
命题:具有真假意义的断言成为命题
可以用大写字母表示命题,如:
A: 天在下雨。
B: 天晴
C: 人是会死的
D: 他在哭
命题的真值:
T:表示命题的意义为真
F:表示命题的意义为假
表达单一意义的命题称为“原子命题”。
命题逻辑就是研究命题和命题之间关系的符号逻辑系统。
*
*
一阶谓词逻辑表示的逻辑基础
----论域和谓词(一)
论域:由所讨论对象的全体构成的集合。也称为个体域
个体:论域中的元素。
谓词:在谓词逻辑中命题是用形如P(x1,x2,…,xn)的谓词来表示的
谓词名:是命题的谓语,表示个体的性质、状态或个体之间的关系
个体:是命题的主语,表示独立存在的事物或概念
定义
设D是个体域,P:Dn→{T,F}是一个映射,其中
则称P是一个n元谓词,记为
P(x1,x2,…,xn)
其中,x1,x2,…,xn为个体,可以是个体常量、变元和函数。
例如:GREATER(x,6) x大于6
STUDENT(wanghong ) 王红是一名学生
TEACHER(father(zhang)) 张的父亲是一位教师
*
*
一阶谓词逻辑表示的逻辑基础
----连词
连词:
:称为“非”或者“否定”。它表示对其后面的命题的否定
:称为“析取”。它表示所连结的两个命题之间具有“或”
:称为“合取”。 它表示所连结的两个命题之间具有“与”的关系。
:称为“条件”或“蕴含”。表示“若…则…”的语义。读作“如果P,则Q”。 其中,P称为条件的前件,Q称为条件的后件。
:称为“双条件”。它表示“当且仅当”的语义。即读作“P当且仅当Q”。
例如,对命题P和Q,P↔Q表示“P当且仅当Q”,
P Q ¬P P V Q PΛQ P→Q P↔Q
T T F T T T T
T F F T F F F
F T T T F T F
F F T F F T T
*
*
蕴含关系的困惑 ?
----例子
蕴含词“若P则Q”与自然语言中的“若P则Q(同属)”既有相似之处,也有本质上的区别。
如果P是真的,Q是假的,那么复合命题“若P则Q”是假的。
如果P是假的,那么不管Q是真是假,复合命题“若P则Q”都是真的。
“如果今天下雨,那么我们就呆在家里”
(1)如果今天下雨了,我们呆在家里了,那么复合命题显然是真的。
(2)如果今天下雨了,我们却没有呆在家里,那么这显然违背了原命题,即复合命题是假的。
(3)如果今天没有下雨,那么不管我们是否呆在家里都不能认为我们违背了复合命题的要求,即复合命题是真的。
*
*
一阶谓词逻辑表示的逻辑基础
----量词
量词:
:全称量词,意思是“所有的”、“任一个”
命题( x)P(x)为真,当且仅当对论域中的所有x,都有P(x)为真
命题( x)P(x)为假,当且仅当对论域中的所有x,都有P(x)为假
:存在量词,意思是“至少有一个”、“存在有”
命题( x)P(x)为真,当且仅当至少存在一个xi D,使得P(xi)为真
命题( x)P(x)为假,当且仅当至少存在一个xi D,使得P(xi)为假
*
*
一阶谓词逻辑表示的逻辑基础
----项与合式公式
合法的谓词表达式称为合式公式(即谓词公式) 。由“项” 来定义。
个体常量、个体变量和函数称为项。
定义2-5 原子谓词公式的含义为:
若t1,t2,……,tn是项,P是谓词符号,则称P(t1,t2, ……,tn )
为原子谓词公式。
定义2-6 满足如下规则的谓词演算可得到合式公式:
单个原子谓词公式是合式公式;
若A是合式公式,则¬A也是合式公式;
若A,B是合式公式,则AVB,AΛB,A→B,A↔B也都是合式公式;
若A是合式公式,x是项,则( x)A和( x)A也都是合式公式。
根据以上是合式公式的形成规则,可以形成任意复杂的合式公式。
例如,¬P(x,y)VQ(y),( x)(A(x)B(x)),都是合式公式。
连词的优先级:
¬ , , V,→,↔
*
*
一阶谓词逻辑表示的逻辑基础
----自由变元与约束变元
辖域:指位于量词后面的单个谓词或者用括弧括起来的合式公式
约束变元:辖域内与量词中同名的变元称为约束变元
自由变元:不受约束的变元称为自由变元
例子:( x)(P(x,y)→Q(x,y))VR(x,y)
其中,(P(x,y)→Q(x,y))是(x)的辖域
辖域内的变元x是受( x)约束的变元
R(x,y)中的x和所有的y都是自由变元
变元的换名:
谓词公式中的变元的名字是无关紧要的,可以换名。但需注意两点
第一,当对量词辖域内的变元更名时,必须把同名的约束变元都统一换成另外一个相同的名字,且不能与辖域内的自由变元同名。例如,对公式( x(P(x,y)),可把约束变元x换成z,得到公式( z)(P(z,y)。
第二,当对辖域内的自由变元更名时,不能改成与约束变元相同的名字。例如,对公式( x)(P(x,y),可把自由变元y换成t(但不能换成x),得到公式( z)(P(z,t)。
*
*
谓词逻辑表示方法(一)
表示步骤:先根据表示的知识定义谓词
再用连词、量词把这些谓词连接起来(事实、因果)
例 表示“每个人都有父亲”
定义谓词:P(x) 表示x是人
HF(x,y) 表示x有父亲y
表示知识:( x)( y)(P (x)→ HF (x, y) ∧P (y))
例 表示知识“所有教师都有自己的学生”。
定义谓词:T (x):表示x 是教师。
S (x):表示x是学生。
TS(x, y):表示x是y的老师。
此时,该知识可用谓词表示为:
( x)( y)(T (x)→ TS(x, y) ∧S (y))
可读作:对所有x,如果x是一个教师,那么一定存在一个个体y,y的老师是x,且y是一个学生。
*
*
谓词逻辑表示方法(二)
例 表示知识“所有的整数不是偶数就是奇数”。
定义谓词:I(x):x是整数, E(x):x是偶数, O(x):x是奇数
知识的谓词表示为:
( x)(I(x) → E(x) O(x))
例 表示如下知识:
王宏是计算机系的一名学生。
李明是王宏的同班同学。
凡是计算机系的学生都喜欢编程序。
定义谓词: COMPUTER(x):表示x是计算机系的学生。
CLASSMATE(x,y):表示x是y的同班同学。
LIKE(x,y):表示x喜欢y。
上述知识表示为:
COMPUTER(Wanghong)
CLASSMATE(Liming, Wanghong)
( x)(COMPUTER(x) →LIKE(x, programing))
*
*
练习
用一阶谓词逻辑表示下面的句子:
自然数都是大于零的整数。
所有整数不是偶数就是奇数。
并不是所有的学生都选修了历史和生物。
历史考试中只有一个学生不及格。
除了选修人工智能的学生外,都去舞会了。
*
*
谓词逻辑表示的应用
----机器人移盒子问题(一)智能规划NP旅行规划、自动武器等
谓词可用来描述状态、动作:机器人从c点出发,将盒子从a桌拿到b桌,然后再回到c处。
研究的对象:
桌子x的个体域是{a, b}
机器人y的个体域是{robot}
位置z的个体域是{a, b, c}
物体w的个体域是{box}
描述状态的谓词:
TABLE(x):x是桌子
EMPTY(y):y手中是空的
AT(y, z):y在z的附近
HOLDS(y, w):y拿着w
ON(w, x):w在x桌面上
*
*
谓词逻辑表示的应用
----机器人移盒子问题(二)
问题的初始状态
AT(robot, c)
EMPTY(robot)
ON(box, a)
TABLE(a)
TABLE(b)
问题的目标状态
AT(robot, c)
EMPTY(robot)
ON(box, b)
TABLE(a)
TABLE(b)
机器人行动的目标把问题的初始状态转换为目标状态,而要实现问题状态的转换需要完成一系列的操作
*
*
谓词逻辑表示的应用
----机器人移盒子问题(三)
操作的表示方法
由条件和动作两部分
条件部分用来说明执行该操作必须具备的先决条件
可用谓词公式来表示
动作部分给出了该操作对问题状态的改变情况
动作部分则是通过在执行该操作前的问题状态中删去和增加相应的谓词来实现的
机器人需要执行的操作
Goto(x, y):从x处走到y处。
Pickup(x):在x处拿起盒子。
Setdown(x):在x处放下盒子。
*
*
谓词逻辑表示的应用
----机器人移盒子问题(三)
操作对应的条件和动作如下
Goto(x,y)
条件:AT(robot,x)
动作:删除:AT(robot,x)
添加:AT(robot,y)
Pickup(x)
条件:ON(box,x),TABLE(x),AT(robot,x),EMPTY(robot)
动作:删除:EMPTY(robot),ON(box,x)
添加:HOLDS(robot,box)
Setdown(x)
条件:AT(robot,x),TABLE(x),HOLDS(robot,box)
动作:删除:HOLDS(robot,box)
添加:EMPTY(robot),ON(box,x)
机器人在执行每一操作之前,都需要检查当前状态是否可以满足该操作的先决条件。如果满足,就执行相应的操作,否则就检查下一个操作所要求的先决条件。(归结理论)
*
*
谓词逻辑表示的应用
----机器人移盒子问题(四)
这个机器人行动规划问题的求解过程如下:
状态1(初始状态)
AT(robot, c)
开始 EMPTY(robot)
=======> ON(box, a)
TABLE(a)
TABLE(b)
状态2
AT(robot, a)
Goto(x, y) EMPTY(robot)
=========> ON(box, a)
用c代换x TABLE(a)
a代换y TABLE(b)
状态3
AT(robot, a)
Pickup(x) HOLDS(robot,box)
========> TABLE(a)
用a代换x TABLE(b)
*
*
谓词逻辑表示的应用
----机器人移盒子问题(五)
状态4
AT(robot, b)
Goto(x, y) HOLDS(robot,box)
========> TABLE(a)
用a代换x TABLE(b)
b代换y 状态5
AT(robot, b)
Setdown(x) EMPTY(robot)
=========> ON(box, b)
用b代换x TABLE(a)
TABLE(b)
状态6(目标状态)
AT(robot, c)
Goto(x, y) EMPTY(robot)
========> ON(box, b)
用b代换x TABLE(a)
c代换y TABLE(b)
*
*
谓词逻辑表示的应用
----机器人摞积木问题(一)
描述状态的谓词(看图找谓词,TABLEEMPTY)
CLEAR(x):积木x上面是空的
ON(x, y):积木x在积木y的上面
ONTABLE(x):积木x在桌子上
HOLDING(x):机械手抓住x
HANDEMPTY:机械手是空的
其中,x和y的个体域都是{A, B, C}
问题的初始状态
CLEAR(B), ON(C, A), ONTABLE(A) , CLEAR(C)
HANDEMPTY , ONTABLE(B)
问题的目标状态是
ON(B, C), ON(A, B) , ONTABLE(C)
CLEAR(A) , HANDEMPTY
A
B
C
*
*
谓词逻辑表示的应用(续)
*
谓词逻辑表示的应用
----机器人摞积木问题(二)
需要的4个操作
Pickup(x):从桌面上拣起一块积木x
Putdown(x):将手中的积木x放到桌子上
Stack(x, y):把积木x摞在积木y上
Upstack(x, y):把积木x从积木y上面拣起
操作对应的先决条件及动作
Pickup(x) (从桌面上拣起一块积木x)
条件:ONTABLE(x),HANDEMPTY,CLEAR(x)
动作:删除表:ONTABLE(x),HANDEMPTY ,CLEAR(x)
添加表:HOLDING(x)
Putdown(x) (将手中的积木x放到桌子上)
条件:HOLDING (x)
动作:删除表:HOLDING (x)
添加表:ONTABLE(x) ,HANDEMPTY ,CLEAR(x)
*
*
谓词逻辑表示的应用
----机器人摞积木问题(三)
Stack(x, y) (把积木x摞在积木y上)
条件:HOLDING (x),CLEAR(y)
动作:删除表:HOLDING (x),CLEAR(y)
添加表:HANDEMPTY,ON(x, y) ,CLEAR(x)
Upstack(x, y) (把积木x从积木y上面拣起)
条件:HANDEMPTY,CLEAR(x) ,ON(x, y)
动作:删除表:HANDEMPTY,ON(x, y)
添加表:HOLDING (x),CLEAR(y)
利用上述谓词和操作,即可完成积木世界的求解问题。至于其求解过程,和前述机器人搬盒子问题类似,这里从略。
*
*
谓词逻辑表示的练习
----猴子摘香蕉问题(一)
描述状态的谓词
AT(x, y):x在y处
ONBOX:猴子在箱子上
HB:猴子得到香蕉
其中,x 的个体域是
{Monkey, Box, Banana}
Y 的个体域是
{a, b, c}
问题的初始状态
AT(Monkey, a)
AT(Box, b)
⌐ONBOX , ⌐HB
问题的目标状态
AT(Monkey, c) ,AT(Box, c)
ONBOX , HB
*
*
谓词逻辑表示的应用
----猴子摘香蕉问题(二)
需要的操作
Goto(u, v): 猴子从u处走到v处
Pushbox(v, w):猴子推着箱子从v处移到w处
Climbbox: 猴子爬上箱子
Grasp: 猴子摘取香蕉
*
*
谓词逻辑表示的应用
----猴子摘香蕉问题(二)
操作对应的先决条件及动作
Goto(u, v)
条件:⌐ONBOX ,AT(Monkey, u),
动作:删除表:AT(Monkey, u)
添加表:AT(Monkey, v)
Pushbox(v, w)
条件:⌐ONBOX ,AT(Monkey, v),AT(Box, v)
动作:删除表:AT(Monkey, v),AT(Box, v)
添加表:AT(Monkey, w),AT(Box,w)
Climbbox
条件:⌐ONBOX ,AT(Monkey, w),AT(Box,w)
动作:删除表:⌐ONBOX
添加表:ONBOX
Grasp
条件:ONBOX,AT(Box, c)
动作:删除表:⌐HB
添加表:HB
请写出猴子摘香蕉的求解过程
*
*
谓词逻辑表示的特征
主要优点
自然:一阶谓词逻辑是一种接近于自然语言的形式语言系统,谓词逻辑表示法接近于人们对问题的直观理解,易于被人们接受
明确:人们都可以按照一种标准的方法去解释知识,因此用这种方法表示的知识明确、易于理解
精确:谓词逻辑的真值只有“真”与“假”,其表示、推理都是精确的
灵活:知识和处理知识是分开的,无须程序中考虑处理知识的细节
模块化:各条知识都是相对独立的,它们之间不直接发生联系,因此添加、删除、修改知识的工作比较容易进行
主要缺点
知识表示能力差:只能表示确定性知识,而不能表示非确定性知识、过程性知识和启发式知识
知识库管理困难:缺乏知识的组织原则,知识库管理比较困难
存在组合爆炸:由于难以表示启发式知识,因此只能盲目地使用推理规则,这样当系统知识量较大时,容易发生组合爆炸
系统效率低:它把推理演算与知识含义截然分开,抛弃了表达内容中所含有的语义信息,往往使推理过程冗长,降低了系统效率
*
*
产生式表示法
是目前人工智能中使用最多的一种知识表示方法
产生式表示的基本方法
事实的表示
规则的表示
产生式与蕴含式的区别
产生式与条件语句的区别
产生式系统的基本结构及过程
产生式系统的控制策略
产生式系统的类型
产生式系统的特性
*
*
产生式表示的基本方法
----事实的表示
事实的定义
事实是断言一个语言变量的值或断言多个语言变量之间关系的陈述句.
语言变量的值或语言变量之间的关系可以是数字、词等.
例如:“雪是白的”,其中“雪”是语言变量,“白的”是语言变量的值 ; “王峰热爱祖国”,其中,“王峰”和“祖国”是两个语言变量
“热爱”是语言变量之间的关系。
事实的表示
确定性知识,事实可用如下三元组表示:
(对象,属性,值)或(关系,对象1,对象2)
其中,对象就是语言变量。例如:
(Snow, color, White) 或(雪,颜色,白)
(Love, Wangfeng, Country) 或(热爱,王峰,祖国)
非确定性知识、事实可用如下四元组表示:
(对象,属性,值,可信度因子)
其中,“可信度因子”是指该事实为真的相信程度。例如
(Like, Liming, Computer, )
*
产生式表示的基本方法
----规则知识的表示
知识的表示方法
1.确定性规则知识的产生式表示
P→Q 或 IF P THEN Q
其中,P是产生式的前提;Q是一组结论或操作,用于指出前提P所指示的条件被满足时,应该得出的结论或应该执行的操作。
2.不确定性规则知识的产生式表示
P→Q (置信度) 或 IF P THEN Q (置信度)
其中,P是产生式的前提;Q是一组结论或操作。已知事实与前提中所规定的条件不能精确匹配时,只要按照“置信度”的要求达到一定的相似度,就认为已知事实与前提条件相匹配,再按照一定的算法将这些可能性(或不确定性)传递到结论。
*
产生式表示的基本方法
----产生式与条件语句的区别
前件结构不同
产生式的前件可以是一个复杂的的结构
传统程序设计语言中的左部仅仅是一个布尔表达式
控制流程不同
满足前提条件的规则被激活,但不一定被立即执行,能否执行将取决于冲突消解策略
传统程序设计语言中是严格地从一个条件语句向其下一个条件语句传递。
*
*
产生式系统的基本结构及过程
----系统结构及其说明(一)
1.综合数据库(亦称事实库)
(1) 存放求解问题的各种当前信息
如:问题的初始状态
输入的事实
中间结论及最终结论等
(2) 用于推理过程的规则匹配
推理过程中,当规则库中某条
规则的前提和综合数据库的已知事实匹配时,该规则被激活,由它推出的结论将被作为新的事实放入综合数据库,成为后面推理的已知事实。
2.规则库
用于存放与求解问题有关的所有规则的集合
规则库包含了问题领域中的一般性知识,是产生式系统问题求解的基础,须重视知识的完整性、一致性、准确性、灵活性和知识组织的合理性
控 制 系 统
规 则 库
综合数据库
*
*
产生式系统的基本结构及过程
----系统结构及其说明(二)
3.控制系统
控制系统的主要作用:
亦称推理机构。是规则的解释程序,用于控制整个产生式系统的运行,决定问题求解过程的推理线路。
控制系统的主要任务:
(1) 匹配:按一定策略从规则库种选择规则与综合数据库中的已知事实进行匹配。所谓匹配是指把所选规则的前提与综合数据库中的已知事实进行比较,若事实库中存的事实与所选规则前提一致,则称匹配成功,该规则可被使用;否则,称匹配失败,该规则不可用于当前推理。
(2)冲突消解:对匹配成功的规则,按照某种策略从中选出一条规则执行。
(3)执行操作:对所执行的规则,若其后件为一个或多个结论,则把这些结论加入综合数据库;若其后件为一个或多个操作时,执行这些操作。
检查综合数据库中是否包含有问题的目标,若有,则停止推理。
(4)路径解释:在问题求解过程中,记住应用过的规则序列,以便最终能够给出问题的解的路径。
*
*
产生式系统的基本结构及过程
----系统结构及其说明(三)
控制系统的基本过程
(1) 初始化综合数据库,即把欲解决问题的已知事实送入综合数据库中;
(2) 检查规则库中是否有未使用过的规则,若无转 (7);(FOR)
(3) 检查规则库的未使用规则中是否有其前提可与综合数据库中已知事实相匹配的规则,若有,形成当前可用规则集;否则转(6);
(4) 按照冲突消解策略,从当前可用规则集中选择一个规则执行,并对该规则作上标记。把执行该规则后所得到的结论作为新的事实放入综合数据库;如果该规则的结论是一些操作,则执行这些操作;
(5) 检查综合数据库中是否包含了该问题的解,若已包含,说明解已求出,问题求解过程结束;否则,转(2);
(6) 当规则库中还有未使用规则,但均不能与综合数据库中的已有事实相匹配时,要求用户进一步提供关于该问题的已知事实,若能提供,则转(2);否则,执行下一步;
(7) 若知识库中不再有未使用规则,也说明该问题无解,终止问题求解过程。
说明:从第(3)步到第(5)步的循环过程实际上就是一个搜索过程
*
*
产生式系统的基本结构及过程
----产生式系统的例子(一)
动物识别系统
该系统可以识别老虎、金钱豹、斑马、长颈鹿、企鹅、信天翁这6种动物。其规则库包含如下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)是规则的编号
初始综合数据库包含的事实有:
动物有暗斑点,有长脖子,有长腿,有奶,有蹄
这些规则的部分推理网络如下图所示
*
*
产生式系统的基本结构及过程
----产生式系统的例子(三)
图中最上层的结点称为“假设”或“结论”
中间结点称为“中间假设”;终结点(叶结点)称为“证据”或“事实”
每个“结论”都是本问题的一个目标,所有“假设”构成了本问题的目标集合
长颈鹿
斑马
长脖子
长腿
暗斑点
有蹄类
黑条纹
有蹄
哺乳动物
嚼反刍动物
有毛
r2
r7
r8
r11
r12
有奶
r1
*
*
产生式系统的基本结构及过程
----产生式系统的例子(四)
推理机的工作过程
(1) 先从规则库中取出第一条规则r1,检查其前提是否可与综合数据库中的已知事实相匹配。r1的前提是“有毛发”,但事实库中无此事实,故匹配失败。然后取r2,该前提可与已知事实“有奶”相匹配,r2被执行,并将其结论“该动物是哺乳动物”作为新的事实加入到综合数据库中。此时,综合数据库的内容变为:
动物有暗斑,有长脖子,有长腿,有奶,有蹄,是哺乳动物
(2) 再从规则库中取r3,r4,r5,r6进行匹配,均失败。接着取r7,该前提与已知事实“是哺乳动物”相匹配,r7被执行,并将其结论“该动物是有蹄类动物” 作为新的事实加入到综合数据库中。此时,综合数据库的内容变为:
动物有暗斑,有长脖子,有长腿,有奶,有蹄,是哺乳动物,是有蹄类动物
(3) 此后,r8,r9,r10均匹配失败。接着取r11,该前提 “该动物是有蹄类动物 AND 有长脖子 AND 有长腿 AND 身上有暗斑” 与已知事实相匹配,r11被执行,并推出“该动物是长颈鹿”。由于“长颈鹿”已是目标集合中的一个结论,即已推出最终结果,故问题求解过程结束。
说明:上述规则仅是一种直接表示方式,用三元组表示r15如下:
r15:IF(动物,类别,鸟)AND(动物,本领,善飞)
THEN(动物,名称,信天翁)
*
*
产生式系统的控制策略
分为不可撤回(Irrevocable)方式、试探性(Tentative)方式
1. 不可撤回方式(爬山法)
是一种“一直往前走”不回头的方式,类似于中国象棋中为过河卒子的规定。
它利用问题给定的局部知识来决定选用那条规则的。即根据当前已知的局部知识选取一条规则作用于当前综合数据库,接着再根据新状态继续选取规则,搜索过程一直进行下去,不必考虑撤回用过的规则。
不理想规则的应用会多用了一些规则,但仍能找到解。
优点是控制过程简单,缺点是当问题有多个解时不一定能找到最优解
2. 试探性方式
可分为回溯(Backtracking)方式和图搜索(Graph-search)方式。
(1) 回溯方式
是一种碰壁回头的方式。即在问题求解过程中,允许先试一试某条规则,如果以后发现这条规则不合适,则允许退回去,再另选一条规则来试。
需要解决两个主要问题,一是如何确定回溯条件,二是如何减少回溯次数
是一种完备而有效的策略,它容易实现且占内存容量较小。
(2) 图搜索方式
图搜索方式是一种用图或树把全部求解过程记录下来的方式。由于它记录了已试过的所有路径,因此便于从中选取最优路径。
图搜索方式与回溯方式的主要区别在于,回溯方式抹去了所有引起失败的试探路径,而图搜索方式则记住了已试过的所有路径。
*
产生式系统的推理方式有正向推理、反向推理和双向推理三种:
1. 正向推理:也称为数据驱动方式或自底向上的方式;从已知事实出发,通过规则库求得结论,便于宽度优先搜索 。其推理过程是:
1)规则库中的规则的前件与综合数据库中的事实进行匹配,得到匹配的规则集合。
2)使用冲突解决算法,从匹配规则集合中选择一条规则作为启用规则。
3)执行启用规则的后件,将该启用规则的后件送入综合数据库并对综合数据库进行必要的修改。
重复这个过程直至达到目标。正向推理的典型系统:CLIPS (C语言集成产生式系统)
优点是简单明了且能求出所有解
缺点是执行效率较低,原因是它驱动了一些与问题无关的规则,具有一定的盲目性。
产生式系统的类型
----按推理方向
2.反向推理:也称为目标驱动方式或自顶向下的方式;从目标(作为假设)出发,反向使用规则,求得已知事实;便于深度优先搜索;其推理过程是:
1)规则库中的规则后件与目标事实进行匹配,得到匹配的规则集合。
2)使用冲突解决算法,从匹配规则集合中选择一条规则作为启用规则。
3)将启用规则的前件作为子目标。
重复这个过程直至个子目标均为已知事实,则反向推理过程成功结束。
反向推理的典型系统:PROLOG
优点是不寻找无用数据,不使用与问题无关的规则。因此,对那些目标明确的问题,使用反向推理方式是一种最佳选择。
产生式系统的类型
----按推理方向
3. 双向推理:推理从两个方向同时进行,直至某个到达相同的中间事实则成功结束。这种推理方式较正向或反向推理所形成的推理网络小,从而推理效果更高。
产生式系统的类型
----按推理方向
产生式表示法
正向推理
If A Then B , If B Then C , If C Then D
反向推理:规则重写为
If D Then C , If C Then B , If B Then A
*
产生式系统的类型
----按规则库的性质及结构(一)
可交换的产生式系统
是一种对规则的使用次序无关的产生式系统
可交换性是指任意交换规则的使用次序而不会影响对问题的求解
假设DB是综合数据库,RB是规则库,DBi (i=1,2,……)是第i次使用规则后得到的新的综合数据库,RS RB是一个可作用于DBi的规则集合。若一个产生式系统可交换,则其RB和每一个DBi都应具有如下性质:
① 对任一规则rj RS (j=1,2,……),它作用于DBi得到新的综合数据库DBi+1,RS仍然是DBi+1的可用规则集。
② 如果DBi满足目标条件,则用RS中的任一规则rj作用于DBi,得到的DBi+1仍然满足目标条件。
③ 若对DBi使用某一规则序列r1,r2,……,rk得到一个新的综合数据库DBk,则当改变这些规则的使用次序后,仍然可得到DBk。
从可交换产生式系统的上述性质可以看出,其综合数据库的内容是递增的,即对任何规则序列r1,r2,……,rg,其作用于DB 后所得到的综合数据库DB1 ,DB2,……,DBg之间存在如下关系:
DB1 DB2 …… DBg
这说明在可交换产生式系统中,其规则的结论部分总是包含着新的内容,一旦执行该规则就会把这些新的内容添加到综合数据库中。
*
*
产生式系统的类型
----按规则库的性质及结构(二)
例 设给定一个整数集合{a,b,c},可通过把集合中任意一对元素的乘积作为新元素添加到集合中的办法来扩大该整数集,要求通过若干次操作后能生成所需的整数集合。
用产生式求解这个问题时,综合数据库DB可用集合来表示,
初始状态为{a,b,c}
目标状态为{a,b,c,a×b,b×c,a×c}
规则库中包含的规则有:
r1: IF {a,b,c} THEN {a,b,c,a×b}
r2: IF {a,b,c} THEN {a,b,c,b×c}
r3: IF {a,b,c} THEN {a,b,c,a×c}
显然,无论先使用哪一条规则都可由初始状态达到目标状态。因此,上述由DB和RB所构造的产生式系统是一个可交换的产生式系统,并具有可交换产生式系统三个性质。
可交换产生式系统的可交换性,使得其求解过程只需要搜索其中的任意一条路经,就能达到目标,而不必进行回溯。
这种系统的求解过程可采用不可撤回的控制方式。
*
*
产生式系统的类型
----按规则库的性质及结构(三)
可分解的产生式系统
这种方法把一个较大或较复杂的问题分解成若干个较小或较简单的问题,然后通过对这些较小或较简单问题的求解来得到整个问题的解。
可分解的产生式系统是把一个整体问题分解成若干个子问题,然后再通过对这些子问题的求解来得到整个问题解的一种产生式系统。
例 设综合数据库的初始状态为{C,B,Z},目标状态为{ M,M,……,M },规则库中有如下规则:
r1:C→{D,L}
r2:C→{B,M}
r3:B→{M,M}
r4:Z→{B,B,M}
解决该问题时,可先把初始综合数据库分为三个子库,然后对这三个子库分别应用规则库中的相应规则进行求解。其求解过程如下图所示。
*
*
产生式系统的类型
----按规则库的性质及结构(三)
{C,B,Z}
{C}
{B}
{Z}
{D,L}
{B,M}
{M,M}
{B,B,M}
{D}
{L}
{B}
{M}
{M}
{M}
{B}
{M}
{B}
{M,M}
{M}
{M}
{M,M}
{M,M}
{M}
{M}
{M}
{M}
r1
r2
r3
r4
r3
r3
r3
*
*
产生式系统的类型
----按规则库的性质及结构(四)
可恢复的产生式系统
是指那种采用回溯控制方式的产生式系统
其求解问题的方法是:当执行某条规则后,如果发现所得到的新的综合数据库不可能求出问题的解,就立即撤消由该规则所产生的结果,使综合数据库恢复到先前的状态,然后再另选别的规则继续求解。
它既可以向综合数据库中添加新的内容,又可以从综合数据库中删除或修改老的内容。这种求解问题的方法,更符合人们的一般习惯。
*
练习
针对猴子摘香蕉问题,给出产生式系统描述。
*
产生式系统的特点
主要优点
自然性
产生式表示法用“如果……,则……”的形式表示知识,这种表示形式与人类的判断性知识基本一致,既直观、自然,又便于进行推理。
模块性
产生式规则是规则库中最基本的知识单元,各规则之间只能通过综合数据库发生联系,而不能相互调用,从而增加了规则的模块性,有利于对知识的增加、删除、修改和扩充。
有效性
产生式知识表示法既可以表示确定性知识,又可以表示不确定性知识,既有利于表示启发性知识,又有利于表示过程性知识。
一致性
规则库中的所有规则都具有相同的格式,并且综合数据库可被所有规则访问,不存在只属于某些规则的局部数据库,因此规则库中的规则可以统一处理。
*
*
产生式系统的特点
主要缺点
效率较低
在产生式表示中,各规则之间的联系必须以综合数据库为媒介。并且,其求解过程是一种反复进行的“匹配—冲突消解—执行”过程。即先用规则前提与综合数据库中的已知事实进行匹配,从规则库中选择可用规则,当有多条规则可用时还需要按一定策略进行“冲突消解”,然后才能执行选中的规则。这样的执行方式将导致执行的低效率。
不能表示结构性知识
由于产生式表示中的知识具有一致格式,且规则之间不能相互调用,因此那种具有结构关系或层次关系的知识则很难以自然的方式来表示。
实际上,产生式系统除作为一种独立的知识表示方式外,还常常和其它方法结合起来使用。
*
语义网络表示法
语义网络是于1968年在他的博士论文中作为人类联想记忆的一个心理模型最先提出的。语义网络最初主要用于自然语言理解的研究,Quillian主张应当把语义放在第一位,一个词的含义只有根据它所处的上下文环境才能准确的把握,一个句子中相关单词的语义或意思可以通过这种网络来表示。
基于Quillian的工作,Simon于1970年正式提出了语义网络的概念。
语义网络表示法
语义网络的概念及其结构
1. 语义网络的概念及结构
语义网络是通过概念及其语义关系来表示知识的一种网络图,它是一个带标记的有向图。其中有向图的各节点用来表示各种概念、事物、属性、情况、动作、状态等,节点上的标注用来区分各节点所表示的不同对象,每个节点可以带有若干个属性,以表示其所代表的不同对象的特性;弧是有方向、有标注的,方向用来体现节点间的主次关系,而其上的标注则表示被联接的两个节点间的某种语义联系或语义关系。
语义网络表示法
一个最简单的语义网络可由一个三元组表示:
(节点1,弧,节点2)
可用如下图所示的有向图表示,称作基本网元。
A
B
R
其中,A和B分别代表节点,而R则表示A和B之间某种语义联系。
语义网络表示法
2. 与谓词逻辑表示法和产生式表示法的联系
从谓词逻辑表示法来看,一个基本网元相当于一组一阶二元谓词。产生式表示法是以一条产生式规则作为知识的单位,各条产生式规则之间没有直接的联系。
而语义网络则不同,它不仅将基本网元视作一种知识的单位,而且各个基本网元之间又是相互联系的。每一条产生式规则可以表示为语义网络的形式。
语义网络表示法
语义网络中常用的语义联系
1.类属关系
类属关系是指具有共同属性的不同事物间的分类关系、成员关系或实例关系。它体现的是“具体与抽象”、“个体与集体”的层次关系。具体层节点位于抽象层节点的下层。类属关系的一个最主要的特征是属性的继承性,处在具体层的节点可以继承抽象层节点的所有属性。常用的类属关系有:
AKO:“是一种”(a kind of),表示一事物是另一事物的一种类型。
AMO:“是一员”(a member of),表示一事物是另一事物的一个成员。
ISA:“是一个”(is a ),表一事物是另一事物的一个实例。
类属关系具有属性的继承性。
语义网络表示法
2. 包含关系
包含关系也称为聚类关系,是指具有组织或结构特征的“部分与整体”之间的关系。它和类属关系的最主要区别是包含关系一般不具备属性的继承性。常用的包含关系是:
Part-of :“是一部分”,表示一个事物是另一个事物的一部分,该关系不具继承性。
语义网络表示法
3. 占有关系
占有关系是事物或属性之间的“具有”关系。常用的占有关系有:
Have:含义为“有”,表示一个节点拥有另一个节点表示的事物。
4. 时间关系
时间关系是指不同事件在其发生时间方面的先后次序关系,节点间的属性不具有继承性。常用的时间关系有:
Before:“在…前”,表示一个事件在另一个事件之前发生。
After:“在…后”,表示一个事件在另一个事件之后发上
During:“在…期间”,表示某一事件或动作在某个时间段内发生。
语义网络表示法
5. 位置关系
位置关系是指不同事物在位置方面的关系,节点间的属性不具有继承性。常用的位置关系有:
Located-on:“在…上”,表示某一物体在另一物体之上。
Located-at:“在…”,表示某一物体在另一位置。
Located-under:“在…内”,表示某一物体在另一物体之内。
Located-outside:“在…外”,表示某一物体在另一物体之外。
语义网络表示法
6. 相近关系
相近关系是指不同事物在形状、内容等方面相似或相近。常用的相近关系有:
Similar-to:“相似”,表示某一事物与另一事物相似。
Near-to:“接近”,表示某一事物与另一事物接近。
7. 推论关系是指从一个概念推出另一个概念的语义关系。
语义网络表示法
8. 因果关系是指由于某一事件的发生而导致另一事件的发生,适于表示规则性知识。通常用If-then表示两个节点间的因果关系。
9. 组成关系是一种一对多联系,用于表示某一事物由其他一些事物构成,通常用Composeed-of表示。其所联接的节点间不具有属性继承性。
10. 属性关系表示一个节点是另一节点的属性;通常用IS表示。
语义网络表示法
语义网络表示知识的方法
对事实性知识、情况、动作和事件、逻辑关系以及规则性知识的语义网络表示方法分别进行讨论。
1. 事实性知识的表示
事实性知识是指有关领域内的概念、事实、事物的属性、状态及其关系的描述。例如:“雪是白色的”、“山鸡是一种鸡”的语义网络表示如下:
语义网络表示法
如果我们还希望进一步指出“山鸡是一种鸡”、“鸡是一种飞禽”、“飞禽是一种动物”,并指出它们所有的属性,则其语义网络表示如下所示:
语义网络表示法
2. 情况和动作的表示
1)情况的表示
当表示那些不及物动词的语句或没有间接宾语的及物动词表示的语句时,如果该语句的动词表示了一些其他情况,如动作作用的时间等,则需要设立一个情况节点,并从该节点向外引出一组弧,用于指出各种不同情况。例如:“一只名叫‘神飞’的小燕子从三月到十一月占有一个巢”,这条知识可表示成如图所示的语义网络:
语义网络表示法
2)动作和事件的表示
表示的知识语句涉及的动词既有主语,又有直接宾语和间接宾语;也就是说既有发出动作的主体,又有接受动作的客体和动作所作用的客体,则可以设立一个动作或事件节点;它可以有一些向外引出的弧,用于指出动作的主体与客体,或事件发生的动作以及该事件的主体与客体。例如:“张三送给李四一支钢笔”,其语义网络如图表示:
语义网络表示法
如果把“张三送给李四一支钢笔”作为一个事件,则增加一个“事件”节点,则表示如下:
语义网络表示法
3. 逻辑关系的表示
1)合取与析取的表示
用语义网络表示知识时,为了能反映事实间的合取与析取的逻辑关系,可增加合取和析取节点。例如:“参赛者有工人、有干部、有高的、有低的”;如果把所有参赛者组合起来,可得到以下4种情况:
a.工人,高的 b.工人,低的
c.干部,高的 d.干部,低的
语义网络表示法
该知识的语义网络表示如下:
语义网络表示法
2)量词的表示
对存在量词,可以直接用“是一种”、“是一个”等这样的语义关系来表示。对全称量词则可以采用亨德里克()提出的网络分区技术。该技术的基本思想是:把一个复杂命题划分为若干个子命题,每一个子命题用一个较简单的语义网络表示,称为一个子空间,多个子空间构成一个大空间。每个子空间看作是大空间中的一个节点,称作超节点。空间可以逐层嵌套,子空间之间用弧互相连接。
语义网络表示法
例如:“每个学生都学习了一门程序设计语言”,用语义网络表示如下:
概念结点
实例结点
全称变量
存在变量
存在变量
构成一个子空间,表示对每个学生s都存在一次学习事件r和一门程序设计语言p
语义网络表示法
4. 规则性知识的表示
语义网络也可以表示规则性知识。比如“如果A,那么B”是一条表示A和B之间因果关系的规则性知识,如果规定语义关系RAB的含义是“如果…,那么…”,则上述的知识可表示成:
这样,规则性知识与事实性知识的语义网络表示是相同的,区别仅是弧上的标注不同。
语义网络表示法
用语义网络表示知识的步骤
1)确定问题中的所有对象以及各对象的属性。
2)分析并确定语义网络中各对象间的关系。
3)根据语义网络中所涉及的关系,对语义网络中的节点及弧进行整理,包括增加节点、弧和归并节点等。
4)分析检查语义网络中是否含有要表示的知识中所涉及的所有对象,若有遗漏,则须补全。并将各对象间的关系作为网络中各节点间的有向弧,连接形成语义网络。
5)根据第1)步的分析结果,为各对象表示属性。
语义网络表示法
语义网络表示知识举例
例:用语义网络表示下列命题:
1)树和草都是植物。
2)树和草是有根有叶的。
3)水草是草,且长在水中。
4)果树是树,且会结果。
5)苹果树是一种果树,它结苹果。
语义网络表示法
解: 1)问题涉及的对象有植物、树、草、水草、果树、苹果树共6个对象。
各对象的属性如下,树和草的属性:有根、有叶;水草的属性:长在水中;果树的属性:会结果;苹果树的属性:结苹果。
2)树和草与植物间的关系是AKO,水草和草之间的关系是AKO;果树和树之间的关系是AKO;苹果树和果树间的关系是AKO。
3)根据信息继承性原则,各上层节点的属性下层都具有,在下层都不再标出,以避免属性信息重复。例如,草的属性是有根有叶,而水草也有根有叶,但这些属性不再在水草中标出;苹果树是树的下层节点,树的属性有根有叶将不再在苹果树中标出。
语义网络表示法
4)根据上面的分析,本题共涉及6个对象,各对象的属性以及它们之间的关系已在上面指出,所以本题的语义网络应是由6个节点构成的有向图,弧上的标注以及各节点的标注已在上面指出。语义网络如下图所示:
语义网络表示法
例:苹果树枝繁叶茂,结了很多苹果,有大的,有小的,有红的,也有绿的。
解题分析:
1)涉及的对象有:苹果树和苹果。苹果树的属性是枝繁叶茂,而苹果则有几种不同的状态:又大又红,又大又绿,又小又红,又小又绿。
2)确定各对象间的关系。苹果是结在苹果树上的,如果定义一种“结在”的关系,则“苹果”与“苹果树”间的关系就可以用“结在”弧连接。
3)可以设立四个节点“大的”,“小的”,“红的”,“绿的”,并用“与”“或”将它们联系起来,以表示上述四种状态。
4)为网络中的各对象标识属性,并用适当的关系弧将各对象连接起来,得到如下图所示的语义网络。
语义网络表示法
语义网络表示法
语义网络表示下的推理过程
语义网络系统中的推理方法有两种:匹配和继承
1. 匹配推理
推理的步骤如下:
1)根据提出的待求解问题,构造一个局部网络或网络片段,其中有的节点或弧的标注是空的,表示有待求解问题,称作未知处。
2)根据这个局部网络或网络片段到知识库中查找可匹配的语义网络,以便求得问题的解。当然,这种匹配不一定是完全的匹配,具有不确定性,因此,需考虑匹配的过程,以解决不确定性匹配问题。
3)问题的局部语义网络与知识库中的某语义网络片段向匹配时,则与未知处向匹配的事实就是问题的解。
语义网络表示法
2. 继承匹配
语义网络中,具有类属关系的概念间属性具有继承性。继承一般有值继承和过程继承两种。
1)值继承:也称作属性继承,一般适于ISA和AKO等之间的语义推理。在这些语义联系下的推理是一种直接推理。
2)过程继承:也称为方法继承,是表示语义网络中下层节点的某些属性值并不是从上层节点直接继承下来的,而是通过计算才能得到,但它的计算方法却是从上层节点继承下来的。所以,继承的是有关某属性值的计算过程或计算方法,故称为过程继承。
语义网络表示法
语义网络表示法的特点
1、优点
1)结构性好
2)自然性
3)联想性
2、缺点
1)非严格性
2)复杂性
3)组合爆炸问题
4)不充分性
语义网络表示法
思考题:
1 用语义网络表示下列知识:
1)鸟是一种动物
2)小飞船由机翼和机身组成
2 请对下列命题分别写出它的语义网络:
1)孙老师从2月至7月给计算机应用专业讲“网络技术”课程。
2)雪地上留下一串串脚印,有大的,有小的,有的深,有的浅。
框架表示法
框架理论
1975年,Minsky在MIT人工智能实验室时发表了题为“A Framework for Representing Knowledge”,提出了框架理论,主要作为理解视觉、自然语言对话和其他复杂问题的方法。
框架理论的基本观点是:人脑中已存储了大量事物的典型情景,也就是人们对这些事物的一种认识,这些典型情景是以一个称作框架的基本知识结构存储在记忆中的,当人面临某一情景时,就从记忆中选择(匹配)一个合适的框架,这个框架是以前记忆的一个知识空框,而其具体内容要依新的事物情景的认识,而这种认识的新框架又可记忆于人脑之中,以丰富人的知识。
框架表示法
框架的定义及组成
框架是一种描述所论对象属性的数据结构,一个框架可以由框架名、槽、侧面和值四部分组成。框架一般可表示成如下格式:
框架表示法
用框架表示知识的步骤
1)分析待表达知识中的对象和属性,对框架中的槽进行合理设置。
2)对各对象间的各种联系进行考察,使用一些常用的或根据具体需要定义一些表达联系的槽名,来描述上下层框架间的联系。
3)对各层对象的“槽”及“侧面”进行合理的组织安排,避免信息描述的重复。
框架表示法
框架举例
1)框架可以用来表示所讨论的对象,如一个事物、一个事件或一个概念,它是知识表示的基本单位。
例:优质商品框架。
框架名:<优质商品>
商品名称:
生产厂家:
获奖情况: 获奖等级:
颁奖部门:
颁奖时间:单位(年,月,日)
框架表示法
例:下面是关于地震的报道,请用框架表示这段报道。
今天,一次强度为里氏级的强烈地震袭击了下斯洛文尼亚(Low Slabovia)地区,造成25人死亡和25亿美元的财产损失。下斯洛文尼亚地区主席说:“多年来,靠近萨迪壕金斯断层的重灾区一直是一个危险地区,这是本地区发上的第3号地震。”
框架表示法
解:1)确定属性——即框架的槽。
本报道中关于地震的关键属性是地震发生的地点、时间、伤亡人数、财产损失数量、地震强度的震级、断层情况。
2)分析本报道中各对象间的联系,由于其中只涉及地震一件事,所以本步可以省略。
下面将本报道中有关数据填入相应槽后得到的3号地震的框架。
框架名:<地震>
地点:Low Slabovia
时间:今天
伤亡人数:25人
财产损失:25亿
震级:
断层:萨迪壕金斯
框架表示法
该框架可用下图表示:
框架表示法
2)框架系统:单个框架只能表示简单对象的知识,实际的系统也并非象上面的例子那样简单。在实际应用中,当对象比较复杂时,往往需要把多个相互联系的框架组织起来进行表示,这些相互联系的框架就形成了一个框架系统。框架的实用性在于框架之间的这种层次结构和继承性;
框架表示法
框架名: <地震> 框架名:<洪水> 框架名:<飓风>
ISA:<自然灾害> ISA:<自然灾害> ISA:<自然灾害>
地点: 地点: 地点:
时间: 时间: 时间:
伤亡人数: 伤亡人数: 伤亡人数:
财产损失: 财产损失: 财产损失:
框架名:<自然灾害>
Instance:<地震><洪水><飓风>
地点:
时间:
……
框架表示法
这四个框架组成的“自然灾害”框架系统也可以表示为如下图所示的框架图,框架系统可看做一个广义的语义网络;但说到框架必须强调实例和类,而不是节点;强调槽和槽值,而不是连线和连线的终节点:
框架表示法
框架表示下的推理方法
求解问题的匹配推理步骤如下:
1)把求解的问题用一个框架表示出来,其中有的槽是空的,表示待求解的问题,称作未知处。
2)通过与知识库中已有的框架进行匹配,找出一个或多个可匹配的预选框架作为初步评价,以便决定是否接受它。
3)使用一种评价方法对预选框架进行评价,以便决定是否接受它。
4)若可接受,则与问题框架的未知处相匹配的事实就是问题的解。
框架表示法
框架名:<教师1>
姓名:王 刚
年龄:30
性别:男
职称:讲师
部门:计算机学院
住址:<住址框架-1>
工资:<工资框架-1>
参加工作时间:
框架名:<教师2>
姓名:李 强
年龄:58
性别:男
职称:教授
部门:计算机学院
住址:<住址框架-1>
工资:<工资框架-1>
参加工作时间:
框架表示法
当前要解决的问题是从知识库中找出一个满足如下条件的教师:
男性,年龄在35岁以下,职称为讲师
把这些条件用框架表示出来,就可以得到如下的初始问题框架:
框架名:<教师-x>
姓名:
年龄:
性别:男
职称:讲师
框架表示法
框架表示法的特点
1)结构性
2)继承性
3)自然性
应用:
CYC获取常识性知识:CYC(Encyclopedia) 百科全书;CYC的开发者相信:无大量知识就即无法实现智能,所以他们构建了一个由各种描述概念的框架组成的巨大网络。现在,CYC已有了4000多种连线和数十种专用的推理模块。
框架表示法
思考题:
1.试写出“学生框架”的描述。
2.试写出“教室框架”的描述。
框架表示法
框架名:<学生>
姓名:单位(姓和名)
年龄:单位(岁)
性别:范围(男,女)
缺省(男)
健康状况:范围(健康,一般,差)
缺省(一般)
所在系别:单位(系)
专业:范围(系中所包含的专业列表)
入学时间:单位(年,月)
毕业时间:单位(年,月)
成绩:范围(优,良,中,差)
缺省(良)
框架表示法
框架名:<教室>
墙数:
窗数:
门数:
座位数:
前墙:<墙框架>
后墙:<墙框架>
左墙:<墙框架>
右墙:<墙框架>
门:<门框架>
窗:<窗框架>
黑板:<黑板框架>
天花板:<天花板框架>
地板:<地板框架>
讲台:<讲台框架>
状态空间表示法
问题状态空间的构成
状态空间表示法是以“状态空间”的形式对问题进行表示。
1)状态:是描述问题求解过程中不同时刻状况的数据结构。一般用一组变量的有序集合表示:Q=(q1,q2,…,qn) 其中每个元素qi为集合的分量,称为状态变量,当给每个分量以确定的值时,就得到了一个具体的状态。
状态空间表示法
2)算符:引起状态中某些分量发生变化,从而使问题由一个状态变为另一个状态的操作称为算符。
3)状态空间:由表示一个问题的全部状态及一切可用算符构成的集合称为该问题的状态空间。用三元组表示:(S,F,G),其中S表示问题所有可能的初始状态的集合、F表示算符集合、G表示目标状态的集合;状态空间的图示形式称为状态空间图,其中节点表示状态,有向边表示算符。
状态空间表示法
4)问题的解:从问题的初始状态集合S出发,经过一系列问题的算符运算,到达目标状态。由初始状态到目标状态所用算符的序列就构成了问题的一个解。
状态空间表示法
状态空间表示问题的步骤
1)定义状态的描述形式。
2)用所定义的状态描述形式把问题的所有可能的状态都表示出来,并确定出问题的初始状态集合描述和目标状态集合描述。
3)定义一组算符。利用这组算符可把问题由一种状态变为另一种状态。
*
状态空间表示概念详释
例如下棋、迷宫及各种游戏。
Middle
State
Goal
State
状态空间表示法
利用状态空间求解问题的过程
问题的求解过程是一个不断把算符作用于状态的过程。首先将适用的算符作用于初始状态,以产生新的状态;然后再把一些适用的算符作用于新的状态;这样继续下去,直到产生的状态为目标状态为止。
这样,就得到了一个问题的解,这个解是从初始状态到目标状态所用算符构成的序列。
*
例:三数码难题
(3 puzzle problem)
初始棋局
目标棋局
*
状态空间表示举例
产生式系统(production system)
一个总数据库:它含有与具体任务有关的信息。随着应用情况的不同,这些数据库可能简单,或许复杂。
一套规则:它对数据库进行操作运算。每条规则由左部鉴别规则的适用性或先决条件以及右部描述规则应用时所完成的动作。
一个控制策略:它确定应该采用哪一条适用规则,而且当数据库的终止条件满足时,就停止计算。
*
状态空间表示举例
例:猴子和香蕉问题
*
解题过程
用一个四元表列(W,x,Y,z)来表示这个问题状态.
这个问题的操作(算符)如下:
goto(U)表示猴子走到水平位置U
或者用产生式规则表示为
(W,0,Y,z) goto(U) (U,0,Y,z)
*
pushbox(V)猴子把箱子推到水平位置V,即有
(W,0,W,z) pushbox(V) (V,0,V,z)
climbbox猴子爬上箱顶,即有
(W,0,W,z) climbbox (W,1,W,z)
*
grasp猴子摘到香蕉,即有
(c,1,c,0) grasp (c,1,c,1)
该初始状态变换为目标状态的操作序列为
{goto(b), pushbox(c), climbbox, grasp}
*
目标状态
goto(U)
goto(U)
U=b,climbbox
goto(U)
U=b
pushbox(V)
猴子和香蕉问题的状态空间图
goto(U)
U=V
V=c,climbbox
grasp
状态空间表示法
例: 二阶Hanoi塔问题
已知三个柱子1,2,3和两个盘子A,B(A比B小)。初始状态下,A和B依次放在1柱上。目标状态是A和B依次放在3柱上。条件是每次可移动一个盘子,盘子上方是空项方可移动,而且任何时候都不允许大盘在小盘之上。
状态空间表示法
解:
1)定义问题状态的描述形式
设用SK=(SKA,SKB)表示问题的状态,SKA表示盘子A所在的柱号,SKB表示盘子B所在的柱号。
2)用所定义的状态描述形式把问题的所有可能的状态都表示出来,并确定出问题的初始状态集合描述和目标状态集合描述。本问题所有可能的状态共有9种,如下所示:
S0=(1,1) S1=(1,2) S2=(1,3)
S3=(2,1) S4=(2,2) S5=(2,3)
S6=(3,1) S7=(3,2) S8=(3,3)
状态空间表示法
二阶Hanoi塔问题的状态
状态空间表示法
3)定义一组算符F
定义算符A(i,j)表示把盘子A从第i号柱子移到第j号柱子上的操作;算符B(i,j)表示把盘子B从第i号柱子移动到第j号柱子上的操作。这样共定义了12个算符,分别是:
A(1,2) A(1,3) A(2,1) A(2,3) A(3,1) A(3,2)
B(1,2) B(1,3) B(2,1) B(2,3) B(3,1) B(3,2)
至此,该问题的状态空间(S,F,G)构造完成。
状态空间表示法
状态空间表示法
思考题:修道士和野人问题。设有3个修道士和3个野人来到河边,打算用一条船从河的左岸渡到河的右岸。但该船每次只能乘两个人,在任何岸边野人的数目都不得超过修道士的人数。假设野人服从任何一种过河安排,请问如何规划过河计划才能让所有人都安全过河。
问题归约表示法
问题的分解与等价变换
问题的分解是指把一个复杂问题分解为若干个子问题。然后对每个子问题求解,并且只有当所有子问题都有解时,原问题才有解,它的解就是所有子问题的“与”;任何一个子问题无解都会导致原问题无解。
即分解所得到的子问题的“与”和原问题等价。
问题归约表示法
问题的等价变换是指对一个复杂问题进行同构或同态的等价变换,将其变换为若干个容易解决的新问题,只要这些新问题中有一个有解,则原问题就有解,只有当变换得到的所有问题都无解时,原问题才无解。
即等价变换所得到的新问题的“或”与原问题等价。
问题归约表示法
问题归约的与/或树表示
当把一个复杂问题归约为一组本原问题时,其归约过程可以用一个与/或树来表示。
1 )与树
把一个复杂问题分解为若干个子问题,可用一个“与树”来表示这种分解。下图中连接三条有向边的小弧线表示之间是“与”的关系,它们是对节点P的分解,P为“与”节点。
问题归约表示法
2)或树
当把一个复杂问题变换为若干个等价的新问题时,可用一个“或树”来表示这种变换。下图中的有向边不用小弧线连接,它表示P1,P2,P3之间是“或”的关系,即节点P为“或”节点。
问题归约表示法
3)与/或树
如果一个问题既需要通过分解,又要通过变换才能得到本原问题,则其求解过程可用一个“与/或树”来表示。在“与/或树”中,根节点是待求解的原始问题。如下图:
问题归约表示法
4 端节点与终止节点
在与/或树中,没有子节点的节点称为端节点;本原问题所对应的节点称为终止节点。可见,终止节点一定是端节点,但端节点却不一定是终止节点。
问题归约表示法
5 可解节点与不可解节点
与/或树中,满足以下三个条件之一的节点为可解节点:
1)该节点是一个终止节点。
2)该节点是一个“或”节点,且其子节点中至少有一个为可解节点。
3)该节点是一个“与”节点,且其子节点全部为可解节点。
同样,满足下列条件之一的节点为不可解节点:
1)该节点是一个端节点,但却不是终止节点。
2)该节点是一个“或”节点,其子节点中没有一个是可解节点。
3)该节点是一个“与”节点,其子节点中至少有一个为不可解节点。
问题归约表示法
6 解树
解树是一个由可解节点构成,并且可由这些可解节点推出初始节点也为可解节点的子树。解树中一定包含初始节点。例如右图(图中t表示终止节点):
问题归约表示法
用与/或树表示问题的步骤
1)对所求问题进行分解或等价变换。
2)若所得的子问题不是本原问题,则继续分解或变换,直到分解或变换为本原问题。
3)在分解或变换中,若是分解,则用“与树”表示,若是等价变换,则用“或树”表示。
问题归约表示法
与/或树表示举例
例:三阶Hanoi塔问题。如图:
*
解题过程(3个圆盘问题)
*
问题归约表示法
解:第一步,设用三元组(i,j,k)表示问题在任一时刻的状态,其中i,j,k分别代表大C,中B,小A盘所在的柱号;用“→”表示状态的转换。
则原始问题表示为: (1,1,1)→(3,3,3)
第二步,利用归约方法,原问题可分解为以下三个子问题:
1)把盘子A和B移到2号柱子上的双盘移动问题。即:
(1,1,1)→(1,2,2)
2)把盘子C移到3号柱子的单盘移动问题。即:
(1,2,2)→(3,2,2)
3)把盘子A和B移到3号柱子上的双盘移动问题。即:
(3,2,2)→(3,3,3)
问题归约表示法
第三步,根据分解与变换画出与/或树。如下图,图中有7个终止节点,对应7个本原问题,若把这7个本原问题从左到右排列起来,即得到了原始问题的解。
剧本表示法
剧本的定义与组成
1.剧本的定义
剧本就是一个用来描写人类某种活动的事件序列,或者说,剧本试图表达人们已成陈规的事件序列的知识。其实,我们可以将剧本看作是框架的一种特殊形式,特定范围内的一些事件的发生序列可以由一组槽来描述,利用槽之间的关系表达事件的发生的先后。
剧本表示法
在表示叙事型的知识时,首先将知识中的各种故事情节的基本概念抽取出来,构成一个原语集,确定原语集中个原语间的相互依赖关系,然后把所有的故事情节都以原语集中的概念及它们之间的从属关系表示出来。
Schank在其研制的SAM(Script Applier Mechanism)中对动作一类的概念进行了原语化,抽象出了如下11种动作原语:
剧本表示法
1)INGEST:表示把某物放入体内。如吃饭、喝水。
2)PROPEL:表示对某一对象施加外力。如推、压、拉等。
3)GRASP:表示行为主体控制某一对象。如抓起某件东西,扔掉某件东西等。
4)EXPEL:表示把某物体排出体外。如呕吐等。
5)PTRANS:表示某一物理对象物理位置的改变。如某人从一处走到另一处,其物理位置发生了变化。
6)MOVE:表示行为主体移动自己身体的某一部位。如抬手、蹬脚、弯腰等。
剧本表示法
7)ATRANS:表示某种抽象关系的转移。如当把某物交给另一人时,该物的所有关系即发生了转移。
8)MTRANS:表示信息的转移。如看电视、窃听、交谈、读报、等。
9)MBUILD:表示有已有的信息形成新信息。如由图、文、声、像形成的多媒体信息。
10)SPEAK:表示发出声音。如唱歌、喊叫、说话等。
11)ATTEND:表示用某个感觉器官获取信息。如用眼睛看某种东西或用耳朵听某种声音。
剧本表示法
利用这11种动作原语及其相互依赖关系,可以把生活中的事件编制成脚本,每个脚本代表一类事件,并把事件的典型情节规范化。当接受一个故事时,就找一个与之匹配的脚本,根据脚本排定的场景次序来理解故事的情节。
剧本表示法
2.脚本的组成
脚本与日常生活中的电影剧本有些相象,有角色(人或演员)、道具、场景等。通常一个脚本由以下几部分构成。
1)进入条件:给出在脚本中所描述事件的前提条件。
2)角色:是一些用来表示在脚本所描述事件中可能出现的有关人物的槽。
3)道具:是一些用来表示在脚本所描述事件中可能出现的有关物体的槽。
4)场景:用来描述事件发生的真实顺序。一个时间可以有多个场景组成,而每个场景又可以是其他的脚本。
5)结果:给出在脚本所描述事件发生以后所产生的结果。
剧本表示法
2.8.2用脚本表示知识的步骤
用脚本表示知识的步骤如下
1)确定脚本运行的条件,脚本中涉及的角色、道具;
2)分析所要表示的知识中的动作行为,划分故事情节,并将每个故事情节抽象为一个概念,作为分场景的名字,每个分场景描述一个故事情节;
3)抽取各个故事情节(或分场景)中的概念,构成一个原语集,分析并确定原语集中各原语间的互相依赖关系与逻辑关系;
4)把所有故事情节都以原语集中的概念及它们之间的从属关系表示出来,并确定脚本的场景序列,每一个子场景可能由一组原语序列构成;
5)给出脚本运行后的结局。
剧本表示法
2.8.3用脚本表示知识举例
例1 用脚本表示医院就医
解:第一步:确定脚本运行的条件及涉及的角色和道具。
进入条件应该是患者得了病,需要医治,当然要治病患者必须要有足够的钱;到医院看病涉及的角色有:患者、医生、挂号员、划价收费员、发药员等;涉及的道具包括:挂号台、诊疗室、听诊器、划价交费台、药房、药方、药等。
第二步:根据知识中的动作行为,抽象概念,确定分场景。
分场景应该包括:进入医院、挂号、就诊、划价缴费、取药、离开医院等。
剧本表示法
第三步:抽取各故事情节的中的概念,构成一个原语集,并确定各原语间的关系。
在进入医院的场景中,患者走进医院的原语为PTRANS;在挂号场景中,患者寻找挂号台(ATTEND),走向挂号台(PTEANS),把挂号费交给挂号员,挂号员再把就诊费交给患者,其相应的原语均为ATRANS;另外各场景涉及的原语分别为:就诊——ATTEND,MTRANS,MBULLD;划假缴费;取药;离开医院。
第四步:按照故事情节和原语间的关系,写出脚本。
第五步:脚本运行的结果,患者看了病,抓了药,花了钱。
剧本表示法
脚本:医院就医
1)进入条件:①患者得了病,需要就医;
②患者有足够的钱;
2)角色:患者、医生、挂号员、划价收费员、发药员。
3)道具:挂号台、诊疗室、听诊器、划价交费台、药房、药方、药。
4)场景
剧本表示法
场景1:进入医院
①PTRANS 患者走进医院。
场景2:挂号
①ATTEND 寻找挂号台;
②PTRANS 走到挂号台前;
③ATRANS 患者将挂号费交给挂号员;
④ATRANS 挂号员将就诊费交给患者。
剧本表示法
场景3:就诊
①PTRANS 患者走向诊疗室;
②ATTEND 寻找自己所要看的医生;
③PTRANS 走向医生;
④ATRANS 患者将就诊号交给医生;
⑤DLAGNOSE 医生为患者诊病(通过调用“诊药”的脚本实现);
⑥ATRANS 医生将处方交给患者。
剧本表示法
场景4:划价缴费
①PTRANS 患者走向划价收费台;
②ATRANS 将处方交给划价收费员;
③CALCUL 划价员计算药价(通过调用“划价”的脚本实现);
④SPEAK 告诉患者药的价钱;
⑤ATRANS 患者向收费员付款:
⑥ATRANS 划价收费员将粘有缴费单的处方及收据交给患者。
剧本表示法
场景5:取药
①PTRANS 患者走向药房发药窗口;
②ATRANS 将粘有缴费单的处方交给发药员;
③ATTEND 发药员浏览处方;
④GRASP 从药架上取药;
⑤ATRANS 发药员将药递给患者;
场景6:离开医院
①PTRANS 患者离开医院。
剧本表示法
5)结果
①患者看了病,抓了药;
②患者花了钱;
③医院赚了钱;
④医院的药品少了。
剧本表示法
2.8.4脚本表示下的推理方法
与其他表示法类似,用脚本表示的问题求解系统一般也包括知识库和推理机。知识库中的知识用脚本来表示,一般知识库中包含了许多已事先写好的脚本,每一个脚本都是对某一类型的事件或知识的描述,当需要求解问题时,问题求解系统中的推理机构,首先到知识库中搜集寻找是否有适于描述所要求解问题的脚本,如果有(可能有多个)。则在适于描述该问题的脚本中,利用一定的控制策略(比如,判断所描述的问题是否满足该脚本的进入条件),选择一个脚本作为起用脚本,将其激活,运行脚本,利用脚本中的因果链实现问题的推理求解。
剧本表示法
脚本表示法的特点
1)自然性
2)结构性
面向对象表示法
2.9.1 面向对象的基本概念
1.对象
对象就是由一组数据和与该组数据相关的操作构成的封装体或实体。
例如,“人”是一个对象,它至少具有以下一些属性(或者可表征它的一些数据):name weight hair-color age height skin-color
相应地操作为:
Birthday(age): 每年实现age+1
面向对象表示法
这里,name、weight、 hair-color、 age、 height、 skin-color都是“人”的属性,birthday(age),是一个将age每年加1的过程,在这里称做方法(method)。如果给其中的每一个属性赋一具体值,就得到“人”这个对象的一个实例。实例就是一个具体的人,实例其实也是一个对象,只不过比“人“这个对象低了一个层次。如果将每个具体的人看作对象。则”人“又会抽象成类,类的概念下面就要介绍,所以,类和对象都是一个相对的概念。
面向对象表示法
2.类
在面向对象表示中类和类继承都是很重要的概念,类在概念上是一种抽象机制,它是对一组相似对象的抽象。类由一组变量和一组操作组成,它描述了一组具有相同属性和操作的对象。类是一个相对概念。例如,黑白电视、彩色电视都是具有对象,但它们有共同属性,于是可以把它们抽象为“电视”,“电视”是一个类对象。各个类还可以进一步进行抽象,形成超类。例如,对电视、冰箱等,可以形成超类“家用电器”。这样,超类、类、对象就形成了一个层次结构。其实该结构还可以包含更多的层次,在此结构中,层次越高越抽象,越低越具体。
面向对象表示法
3.继承
一个类拥有另一个类的全部变量和操作,这种拥有就是继承。前者称为子类,后者称为父类,父类所具有的数据和操作可被子类继承。
面向对象表示法
4.封装
一个对象的数据只能由它的私有操作(方法)来改变,其他对象的操作不能直接改变它的数据。当一个对象需要改变另一个对象的数据时,它只能向该对象发送消息,该对象接受消息后就根据消息的模式找出相应的操作,并执行操作改变自己的数据
像这样把一切局部对象的信息及操作都局限于对象之内,在外面是不可见的,对象之间除了互递消息之外,不再有其他联系,这就是所谓“封装”的概念。
封装是一种信息隐藏技术,是面向对象的主要特征。
面向对象表示法
2.9.2表示知识的方法
用面向对象方法表示知识时,需要对类的构成形式进行描述。不同的面向对象语言所提供的类的描述形式不同,下面给出一般的描述形式;
Class〈类名〉[:〈父类名〉]
[〈类变量表〉]
Strueture
〈对象的静态结构的描述〉
Method
〈关于对象的操作定义〉
Restraint
〈限制条件>
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*