分享
 
 
 

一种专家数据库的开发与实现

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

一种专家数据库的开发与实现

齐玉东 李逸波

传统数据库系统缺乏知识,只能处理静态数据;而专家系统的狭窄

应用领域及不能访问现存数据库,又防碍了专家系统的有效应用。数

据库和人工智能这两个领域单独发展的局限性,促使了两者取长补短,

共同发展。这就是专家数据库EDS(Expert Database Syst em)产生和

发展的原因。通常,我们把既具有数据库管理功能及演绎能力、又提

供专家系统中若干良好性能的数据库系统,称为专家数据库。EDS的基

本思想是把以知识表达和知识处理为主的专家系统ES(Expert System

)技术引进传统数据库,使二者有机结合,以开发出能共享信息的面向

知识处理的问题求解系统。目前,EDS主要采用系统耦合--"紧耦合"

及"松耦合"来实现。紧耦合指将规则管理系统集成到DBMS之中,使DBM

S既管理数据库又管理规则库。这种方法实现难度较大。而松耦合是

指将一个现成的专家系统外壳和一个现成的DBMS作为两个独立的子系

统结合在一起,它们分别管理规则库和数据库。采取松耦合实现策略

可以充分发挥原有两个系统的全部功能,而不需对原系统进行任何改

动。它只需设计一个连接ES/DBMS的高效、灵活的接口模块,以协调二

者的工作,所以实现起来时间短、见效快。

一、故障诊断专家系统的系统结构

在故障诊断系统HF-2000的研制中,我们采取松耦合策略建立了一

个故障诊断专家数据库系统。该系统是一个产生式系统,采用深度优

先策略作为其控制策略。系统根植于W indows平台,采用了面向对象

的程序设计技术及先进的数据库技术;在数据库端,我们采用了基于Se

rver/Client机制的MS SQL的数据库技术。在推理控制端,利用Visual

C++进行编程,实现了一个推理机。推理机与数据库之间的接口则通

过ODBC API直接调用来实现对数据库的访问。本系统的构造模型是以

数据库为载体的构模形式,系统机构图如1所示。图1

图1中知识获取结构负责建立、修改与扩充各个数据库;解释机构

用于对求解过程作

出说明,指出求解成功或失败的原因,并回答用户提出的问题。事

实库用来存放输入的原始事实及中间结果;字典库用来存放规则中事

实的基本定义和说明;规则库用来存放规则;垃圾桶用来存放推理中失

败的推理路径。

二、规则与数据库的设计

1. 产生式规则的模型

规则的一般形式是:

if〈前提〉then〈结论〉

它表示当〈前提〉成立时,得出〈结论〉的可信度为。其中〈前

提〉是事实或断言的合取形式。本系统中的规则模型请参考图2。

2. 事实库

结构:FACT_DB(Fact_ID,Rank,No)

用途:存放输入的原始事实,中间结果及最后结果。

其中:Fact_ID是事实Fact的编码;Rank用来表示系统特定部分,比

如说"放大级"、"槽路"等;No表示特定部分中的部件的编号;如"1"表

示"槽路"部分1号管、"2"表示"槽路"部分2号管等。

3. 字典库

结构:DICT_DB(Fac_ID,Component,Appear,Why,Known)

用途:存放规则库中的前提条件和结论及其编码。

其中:Fact_ID为事实编码;Component为部件名称;Appear是对Fac

t_ID的自然语言解释;Known用来表示该事实已知或未知,以防止该断

言的重复求证。

4. 规则库

规则库中包括四个表(TABLE),它们是规则前件库(PRE_TABLE)、

已激活的规则前件库(ACTIVE_PRE TABLE)、规则后件库(ACT_TABLE)

和已激活的规则后件库(ACTIVE_ACT_TAB LE)。

图2

(1)规则前件库

结构:PRE_TABLE (Rule_Name, Fact_ID)

用途:存放各条规则对应的前提条件。

其中:Rule_Name为规则名;Fact_ID为Rule_Name规则的一个与条

件;一条规则的n个与条件在该库中就有n条对应该规则的记录。

(2)已激活的规则前件库

结构:ACTIVE_PRE_TABLE(Fact_ID,Rank,No)

用途:存放已激活的前提条件,以避免规则各前提条件的重复匹配

其中:Fact_ID为Rule_Name规则的一个与条件;Rank用来表示系统

特定部分;No表示特定部分中的部件的编号。

(3)规则后件库

结构:ACT_TABLE (Rule_Name, Fact_ID, Num, Num2)

用途:存放规则对应的结果。

其中:Rule_Name为规则名;Fact_ID为Rule_Name规则的结果;Num

表示该规则前提条件的个数;Num2为Num字段的辅助值。

(4)已激活的规则后件库

结构:ACTIVE_ACT_TABLE(Rule_Name, Rank,No)

用途:存放已激活的后件,以避免规则各结论的重复匹配。

其中:Rule_Name为规则名;Rank用来表示系统特定部分;No表示特

定部分中的部件的编号。

5. 垃圾桶

结构:GARBAGE_BIN_DB(Fact_ID, Rule_Name, Pre_Num)

用途:记录剪去枯死枝叶的原因。

其中:Fact_ID为事实编码;Rule_Name为应用于该结点的规则名,P

re_Num为实际匹配的前提条件数。

三、控制机构的设计

我们用C++语言实现了一个采用深度优先策略的反向推理机。整

个推理过程。就是一棵搜索树边长枝边修枝的过程推理机的源程序如

下:

int CCause::Reason(RTree*rTree)

{

RULE prule,rule;

int ruleFlag;

while(1){

while(true){

if(rTree- choose rule(&prule)==1

{

//对当前叶节点选择适用的规则

rTree- SctAct(prule);

//把当前应用规则放入激活的规则表ar

ruleFlag=1;

break;

}

else{

ruleFlag=0;//若无规则可用,设置失败标志

if(depth return 0;

else{

rTree- ClipBranch(depth--;path++);//剪去枯枝

if(depth!=0)

return 0;

//若不是树根,返回失败标志;否则继续推理

}}}

rTree- SetLeaf(&prule);

//设置第一个前提为当前叶节点

depth++;

while(1){

int iSucc=0;

iSucc=rTree- SuccessDirect ();

//事实是否立即成立

if(iSucc==0)

{

//若事实库中没有对应事实且该节点不是元件,则搜索规则

while(1){

if(rTree- choose rule(&rule)==1)

{

//搜索对应于当前叶节点的规则

ruleFlag=1;

if(BackReason(rTree)==1)

{

//若事实成立,则对下一前提进行求证;

否则选用下一条规则推理

rTree UnderSuccess();

//事实成立,重新设置当前前提为当前叶节点

break;}}

else{

ruleFlag=0;//若无规则可选,设置失败标志

break;}}}

if(iSucc==1){//若事实立即不成立,则设置失败标志

ruleFlag=0;

break;}

if(ruleFlag==0)

//当前应用规则失败,选择下一条规则推理

break;

else{

if(prule.num==prule.num2)

//上一个前提求证成功,判断是否还有未求证的前提

break://若没有则退出循环

else

rTree- SetLeaf(&prule);

//若有则设置此前提为当前叶节点

}}

if(ruleFlag==1){

rTree- ProduceNewFact();

//若事实求证成功则往事实库中添加此事实

return 1;

//返回成功标志

}}}

(作者地址:山东烟台海军航空工程学院研究生队,264001)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有