朱 滨, 朱敏洁, 周深根
(装甲兵工程学院装备指挥与管理系, 北京 100072)
多分辨率模型一致性维护模板框架设计
朱 滨, 朱敏洁, 周深根
(装甲兵工程学院装备指挥与管理系, 北京 100072)
针对作战仿真系统中模型并发运行时出现的不一致问题,分析了其原因,介绍了6种一致性维护的方法。以面向功能的方式提出了一种一致性维护模板的设计思路,确定了维护模板由判定模块、加解锁模块、另存模块和维护模块4部分组成,以交互时间顺序设计了维护模板的框架,并依据多分辨率模型并发运行的3个必要条件,以坦克连模型一致性维护流程为例,验证了该模板框架的可行性。
多分辨率模型;一致性维护模板;框架设计
在建模仿真领域,仿真系统往往庞大冗杂,系统中不同分辨率的模型关于对象、事件、仿真算法、仿真时间以及仿真环境等存在不同的假设[1],在模型并发运行过程中可能会出现时序不一致、端口不兼容、算法不合理等问题,进而导致不一致情况的出现。根据不同分辨率模型运行的时机和方式,目前已有针对聚合解聚、并发运行等情况下一致性维护方法的研究,但其通用性有限。针对这一问题,本文以面向功能的方式,结合多分辨率模型并发运行的实际需求,设计出一致性维护模板的框架,以提高一致性维护的简易度。
一致性维护是指当同一层次上的实体模型之间发生交互时,若模型属性发生了变化,则要反映到与此实体相关的所有分辨率模型中,从而保证同一实体的不同分辨率模型在属性上保持一致[2]。造成模型间不一致问题出现的原因主要有以下5个方面:1)因模型建模机理的差异而导致交互时数据缺失或无法匹配;2)因聚合解聚算法不合理而导致数据混乱;3)因系统无记忆性而导致信息丢失[3];4)因并发交互而导致多个仿真以不同时间步运行[4];5)因模型程序互不兼容而导致数据不完整。
从不同的角度出发,对模型进行一致性维护的方法主要有以下6种。
1) 嵌套2段式提交协议算法[2]。参与交互的多分辨率模型充当协调者,询问所有相关模型是否准备好参与交互,相关模型向上下级相关模型询问,只有当所有参与者作出肯定回馈,交互才继续进行;只要有一个模型作出否定回馈,则交互终止。
2) 参数修正法[3]。利用高(低)分辨率模型的结果来修正低(高)分辨率模型,这种方法主要运用在聚合解聚过程中。
3) 增加系统记忆法[3]。在发生聚合时,在恰当的位置保存高分辨率实体必要的属性,并在低分辨率模型运行期间及时进行更新,以便在下一次解聚时利用这些信息计算出高分辨率模型当前的状态。
4) 加锁法[5]。该方法是一种串行化方法,具体思路是:某实体具有高、低2个分辨率模型,其中一个模型在某时刻进行交互前,会针对交互影响到的属性向另一模型发送加锁指令,锁住另一模型的同态属性,加锁后的另一模型不能发送任何能够引起同态属性发生改变的交互;待发生交互的模型交互完毕后,发送解锁指令对另一模型进行解锁。
5) 冲突检测法[5]。模型在发送交互时并不考虑交互冲突问题,而是发给多分辨率模型交互管理器。交互管理器已设定好不同的冲突处理程序与步骤,进行检查判断后,依据情况来选择解决方式。
6) 面向模型法[5]。从模型设计上避免交互冲突的出现,不同分辨率的模型不能独立运行,需要相互协调,共同达成仿真目的,高分辨率模型并不是脱离低分辨率模型而独立存在的。
3.1 维护模板的优势
目前,每种一致性维护方法只能解决单一特定环境下的具体问题,面对庞大冗杂的仿真系统,若只使用单一的方法,不仅适用性不强、维护效果不好,而且会造成大量数据丢失及失真,严重影响仿真结果的准确性。运用模板的方式来解决一致性维护问题,其优势在于:可以将多种一致性维护方法按照不同的适用条件加以集成,设计出一种可以整体嵌套的模板,针对不同的适用环境,采用不同的维护方法,从而达到一致性维护的目的。这不仅能扩宽一致性维护模板的使用范围、减少工作量,还能提高维护的准确率、降低维护难度,实现“套用后不管”。
3.2 维护思路的提出
以面向功能的方式,按照模型交互的时间顺序,结合一致性问题出现的各种原因,探讨一致性维护模板需要实现的具体功能,引出一致性维护模板的设计思路,如图1所示。在一个连级多分辨率作战仿真系统中,聚合级实体与平台级实体并发运行,t0时刻系统处于初始状态。当蓝方7排低分辨率模型向系统发出与红方1排低分辨率模型进行交互的请求时,系统确认并调出红方1排低分辨率模型与之进行交互,交互完成后形成t1时刻下新的红方1排低分辨率模型。此时,红方1连高、低分辨率模型,红方1排高分辨率模型,以及红方坦克1高、低分辨率模型的状态仍处在t0时刻,而t1时刻的红方1排低分辨率模型数据已发生了变化,导致不一致问题出现,需要进行一致性维护工作。
图1 一致性维护模板设计思路
按照一般情况,需要选择一种在系统模型出现不一致时对系统进行维护的方法。但是,按照交互的时间、程序、逻辑顺序,还需要考虑以下4种情况:
1)t0时刻,红方1排低分辨率模型尚处在不一致状态,蓝方7排低分辨率模型已发来交互命令并进行交互;
2) 在蓝方7排低分辨率模型与红方1排低分辨率模型进行交互的同时,出现其他模型与红方1排高分辨率模型并发交互,导致同一实体的不同分辨率模型在同一时间段内分别与不同模型发生交互的违现实情况;
3)t1时刻蓝方7排低分辨率模型与红方1排低分辨率模型之间的交互已完成,以红方1排低分辨率模型为基准模型进行维护计算时,生成的新数据与原模型的旧数据混杂,导致模型数据失真;
4)t1时刻红方1排低分辨率模型完成交互,进行一致性维护时,生成新的各级模型数据所采用的方法不尽相同。
因此,应从以上4种情况入手来实现模板一致性的维护:套用模板之后,从t0时刻开始,确定各模型已做好交互准备;在t1时刻,对不参加交互的模型进行锁定,消除并发交互的可能;在交互完成之后,先对原模型的数据进行保存,以备聚合解聚时使用;最后进行聚合解聚时,综合考虑各种可能,集成多种方法,针对不同的情况采用不同的算法,得到t1时刻彼此相一致的一组系统模型。
3.3 模板框架设计
从一致性维护模板设计思路可知模板至少由4部分组成,分别是:判定交互准备部分、加锁部分(必定存在解锁部分)、系统记忆部分和维护算法部分。将各个部分以模块的方式进行划分,分别命名为判定模块、加解锁模块、另存模块和维护模块。同时,还需考虑到模板的各个模块并不是独立存在的,而是始终以交互时序为主线,以系统交互命令为触发点,逐一启动相应模块发挥作用,协调一致解决一致性维护问题。因此,可以提出每一时序的具体内容,构建出整个维护模板的框架。
首先,设定提出交互需求的模型为红方模型,待交互模型为蓝方模型,模型运行的底层框架为高层体系结构(High Level Architecture,HLA)[6],整个维护模板进行维护的启动事件是接收到交互命令。同时,为便于表达,将加解锁模块从功能上分为加锁模块和解锁模块。收到交互命令时,具体步骤为:1)对红、蓝方模型进行初始一致性状态判定;2)对红、蓝方模型进行另存操作;3)对不参加交互的红、蓝方模型进行加锁操作;4)对已加锁的红、蓝方模型进行解锁操作;5)以交互后的红、蓝方模型为基准,结合已另存的原模型,对整个红、蓝方模型进行一致性维护。
在此需要指出:加锁后的模型不能进行任何操作;而参与交互的模型不加锁。加锁操作完成后,根据交互命令,参加交互的红、蓝方模型在HLA框架内进行交互。经过检查,发现存在以下问题:1) 对红、蓝方模型确认交互准备时,模型间不一致;2)在判定、解锁、另存、维护阶段,仍接收到交互命令;3)解锁模块对已加锁的红、蓝方模型进行解锁的时机判定不准确,导致提前解锁问题的出现。
因此,在进行模板设计时,需要考虑到以上问题所引起的模块关联。可将这些问题的解决办法化解为以下具体步骤,融入到模板框架中。
1) 当红、蓝方模型初始状态不一致时,先将模型另存,然后直接由维护模块进行一致性维护。
2) 为避免其他阶段仍有交互发生,在此规定只有加锁阶段才能进行交互。因此,维护模板启动时,判定模块首先向HLA发送停止仿真时间命令;加锁过程完成后,加锁模块向HLA发送仿真时间开始命令;交互结束后,解锁模块向HLA发送停止仿真时间命令;一致性维护过程结束后,维护模块向HLA发送仿真时间开始命令。
3) 当第1次交互完成后,如果仍有交互命令且参加交互的模型仍是未加锁模型,则可继续进行交互;如果仍有交互命令但参加交互模型是已加锁模型或无交互命令,则此次交互结束,HLA向解锁模块发送解锁命令。
按照以上各模块的时序步骤,根据编号顺序和内容进行整合和调整,可以得出整个一致性维护模板的框架结构。经过反复推演和修改,综合考虑各种可能出现的情况并进行排除,一致性维护模板的框架设计基本完成,如图2所示。分3种情况进行维护:模型初始一致的维护顺序为①—②—③—④—⑤;模型初始不一致的维护顺序为①—②—⑤—②—③—④—⑤;模型运行一段时间后出现不一致且仍未有交互需求的维护顺序为①—②—⑤。
图2 一致性维护模板框架设计
多分辨率模型在作战仿真系统中并发运行,考虑到受系统运算效率的制约,并不需要所有模型在每个时间节点都必须保持一致,而只需在以下3个时刻使所有模型保持一致,就能够保证仿真的逼真度:1)某模型参与交互之前;2)某模型完成交互之后;3)系统无交互需求,所有模型自发运行一定时间后。
为了验证所设计一致性维护模板框架的可行性,下面以坦克连模型维护过程为例进行分析判断。
坦克连一致性维护模板框架流程如图3所示。在一个坦克连作战仿真系统中,某一时刻并发运行着红方1连、1排低分辨率火力模型,以及蓝方3连、7排低分辨率火力模型,假设双方模型初始时刻不一致。HLA接到交互命令后,由红方1连低分辨率火力模型与蓝方3连低分辨率火力模型进行交互。
图3 坦克连一致性维护模板框架流程
1) 发生交互前,判定模块判定初始状态不一致后,另存模块对所有模型进行另存,作为维护的参考。接着,维护模块根据设定的顺序,以红方1排、蓝方7排低分辨率火力模型为基准,参考另存的原模型,分别修正红方1连、蓝方3连低分辨率火力模型,使2组模型在参加交互前保持一致。
2) 交互完成后,解锁模块对红方1排、蓝方7排低分辨率火力模型进行解锁。维护模块根据交互命令,判定完成交互的红方1连、蓝方3连低分辨率火力模型为此时一致性维护的基准模型,并结合另存的原模型,对红方1排、蓝方7排低分辨率火力模型进行一致性维护。维护完成后,各模型保持一致。
3) 4个模型运行一定时间后仍未发生交互,判定模块判定不一致后,另存模块对所有模型进行另存,并以红方1排、蓝方7排低分辨率火力模型为基准,参考另存的原模型,分别修正红方1连、蓝方3连低分辨率火力模型,使2组模型此刻保持一致。
由此可见:一致性维护模板的框架设计可以满足多分辨率模型并发运行时的3个必要条件,表明所设计框架可行。
以模板的方式进行一致性维护,其优势是能够简化各层级模型交互时一致性维护的工作,同时为更高层级模板的设计提供方法和借鉴;其不足是模板的针对性和单一性可能会导致模板套用时的僵化和呆板问题发生。下一步将以模板的通用性为研究重点,扩展套用条件,提高适用性,并在实例应用中进行检验。
[1] 刘宝宏,黄柯棣.多分辨率模型系中的一致性问题研究[J].系统仿真学报,2005,17(9):2057-2060.
[2] 袁凌,张晓芳,李国徽,等.分布式仿真多分辨率建模方法及一致性维护[J].计算机科学,2011,38(11):140-143.
[3] 朱松岩,江敬灼,叶雄兵,等.聚合解聚及其一致性问题研究[J].军事运筹与系统工程,2008,22(3):33-38.
[4] 高志年,邢汉承,张君.多分辨率仿真中一致性问题研究[J].计算机研究与发展,2002,39(12):1625-1629.
[5] 刘宝宏,黄柯棣.分布交互式仿真中的多分辨率模型并发运行问题研究[J].系统仿真学报,2007,19(5):1038-1040.
[6] 刘宝宏,黄柯棣.多分辨率建模的理论与关键技术研究[D].长沙:国防科学技术大学,2003.
(责任编辑: 尚彩娟)
Design of Consistency Maintenance Template Frame for Multi-resolution Model
ZHU Bin, ZHU Min-jie, ZHOU Shen-gen
(Department of Equipment Command and Administration, Academy of Armored Force Engineering, Beijing 100072, China)
Aiming at the inconsistencies existing when the models of the combat simulation system run concurrently, the causes of inconsistencies are analyzed, six kinds of consistency maintenance approach are introduced, and a function-oriented design idea of consistency maintenance template is proposed. The consistency maintenance template is composed of the judging module, the lock/unlock module, the save module and the maintenance module. A maintenance template framework is designed according to the timing sequence, based on three necessary conditions for multi-resolution model running concurrently, taking the consistency maintenance process of tank company model for example, the feasibility of the template framework is verified.
multi-resolution model; consistency maintenance template; frame design
1672-1497(2015)03-0085-04
2015-03-02
军队科研计划项目
朱 滨(1988-),男,硕士研究生。
TP391.9
A
10.3969/j.issn.1672-1497.2015.03.017