一种决策支持系统模型动态生成策略研究

2017-04-05 17:11唐朝胜刘世洪段玉聪
江苏农业科学 2016年12期
关键词:决策支持系统框架模型

唐朝胜 +刘世洪 段玉聪

摘要:在已知决策支持系统(DSS)模型表达形式的基础上,探索其计算机实现过程中的自动化。针对目前模型驱动工程中有关DSS模型的研究集中于领域模型构建机制及平台的搭建,而对模型复合及求解等生成机制方面的研究关注不足,本研究提出了一种基于WF工作流等技术来完成DSS模型从创建到复合运行的自动化策略,并实现了相应的框架原型。该框架提供了人性化的模型生成环境,所有实现细节对模型研究者而言均为黑盒抽象,使用者无需编程即可完成模型的生成。此策略为DSS模型构建的工程化、智能化提供了一种新的思路。

关键词:决策支持系统(DSS)模型;模型驱动;WF工作流;框架

中圖分类号: TP311.52;S126文献标志码: A

文章编号:1002-1302(2016)12-0397-05

收稿日期:2015-10-16

基金项目:国家自然科学基金(编号:61363007)。

作者简介:唐朝胜(1975—),男,湖南资兴人,副教授,主要从事软件工程、作物信息化研究。E-mail:tcsjk@163.com。

通信作者:刘世洪,研究员,主要从事农业信息化研究。E-mail:liushihong@caas.cn。

决策支持系统(Decision Support System,DSS)是以计算机技术为基础的对决策支持的知识信息系统,用于处理决策过程中的半结构化和非结构化问题[1]。一般而言,决策者使用DSS不是直接依靠数据进行决策,而是依靠模型库中的模型进行决策,所以DSS是由“模型驱动”的[2]。因此有关模型的表达、存储及执行等模型生成方面的研究显得尤为重要。良好的模型生成环境有助于高质量DSS模型的构建及运行,如通过配置Hadoop云环境,可实现模型的并行计算[3];或以面向服务为架构,设计作物模型区域应用Web服务组合框架等来解决作物模型与GIS集成环境问题[4]。

近年来,将模型驱动工程等新兴开发方法应用于DSS模型综合生成环境的研究成为新热点。如有学者提出基于问题求解的模型表示方法[5]、定性定量相结合的综合集成模型构造方法[6]、基于模型驱动开发理论的设计流程建模工具[7]或作物生长模型可视化设计工具[8],以及综合作物系统模拟技术、知识工程及自适应软件开发方法,运用系统分析和知识建模手段,采用模型描述脚本功能构建作物生长模型来设计智能化作物集成建模辅助系统[9]。

模型驱动工程的优点是采用相关领域的建模语言,构建可视化模型,使领域专家和设计人员专注于业务逻辑而无需过早考虑平台相关的实现细节。然而领域模型构建后,最终还需要通过自动(半自动)的层层转换完成从设计到实现的过渡。虽然采用模型驱动工程开发方法将有助于构建领域模型PIM(平台无关模型),但目前针对将PIM转化为PSM(平台相关模型)的代码框架构建以及模型的复合和运行方面的研究仍显不足。从系统的计算机实现角度看,仍存在模型转换过程中过度依赖于程序代码等现象,缺乏自动化和智能化、面向建模人员的模型构建、复合及运行的系统环境。

由于微软的WF提供了良好的工作流建模环境,可以在此平台上进行二次开发,内嵌的WF工作流引擎可完成工作流的解析,因此设想DSS子模型的复合和求解过程即为一个工作流模型构建及运行的过程:(1)DSS子模型可视为一个包含求解算法的活动;(2)子模型的复合即为在工作流平台下将多个活动按照规则构建工作流模型的过程;(3)复合模型的运行则是这些活动在工作流引擎的调度下完成的运算。

为此,本研究在已知模型表达形式的基础上,提出一个面向建模人员、无需编程即可覆盖模型从构建到复合运行过程的模型自动生成策略,并采用WF工作流及动态编译等技术实现相应的原型框架。最后以作物生长模型为例,对模型的生成过程进行了验证。

1系统总体设计

1.1系统设计策略及流程

模型自动生成策略的基本思想是首先提供一个模型构建环境,支持多种算术表达式符号的创建;其次完成模型运算的自动解析及存储表达;最后创建WF自定义工作流设计器,实现模型程序集的构建、导入、复合和运行。综合以上思路,得到如下设计流程图(图1)。

[TPTCS1.tif]

1.2系统架构

