基于泛关系模型表示的模型集成方法

2014-12-23 07:13张宏军单黎黎邓小勇
关键词:模型库对象变量

邢 英,张宏军,张 睿,单黎黎,邓小勇

(中国人民解放军理工大学野战工程学院,江苏南京210007)

模型表示方法决定了模型集成的方式和能力.结构化模型表示方法[1]使用层次组织的、分割的、带属性的非循环图来表示模型的数学结构和语义关系,通过引入基本实体、复合实体、属性实体、变量实体、函数实体和测试实体等元素表示模型.该方法仅实现实体元素层次集成.面向对象模型表示为模型集成提供了较有力的支持.S.Huh[2]将由 SML定义的模型与方法封装成模型类型(model type),通过操作的多态性实现模型与数据集的集成.Keun-Woo Lee和Soon-Young Huh[3]提出智能化模型和方法集成框架,建立模型类、方法类和接口映射字典表,通过Agent实现模型和方法的集成.曹琦等[4]将 A-gent-DEVS模型端口转换为HLA数据对象,基于HLA实现模型集成,但是基于HLA交互协议增加了模型集成的平台相关性,不利于模型跨平台移植和重用.胡东波等[5]提出了基于问题求解的模型表示方法,提出了基于数据连接的模型集成.但是方法与模型集成过程中,表达式的建立和解析较为简单,难以满足复杂表达式求解需求;邵荃等[6-7]提出层次网络的表示方法和基于动态网络组合方法的模型链生成方法,解决突发事件应急决策时的模型集成问题.但是突发事件模型链中数据转换函数种类较少,不能完全解决复杂模型链构建过程中的参数连接.杨鹤标等[8]提出基于Petri网的构建组装模型,利用Petri网系统表示构件的静态组装结构,用网中标识在库所中的流动来模拟构件的动态运行过程,只是在构建模型形式化语义描述和演化描述能力上进行了改进.

笔者所在课题组将泛关系理论引入模型表示,提出关系化模型表示方法,通过泛关系查询生成模型顺序图来实现模型集成和问题求解,在模型、数据和方法的独立管理和模型、数据一致性表示取得较好的效果,并对变量转换关系及约束条件规范化表示及模型生成方法进行了研究[9-12],但是基于模型顺序图的模型集成模型树生成不彻底、模型优化及模型集成验证问题尚未解决,文中将对这一系列问题进行深入研究,并给出模型集成实现算法.

1 泛关系模型表示方法

1.1 基于泛关系的模型定义

泛关系[13]理论假设数据库系统中只有一个关系模式,包含了数据库中的所有属性泛关系通过数据库中关系模式的连接运算构造,参与连接运算的关系模式必须满足连接依赖.由于模型库中模型对应的数据库关系模式是经常变化的,难以满足连接依赖而不损失任何信息,所以在数据库模式的基础上采用构建对象体和最大对象体[14]的方式实现泛关系的构造.对象体是泛关系中具有完整意义的最少属性集合.最大对象体是由对象体集组成,最大对象体中的对象体之间满足连接依赖,每增加一个对象体都满足连接无损.

在给出泛关系模型定义之前,假设模型满足如下假设.

假设1 模型中的所有输出变量和输入变量在数据库模式中均以非主属性出现;模型中变量转换关系和变量转换规则集中所涉及的所有属性变量至少包含在一个最大对象体中.

假设1给出了模型库中对象体的声明方式,对象体由关键字加上一个非主属性构成,当一个对象体只有关键字而无其他属性,关键字也可以直接构成对象体,每个声明的对象体都是数据库中实际存在的某个数据模式的子集.这样就在数据库模式层次上建立由对象体构成的泛关系层.由每个变量转换关系及变量转换规则集所涉及的属性的若干个最大对象体就可以构成这个模型的子模型,即通过最大对象体可以对模型进行分解.由以上假设,基于泛关系的模型可以定义为一个四元组:

