基于VisualBasic.NET的油气事故应急资源需求预测支持决策系统*
2010-01-24邢冀,钱新明,刘牧等
0 引言
油气事故通常会产生剧烈的化学反应,很难直接获得出事地点所需的应急资源需求信息,从而影响后续应急资源的筹集、供应和调运。目前,尚没有成熟的油气事故应急资源需求预测方法,而是主要以专家经验判断为准,因此既缺乏科学合理性,又没有将以往事故或演习的经验加以利用[1-2],而现有的应急资源需求预测模型多停留在理论层面,没有对其进行深入的应用研究[3]。采用科学的方法,建立相对可靠的油气事故应急资源需求预测模型,开发用于工程实际的应急资源需求预测软件对油气事故应急救援活动的成功开展具有重要意义。本文采用Visual Basic.NET[4]作为软件开发工具,使用SQL Server构建相关数据库,开发了油气事故应急资源需求预测支持决策系统,实现了应急资源需求预测数学模型的工程应用。同时,该系统兼具自学习功能,随着该系统的不断应用,其相关数据库不断丰富,预测结果也将日趋准确。油气事故应急资源需求预测支持决策系统的应用可为事故后应急救援活动快速有效的开展提供科学的理论依据。
1 基于CBR的需求预测模型
案例推理(Case-based Reasoning,CBR)是一种新兴的人工智能推理方法,它是由目标案例(Target Case)的提示而获得记忆中的源案例(Base Case),并且通过源案例来指导目标案例求解的一种策略[5]。虽然各油气事故属性及处置方法不尽相同,但针对某个事故而言,历史上一般都存在与其相近的案例,在事故属性相近的前提下,开展应急救援活动所需的应急资源需求也具有相关一致性,可以考虑利用油气长输管道事故的历史数据建立源案例库,构造基于案例推理的油气长输管道事故应急资源需求预测模型,选取相似源案例并从中抽取决定应急资源需求的关键因素,应用相似原理对新目标案例的应急资源需求情况进行预测。
1.1 案例的表示
假设已建立油气长输管道历史源案例信息库,库中共有n个源案例,可将源案例集记为C={C1,C2,…,Ci,…,Cn},i=1,2,…,n。每个源案例有m个属性,可将源案例的属性集记为F={F1,F2,…,Fj,…,Fm},j=1,2,…,n。与F相对应,每个源案例的属性值集可记为X={X1,X2,…,Xj,…,Xm}。每个F的影响权重集记为ω={ω1,ω2,…,ωj,…,标案例则记为T=(T1,T2,…,Tj,…,Tm)。这样,即可构造属性值矩阵:
式中:Xij为第i个源案例中第j个属性的值。
1.2 属性值归一化及权重计算
为求工程计算的准确性,需将各不同量纲属性值按式(1)进行归一化处理。
式中:Ω*j为属性值整合矩阵中属性j的无量纲值,Ωj为属性j的实际值,maxΩj、minΩj为属性j的最大值和最小值。
权重计算可由数学期望式(2)、标准差式(3)及属性值权重式(4)顺序求得。
1.3 相似度计算
(1)属性相似度
油气长输管道事故案例的属性主要包括数字属性值(Crisp Numeric,CN)和符号属性值(Crisp Symbolic,CS)两大类。
①数字属性可由经归一化后的海明公式(Hamming)求得。
②符号属性分为无序枚举和有序枚举两类,其属性值相似度分别由式(6)、(7)计算。
(2)结构相似度
计算Ci与T的结构相似度,先将Ci的所有的非空属性构成的集合记为Ai,T的所有非空属性构成的集合记为B。计算MTi=Ai∩B与NTi=Ai∪B。
(3)全局相似度
按式(9)求取源案例与目标案例的全局相似度,相似度最大的源案例即为相似案例。
1.4 关键因素及需求预测
确定最相似源案例后,分析其应急资源需求的品类和结构,抽取如事故影响范围R、危险品(油气)耗量Q、被困人员数量U分别决定基础救援设备需求量Φ1、抢险救援设备需求量Φ2和医疗救援设备的需求量Φ3的关键因素。若目标案例中事故影响范围为RT,危险品耗量为QT,被困人员数量为UT。根据等比例原则,目标案例中基础救援设备、抢险救援设备和医疗救援设备的需求
2 系统总体设计
根据决策系统目标,按照结构化系统分析与设计的思路,该系统可分为三个模块:用户登陆模块,数据信息管理模块,数据录入及计算模块。用户可通过对这三个模块的操作最终得到应急资源需求预测结果。图1为决策支持系统的流程图。
图1 决策支持系统流程图
用户登录模块用来检查客户输入的用户名及密码,只有输入正确的用户名和密码,才能进入程序主界面,用户登录界面如图2。数据信息管理模块提供对数据的添加、修改、保存和删除等功能,便于用户向数据库录入和修改案例数据,并能够直观的显示数据库中的表格信息。计算模块用来求解用户需求的信息,并能够将计算结果更新至数据库作为原始数据,以实现系统的自学习功能。
图2 用户登录界面
3 数据库设计
该系统后台数据库采用Microsoft SQL Server建立,使用ADO.NET[6]数据访问模型提供所建立的数据源的访问接口,具有良好的开放和扩充性能。根据系统需实现的功能要求,在数据库中建立一张包含12个字段的历史源案例信息表。字段分别为:序号、事故等级、危险品类型、储罐容积半径、罐区面积、罐区人员密度、基础救援设备、抢险救援设备、医疗救援设备、事故影响范围、危险品耗量、被困人员数量(表1)。该表格包含了历史源案例的各种属性信息和关键因素信息,且能够存储目标案例的属性信息和关键因素信息,计算出目标案例的应急资源需求量后,经检查修正后,可自动将其作为一条新的案例存储起来,以丰富历史源案例数据库,为日后应急资源需求预测提供更为准确的数据信息。用户根据实际需求以管理员身份进入数据库后可对除“序号”以外的字段进行诸如删除、添加和变更等修改,从而使系统能更好的适应不同用户对属性信息和关键因素信息需求不同的情况。
表1 案例信息表格数据类型
4 VB实现的关键技术
4.1 同步数据库
历史源案例信息数据库是该系统中的重要组成部分,对其进行合理的管理维护是保证该系统成功应用的前提,数据的同步更新是其中的关键技术。当用户通过客户端对历史源案例信息进行添加、保存、删除或修改命令时,程序将保持界面表格数据与数据库中数据同步更新,将修改的数据实时地保存至数据库,为计算目标案例应急资源的需求量提供原始参数。首先,利用Visual Studio工具箱[7]中的Data Grid View控件实现历史案例信息的显示功能,用户可以在该控件中进行添加、删除和选中行数据等操作;然后通过“保存”与“删除”两个Button按钮来实现数据的添加、修改和删除功能。源程序新建了一个Data Set数据集,将其表格内容赋予Data Grid View控件的Data Source属性,再通过Command类里的Update()方法把DataSet数据集中的数据更新至数据库。对数据进行删除操作时首先需要选中一行或多行数据,然后根据选中的行数使用For循环语句逐行删除数据,最后通过End Edit()方法结束对DataGridView控件的编辑并用Update()方法再次更新数据库。图3为历史源案例信息管理界面。
图3 历史源案例信息管理界面
4.2 应急资源需求量求解
根据历史源案例信息及目标案例属性及关键因素信息,预测目标案例应急资源需求量是本程序的核心部分,即将前述的案例推理模型用计算机语言来实现。首先,从数据库读取历史源案例信息,并将其用矩阵表示,依据输入项目判断数据属性类型。然后,建立属性矩阵并对其进行归一化处理,求出属性权重后将其储存在矩阵当中。如果历史源案例没有属性值缺失,该源案例与目标案例结构相似度为1,否则将根据权重结果来计算结构相似度。进而求出全局相似度后进行数值对比,把全局相似度值最大的历史源案例作为参考案例,用以参与后续应急资源需求量的预测。图4为应急资源需求量预测求解过程。
图4 应急资源需求量求解过程
5 某油罐火灾事故应急资源需求预测
油气长输管道沿线某油罐场站发生火灾爆炸事故,现对其应急救援活动中应急资源需求量进行预测。假定历史源案例数据库已构建,表2~表4为数据库中已经储存的历史源案例信息及目标案例相关信息,要求对目标案例相应应急资源需求量进行预测。
表2 历史源案例应急资源需求量
表3 历史源案例及目标案例属性信息
表4 历史源案例及目标案例关键因素信息
在程序主界面输入目标案例属性信息及关键因素信息后,计算得出目标案例的基础救援设备需求量为18 t,抢险救援设备需求量为45.8 t,医疗救援设备需求量为28.8 t(图5),为更加可靠有效的进行应急救援活动,可在所求应急资源需求量的基础上增加一定比例的余量。根据得到的应急资源需求量可进一步指导确定应急资源优化调运方案,而后将实际应急资源需求量记入历史源案例数据库实现系统自学习。
图5 程序计算界面
6 结论
(1)构建了基于案例推理的油气长输管道应急资源需求预测数学模型,给出了其计算过程,以Visual Basic.NET为工具,使用SQL Server构建相关数据库,开发了油气事故应急资源需求预测支持决策系统,用以对油气长输管道事故中应急救援活动所需的应急资源需求做出预测,并通过模拟算例验证了该系统的可行性和可靠性。
(2)该系统能够帮助决策者快速、客观、科学的预测应急资源需求量,改变了由管理人员凭借经验主观判断需求量的现状,并可将新案例自动更新至数据库,实现系统自学习功能,以此不断丰富历史源案例信息,使下一次预测结果更加趋于准确。
(3)该系统虽然能够根据历史源案例直接预测应急资源需求信息,但预测值与实际消耗的应急资源量难免存在一定偏差,如何通过实际消耗真值来修正储存在数据库中的预测值将是本系统有待改进的一个方向。另外,系统中案例属性类型如模糊数、模糊区间等还需进一步丰富。
[1] Ricci F,Avesani P,Perini A.Cases on fire:applying CBR to emergency management[J].The New Review of Applied Expert Systems,1999,5(6):175-190.
[2] ZhangD S,ZhouL N,JrNunamakerJ F.A knowledge management framework for the support of decision making in humanitarian assistance/disaster relief[J].Knowledge and Information Systems,2002,4(3):370-385.
[3] Yalta A T,Olaf J.On the importance of verifying forecasting results[J].International Journal of Forecasting,2009(25):62-73.
[4] Tanimoto H,Arai T Y,Grondahl K.Development of software for dental radiology education using VB.NET[J].International Congress Series,2005(1281):1262-1266
[5] Daniel S K,Claudia B M,Heloisa V R.Supporting modeling and problem solving from precedent experiences:the role of workflows and case-based reasoning[J].Environmental Modelling&Software,2005,20(6):689-704.
[6] Robert H,Malcolm C,David P.Programming Review of Visual Basic.NET for the Laboratory Automation Industry[J].Journal of the Association for Laboratory Automation,2007(32):25-32.
[7] 埃克道尔.Visual Basic.NET程序设计高级教程[M].北京:清华大学出版社,2005.