本框架设计主要包括系统架构设计以及模块设计两大部分。架构设计是基础,模块设计是核心。体系架构设计的目的是根据设计目标,确定总体结构中各模块的分工、任务边界以及协作机制。根据设计流程,确定整体架构3个层次:(1)独立开放的模型创建环境;(2)自动快捷的模型文件转换环境;(3)操作简便的模型复合及运行环境。

1.3模块设计

模块是从用户需求角度,对体系结构功能和任务有机地划分。模块设计时,需根据各模块任务、边界和工作流程,构建清晰的数据结构,完成模块菜单以及人机交互界面设计,同时完成模块的输入输出等功能[10]。结合框架的核心功能,设计了模型创建模块、模型解析模块、模型转换模块、模型复合及运行模块等4个模块。模块之间可独立运行,但又相互协作,无缝衔接,贯穿整个生成周期。

1.3.1模型创建模块

微软的VS2010开发环境下,结合第三方控件MathMLControl实现模型创建模块。建模用户可借助其数学公式编辑功能以及可视化工具箱,有效地完成较复杂的数学表达形式。保存后自动将模型表达转换为符合MathML语法格式的XML类型文件。

1.3.2模型解析模块

针对文档数学公式中所涉及的MathML各种符号表达,如标志符、操作符、数字、文本等,模块将依据后述的文法规则,采用递归下降语法和语义分析方法,结合标准的C#函数将其解析成C#中间代码。解析程序使用的核心类(图2)对应算术和代数运算符、分式和根式运算符、上下标等符号的表示以及相应的语义解析。

1.3.3模型转换模块

该模块提供将C#中间代码转化为标准XAML工作流文件的转换环境。为实现转换过程的通用化,采用了VS2010中的T4文本模板。所设计的模板可以根据模型公式左右两边的变量自动生成输入及输出参数。最后采用动态编译执行技术将包含模型参数及运算流程的中间代码序列化为XAML文件。

1.3.4模型复合及运行模块

此模块提供工作流文档复合和运行的环境,其核心就是一个内嵌WF工作流引擎[11]、能独立运行、界面友好的可承载自定义流程设计器。包括如下功能:

(1)模型导入。模型导入的过程即为动态加载工作流文件的过程,其实质是将带自定义输入参数的XAML文档进行反序列化,并将文件中的对象转换为工作流活动实例,最后以图形方式呈现在设计器画布中。

(2)模型保存。模型保存过程是将设计器中的工作流定义序列化为XAML文件。这些已序列化的定义内容可以重新加载以便编辑或检测,也可以传递给生成系统以供编译,加载并调用。

(3)模型动态编译和复合设计。模块具备动态编译当前已加载的工作流模型并保存为程序集的功能。进行模型复合设计时,设计者可以将多个模型程序集加载至活动工具箱,并结合WWF内置的Flowchart、Sequence、Parallel等活动一起完成工作流程的设计。

(4)模型运行。一旦模型复合设计完毕,内置的WF工作流引擎将根据设计的流程运行。

2系统关键问题及实现

2.1模型表达及转换

生成过程的不同阶段,模型的表达形式有所不同。因此,如何将不同阶段模型的表达形式进行转换是系统框架设计中优先考虑的问题。

2.1.1模型符号表达及存储

在模型构建环境中,引入了第三方控件MathMLControl。它是一个数学公式可视化控件,不仅包含了大量的数学相关符号,如算术运算符号、导数符号、积分符号等,还提供了强大的数学公式编辑功能,可有效进行诸如上标、下标等形式的组合,从而完成较复杂的数学表达形