式中:MO为模型中变量转换关系及变量转换规则集所涉及属性的最大对象体集,MOi∈OM,i=1,2,…,n,i∈N;OB为模型中变量转换关系及变量转换规则集所涉及属性的对象体集,OBij∈OB,i,j=1,2,…,n,i,j∈N;RL为模型中变量转换关系集合,RL={OBin,r,OBout},r为RL中变量转换数学表达式集合,采用MathML[12,15]表示,OBin为输入对象体集,OBout为输出对象体集,OBin⊂OB,OBout⊂OB;RU为变量转换规则集,RU包括变量取值范围、变量类型和受其他变量的限制等,变量转换规则集涉及的每个属性变量对应一个对象体.RU是一个形式化表示的规则集合.

1.2 泛关系模型表示方法

1.2.1 泛关系模型外模式表示

根据泛关系理论和模型定义,给出模型外模式表示定义:设u是属性集U=(X1,X2,…,Xn)上的泛关系,属性集X是模型运行涉及的属性集,设Xout是子模型求解结果涉及的属性集,u适合连接依赖▷◁[X1,X2,…,Xn],u=u[X1]▷◁u[X2]…▷◁u[Xn].设OBi1,OBi2,…,OBik是其上一组对象体,且它们构成U上的一个最大对象体OMi,而且OMi包含了属性集X,OBij⊆Xi,j=1,2,…,k,i,k=1,2,…,n,则根据对象体声明和自然连接运算得

若包含X的最大对象体为MO1,MO2,…,MOi,…,MOn,则

若F是变量转换关系或一组约束条件,则

因Xout是子模型求解结果涉及的属性集,定义[Xout]为子模型M运算结果值集,则

将变量转换关系看作泛关系查询的变量转换约束,则上式将变量转换关系运算都集中在[Xout]运算中.式(4)是泛关系模型的外模式表示,其中F是变量转换关系和约束条件的集合,变量转换表达式之间存在相互转换的作用关系.随着模型的运行,F可以看作在变量转换规则驱动下不断进行变量转换的复杂网络.

1.2.2 泛关系模型内模式表示

定义2 模型内模式表示定义为一个有向网络N=<V,U>,对应于变量转换网络G有向网络,所以N⊆G;V是一个非空集合,是有向图N中属性顶点的集合,V⊆Att,Att为实体属性集合;U是有向网络N的弧,代表对象体顶点间的变量转换关系,U⊆R;变量转换规则决定了有向网络N中的变量转换方向.

变量转换关系网络是对模型中变量转换结构的网络化描述.模型中的变量转换关系作为可重用的知识以网络拓扑的方式组织和管理,用户可以依据求解问题描述,基于变量转换关系网络实现模型生成及求解.

1.3 泛关系模型与数据一致性分析

基于泛关系模型表示的模型运行过程产生数据存贮在对象体中,对象体只是模型数据存贮的中介.概念建模阶段的数据模型才是建模用户所真正关心的,常对应于数据库中实际存贮的物理数据.

由于泛关系的特点,可以实现数据存贮中介对象体向物理数据的转换,这种转换是双向的,体现了泛关系模型表示与数据表示的一致性.设数据库DB上一组物理数据关系模式Rm由属性集X构成,由1.2.1的泛关系模型外模式表示,假设包含X的最大对象体为MOi={OBi1,OBi2,…,OBij},由于MOi中对象体满足联接依赖,即▷◁[OBi1,OBi2,…,OBij],则数据库DB上某一关系模式:

设XData是数据模型所对应的字段集和,XData⊆X,则物理数据模型可以表示为

由式(5)可知数据库中某一关系模式Rmi也一定是某个最大对象体的子集.式(6)给出了泛关系模型运行过程中物理数据模型生成方法,建立了泛关系模型产生数据向物理数据模型的转换方法.模型运行过程中,对象体作为模型运行数据存贮的中介解决了模型运行过程中数据失配的问题.

2 基于泛关系模型表示的模型集成方法

