Swarm复杂系统建模平台的建立及测试

2014-12-18 11:39方守林
电子科技 2014年3期
关键词:环境变量复杂性按钮

方守林

(河北金融学院管理系,河北保定 071051)

1928年贝塔朗菲在《生物有机体系统》论文中首次提出了复杂性问题[1],从20世纪90年代开始,圣菲研究所致力于复杂性科学的研究工作,且该研究所的霍兰提出了适应性造就复杂性的观点。指出只有系统的构成元素具有能动性时元素和系统才具有适应性,利用计算机仿真的技术研究由适应性造就的复杂性的方法就是复杂系统建模的多主体建模。当前多主体建模的方法有多种,如 Swarm、Repast、Ascape、Netlog、NetStar等。其中Swarm是1994圣菲研究所(SFI)开展的一个研究项目,以开发一个工具集用来帮助科学家们分析复杂适应系统的模拟工具,1995年,SFI发布了Swarm的Beta[2]。其以建立一套标准的程序库为目的,用以分析社会科学和自然科学领域内的复杂系统,通过为建立模型的研究者提供统一的模型框架,一方面能减轻模型设计的技术负担,另一方面统一的框架能规范模型的设计,从而便于模型的理解和交流[3]。1999年推出了Swarm2.0,提供了对Java语言的支持。因此,系统地构建Windows XP系统下Swarm平台的开发平台对于开发Swarm模型建立系统仿真具有基础作用。

刘贞[3],倪建军[4],杨若虹[5]和万春[6]等对 Swarm for Java的编程进行了介绍,其主要是在Swarm类库以及Swam for Java在各领域内的应用,但较少谈到详细地搭建Swarm开发平台的问题,或是在搭建Swarm平台时环境变量的配置不适合在代码具体运行时出现错误和无法编译的情况,对于非专业从事Java开发复杂系统建模的人员来讲,不能实现带领他们进入到平台内的目的,并且有的以安装Cygwin为例介绍,这对于一般开发的入门人员来讲,需要更多的知识储备。因此,需要探讨最简洁的Swarm平台建立需要哪些软件,以及这些软件从何处获取,在Windows系统下如何配置变量的等问题。本文搭建平台的基本思路是把Swam当作Java的一个扩展类库,这一思想集中体现在Classpath环境变量的配置上,这样做的好处在于,非计算机专业的入门开发人员所需掌握的技术更少,更能进入到 Swarm平台的开发中来,以便能促进Swarm建立初衷的实现:减少模型建立的技术负担并把精力集中于模型的建立上。

1 基于Java的Swarm仿真平台建立

1.1 所需软件及获取

以Java为例探讨Swarm平台的建立,所需最基本的软件是JDK和Swarm的Java版本。JDK的最新版本是Oracle官网64位和84位的JDK可以从网络上搜索下载。假定下载的JDK的版本为1.4.2并且将JDK安装在了C:j2sdk1.4.2,Swarm-2.2-java.zip解压到C:Swarm-2.2-java。

1.2 环境变量的配置

以WindowsXP为例进行环境变量的设置。新建3个系统变量并设定变量的值:(1)新建变量名称为JAVA_HOME并设置其值为C:j2sdk1.4.2。(2)新建变量名称为SWAEMHOME并设置其值为C:Swarm-2.2-java。(3)新建变量名称classpath并设置其值为.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar;%SWARMHOME%shareswarmswarm.jar;%SWARMHOME%shareswarmkawa.jar;。然后修改系统变量path的值,在path后面添加%JAVA_HOME%in;%SWARMHOME%in;。至此完成环境变量的设置。

2 仿真平台的测试

环境变量设置好以后,到Swarm官网下载jheatbugs的举例。下载以后将jheatbug-2.1.tar.gz文件进行解压,比如解压到C:jheatbugs-2.1。然后进入命令提示行,输入CD C:jheatbugs-2.1,进入到jheatbugs的目录,然后编译Java文件,输入命令javac*.java,回车以后窗口提示:HeatbugModelSwarm.java:298:cannot resolve symbol symbol:constructor FArgumentsImpl(HeatbugModelSwarm,Swarm.Selector,boolean)location:class swarm.defobj.FargumentsImpl new FArgumentsImpl(this,sel,true)));1 error。构造方法 FargumentsImpl不能解析,原因是构造方法的参数有误,把构造函数的参数从 this,sel,true 改为 this,sel。也就是将代码:actionForEach=modelActions.createFActionForEachHomogeneous$call(heatbugList,new FCallImpl(this,proto,sel,new FArgumentsImpl(this,sel,false)));改为:actionForEach=modelActions.createFActionForEachHomogeneous$call(heatbugList,new FCallImpl(this,proto,sel,new FArgumentsImpl(this,sel)));然后再输入 javac*.java命令,回车后提示编译成功,输入Java StartHeatBugs屏幕上显示控制窗口,如点击“Start”按钮,就出现了热虫的模拟窗口,点击“Stop”暂停仿真的运行,暂停后每点击一次“Next”按钮或者运行中直接点击“Next”按钮,仿真就进行到下一个时间节点,点击“Quit”则退出模拟。

图1 输入Java StartHeatBugs后显示的窗口

图3 统计曲线显示

Swarm.org除了提供jheatbugs的举例以外,还有Jmousetrap的举例及用户手册。

3 结束语

本文介绍了WindowsXP下复杂系统建模平台Swarm的构建,并用Swarm的一个实例验证了平台的设置,结果表明平台设置的正确,为基于Swarm的复杂系统建模奠定了基础。

[1]陈森发.复杂系统建模理论与方法[M].南京:东南大学出版社,2005.

[2]方美琪,张树人.复杂系统建模与仿真[M].2版.北京:中国人民大学出版社,2011.

[3]刘贞,程勇军.Swarm for Java仿真及编程实现[M].北京:机械工业出版社,2009.

[4]倪建军,范新南,徐立中.基于Swarm平台的复杂系统建模仿真及其应用分析[J].海河大学常州分校学报,2006,20(4):13-16.

[5]杨若虹.基于多主体的计算机仿真平台Swarm在Windows XP系统中的应用[J].职业技术,2012(3):143.

[6]万春,孙延明.多主体建模仿真平台Swarm的探讨[J].装备制造技术,2007(6):62-64.

猜你喜欢
环境变量复杂性按钮
当你面前有个按钮
PFNA与DHS治疗股骨近端复杂性骨折的效果对比
简单性与复杂性的统一
从桌面右键菜单调用环境变量选项
彻底弄懂Windows 10环境变量
死循环
应充分考虑医院管理的复杂性
基于三阶段DEA—Malmquist模型的中国省域城镇化效率测度及其收敛分析
直肠腔内超声和MRI在复杂性肛瘘诊断中的对比分析
内心不能碰的按钮