[FK(W20][TPTCS2.tif]

式。此外,模型存储采用了基于XML标准的MathML(MathMarkupLanguage,数学标记语言)作为模型存储形式,主要基于:(1)XML作为一种标准的、可扩展的、半结构化的标记语言,目前已经成为许多领域内常见的数据表示和交换的标准,为模型系统功能的扩展提供支持。(2)MathML作为计算机之间交换数学信息的一种标准,是由W3C(万维网联盟)在XML的基础上制定而成的。利用它可以解决同一数学模型在不同平台的差异性。由于它提供一个可视化的模型构建环境,帮助我们显示、操作和共享数学表达式,有力地支撑了模型的集成与开发,降低了统一管理各领域模型的难度[12]。其正则文法公式如下所示:

→{Exp}

Exp→Term{BinocularOp Term}||BiMark

BinocularOp→-LogicMo-DualMo

LogicMo→Not

DualMo→Abs|Lb|Rb

Term→Factor{BinocularOp Factor}|

Factor→||LogicMo Factor|Func Lb Exp Rb|Abs Exp Abs

BiMark→|||

→LbSeparatorRb

→Exp

通过分析,可以发现XML文件内部不仅包含了基本模型符号的表达,也包含了模型数值或逻辑运算符号的组织形式,是模型表达的结构形式与模型运算推理过程的有机结合。

2.1.2工作流模型表达

工作流文件XAML(eXtensible Application Markup Language,可扩展应用程序标记语言)是微软为构建应用程序用户界面而创建的一种新的描述性语言,提供了一种便于扩展和定位的语法来定义和程序逻辑分离的用户界面,用户可在创建过程中添加代码,同时也可将文件保存到数据库中。在实际运行时利用工作流引擎对文件所包含的工作流活動进行解析。在模型复合及运行阶段,包含模型运算过程的XAML文件既能被可承载的自定义工作流设计器所识别和解析,也能快捷地转换为模型程序集,方便模型的复合。

2.1.3不同模型表达形式的转换

由于XML文件不能直接转为XAML格式,必须借助一种中间过渡形式完成转换。由于MathML符合上下文无关文法,当给定一个表达式句子,就可以得到一棵相应的语法树,这也为MathML的数学语义转换(如映射到其他数学系统中的表达式)、解析以及动态编译提供了方便。因此首先将MathML语法结构解析转化为包含C#运算函数的程序代码,然后采用T4模板以及动态编译技术将该中间代码形式转换为包含程序执行流程的工作流文件。其中所有的转换细节均采用黑盒抽象,对建模用户而言是透明的,实现了转换过程的自动化。

2.2WF工作流设计器构建

为了方便创建、修改、监视工作流以及动态生成和加载程序集,设计器需解决如下问题:(1)可创建一个空的应用程序作为宿主;(2)提供GUI环境,包括工作流设计、工具箱和属性等窗格,满足良好的人机交互,即一旦将工具箱中的活动拖动到设计画布上时,属性网格可根据突出显示的活动进行更新,从而保证了呈现于不同窗口中的活动类、活动类实例对象以及对象属性之间的联动;(3)内嵌WF工作流引擎。

2.3模型程序集编译、复合运行

虽然DSS子模型对应的XAML文件可以在不被编译成为程序集的情况下动态地被加载和运行,但我们更希望模型能够以程序集的形式被包含,以方便更多的应用程序共享和使用(尤其在模型的复合阶段)。此外,模块还可以导入已有的程序集,加载其中包含模型的工作流活动类至活动工具箱。这样DSS模型的复合也变成了按需将这些自定义的活动拖拽至设计器形成复合链的过程。

复合模型的运行一般离不开模型之间数据的交换。为解决参数数据的传递问题,即让一个模型的输出成为另一个模型的输入,在最初设计模型工作流参数类型时将它们定义为输入/输出双向类型。由于设计器内嵌的WF工作流引擎支持运行时动态创建新的双向参数,这样可将原本运行于不同进程之间相互隔离的模型参数通过这些中间参数串接起来,从而实现了数据的交流。

3框架应用案例

3.1作物模型特征及模型选取

作物生长模拟模型简称作物模型,是作物科学中引进系统分析方法和应用计算机后兴起的新型研究领域[13]。它是对作物生长发育生理生态过程基本规律及其相互关系的量化表达,因此具有基础性、量化性及一般性的特征[14]。已知影响作物产量重要的因素之一是净光合率(作物生长率)[15]。包含如下子模型:

(1)总有效光吸收模型

[JZ]Iabs=0.5·(1-ρ)·I0·(1-e-k·L);

(2)CO2总同化量模型

[JZ]Ag=E·Iabs;

(3)维持呼吸消耗量模型

[JZ]Rm=TC·MC·W;

(4)温度校正系数TC

[JZ]TC=Q10[JB([][SX(]T-Tref10[SX)][JB)]];

(5)净光合率-作物生长率

[JZ][SX(]dwdt[SX)]=CVF·[JB((][SX(]3344[SX)]·Ag-Rm[JB))]。

3.2模型生成过程验证

根据设计流程,这些作物模型对应的工作流活动应由前述的4个模块相互协作共同完成。以总有效光吸收模型为例,模型从创建、解析、转换以及活动生成的整个过程如图3所示。其他模型活动的生成过程类似,这里不再赘述。

活动创建后,下一步就是构建工作流模型,即如何组织这些活动形成有效的工作流程。工作流的定义方式一般可采用脚本语言(如ESP、ECA规则)、图形(扩展的Petri-net)以及混合模式等[16]。如有学者采用ESP规则定义了DSS模型集成过程[17],或采用ECA规则[18]描述企业工作流过程,以及利用ECA规则和模糊Petri-net来定义工作流异常流程等[19]。我们采用了ECA规则与WF-net混合形式对工作流模型进行定义以及实现(限于篇幅,另文详述)。通过模型公式可以看出,总有效光吸收模型Iabs输出结果为CO2总同化量的输入,构成串行顺序。同理,温度校正系数TC的输出为维持呼吸消耗量的输入参数之一,它们之间也是串行关系。两条串行线运行的结果分别又作为净光合率的两个参数输入,且由于它们之间相互独立,故又构成并行关系(图4)。输入相关参数值后,工作流模型运行结果如图5所示,与预期结果一致。

4结论

基于已知模型的表达形式,通过建模控件完成模型的创建,将模型的运算过程转化为可处理的工作流模型,并在模型实例化和复合阶段为模型动态创建数据交换所需的辅助参数,最后完成模型的执行。从模型工程的角度看,侧重于PIM的物理实现,其框架原型具备了良好的智能性和可扩展性,经过实践检验,其最大特点是:

(1)人机界面友好。提供了方便、人性化的模型创建以及运行环境,具备丰富的数学符号表达以及支持拖拽功能来完成模型的复合。

(2)通用性强。采用了通用的XML文件作为存储中介,并能方便地转化为工作流专用文件XAML。

(3)自动化程度高。模型参数类型及个数能自动识别。能在复合阶段动态地创建辅助参数。

(4)透明性好。建模过程不依赖于程序代码,避免了建模者与程序代码的直接接触。

除了进一步优化集成系统框架外,还需从以下几个方面进行探索:①支持更复杂的模型复合以及求解算法的改进;②模型的持久化及数据库的管理;③有效地将PIM设计与实现对接;④支持网络服务应用的扩展。

[HS2*2]参考文献:

[1]Er M C. Decision Support Systems:a summary,problems and future trends [J]. Decision Support Systems,1988,4(3):355-363.

[2]张治. DSS模型库管理系统设计[J]. 河南科技大学学报:自然科学版,2004,25(5):38-42.

[3]赵青松,陈林,孙波,等. 基于Hadoop 的云环境下作物生长模型算法的实现与测试[J]. 农业工程学报,2013,29(8):179-184.

[4]姜海燕,茅金辉,胥晓明,等. 基于面向服务架构和 WebGIS 的小麦生产管理支持系统[J]. 农业工程学报,2012,28(8):159-166.

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

[6]陳雪龙. 面向复杂决策问题的模型构造与管理方法研究[D]. 大连:大连理工大学,2008.

[7]唐文炜,沈备军,陈德来. 模型驱动的业务流程建模工具[J]. 计算机工程,2009,35(24):262-264.

[8]赵鑫. 基于ECore的作物生长模型构建及模型设计工具研究[D]. 南京:南京农业大学,2013.

[9]姜海燕. 基于生長模型的智能化作物集成建模辅助系统研究[J]. 中国农业科学,2008,41(3):695-703.

[10]张维理. 智能化海量空间信息分析与地图制图软件包IMAT设计及构建[J]. 中国农业科学,2014,47(16):3250-3263.

[11]Bukivics B. Pro WF:Windows workflow in .net 4[M]. Apress,2010.

[12]王晨亮. 基于工作流的资源环境建模框架的设计与实现[D]. 济南:山东科技大学,2010.

[13]高亮之. 农业模型学基础[M]. 香港:天马图书有限公司,2004.

[14]薛林,郑国清,戴廷波. 作物生长模拟模型研究进展[J]. 河南农业科学,2011,40(3):19-24.

[15]曹卫星,罗卫红. 作物系统模拟及智能管理[M]. 北京:高等教育出版社,2003.

[16]Chen L,Li M L,Cao J,et al. An ECA rule-based workflow design tool for shanghai grid[C]//2013 IEEE international conference on services computing. IEEE Computer Society,2005:325-328.

[17]刘松. 事件和参数双因素驱动的智能模型集成机制[J]. 计算机工程与应用,2012,48(8):28-31.

[18]Yongchareon S,Liu C,Yu J,et al. A view framework for modeling and change validation of artifact-centric inter-organizational business processes [J]. Information Systems,2015,47:51-81.

[19]Ye Y,Jiang Z,Diao X,et al. Extended event-condition-action rules and fuzzy Petri nets based exception handling for workflow management [J]. Expert Systems with Applications,2011,38(9):10847-10861.

猜你喜欢
决策支持系统框架模型
护理临床决策支持系统的理论基础
重要模型『一线三等角』
广义框架的不相交性
重尾非线性自回归模型自加权M-估计的渐近分布
临床决策支持系统应用于呼吸疾病的现状概述
电务维修决策支持系统研究
WTO框架下
3D打印中的模型分割与打包
县级防汛辅助决策支持系统的设计与实现
一种基于OpenStack的云应用开发框架