面向问题求解的模型集成过程是人机交互的过程.结合泛关系模型定义,进一步对模型输入和输出对象体分类,OB={OBin,OBout,OBmid},OBin={OBdb,OBm,OBh}.结合图 1 对其进行说明:泛关系模型表示的模型涉及的对象体集合为OB;OBdb表示在模型生成或运行过程中可在数据库中找到其值的对象体集合,在模型Mij中采用表示;OBm表示通过模型库中其他模型运行能获得值的对象体集合,在模型Mij中采用表示;OBh表示通过人机对话才能获得其值的对象体集合,在模型Mij中采用表示;OBmid表示模型Mij中对应于中间变量的中间对象体集合,是链接输入对象体和输出对象体的中间节点,是模型运行中产生的中间变量的数据存放地,在Mij中采用表示.

图1 泛关系模型表示的模型

定义3 模型树是一个有向无环图T,图T中节点对应求解问题需要集成的子模型,图T中有向边<Mij,Mik>满足如下条件:设子模型Mij的输入对象体中OBm为对象体集OBm-ij-in,子模型Mik的输出对象体中OBout为对象体集OBm-ik-out,若OBm-ij-in∩OBm-ik-out≠Ø,则有向边 <Mij,Mik> 表示子模型Mij的运行需要子模型Mik的输出对象体作为其输入对象体.模型树中所有叶子节点的OBm=Ø,非叶子节点OBm≠Ø,若所有叶子节点的OBdb和OBh都可以获得,则通过模型树叶子节点的模型运行,自底向上实现整个集成模型树的运行求解.

为了便于描述和建立模型树生成算法,基于定义3,给出模型树T节点编码方法如图2所示:根节点模型为M0,每层模型下标数字位数代表模型所在层数,下标最后一位表示模型在同层次模型中的序号,比如1-2-j-n表示父节点M1-2-j下第n个子模型M1-2-j-n,该模型位于模型树第4层.通过编码,模型树中模型具有唯一标识.

图2 模型树T节点模型编码规则

2.1 模型集成算法

定义3给出了模型树的性质,结合问题求解给出模型集成算法流程,如图3所示.

图3 基于泛关系模型表示的模型集成算法流程

算法流程具体步骤如下.

Step 1 分析求解问题的属性变量、已知条件和求解目标,将问题求解需求的泛关系查询转化为对对象体的查询,判断泛关系模型库中是否有相应对象体存在,若有转Step4,否则转Step2.

Step 2 声明对象体,并建立对象体之间变量转换关系,构建变量转换关系网络[11].

Step 3 基于变量转换关系网络的模型生成算法[12-13].基于变量转换关系网络生成问题求解有向子网,即问题求解模型生成并存贮在泛关系模型库中,文中重点对模型库中已有模型集成进行研究.

Step 4 建立模型树的初始节点StartNode和StartNode对应的模型M.M相当于模型树中的所有模型的容器,包括OBdb,OBm,OBh,是模型树中所有模型的集合.如果OBm≠Ø,转Step 5,否则退出,返回查询结果,即求解问题可以由模型库中存在的对象体数据进行解释.

Step 5 搜索模型库:搜索模型库中所有以OBm为输出对象体的模型,构建最大模型集Mmax.

设StartNode.OBin.OBm为根节点输入对象体集中需要通过模型运行获得值的对象体集合,URMB.n为泛关系模型库URMB中模型个数,URMB.Mi为泛关系模型库URMB中某个模型Mi,

URMB.Mi.OBout为泛关系模型库URMB中模型Mi的输出对象体集合;OBii∩,i表示模型编码中下标,当i=0 时,表示StartNode.OBin.OBm与泛关系模型库中某个模型输出对象体URMB.Mi.OBout的交集,OB∩是OBm与模型库中每个模型输出对象体交集OBi∩的集合;Mremain表示模型库中未被选用的模型集.算法输出为最大模型集Mmax、未被选用模型集Mremain和OBm与模型库中每个模型输出对象体交集OB∩.算法伪代码如下:

Step 6 最小模型集生成算法.首先优化最大模型集,求出最小模型集Mmin.假设由 Step 5得Mmax={M1,M2,…,Mi,…,Mj,…,Mp},i,j<p.最小模型集生成算法如下:

进一步对最小模型集Mmin进行分类,如果模型Mi和模型Mj输出对象体无交集,则模型Mi和模型Mj运行独立,互为独立节点子模型,反之为参考节点子模型,如图4所示.参考节点子模型需满足参考约束,即模型Mi和模型Mj输出对象体中相同对象体的非主属性值相同.

