基于模板的专题制图数学模型构建和应用
2010-11-15张亚军潘志超
冯 涛,张亚军,江 南,潘志超,2
(1.信息工程大学 测绘学院,河南 郑州 450052;2.71320部队,河南 开封 475000)
基于模板的专题制图数学模型构建和应用
冯 涛1,张亚军1,江 南1,潘志超1,2
(1.信息工程大学 测绘学院,河南 郑州 450052;2.71320部队,河南 开封 475000)
数学模板是基于面向对象的理念对专题制图数学模型所涉及的参数变量、数学运算的一种抽象和结构化。提出通过数学模板的嵌套和递归调用构建专题制图数学模型的新思路。基于这种思路,设计数学模型构建软件,通过该软件可以把数学模型分解为数学模板并以文件的形式提供给专题制图系统使用。这种方法具有非编程、灵活、可扩展性强等优点。
数学模型;专题制图;面向对象;数学模板;嵌套
专题制图数学模型是将制图现象的特征或本质给以数学表达的数学关系式[1]。基于制图数学模型的数据处理是专题地图制作的核心,是专题地图科学表达的前提保证。数学模型在计算机中的实现落实于一定的数据结构和算法。在软件开发中,专题制图数学模型大多针对具体的专业问题,以程序、文件、插件形式存在,模型与系统具有较强的耦合度[2-4]。针对新需求,往往需要编写新程序,无法实现新模型的实时快速生成。文献[3-5]提出了算法组合构建数学模型的新方法,是对传统方法的一个突破;作者围绕元算法构建 GIS(专题地图)数学模型库的理论和方法做了系统的阐述,取得了一系列成果;但作者对数学模型嵌套构建的实质并未真正把握,对数学模型构建的基本单元(作者称之为“元算法”)也未做深入分析和清晰的描述。这一缺陷,使软件在进行跨平台移植和功能扩展时都很困难;模型构建时,操作复杂,构建效率不能得到根本提高。
本文从数学模型实现和哲学的角度[6],认为数学模型是数学元素(参数变量)经过层层复杂的联系(数学运算)融合而成。利用模板技术把数学模型组成要素——参数变量、数学运算抽象为数学模板,包括参数模板、运算模板。以数学模板代替“元算法”,专题制图数学模型的构建和应用在计算机实现的内部机制上表现为数学模板的嵌套和递归调用。
1 基于模板的专题制图数学模型构建原理
1.1 数学模型嵌套组合的机理
在数学上,复杂运算可以由简单运算按照一定规则相互嵌套而成,最简单的例子便是四则混合运算。专题制图数学模型可以看作数据加工器。输入、处理、输出是其3个基本部分。如果模型1的输出数据类型等于模型2的输入数据类型,则模型1可视作模型2的一个参数参与模型2的运算。基于这一原理,复杂的数学模型可由简单数学模型相互嵌套组成,在计算机实现上则表现为数学模型的递归调用。
以等差数列分级模型 A i=L+ (i-1)(HL)/K(求分级界限)为例,它是由若干基本模型(加、减、乘、除)嵌套而成,只要知道了加、减、乘、除等基本模型便可层层嵌套构造此模型。为了更清晰的了解这一过程,本文由整体到部分对其进行逐层分解,并以树状图的形式对这一分解过程进行表示和具体诠释。其中树结点代表构建过程中不断产生的数学模型,结点下方箭头旁边的标示指示该结点所进行的运算。如图1所示,其特征如下:
1)除了叶结点和根节点,树结构图的中间结点所代表数学模型,具有3个特点:①其本身是某种数学模型;②相对于子结点,表示某种运算,包括单目运算(如正弦运算)或双目运算(如加法模型);③相对于父结点,表示输入参数。
2)叶结点为参数变量或参数常量(常量可看作变量的特例:变量值不变),是模型与系统的数据接口。
3)根结点是最终要构建的专业数学模型。模型嵌套构建的过程和图1分解过程相逆:即首先构造简单数学模型(包括参数变量),然后向“树根”逐层嵌套,直至构造出用户需要的数学模型。上述构建过程实质是:参数变量经过复杂的多层次运算联系构建新的数学模型,联系的依据便是两模型进行衔接(输入与输出)的数值类型相同。
图1 数学模型嵌套组合原理
1.2 数学模板及其实例化的概念
现实世界中的很多方法、工艺流程、对象都有类似的地方。把多样化的同一类事物的共同特征集合起来就形成了抽象化的模板,对抽象化的模板进行不同修改就回放成了多样化的事物[8]。本文所指的数学模板是基于面向对象的理念对专题制图领域数学模型所涉及参数变量、数学运算的一种抽象和结构化。数学模板的实例化即为某种参数变量或数学模型。模板类似于面向对象设计中的类,模板的实例化类似于对象。其中:
1)参数模板是数学模型所涉及参数变量(包括常量)的一种抽象。专题制图数学模型涉及:整型参数模板、浮点型参数模板、数组型参数模板、矩阵型参数模板。例如,对于浮点型参数模板,任何浮点型的参数变量都是其实例化。
2)运算模板是模型所涉及数学运算的抽象和结构化。在专题制图中,包括单目运算模板和双目运算模板。双目运算模板:该运算需要有两个参数,如加、减、乘、除、乘方;单目运算:该运算只需一个参数,如绝对值、正弦、余弦、正切、余切、数组的长度、降序、频数;矩阵的初等行变换、行列式模型、逆矩阵模型、转置模型等。例如对于减法运算模板,i-1、H-L均为的实例化。
参数模板可以看作数学模型基本构成元素的抽象和结构化;运算模板可以看作数学模型构成元素之间联系的抽象和结构化。
为满足专题制图数学模型构建的需要,数学模板需要有一定完备性。数学模板,尤其是运算模板的总结不可能一劳永逸,随着应用的进行和专业认识的深入,需要实时做出扩展。
1.3 基于数学模板的专题制图数学模型应用
以运算模板代替图1中非叶子结点所标示数学运算,则数学模型可以通过数学模板的嵌套来实现,数学模型嵌套组合落实于数学模板嵌套组合。作者设计专门的数学模型构建软件,通过该软件得到构成该数学模型的数学模板信息,并保存为文件提供给专题制图系统应用,如图2所示。
1)数学模型构建系统:基于该软件,数学模型被拆解成一个个的数学模板,并以特定结构保存为文件提供给专题制图系统。以图1为例,这些模板表现为所有二叉树结点所代表运算模板或参数模板。
2)专题制图系统:读取文件,根据文件中的记录信息调用相应数学模板嵌套构建数学模型。数学模型在专题制图上的应用是数学模型的参数变量接收数据信息,依次调用运算模板进行数据处理的过程。以图1为例,表现为:自“叶子”结点向“树根”结点逐渐聚合的过程。
图2 基于数学模板的专题制图数学模型应用机制
2 数学模板的面向对象设计
数学模板设计包括数学模板的逻辑层次结构和内部功能结构。
2.1 数学模板的逻辑层次结构
本文基于面向对象技术来设计数学模板。要实现模板的嵌套,需要所有数学模板(包括参数模板、运算模板)在一定层次上属于同一概念模型(在编程上具有同一基类)[9]。利用面向对象技术,把数学模板的共同属性和方法特征进行抽象,并在抽象类CMathModel中进行封装,而所有数学模板通过继承CMathModel来拥有或重载其属性和方法。除此之外,参数模板和运算模板通过实现不同的接口予以区分。
1)每个数学模板具有唯一标示自己的标示号。
2)数据类型类:类 CIntType、CDoubleType、CA rray Type、CMatrix Type继承 CM athModel的属性和方法,并选择实现不同的数据类型接口,包括:整型、浮点型、数组型、矩阵型。数学模板通过继承不同的数据类型基类,来决定自己的输出数据类型(参数模板的类型或运算模板的运算结果输出类型)。
3)运算模板:接口 IOne Item、ITwo Item分别代表单、双目运算。根据运算参数个数,分别实现IOne Item或 ITwo Item来反映模板的运算特点;数学运算模板的唯一标示号取值范围为21~999;
4)参数模板:接口 IIntVariable、IDoubleVariable、IA rrayVariable、IM atrix IVariable 分别代表 4种不同的参数变量。通过实现不同的接口,得到不同的参数模板。其中:数组变量和矩阵变量的元素值为浮点型。参数模板的唯一标识号依次为11、12、13、14。
以浮点型变量模板、乘方数学模板为例,其逻辑层次结构如图3所示。
2.2 数学模板的内部功能结构
如图4所示,数学模板的功能结构由6部分组成,分别为存储模块、变量模块、输入模块、数值运算模块、规则约束模块、输出模块。
图3 数学模板的逻辑层次结构
1)输入模块和输出模块。模板嵌套时,是模板嵌套的接口;数学模型构建和应用的过程即是数学模板把其它数学模板作为自己输入参数的过程。对于实例化的数学模型,则是数据流入和流出的通道。
2)存储模块、变量模块、数值运算模块服务于数学模板实例化的数学模型。存储功能的实现和参数变量的获得需要构成数学模型的数学模板的嵌套调用。以图1为例,对于L+(i-1)(H-L)/K,要获得其变量,必须从根结点出发,嵌套调用数学模板直到得到参数变量,最终得到L,I,1,H,K;要实现存储功能,必须从加法运算模板开始嵌套调用模板的存储功能,每个数学模板存储本结点的基本信息。
3)规则约束模块是对模板嵌套与模板实例化的数学模型运算进行的规则约束。例如:模板嵌套时,嵌套模板的输入类型和被嵌套模板的输出类型一致;在数学模型应用时,除法数学模板的除数输入值不能为0;反余弦数学模板的输入值不能超出[-1,1]的范围区间。
图4 数学模板内部组成模块及依赖关系
3 基于模板的数学模型构建和管理
内存中,数学模型是由模板嵌套而成的树状结构,如图1所示。数学模型构建时,得到构成这一树形结构的数学模板以及这些数学模板之间的联系;数学模型应用时根据这些数学模板以及他们之间的联系构建这种树状结构数学模型。
3.1 数学模板的获得
数学模型的分解可以由整体到部分,也可以由部分到整体。从方便可视化实现的角度,作者选择由部分到整体进行数学模型的可视化模拟实现,表现为图1中由下(叶子结点)到上(根结点)的聚合过程。数学模型构建系统提供操作选择的人机交互工具,用户可以人机交互的方式逐步构建数学模型,系统记录此过程中所构建的参数变量和所选用的运算模板。
1)利用参数模板构建参数变量。
2)从数学模板库中依次选择运算模板,并设置运算模板的参数,从而构建一个个的中间数学模型(模型构建过程中的中间产物)。在这里运算模板的参数可以是变量,也可以是已经构建的数学模型(表达式)。
3)按图1中由下(叶子结点)到上(根结点)方向,重复步骤2)直至构建出所需数学模型,并以文件形式保存这一构建过程。
这一过程实质是先构建简单数学模型(包括参数变量),然后把已构建的简单数学模型设置为调用的数学模板参数。重复这样的过程,直至得到所需数学模型。
3.2 数学模型的模板存储
对于构建的数学模型,其内存存在形式是如图1一样的树状结构,通过根结点数学模板的存储模块可以嵌套调用其他数学模板的存储功能,完成数学模型的存储。
存储内容:如表1所示,首先是数学模型的描述信息(所构建数学模型名称和描述)存储;然后是数学模板标示号的存储,如果该数学模板是参数模板,还要追加两项:一是该变量是否为常量,二是该变量名。
存储顺序:对于数学模型的内存树状结构,从根结点出发,采用先序遍历算法遍历[10]所有结点并存储结点所代表模板信息。以数学模型 L+ (i-1)(H-L)/K为例,模板存储顺序为:加、L、除、乘、减、i、1、减、H、L 、K。
表1 数学模型的文件存储结构
3.3 数学模型的应用
专题制图系统通过读取数学模型文件,利用数学变量和数学运算模板标示调用相应数学模板构成如图1的树状嵌套结构。构建过程类似于3.1章节的模拟构建,区别在于在3.1章节是人机交互手动构建,而在专题制图系统,则是根据模板标示自动构建。构建完成后,会把参数变量(不包括常量)以数据接口的形式提供。
数学模型的应用:把数据赋给参数变量(常量自动应用),参数变量依次经过数学模板所提供的数学运算的处理,直到得到运算结果。在图1中表现为从下(叶节点)到上(根结点)的数据流程。
4 结束语
本文从实体、联系的角度,对数学模型所涉及内容——参数变量、数学运算进行抽象和模板化,探讨了一种基于文件存储的专题制图数学模型非编程构建和应用方法。
由于数学模型的复杂性,研究中还涉及很多具体细节问题。例如:模板多次重复递归调用,单纯用以上办法就比较笨拙,改进办法是添加模板的递归调用次数予以描述;另外,随着专业应用的深入,会出现一些现存模板无法应对的新数学模型,这时就需要研究相关数学,对数学模板做出实时扩充。
本论文提出的数学模板虽然针对专题制图数学模型,但其具有一定的通用性,可以应用到其它领域,如嵌入式 GIS,其关键在于数学模板(尤其是运算模板)的扩充。
[1]王家耀,邹建华.地图制图数据处理的模型方法[M].北京:解放军出版社,1992:1-6.
[2]刘维.精通M atlab与C/C++混合程序设计[M].北京:北京航空航天大学出版社,2008.
[3]张利红.基于元算法 GIS数学模型库系统的设计与实现[D].郑州:信息工程大学,2007.
[4]张利红,江南,张亚军.基于元算法专题数据处理数学模型库的建立及应用[J].测绘科学技术学报,2008,25(1):79-82.
[5]江南,张利红,张亚军.基于元算法的 GIS数学模型库系统设计[J].测绘科学,2008,33(1):74-76.
[6]吴文俊.论数学机械化[M].山东:山东教育出版社,1996.
[7]高文秀,杜道生,周勇前.面向对象的技术在专题图设计中的应用[J].武汉测绘科技大学学报,1998,23(2):168-170.
[8]孙亚夫,杜道生,周勇前.基于模板技术的专题制图[J].武汉测绘科技大学学报,1998,23(2):171-174.
[9]鲍志云.OOD启思录[M].北京:人民邮电出版社,2004:94-96,142-151.
[10]李春葆.数据结构教程[M].北京:清华大学出版社,2005:142-151.
Construction and application of thematic-mapping-mathematical model based on template technology
FENG Tao1,ZHANG Ya-jun1,JIANG Nan1,PAN Zhi-chao1,2
(1.Institute of Surveying and Mapping,Information Engineering University,Zhengzhou 450052,China;2.71320 Troops,Kaifeng 475000,China)
The mathematical template is the abstraction of parameter variables and mathematical operation involved in themathematicalmodel of thematic mapping based on object oriented.The paper puts forward a new p roject fo r the construction of the thematic-mapping-mathematicalmodel through the nesting and recursive calls of these temp lates.Based on the above ideas,the autho r designs and develop s the model construction softw are to decompose the model into mathematical temp lates fo r the thematic mapping system.This app roach has the advantages of non-p rogram,flexible and easily scalable.
mathematicalmodel;thematic mapping;object-oriented;mathematical temp late;nesting
P283
A
1006-7949(2010)06-0035-04
2010-03-18
冯 涛(1980-),男,博士研究生.
[责任编辑刘文霞]