基于专家系统的多异构系统联动控制
2016-10-14谭宝龙瞿洁周俊
谭宝龙 瞿洁 周俊
摘要: 由于企业信息化子系统开发时间的不同,许多子系统存在异构特征。异构系统通常独立运行,系统之间缺少信息共享,各个子系统不能协调同步工作,实现系统之间联动协同工作成为主要问题。本文建立了一个基于规则的专家系统,系统能够不断对规则库的知识进行扩充和提炼,形成一个完善的规则库。当已知的事实与规则的前提条件匹配时,异构系统启动联动控制策略,相应子系统联动工作。这种方案开发周期短,易于维护,对企业异构系统的联动控制具有一定借鉴参考意义。
Abstract: Due to the different development time of enterprise information subsystems, many subsystems have heterogeneous architectures. Heterogeneous systems usually run independently, they are lack of the information sharing among systems, each subsystem can not coordinate the synchronous work. Therefore, it's a key problem to realize system linkage cooperative work. This paper has established a rule-based expert system, the knowledge of the rule base of system can be expanded and refined continuously to form a complete rule base. When known fact and the premise of rule are match, heterogeneous systems startup linkage control strategy, and the corresponding subsystems join the linkage work. This scheme has a shorten development cycle, and it is easy to maintain. It has certain reference significance for heterogeneous systems of enterprise linkage control.
關键词: 专家系统;规则库;联动
Key words: expert system;rule base;linkage
中图分类号:TP182 文献标识码:A 文章编号:1006-4311(2016)05-0192-03
0 引言
随着技术发展,企业会根据需求开发很多信息化系统,这些系统开发时间,开发厂商,操作系统,数据库以及编程语言可能不同,导致不同系统间的信息交互难以实现[1]。以某电站物防技防信息系统为例,该电站目前含有安访视频监控系统、电子围栏报警系统、智能门禁在线监测系统、工业电视集控中心系统、广播系统、消防系统、灯光系统等7个子系统。这些系统信息的处理都是独立进行,没有形成联动策略,这种信息处理方式忽视了各个系统之间的内在联系及信息共享。因此,采用联动协同控制策略实现系统的统一维护就显得尤为重要。
由于异构系统联动控制复杂度高,实现较为困难,至今还没有非常成熟的解决方案。在此背景下,本文提出了基于专家系统的多异构系统联动控制方案,将专家系统应用于某电站物防技防系统联动处理中。该系统建有专家知识库,当有新的需求规则生成时,系统可以根据新增加的规则,进行推理,并且可不断对自己的知识进行扩充、完善和提炼,随时修正已有的知识或归纳出新的知识。这种基于专家系统的多异构系统联动控制方案,可以在不改变系统现有结构的情况下实现系统联动,完成数据交互。这样不仅开发周期短,工作量小,而且开放性好,易于以后开发和维护。
1 基于规则的多异构联动专家系统设计
1.1 系统总体架构
基于规则的专家系统是个计算机程序,其内部含有大量的某个领域专家水平的知识与经验,能够利用专家的知识和解决问题的方法来处理该领域问题。它由知识规则库、推理机、事实数据库、知识获取机制、解释机制以及人机界面等几个基本的部分组成[2]。系统的完整结构如图1所示,其中箭头方向为信息流动的方向。
系统工作模型主要包括两大部分:知识规则库和推理机。除此以外,还需要用来显示结果的运行界面。
①规则库:知识规则库可被所有的规则访问。在基于规则的专家系统中,知识用一组规则表达,每一条规则表达一个关系,具有IF(条件)THEN(结论)的形式,当规则的条件被满足时,规则被触发,执行动作。本文采用基于规则的产生式来表示,报警源,报警信息,联动信息规则都存储在规则表中。
②推理机:推理策略常采用前向推理和后向推理[3]。本文的多异构联动专家系统采用前向推理策略,将已知的事实与规则的前提进行比较,观察是否能够匹配,如果不匹配,则用下一条规则匹配。如此重复下去,直到匹配成功。如果匹配成功,则该规则被启用,并产生可推理事实。如果事实不是结论,则将此事实存入联动知识数据库。否则,输出结果。其流程图如图2所示。
人机界面负责把用户输入的信息转换成系统内规范化的表示形式,然后把这些内部表示交给相应的模块去处理。系统输出的内部信息也由人机界面转换成用户易于理解的外部表示形式显示给用户。
1.2 规则库设计
1.2.1 规则表示数学模型
基于规则的专家系统模型中,任何规则的形式均包括两部分:IF部分和THEN部分。它的表现形式是“IF...THEN...”。IF部分是前提条件,THEN部分是结论,即当前提条件成立时,才会得出结论[4]。规则的基本数学模型如下:
IF <前项>
THEN <后项>
通常,在基本数学模型之上可以扩充。规则可以包含多个前项,这些前项用关键词AND(合取)、OR(析取)或者二者混合。合取与析取数学模型如下所示:
IF <前项1>
AND <前项2>
.
.
.
AND <前项N>
THEN <结论>
IF <前项1>
OR <前项2>
.
.
.
OR <前项N>
THEN <结论>
规则的后项部分也可包含多个语句,其数学模型如下:
IF <前项>
THEN <结论1>
<结论2>
.
.
.
<结论N>
前项部分包括两部分:对象和值,用操作符连接。操作符识别对象并进行赋值。规则后项部分同前项类似,也可用数值型对象和简单表达式。例如:
IF “A”> 10
THEN “B”= “A”* 2 / 3
知识库中的每个规则按上述形式组建。运行过程中环环相扣,形成复杂的推理网络,知识在推理网络中得以传递,进行相应的分析和判断。
1.2.2 规则库构建
在基于规则的专家系统中,领域知识用一组IF-THEN产生式规则来表示,数据用当时情境下的一组事实来表示。推理机将存储在知识库中的规则与数据库中的事实相匹配,如果一条规则的IF(条件)部分与事实匹配,即触发该规则,执行THEN(结论)部分[5]。被触发的规则可能由于添加新事实而改动事实集合。
知识规则库中初始的报警规则是基于历史报警记录的基础上,采用产生式规则来表示这些知识:
IF〈电子围栏 Area 1 Location 001〉AND〈无高优先级报警信号〉THEN〈灯光系统打开〉AND〈安防监控摄像头调出画面〉
IF〈门禁系统 Area 2 Location 002〉AND〈无高优先级报警信号〉AND〈属于禁区〉THEN〈关门动作〉AND〈工业电视摄像头调出画面〉
IF〈消防系统 Area 3 Location 003〉AND〈无高优先级报警信号〉THEN〈广播系统动作〉AND〈消防摄像头调出画面〉
通过对用户的使用习惯进行调查后,我们对各个系统进行分类编号,再以事实形成原子类,再将各个原子类归类,可以提高工作效率。归类划分如下:
其中S表示报警源;L表示联动对象。以某电站的7个异构系统为例,用字母表示如下:a代表电子围栏系统;b代表安防视频系统;c代表工业电视系统;d代表消防系统;e代表广播系统;f代表门禁系统;g代表灯光系统。各子系统分类如表1所示。
按照上述子系统分类后,接着将规则原语表示如下:Area代表报警区号;Location代表报警位号;区域状态用State表示,其中0代表一般工作区,1代表危险区,2代表禁区;条件关系符用Relation表示;报警优先级用Priority表示,数字越小,优先级越高。
经过分类表示后,报警规则表如表2所示。报警源会根据报警的优先级执行动作,数字越小优先级越高。报警到来时,先看有无更高级报警信号,若无则根据联动知识库,按添加顺序依次执行联动动作。若有更高优先级报警信号则优先执行高优先级报警动作,然后再执行此报警源动作。报警动作顺序可根据需求进行调整。
为简化系统设计,本系统的知识维护功能设计成从外部维护,即由用户进行知识的修改、删除、添加及一致性检验。用户界面以表格的形式列出报警源,报警区号、报警位号、报警优先级、位置状态、联动对象供用户进行定位查询、添加、修改和删除。这项操作一般是不允许随意进行的。为此,系统设置了密码保护,只有经过培训的管理员才能进行此项操作。
1.3 规则推理
规则库设计完成后,需要对规则进行推理。本文采用正向推理策略,正向推理过程可描述如下:
将规则库中规则的前项同当前数据库内容匹配,若匹配成功,则找到一条可用规则送入可用规则集S;否则,用下一条规则进行匹配。程序伪代码如下:
Procedure respond
While S非空且问题未求解
Do
Begin
调用select-rule(S),从S中选择一条规则,将该规则的结论添加到数据库中。
调用respond。
End
推理机要完成推理,通常要对facts进行多次扩充,按扩充了的facts继续从rules中选择可用规则,每选择一条可用规则,就把规则的后项中不在facts中的所有结论添加到facts中,对facts扩充,直至没有可用规则可选。若找到一条可用规则对facts进行过一次扩充,则deduce返回t;否则,deduce返回nil。deduce用来表示正向推理机函数。
deduce函数定义如下:
(defun (deduce facts)
(prog (progress)
loop
(cond ( ( step-forward rules) (step progress t) )
( t ( return progress) ) )
(go loop ) ) )
其中step-forward函數用于逐次扫描规则库rules中的规则,若发现rules中有一条可用规则,即该规则的前项包含的全部事实在表facts中,则把该规则的后项中不在facts中的所有结论添加facts中,且step-forward返回t。若rules中没有一条可用规则,则step-forward返回nil。
知識规则库编辑完毕并存盘后,启动专家系统的执行文件便开始了对知识库的检查,包括检查知识表达语法的正确与否,规则是否互相矛盾,若无错误则正常运行。当有一条以上的规则被触发时,采用规则排序策略来解决冲突,即规则按优先级大小排序,先触发的规则先启用,只有第K条规则不能使用时,才考虑第K+1规则。这些规则可以动态的添加,删除、修改。由于知识规则库是以数据表的形式存在于关系数据库中,因此,十分便于利用数据库通用查询语言SQL语言中的SELECT语句进行查询,从而检索出符合要求的结果集。
2 基于规则的多异构联动专家系统实现
本项目建设的智能管理平台以某电站的安访视频监控系统、电子围栏报警系统、智能门禁在线监测系统、工业电视集控中心系统、广播系统、消防系统、灯光系统等整合在一个用户界面上统一管理,形成各子系统之间的联动,便于应急响应,能够极大地提高工作的效率。电站各子系统实现联动后,一旦出现意外事件,相应系统便会启动,引起相关人员注意,从而达到事前防范的目的。
根据项目要求,设计系统工作流程如图3所示。当电子围栏报警系统检测到异常入侵信号时,智能管理平台报警扫描软件立即会捕捉到报警信息,自动根据联动规则库对应的联动子系统、联动区号、位号,联动优先级、位置状态和顺序号控制联动对象动作,并自动推出确认界面,当报警确认后系统再按照顺序执行剩下的联动动作,如打开灯光、视频等动作。以安防视频监控系统与电子围栏系统联动控制为例示意图如图4所示。安防视频监控系统通过区号位号固定摄像机位置,推出视频界面,供工作人员分析查看。
3 结论
通过多异构联动专家系统的设计,实现了某电站现有多异构系统之间联动同步工作。与传统方案相比,本系统具有灵活性、可扩充性、自学习及自修正能力,系统能够不断对自己的知识进行扩充、完善和提炼,随时修正已有的知识或归纳出新的知识,适应新情况的需要。经现场检验,该系统能够进行智能、准确、实时工作,所有报警信息各系统内100%共享,各系统之间的协调同步率达到100%,由于用户可以自己构建和调整规则,摆脱了对系统设计工程师的依赖,所以极大地降低了系统的维护成本。其它产业集群也可结合自身产业特色发展适合的基于专家系统的联动模式。
参考文献:
[1]雷琦,宋豫川,李先旺.语义网关支持下的异构系统集成框架及其关键技术[J].重庆大学学报,2010,33(11):27-32.
[2]张煜东,吴乐南,王水花.专家系统发展综述[J].计算机工程与应用,2010,46(19):43-45.
[3]L.Dymova,P.Sevastianov,K.Kaczmarek.A stock trading expert system based on the rule-base evidential reasoning using Level 2 Quotes[J].Expert Systems with Applications,2012,39(8):7150-7157.
[4]潘玲琳.基于产生式规则的专家系统的研究实现[J].计算机技术与发展,2007,17(5):66-68.
[5]Lyu J J,Chen M N.Automated visual inspection expert system for multivariate statistical process control chart[J].Expert Systems with Applications,2009,36(3):5113-5118.