图4 子模型分类图

设Mindependent为独立节点子模型集合,Mconstraint为参考节点子模型集合,OBi…j为参考节点子模型的参考对象体集,是互为参考节点子模型输出对象体的交集为参考节点子模型集合中第i个约束单元为参考节点子模型集合对应的为约束单元i对应的为约束单元参考对象体,是约束单元节点子模型间输出对象体的交集.节点子模型分类算法如下:

对约束单元进行分类:

若Mmin≠Ø,转 Step7,否则转 Step3,重新调整变量转换路径,生成新的模型,满足最小模型集生成需求.

Step 7 模型树节点生成算法:假设模型树T(T为遵从模型树编码规则的模型集合)的初始根节点StartNode对应的模型为M0,T最小模型集为Mmin,Mj-k-li为模型树中子节点模型,i符合定义的模型编码规则.将最小模型集中模型作为模型M0的叶子节点,模型树节点生成算法如下:

转Step 4对新生成叶子节点进行OBm≠Ø?判断,重复Step 5,Step 6,Step 7过程,直到生成模型树满足问题求解需求,对应算法如下:

初始模型树生成后经过Step 8模型树优化和Step 9模型树生成验证方可Step 10模型树运行,否则转Step 2重新建立变量转换关系,构建完整的变量转换关系网络,进而生成模型,即重新构建新的模型加入的模型库中生成模型树来满足问题求解需求.

2.2 模型树优化及运行方法

模型树生成验证可以通过变量转换可达关系计算验证[11],限于篇幅不再介绍.此处主要介绍模型树优化方法及模型运行顺序确定原则.

生成的模型树中容易产生同一模型被多次集成或者不同模型多次承担相同子模型功能的情况,在模型树中产生了功能相同的子模型节点,使模型树中存在环路,产生模型运行过程中循环冲突,导致模型树生成过于庞大,模型运行需要耗费大量计算资源,模型运行困难,甚至导致模型树无法生成.常用的解决办法是通过设定模型树中模型数量上限来限制模型树结构的复杂性[5,9],但是这样容易导致模型树生成不彻底,还需用户进一步对其改进,难以实现真正意义上的模型集成.当一个或多个功能相似模型被多次用来构建模型树子节点时,保留离模型树根节点较远的子模型节点,并删除其他以该模型或功能相似子模型构建的节点及其后续节点,这样靠近叶子节点的子模型应首先得到运行,所输出的OBm可以作为OBdb存贮于数据库中,同时定义该模型的运行优先级要高于所有被删除节点的父节点对应的子模型,即保留的模型子节点的输出对象体OBm转化为删除子节点的父节点模型的OBdb,实现了同一模型在同一模型树中只出现一次,具体算法如下:

基于以上分析和优化策略,确定模型树运行顺序原则如下:①模型树子节点模型先行运行;② 同层模型子节点中,独立节点子模型优先级大于参考节点子模型,参考节点子模型中独立约束单元子模型优先级大于参考约束单元子模型;③被删除模型的父节点模型运行优先级小于保留的相同或功能相似子模型节点.

当模型树生成后,经过优化,基于以上运行顺序原则,用户就可以从模型树叶子节点开始自底向上处理模型树每个节点所对应的模型.在运行到模型树某一节点时,若该节点对应的OBdb,OBm和OBh都有了确定的值,则该子模型是可运行的,以此类推,自底向上最终得到StartNode节点的值,实现模型运行求解.

3 结论

1)基于泛关系模型表示方法将模型分为内外模式表示,采用对象体作为数据存贮中介,屏蔽了不同数据库模式带来的差异,解决了模型运行过程中数据失配的问题,便于模型集成.

2)基于泛关系模型表示方法和变量转换网络相关研究成果,提出面向问题求解的模型集成算法流程和一系列模型树生成、优化集成和验证算法,提高了决策支持系统面向决策问题模型集成的模型资源的重用性、灵活性和自动化程度.

