知识表示结构
专家系统运作的基础是某一领域专家的经验和知识,如何将燃气轮机的具体知识准确地加以描述,使其具有通用性、可理解性及可扩充性是本章研究的核心论题。首先本章简要介绍几种常见的知识表示方法,然后结合实例讨论本文采用的知识表示方法。
§ 1 知识及知识表示方法分类
1. 知识 关于知识的定义有多种说法,有人认为知识是经过加工、整理和改造后的信息;有人认为知识是由特定领域的描述、关系和过程组成;而海叶斯-罗斯( Heyes -Roth )则给出知识的公式性描述:知识=事实+信念+启发式。
2. 知识表示 知识表示是知识的符号化过程,是专家系统的核心课题。知识表示的主要任务是设计出各种数据结构作为某一领域专家知识的载体。
3. 知识表示方法分类 知识表示方法一般常用的有以下四种:
a. 语义网络
b. 产生式规则
c. 框架
d. 谓词逻辑表达式
§ 2 几种知识表示方法的比较
一、语义网络表示法
语义网络是知识的图解表示,如图 3 - 1 所示,它由节点和描述节点之间关系的链连接而成。
节点用以表示对象和描述部分。对象是客观存在的物质实体,如“压气机”、“涡轮”,“叶片”等;对象也可以是无形的抽象实体,如行动、事件等。描述部分提供有关对象的附加信息,如“变形”提供了关于“叶片”的附加信息。
链连接对象和描述部份,链可以表示任何关系,通常链分为三类: (1) Is-a 链,常用于表示类和实例之间的关系。如图 3 - 1 中节点“ MS6001B 型”是节点“燃气轮机”的一个实例。 (2) Has-a 链,表示节点之间的所属关系。如图 3 - 1 中节点“压气机”、“涡轮”则属于“ MS6001B 型”节点。 (3) 自定义链用于表示除上述两种关系外的所有关系,如图 3 - 1 中节点“变形”同“外来杂物”之间的关系用自定义链 Caused-by 表示。由于自定义链的存在,使得所有关系均可用上述三种方法表示。
图 3-1 语义网络表示实例
二、谓词逻辑表示法
谓词逻辑是在命题逻辑的基础之上发展起来的一种知识表示方法。它将一个原子命题分解为“谓词”和“个体词”两个部分,例如:“ X 是一种燃气轮机”这样一个命题,在谓词逻辑中可用 GASTURBINE ( X )表示。其中 GASTURBINE 是谓词, X 是个体词,是一个变量,可用它代表燃气轮机家族中的任一种型号。谓词有一元和多元之分,有 n 个个体词的谓词称为 n 元谓词,如命题“燃气轮机包括主机和辅机两大部分”可用二元谓词 GASTURBINE ( MAIN , ACCESSORY )表示,其中 MIAN 代表主机, ACCESSORY 代表辅机。
由于谓词逻辑是在命题逻辑的基础之上发展起来的,所以命题逻辑演绎的等价式以及相应的推理规则、量词使用规则、蕴含式均适用于谓词逻辑的演绎推理,所不同的是对命题逻辑的演绎式均以量词加以量化。
三、产生式系统
产生式系统( Production System )是一个基于规则的系统,它用一组产生式规则来表示领域专家的知识。
产生式规则主要用于描述有关问题的状态转移,性质变化以及因果关系等过程性知识,每一条规则都是一个“条件(产生)行动”或“证据(产生)结论”,所以叫产生式,其规则的表达形式为:
如果( IF ) A 则( THEN ) B
式中 A 表示规则的条件(前提)部分, B 表示规则的行动(结论)部分,它表明事物满足了什么样的条件,会产生什么样的行动,或满足了什么样的前提(证据),会得到什么样的结论。凡是有直接因果关系的知识,都可以用产生式规则来表示。
在燃气轮机系统的故障诊断中,专家们也常常根据某些故障现象来判断哪个机组部件发生了故障,并确定应当采取什么样的处理方法。
燃机电厂的机组管理人员,判定运行中的发电机组发生内部故障的判据是:发电机组开关自动跳闸、发电机组差动保护动作、发电机组的仪表有急剧升降变化、且有相应的声光报警。对于这些知识和经验,可以通过二条产生式规则来表示,即
Rule1: 如果 发电机组自动跳闸 且
发电机组差动保护器动作 且
发电机组仪表有急剧升降变化 且
有声光报警
则 机组内部故障
Rule2: 如果 机组内部故障
则 机组全停
图 3 - 3 产生式规则的直观表示
用类似的方法,还可以建立其它规则。
四、框架表示法
框架理论首先由 Minsky 于 1975 年提出,作为视觉理解、自然语言对话和其他复杂行为的基础。框架的一种表示方法是把它表示成一个嵌套的连接表,在最高层,框架结构是这样的:
( < 框架名 > ( < 槽名 1> …) ( < 槽名 2> …)…)
在下一层中,每一个槽具有同样的结构:
( < 槽名 > ( < 侧面名 1> …) ( < 侧面名 2> …)…)
每一个侧面又包含若干值:
( < 侧面名 > ( < 值 1> …) ( < 值 2> …)…)
因此一个框架可以拥有任意数目的槽,每个槽又可以包含任意数目的侧面,每个侧面又可以包含任意数目的值。给出一条燃气轮机结构知识如下:
主机系统包括压气机、燃烧室、涡轮;压气机有出口温度参数和叶片部件;涡轮有出口温度参数和出口压力参数;每一参数值有过高、过低二种异常状态描述;叶片有磨损、变形、断裂三种状态。
这条知识用框架可以简单的表示如下
(框架名 主机系统)
( < 槽名 1 压气机 > ( < 侧面 1 出口温度 > ( < 值 1 过低 >
< 值 2 过高 > 〕〕
( < 侧面 2 叶片 > ( < 值 1 磨损 >
< 值 2 变形 >
< 值 3 断裂 > 〕〕〕
( < 槽名 2 涡轮 > ( < 侧面 1 出口 温度 > ( < 值 1 过低 >
< 值 2 过高 > 〕〕
( < 侧面 2 出口压力 > ( < 值 1 过低 >
< 值 2 过高 > 〕〕〕
( < 槽名 3 燃烧室 > )………
〕
图 3 - 4 简单框架表示
上述表示属于传统的框架方法,但是足以说明框架方法对结构化知识表示的有效性,目前框架知识表示应用十分广泛。
五、几种知识表示方法的比较
语义网络表示能够较全面详细地反映客观事物,但是其结构非层次化,不能清晰地表达对象之间的界面,且语义网络本质上是一种有向图,图的存贮需要大量空间,其搜索效率也不高。
谓词逻辑表示法的优点是精确程度高、逻辑性强。但是它试图用逻辑函数来描述客观事物的各种状态,在状态空间较大的问题求解过程中,动态数据库同知识库操作的匹配以及操作序列的确定会导致时空方面的膨胀,即所谓知识的组合爆炸。
产生式规则的最大优点是自然性,能够方便地表达专家的经验类浅层知识,而且还可以附加可信度因子( CF - certainty factor )来表征专家经验的可靠性程度,从而使得不精确推理能够实现,其形式很符合人类的思维逻辑。但是表达方式较简单,对知识的解释能力不够,对于复杂的结构化深层知识则显得力不从心,因为人类专家的知识并非仅仅是“ if-then ”的形式。
框架则是一种结构化、层次化很强的知识表达方式,由于其特有的“框架-槽-侧面-框架…”型嵌套结构,使得框架能从多个方面、多重属性表示任意复杂层次的对象,而侧面中的若干值域又可以定量地反应对象层次中各元素的属性。同时每个框架形成独立的知识单元,这种知识单元上的操作相对独立,从而框架表示具有一定的模块性,有利于知识的扩充。相对于产生式系统而言,它适合于描述对象的结构化原理知识,或者说专家的深层次知识。框架表示也有它的缺点,如图 3 - 4 所示,就是规模过于庞大、复杂,要表达一条知识,必须以维持庞大的框架结构为代价。关于这一点,后文会作详细分析。
为了清楚地了解几种表达方式的特点,综合以上分析,以表格的形式描述如下:
知识表达方式
|
优点
|
适合于何种知识
|
不足之处
|
语义网络
|
自然性、全面性
|
深层知识
|
非层次化、界面不
清晰、空间开销大
|
谓词逻辑
|
精确性、逻辑性
|
深、浅层知识
|
易导致组合爆炸
|
产生式
|
自然性
|
浅层知识
|
解释能力有限
|
框架
|
层次化、表达能力强
|
深层知识
|
空间开销大、
结构复杂
|
表 3 - 1 几种知识表达方式比较
燃气轮机结构复杂,影响其性能的因素众多,而且诸因素之间往往存在着一个或多个因果链;另外,燃气轮机从结构原理上讲存在着较强的层次性,必须寻找一种知识表示方式能够将燃气轮机复杂的内部结构知识及诸多性能之间的因果关系准确完整地表示出来,这种知识的多态性要求相应知识表达方式具有多样性。
鉴于以上分析,本文中我们采用产生式同框架相结合的知识表达方式,根据框架表示规模大、结构复杂的缺点,提出了知识元间的关联思想,并以此为基础提出了逻辑框架的概念。以逻辑框架描述燃气轮机的结构化原理等深层知识,以基于框架的产生式规则来描述专家经验等浅层知识,充分发挥两种知识描述方式的优点。浅层知识以深层知识为基础,同样,专家的经验则是建立在专家的结构化原理性知识的基础之上,而描述浅层知识的产生式规则基于描述深层知识的逻辑框架表示法之上,逻辑框架与产生式相结合是专家知识和经验的完美再现。
§ 3 燃气轮机的知识表示
前两节讨论了几种知识表达方式,并确认本系统采用框架与产生式相结合的知识表达方式,本节我们进一步讨论这种复合型描述方式如何描述燃气轮机专家的经验和知识。
§ 3 - 1 燃气轮机专家知识的分类
燃气轮机专家有偏重于设计型的,也有偏重于运行和操作型的,相应地燃气轮机知识也分为以结构化原理知识为主的深层知识和以实际运行经验为主的浅层知识,这里“深层”与“浅层”只反映在不同的实践环境下,根据实际需要对事物不同侧面的认识,与知识和经验的认识深度、正确性程度无关。事实上,这两类知识在专家身上是并存的,只不过由于实际分工的不同,其侧重点不同而已。
以 MS6001B 型机组为例,如图 3 - 5 所示,它包括如下几个主要系统:
主机系统
润滑油系统
进口可转导叶系统
冷却空气与密封空气系统
燃料系统
进气与排气系统
通风加热系统
启动系统
液压供给系统
水冲洗系统
而图 3 - 5 中的每一个系统又包含若干个子系统,如主机系统包括压气机、燃烧室、涡轮。每一子系统又包括若干个对象(参数或部件),如压气机包括温度、压力、叶片等等,而每一对象又处于不同的状态,如温度有过高、过低等状态,叶片有完好、磨损、断裂等状态。燃气轮机的这种多级多层次树形结构是其结构化原理性知识的体现,属于深层知识。以主机系统为例,其层次性树形结构如图 3 - 6 所示。
燃机专家的经验,之所以称之为浅层知识,是因为经验本身并不涉及燃气轮机的结构原理,有下述关于航空燃气轮机的专家经验:
当压气机效率变化太大时,可能是下述几种原因造成:
1. 压气机叶片磨损
图 3 - 5 MS6001B 型燃机主要系统
图 3 - 6 主机系统树形层次结构
2. 压气机叶片被外来物损伤
3. 进气导流器结冰
4. 压气机喘振
5. 进气导流器和整流器转动机构工作不正常
6. 压气机叶片断裂
7. 篦齿密封圈和轴承损坏
8. 放气机构工作不正常
上述经验知识完全可以从实际运行过程中积累总结而出,可以不必知道其理论上的因果关系。但是专家的经验总是自觉或不自觉的依赖于一定的深层知识背景,这就是为什么采用框架表示深层知识的同时,要采用基于框架的产生式表示浅层知识。
§ 3 - 2 燃气轮机深层知识表示
在决定了采用框架表示深层知识之后,剩下的任务是如何利用框架正确地表示燃气轮机深层知识。针对传统框架表示规模开销太大的缺点,提出了关联的思想,并在此基础上对传统框架表示予以改进,提出了燃气轮机知识的逻辑框架表示法。
一、传统的框架表示复杂性分析
这里只讨论传统框架表示的空间复杂性,以便同本文提出的逻辑框架结构作一比较。以图 3 - 4 的框架表示为例,为简单起见,省去关于燃烧室的第三个槽。该框架结构在计算机内存中的形式如下:
图 3 - 7 一般框架表示的内存形式
该结构在内存中分为 7 组,每组又由若干小内存块构成, 1 、 2 、 3 组的每个小内存块由两部分构成,前者存放系统、部件或参数的名称,后者存放该名称所包含的部件、部件名、参数名、在内存中的地址(即指针,由箭头表示,可能有多个)。 4 、 5 、 6 、 7 四组存放参数的值或部件的状态,没有地址域(指针)。以十六位编程模式为例,每个汉字占 2 个字节,地址(指针)占 4 个字节,设参数的值为实型,占 6 个字节,按此算法,以上 7 组所占空间开销如下表所示:
组编号
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
合计
|
有效字节数
|
8
|
10
|
28
|
8
|
12
|
8
|
8
|
82
|
指针字节数
|
8
|
16
|
48
|
0
|
0
|
0
|
0
|
72
|
合计
|
16
|
26
|
76
|
8
|
12
|
8
|
8
|
154
|
表 3 - 2 一般框架表示内存开销统计
如上表所示,该结构在内存中共占用 152 个字节,其中用来存贮有效信息的空间为 82 字节,而用来存放指针的额外开销就占了为 72 字节,那么有效空间利用率为 82/154=53.25% ,这个效率太低,同本文提出逻辑框架表示的有效内存利用率相比(见后文)会更为明显。
二、燃气轮机元知识及其分类
所谓元知识,就是关于知识的知识。具体地说,它包括两个方面,一是构成专家经验和知识的知识,本文中称它为知识元;另一方面是指专家经验和知识的组成规范,即由知识元构成知识的一组规定,本文中称之为关联。考虑如下关于燃气轮机的简单知识:
主机系统包括压气机、燃烧室、涡轮;压气机有出口温度参数和叶片部件;涡轮有排气温度参数和排气压力参数;其中叶片有三种异常状态:磨损、变形和断裂。
为了便于讨论,将上述知识以图解的方式表示如下
图 3 - 8 知识的图解表示
观察图 3 - 8 ,可以发现,它由两部分构成:节点和表示节点之间关系的链。
定义 3 - 1 图 3 - 8 中的各节点称为知识元;图中的链所表示的节点之间的关系称为关联。
依照上述定义,燃气轮机的结构知识事实上表现为燃气轮机知识元之间依照一定逻辑关系的相互关联。 回到图 3 - 6 ,仔细观察主机系统树形层次结构,会发现该结构事实上就是燃气轮机主机系统知识元之间的逻辑关联,而这种结构准确地描述了燃气轮机主机系统的组成结构原理和各参数及部件的状态。同样,对于辅助系统也可以类似地描述。
为以后论述的方便起见,不妨对燃气轮机的知识元作一分类,考察图 3 - 6 和 3 - 8 ,二者都是以四层树形结构准确的描述燃气轮机主机系统的结构知识,顶层为系统名,第二层为该系统名所属的三大部件,称为子系统。第三层则是每个子系统所属的参数或部件。在故障诊断过程中,该层知识元是重点考察的对象,不妨称之为对象名,而第四层则是每个对象可能的状态,称为状态描述。于是,各知识元又可分为四类:系统名、子系统名、对象名和状态描述。
那么是否任一条燃气轮机的知识都可以表示成上述四层结构呢?考察如下关于压气机故障的知识:
主机系统的压气机发生喘振
分析上述知识,“主机系统”属于系统名,“压气机”属于子系统名,“喘振”则是压气机可能的一种状态描述。因此该知识对应图 3 - 6 或 3 - 8 中的 1 、 2 、 4 层,只有三层结构。解决办法是在第 2 、 4 层之间插入一“无名”的空节点,如图 3 - 9 所示:
图 3 - 9 三层结构到四层结构的转换
通过插入空节点,可以将少于 4 层的知识结构化为 4 层结构。同样,可以通过合并节点的方法,将多于 4 层的结构化为 4 层结构。例如,有下面一条知识:
主机系统透平热偶位置不正确
分析上述知识,“主机系统”属于系统名,“透平”为子系统名,“不正确”为状态描述,而“热偶”和“位置”均可以作为对象名存在,但这里“不正确”是对“位置”的描述,“热偶”表示“位置”的所属关系,而者实际上是不可分的。故可将“热偶”和“位置”合并为一个节点表示,如图 3 - 10 所示。
通过上述分析,有如下结论:
结论 3 - 1 燃气轮机的任一条结构化知识,均可由系统名、子系统名、对象名和状态描述逐级关联的四层结构得到描述。
图 3 - 10 五层结构到四层结构的转换
三、燃气轮机深层知识的逻辑框架表示
前面讨论了燃气轮机的元知识及其分类,并给出一个结论,现在讨论燃气轮机的结构化深层知识的具体表示形式:逻辑框架表示法。
为描述问题的方便起见,先给出离散数学中关系的概念。
定义
3
-
2
设
则 R 称为集合上的 n 元关系集,其中的元素称为 n 元关系。
对应图 3 - 6 或图 3 - 8 ,可以将燃气轮机的四层知识元分成四个集合:系统名集、子系统名集、对象名集和状态描述集,而知识元之间的逐级关联,则表现为上述四个集合之间的逐级映射(二元关系运算)。从这个意义上讲,可以给出知识元和关联的另一个定义如下:
定义
3
-
3
设
又令
按上述定义,回到图 3 - 4 中,该条知识可以表示为:
系统名集 A={ 主机系统 }
子系统名集 B={ 压气机,燃烧室,透平 }
对象名集 C={ 出口温度,叶片,出口压力 }
状态描述集 D={ 变形,磨损,断裂,过高,过低 }
一级关联
{
(主机系统,压气机),(主机系统,
燃烧室),(主机系统,透平)
}
二级关联
{
(压气机,出口温度),(压气机,叶片),
(
透平,出口温度),(透平,出口压
力)
}
三级关联
{
(出口温度,过高),(出口温度,过低),
(出口压力,过高)(出口压力,过低),
(叶片,变形),(叶片,磨损),(叶片,
断裂)
}
进一步简化上述表示方法,以知识元在对应集合中的索引号代表相应知识元(严格说来,集合中的元素是没有序号的,即具有无顺序性,但这里的集合事实上就是第四章将要讨论的知识库,为保持论证的逻辑性,现在我们仍称之为集合,并认为其中的元素是可以“标记”的,作这样的假设,并不影响讨论的正确性)。同时将关联首部相同的关联项合并在一起有:
一级关联 { ( 1 ; 1 , 2 , 3 ) }
二级关联 { ( 1 ; 1 , 2 ),( 3 ; 1 , 3 ) }
三级关联 { ( 1 ; 4 , 5 ),( 3 ; 4 , 5 ),( 2 ; 1 , 2 , 3 ) }
这种表达方式可以以图解的方式形象的表示如下:
图 3 - 10 一个逻辑框架示例
这样,利用四层知识元集和它们之间的三级关联,就实现了对图 3 - 8 中知识的精确表示,这种方法摒弃了传统框架结构庞大的缺点,但是从逻辑上精确地实现了深层知识的框架表示,故称之为逻辑框架。由于知识元与其序号之间的唯一对应性,因而推理时,在内存中只需保留关联项即可,而不必考虑其对应的知识元名称。
设序号为无符号型,以 16 位编程模式为例,占用两个字节,则上述一、二、三级关联项共占用 20 × 2=40 个字节,同框架结构的 154 个字节相比,规模缩小为原来的 25.97 %,且无额外开销,有效利用率为 100 %。
§ 3 - 3 燃气轮机的浅层知识表示
燃气轮机专家在长期的实践过程中积累了许多经验,这些经验往往是表层的但却是很有效的。故障诊断专家系统中最终还是要通过这部分知识给用户或维修人员提供解决问题的方法或维修途径。
一、燃气轮机浅层知识的分类
考察下述专家经验:
如果透平轮间温度过高,有可能是下述原因造成:
(1) 冷却空气管路节流阀出故障;
(2) 透平密封件磨损;
其中“透平轮间温度过高”是故障现象(征兆),“冷却空气管路节流阀出故障”和“透平密封件磨损”是故障原因(故障状态),这种由故障现象判断故障原因的知识是诊断推理的依据,称为规则。其中关于故障现象和故障原因的描述,称为断言。
考察另一条经验:
如果透平密封件磨损,则其表现之一是透平轮间温度过高
这条经验是假定某故障发生,则一定会出现相应的表现,称该条知识为征兆。同样,征兆也由断言构成。
综上所述,燃气轮机的浅层知识分为断言、规则及征兆。
二、断言的表示
断言从形式上看是关于燃气轮机故障状态的描述,这种描述可以从燃气轮机的层次结构图上得到准确的体现。观察图 3 - 6 ,由其左分支可以得到一条关于故障现象的断言“主机系统压气机出口温度过高”,由其右分支可以得到“主机系统透平密封件磨损”这一断言。同样,断言“冷却空气管路节流阀出故障”可以从冷却空气与密封空气系统的层次结构图上得到体现。由此可以给出断言的另一定义:
定义
3
-
3
由图
3
-
6
的根节点至某一叶节点而得到的一个描述称为一
个断言(
Assertion
)。令
根据上面论述,每一断言包括四个部分:系统名、子系统名、对象名、状态描述,可以采用简单的四层框架结构表示:
(框架名:断言)
(槽 1 :系统名)
(槽 2 :子系统名)
(槽 3 :对象名)
(槽 4 :状态描述)
断言“主机系统压气机出口温度过高”和“主机系统透平密封件磨损”的框架结构如下:
(框架名:断言 1 ) (框架名:断言 2 )
(槽 1 :主机系统) (槽 1 :主机系统)
(槽 2 :压气机) (槽 2 :透平)
(槽 3 :出口温度) (槽 3 :密封件)
(槽 4 :过高) (槽 4 :磨损)
三、规则和征兆的表示
1. 规则的表示
基于断言框架,我们认为规则是断言的一个组合,规则前件(现象)和规则后件(原因)均可采用断言表示。而实际情况是,同一故障现象可由多种原因导致,不同原因有不同的解决方案。且同一原因又可诱发多重故障现象,为表达这一不确定性对应关系,宜采用不精确知识表达方式,给每一条规则设立规则强度域,以表征该规则为真的量度。因此,规则用包括以下四个域的产生式结构表示:
(故障现象,故障原因,规则强度,解决方案)
定义
3
-
4
设
则规则
由上述四元组
结合上述定义,给出一个实例表示如下:
例:设
实际实现时,规则
2. 征兆的表示
征兆与规则有两点区别。首先,征兆永远是确定性的,因为一旦发生某些故障,那么必然会表现出某些确定的征兆,因此不涉及可信度的问题;其次,征兆用来判断某一故障状态是否存在(是否确实已发生),因此不涉及解决方案的问题,故征兆可用包括两个域的产生式来表示
(故障状态,故障表现)
至于征兆在计算机中的具体结构,采用同规则表示相同的办法用相应断言在断言集中的序号表示。
本章小结
这一章主要是讨论如何将燃气轮机的知识形式化的问题。首先本章对专家系统中常用的几种知识表示方法作一介绍,并分析了各种方法的优点和不足之处。然后对关于燃气轮机的知识作一分类,提出了燃气轮机知识的四层结构形式及其关联思想。在此基础之上针对燃气轮机知识的特点,决定采用框架和产生式相结合的知识表达方式表达燃气轮机知识。并针对传统框架的不足提出了逻辑框架的概念,以逻辑框架表示燃气轮机的深层结构知识,以框架和产生式相结合的方式表达燃气轮机专家经验类浅层知识。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=558011