全 文 :林业科学研究 2008, 21 (增刊 ) : 118~121
Forest Research
文章编号 : 100121498 (2008)增刊 20118204
基于代理技术的森林植被模拟系统的研究
陈志泊 , 罗云深
(北京林业大学信息学院 ,北京 100083)
关键词 : FVS;林分 ;代理 ;森林经营管理
中图分类号 : S758. 5 文献标识码 : A
收稿日期 : 2007212210
基金项目 : 国家林业局 948项目 (200524202)
作者简介 : 陈志伯 ,男 ,副教授 ,博士 ,主要研究方向 :数据库、计算机软件与理论.
Study on Agen t2ba sed Forest Vegeta tion S im ula tor System
CHEN Zhi2bo, LUO Yun2shen
(College of Information Science and Technology, Beijing Forestry University, Beijing 100083, China)
Abstract: Based on software agent technology and the data from forest inventory system, a agent2based forest
vegetation simulation ( FVS) system was designed and established after studied both the agent technology and
American FVS software. The agent technology was used to substitute for the manual updating and comp iling in the
original American FVS software. The newly2established forest vegetation simulator system is suitable for p rocessing
and studying the data derived from various forest resource inventories.
Key words: forest vegetation simulator; stand; agent; forest management
FVS ( Forest Vegetation Simulator)森林植被模拟
是美国农业部林务局主持开发的 ,它起源于对森林
生长和产出的预测和管理 [ 1 ] ,并可以使用相关图形
软件模拟出图形化的预测直接效果。森林植被模拟
技术作为一个新的研究方向越来越多的受到林业研
究者的关注 ,该技术在预测、监测、再现和控制森林
立木蓄积资源等方面对林木直径结构转移方程有了
一定的应用研究 [ 2 ] ;在森林火灾方面 ,也可基于林火
三维蔓延的数学模型和计算机仿真进行模拟 [ 3 ]。为
了构造一个出色的森林生长系统 ,以计算机代理技
术为基础 ,以森林清查系统所调查的数据为依据 ,设
计和研究了一个基于代理技术的森林植被模拟系
统 ,使用代理来替换原来美国 FVS软件中需要手工
修改和编译的工作 ,比较精确地预测森林未来的生
长情况 ,通过调整各种经营措施 ,加入复杂的环境因
素预测经营结果 ,为实际经营管理者提供可以预见
的决策结果。
1 FVS软件运行与分析
1. 1 软件的运行过程
FVS软件是基于与距离无关的单木生长模型而
设计的 [ 4 ] ,所以需要录入单木数据。需录入的数据
有 :小班序列号、林木序列号、林木数量、树木历史、
种类、胸径、活树高、损害代码、严重性代码。录入这
些数据后 ,通过 FVS的操作界面选择各种关键字 ,
通过关键字来控制林分的生长 ,获得需要预测的结
果。这些预测结果是通过一个叫处理器的专用程序
来得到的 ,通过处理器 ,可以获得表格统计结果或者
图形化的结果。
1. 2 软件的分析
通过对 FVS系统进行分析 , FVS核心代码是由
FORTRAN语言编写 ,其编译器使用 Lahey2Fujitsu
Fortran 95 v 5. 7,编译环境使用 CYGW IN虚拟操作
系统。从 FORTRAN语言上分析 ,使用该语言不但
增刊 陈志泊等 :基于代理技术的森林植被模拟系统的研究
要详尽描述系统的初始条件和边界条件 ,而且在每
一个运算过程中 ,应充分表述系统的结构和状态 ,是
一个完全“白箱 ”和内部结构清晰的模型 ,而这一点
对于大多数森林植被模拟系统来说不现实。比如 :
当用户要修改其中的运算模型 ,就需要用 FORTRAN
语言重新详细描述 ,而这个过程的难度和复杂度是
不可估量的。虽然 FVS提供了大量的关键字作为
参数 ,在具体模拟过程中 ,用户只需掌握一些必要参
数和基本仿真流程 ,但这些参数是没有经过验证的 ,
而且大多数是经验参数 ,并带有强烈的地域性 ,这也
是大多数森林植被模拟系统的通病。
从 FVS的基本结构 (图 1)分析 , FVS软件只是
个简单的模拟流程 ,除了输入输出使用统一的 SUP2
POSE界面支持外 ,所有计算模型都是独立的 ,而且
必须根据不同的地域来编写不同的模拟计算过程 ;
而这个编写计算过程 ,是没有框架和规律可循 ,完全
根据程序员的编写风格而定 ,所以在 FVS中各个地
区森林植被的模型代码编写风格几乎都是不同的 ,
这给维护升级带来了一定的麻烦。再者 ,要进行新
的计算模型的代码编写 ,其过程也没有任何框架可
利用 ,只能参照具体的代码重新编写 ,这对于只熟悉
计算建模 ,而不善于编写具体代码的建模人员来说 ,
也是不现实的。
图 1 FVS软件的运行结构
从运行结果上看 ,原 FVS软件的计算结果与实
际调查数据几乎达不到一致 ,误差极大 ,无法直接套
用 ,要使之应用在更广泛的地区 ,在其原框架上只改
动某些参数是不太可能。因为模拟结果要与实际结
果误差不是很大 ,才算成功 ,只改参数不改方法 ,与
现实往往有很大差距。所以 , FVS是一个有区域局
限性的模拟系统。
2 代理技术的研究
在软件编制过程中 ,一个理想的目标是希望有一
个系统 ,它能代理编制人和维护者的大量工作 ,这种
技术叫代理技术 ,也称为 Agent技术 [ 5 ]。目前 ,许多
大型软件都采用 Agent作为软件的基本框架元素。
在框架实现中 ,通过多个 Agent之间的相互协同和相
互服务来共同完成一个任务 ,多个 Agent组成一个较
为松散且相互协作的联合体则为多 Agent系统
(Multi2Agent System,简称 MAS)。MAS被认为是由
许多自主、半自主的 Agent组成 ,它研究多个 Agent如
何协作来求解给定的问题。多 Agent系统的研究方
向主要包括 : Agent模型、多 Agent规划、协商、冲突消
解、多 Agent通信和协作以及面向 Agent的程序设计
等 ,其中通信和协作是多 Agent系统研究的重点。
软件 Agent是运行于计算机上为用户完成有用
任务的软件实体 (对象 ) ,它必须具有以下本质属性 :
交互协作性、目标 /任务驱动性、自主性和可控性。
通常软件设计中可将 Agent分为 4大类 :数据
Agent,中介 Agent,可视化 Agent和应用 Agent。
图 2 代理的内部结构图
911
林 业 科 学 研 究 第 21卷
3 基于代理的森林植被模拟模型
3. 1 代理的分类研究
在森林植被模拟中 ,不仅需要按照已有的 FVS
软件运行模式来进行一个林分的经营管理 ,同时也
需要按照不同树种和不同地区来修改实际的运行系
数和数学计算模型 ,这就需要两大类代理来完成这
些功能。第一类代理完成一些固定工作 ,第二类代
理则灵活动态地完成或者辅助完成数学模型的计算
和修改工作。
按照此分类 ,可将森林植被模拟系统的基本模
型设计为两大类代理 :一类是编译型代理 ,一类是解
释型代理。编译型代理处理固定的计算数据输入和
输出处理 ,准备软件运行的环境和为加载解释型代
理做处理 ,解释型代理则动态处理各种计算模型。
3. 2 代理结构的森林植被模拟过程
在原有美国 FVS软件框架里 ,所有的计算模块的
执行顺序都是固定的 ,而且是必须执行的 ,这也就决
定了美国 FVS软件模型区域性的局限性。当使用代
理作为每个计算模型的代理时 ,新的代理框架见图 3。
图 3 基于代理的森林植被模拟
在基于代理的森林植被模拟里 ,每个运算代理
都是任务流 ,既可以参与运算过程又可以不参与运
算过程 ,而且还可以很方便地加入一个新的运算代
理。用户在修改数学模型公式的时候 ,就不需要修
改源代码 ,而只需按简单的方式输入数学公式 ,其余
的事全部交给公式代理去完成 ,这样就大大减少了
模型修改的时间。
3. 3 基于代理的数据设计标准
FVS在数据设计标准上 ,将输入数据变量定义
在头文件中 ,编译到代码中执行 ;而基于代理的数据
设计 ,则将输入数据变量定义在一个可以解析执行
的 XML文件中 ,由代理动态解析执行 ,数据类型的
分类基本与 FVS一致。在输入数据的定义上 ,代理
把林分作为一个群体单元处理 ,利用标准的森林清
查和林分试验数据。在 XML文件中定义描绘各种
各样的森林类型和林分结构 ,不论是同龄林还是异
龄林 ,纯林还是混交林 ,单林层还是复合林层。
当运行森林植被模拟系统时 ,一般要用到 2个
输入文件 : 1个是关键字文件 ,另 1个是当模拟现存
林分时 , 1个数据文件 ,也可将这 2个文件合并让代
理统一处理 ;但是当执行裸露地计划时则不需要。
关键字文件是用户告诉模型去做什么的方法 ,在
这个文件中输入林分水平参数 ,如 :坡度、坡面、海拔、
取样设计规范、森林和区域的位置、立地生产力。这
个文件同时也被用来描述经营管理处理 ,控制输出和
打印 ,计算用户变量 ,调节模型评价。关键字报告是
记忆性的字段 ,由提供必要信息的数据和指令组成。
树木数据文件由树木水平信息组成 ,树种和胸径
是每个树木报告中必须有的 ,其它可选择的数据包括 :
树木数量、直径生长量、树高、树高生长量、树冠比例及
021
增刊 陈志泊等 :基于代理技术的森林植被模拟系统的研究
其它在清查和林分试验中收集的树木水平信息。
在数据输出上 ,森林植被模拟系统产生 4个输
出文件 :第 1个是每个模拟生成的 ,后面 3个是通过
关键字可选择输出的文件。
(1)主要输出文件包括 :关键字解释和预定的
管理措施 ,输入数据的模型校准信息 ,林分组成随时
间变化的信息 ,单株样树随时间变化的信息 ,整个模
拟林分的概要表和模拟管理活动行为的概要表。
(2)树木列表输出文件包括所有单株木的详细
信息。
(3)一个仅仅包括概要表信息的主要输出文
件 ,当总结很多林分信息或者对不同计划编制模型
提供信息时 ,这个文件是有用的。
(4)当运行经济模型时 ,会生成一个输出文件。
模拟中时间长度可以通过“cycle”术语来设定 ,在
大多数变量中默认的周期时间是 10年 ,并且周期次数
是 1次。周期时间和周期次数可以很容易使用合适的
关键字来调整。要注意的是除非用户重新设定 ,否则
森林植被模拟系统将把周期次数默认为 10次。
4 基于代理的森林植被模拟的实现
方法
在代理进行计算实现时 ,录入数据是通过代理
宿主程序提供的公共接口来录入 ,也可以直接打开
XML文件来录入数据 ,公式体的格式按 DTD (Docu2
ment Type Definition)定义可以按如下方式录入 :
< ? xm l version =“1. 0”encoding =“gb2312”? >
< data name =“Fvs2autcor”tagurn =“datagroup /Da2
taRendering”argv =“treedata”driver =“RequestD riv2
er”>
< ! [ CDATA [ treeht[ j ] = 1. 3 + Exp (2. 367 - 15. 9313 ( 1 / ( dbh[ j ] + 1) ) ) / /预测单木树高 ] ] >
< /data >
可以看到 ,如果需要动态修改参数或者改变计
算模型 ,只需要修改这个公式体 ,或者提供多个公式
体让代理来选择执行 ,该代理计算框架就可以很轻
松地完成这些需要频繁修改和调试的任务。
5 结论与讨论
本文设计和研究了一个基于代理的森林植被模
拟系统 ,使用代理来替换原来美国 FVS软件中需要
手工修改和编译的工作 ,该系统不仅可以用于一、二
类清查数据的研究 ,也可适用于三类清查数据的研
究。该模拟系统的研究结果如下 :
(1)将 FVS中较为成熟的森林模拟过程的设计
理念抽象了出来 ,并根据这个设计理念建立起适合
我国的基于代理的森林植被模拟的过程。
(2)在研究森林植被模拟系统的过程中 ,发现
直接修改美国 FVS代码调整计算方法不太科学 ,在
解决如何方便林业管理人员修改调整计算模型的问
题上 ,发现使用代理技术能够比较好地解决这个问
题 ,并论述了解决模型计算的代理的原理 ,进而设计
并实现了基于代理的技术来解决这个问题 ,形成一
个基于多代理技术的森林植被模拟框架。该框架使
得林业管理人员可以方便的调整接口文件 ,并适应
于不同地点的同种或不同树种的仿真模拟计算。
(3)在利用代理进行智能代理模型计算的研究
中 ,虽然代理的发展已到了一个阶段 ,但其研究大多
数为理论研究 [ 6 ] ,实际应用较少。本文通过从代理
的抽象概念入手 ,采用读写 XML文件的驱动模式 ,
结合代理的基本性质和特征 ,开发了一个专门代理
计算任务的解释型代理模型和负责固定任务的编译
型代理模型。该代理应用在森林生长模拟的计算任
务中 ,只需补充 XML文档类型的计算知识到知识库
中 ,便可适用于各地区的具体计算要求 ,毋须重新编
译便可执行 ,极大减少了计算编码工作和人工操作。
由于本研究过程中只研究了代理如何负责计算
植被自然生长的特性 ,且缺少其它方面的数据 ,所以
在数据的操作角度上 ,在改进软件可操作性和易用
性等方面 ,还需要定义一些适当的用户接口 ;或者利
用代理模拟结果为数据指导 ,设计出更符合实际环
境的计算模型 ,这都是下一步要研究的方向和内容。
参考文献 :
[ 1 ] Robert A M. Evaluation forest models in a sustainable forest manage2
ment context [ J ]. FBM IS, 2003, 1: 35 - 47
[ 2 ] 袁怀文 ,崔赛华. 森林立木蓄积资源的计算机仿真研究 [ J ]. 河北
林果研究 , 2003, 18 (2) : 97 - 102
[ 3 ] 刘军万 ,李舟军 ,文定元. 林火三维蔓延的数学模型和计算机仿
真 [ J ]. 林业科技 , 2006, 31 (3) : 30 - 34
[ 4 ] D ixon C E. Essential FVS: A U ser’s Guide to the Forest Vegetation
Simulator[M ]. Fort Collins, CO : Forest Management Service Cen2
ter, 2002: 193 - 211
[ 5 ] M ichael W , N icholas R J. Intelligent Agents: Theory and Practice
[ J ]. The Knowledge Engineering Review, 1995, 10 (2) : 115 - 152
[ 6 ] Luck M ichael, Mcburney Peter, Gonzalez2palacios jorge. Agent2
based computing and p rogramm ing of agent system s[ C ] / /Bordini R
H, et a l. Programm ingMulti2Agent System s2Third InternationalWork2
shop, ProMAS 2005. 2006: 23 - 37
121