3)文中在考虑模型运行顺序方面只提供简单的优先级,相关支撑模型运行的泛关系模型存贮方法将另文阐述,下一步研究重点是将不同的计算模型(离散事件模型、连续时间模型、状态机等)纳入模型集成算法中,实现不同形式体系下模型集成.

References)

[1]Geoffrion A M.An introduction to structured modeling[J].Management Science,1987,33(5):547-588.

[2]Huh S.Modelbase construction with object-oriented constructs[J].Decision Sciences,1993,24(2):409-434.

[3]Lee K W,Huh S Y.A model-solver integration framework for autonomous and intelligent model solution[J].Decision Support Systems,2006,42(2):926-944.

[4]曹 琦,何中市,余 磊.基于HLA的Agent-DEVS协同仿真建模[J].江苏大学学报:自然科学版,2011,32(2):217-222.Cao Qi,He Zhongshi,Yu Lei.Collaborative model and simulation of Agent-DEVS based on HLA[J].Journal of Jiangsu University:Natural Science Edition,2011,32(2):217-222.(in Chinese)

[5]胡东波.模型驱动的决策支持系统研究[D].长沙:中南大学商学院,2009:62-88.

[6]邵 荃,翁文国,何长虹,等.突发事件模型库中模型的层次网络表示方法[J].清华大学学报:自然科学版,2009,49(5):625-628.Shao Quan,Weng Wenguo,He Changhong,et al.Representation method for hierarchy network models for emergency analyses[J].J Tsinghua Univ:Sci&Tech,2009,49(5):625-628.(in Chinese)

[7]邵 荃,翁文国,袁宏永.突发事件模型库中模型的动态网络组合方法[J].清华大学学报:自然科学版,2010,50(2):170-173.Shao Quan,Weng Wenguo,Yuan Hongyong.Dynamic network model integration method in emergency model base[J].J Tsinghua Univ:Sci&Tech,2010,50(2):170-173.(in Chinese)

[8]杨鹤标,乔亦民.基于Petri网的构件组装模型[J].江苏大学学报:自然科学版:2010,31(4):452-457.Yang Hebiao,Qiao Yimin.Component assembly model based on Petri net[J].Journal of Jiangsu University:Natural Science Edition,2010,31(4):452-457.(in Chinese)

[9]张宏军.决策支持系统中模型表示方法及DSS生成器实现技术研究[D].南京:南京理工大学计算机科学与工程学院,1999:58-66.

[10]Xing Ying,Zhang Hongjun,Zhang Rui,et al.Model representation and generation based on NVCR[J].Advances in Information Sciences and Service Sciences,2012,11(4):177-184.

[11]Xing Ying,Zhang Hongjun,Zhang Rui,et al.Model generation based on network of variable conversion relationship[J].Procedia Engineering,2011,24:202-207.

[12]邢 英,张宏军,张 睿,等.多阶段建模过程中可重用数学模型表示方法[J].计算机应用研究,2012,29(11):4206-4209.Xing Ying,Zhang Hongjun,Zhang Rui,et al.Reusable mathematical model representation in multistage modeling progress[J].Application Research of Computers,2012,29(11):4206-4209.(in Chinese)

[13]Fagin R,Ullman J D.A simplied universal relation assumption and its properties[J].ACM Transactions on Database Systems,1982,7(3):343-360.

[14]Maier D,Ullman J.Maximal objects and the semantics of universal relation databases[J].ACM Transactions on Database Systems,1983,8(1):1-14.

[15]Ron Ausbrooks,Stephen Buswell,David Carlisle,et al.Mathematical Markup Language(MathML)Version 3.0[EB/OL].[2012-12-17].http:∥www.w3.org/TR/2010/REC-MathML3-20101021/.

猜你喜欢
模型库对象变量
涉税刑事诉讼中的举证责任——以纳税人举证责任为考察对象
抓住不变量解题
基于Creo参数化建模的设备模型库建立方法
也谈分离变量
攻略对象的心思好难猜
基于熵的快速扫描法的FNEA初始对象的生成方法
区间对象族的可镇定性分析
基于模型库系统的金融体系流动性风险预警机制研究
SL(3,3n)和SU(3,3n)的第一Cartan不变量
基于模型库的现代成本会计计量系统研究