基于Repast系统仿真平台在地理学中的应用分析

2012-09-04 14:23王国义
地下水 2012年6期
关键词:类库建模空间

王国义

(西北大学城市与环境学院,陕西 西安 710127)

基于CAS理论在计算机上建立模型对复杂系统进行模拟,称为基于 Agent的建模仿真方法。20世纪90年代以来,计量地理的研究进入了地理计算(Geo-computation)的时代,强调数学模型和模拟实验并重的时代,出现了与复杂性适应系统相关的理论和方法,如:元胞自动机(CA)、人工神经网络(ANN)、遗传算(GA)、人工生命(A-life)等,这也得到了越来越多地理研究者的应用和认可,并成为跨学科研究的热点课题[1]。近年来,随着社会的进步和科学技术的发展,复杂系统与复杂性的研究已引起诸多领域科研工作者的广泛兴趣。其中,复杂适应系统因其鲜明的可操作性,逐渐成为复杂性研究领域的热点课题。

基于Agent建模仿真相对于一般数学建模而言,在解决离散、非线性系统模拟方面有显著优势,是研究此类复杂系统产生的全局、自适应行为的一个基本方法。CAS理论明确指出复杂系统中大量的微观个体之间随时间推移进行的互动,能够在系统宏观尺度上突现出新的功能和结构,从而能够探讨微观个体的决策行为如何形成复杂的宏观空间格局,所以基于Agent建模的理念与传统的思想迥然不同,必须更多地考虑系统更低层次上Agent的行为规则的变化,Agent之间的相互作用(包括联系的方式和强度)甚至 Agent的适应性函数等。如今,Agent理论方法和计算机仿真技术相结合已成为研究CAS的常用方法之一,Repast建模仿真平台的开发则为这种方法的研究创造了条件。

1 Repast介绍

1.1 Repast概述

Repast(Reursive Porus Agent Simulation Toolkit)起源于芝加哥大学的社会科学计算研究所,其最初的设计目标是为社会仿真提供一个易于使用、易于扩展且功能强大的仿真工具包,但现在 Repast已发展成一个通用的多 Agent仿真平台。其设计目标是使用的方便性、较短的学习周期以及可扩展性。它提供了一系列生成、运行主体,显示和收集其数据的类库。Repast还能够以图表的形式显示运行中的模型数据、对运行中的模型进行“快照”以及生成模型运行的影像资料。Repast从Swarm模拟工具集中借鉴了不少的设计结构和方法,实际上,它是一个类Swarm的模拟软件构架。

Repast S除了提供所有 Repast.NET与 Repast J的核心功能,还具有更为丰富多样的新特性;采用 Point-and-Click可视化开发环境,大大减少了用户的代码工作量,能够自动生成java代码,实现与手工编码的无缝结合,集成多种日志和图形工具,提供与外部工具的自动连接,嵌套了更强大的空间资源,不仅提供基本的2D、3D空间,还支持 GIS、Network等复杂环境。Repast现在由非赢利组织机构ROAD(Repast Organization for Architecture and Development)来维护。它是一个免费的仿真平台,可以在其官方网站(http://Repast.sourceforge.net)上下载到它的可执行程序与源码。Repast的核心部分可以看作是对基于Agent建模服务的规范。它包括三个具体的工具,这些工具都有着相同的内核服务,而区别仅在于底层的平台和模型开发语言的不同。三个具体的工具是基于 Java平台的 Repast J,基于微软.Net框架的、Repast.Net和基于Python脚本的Repast Py。其中,Repast J是用于定义内核服务的基准工具。一般推荐在Repast Py上用Python脚本编写基础模型,而在 Repast J上用 Java或在 Repast.Net上用 C#编写高层的模型[2]。

1.2 Repast分析

Repast本身由一系列的Java包及一些第三方类库构成,具有良好的可扩展性。在Java包中,最重要的是实现基于A-gent模拟仿真的 uchicogo.src.sim包,它根据功能的不同又被分成多个子包,分别负责仿真的建立、操控并驱动仿真的运行;为仿真运行与运行控制提供图形用户接口;收集、记录仿真过程中产生的数据,以图表的形式显示;记录并存放网络仿真时的网络拓扑结构信息;可视化显示 Agent的空间关系等。同时,Repast还为多Agent模拟仿真提供一个面向对象的设计和编程框架,并大量采用模板方法、抽象工厂等软件设计模式来提高框架的通用性,这使得用户既可以调用Repast提供的Java包,也可以自己编程实现所需功能,构建出模块化良好的仿真模型。REPAST本身由一系列的JAVA包及一些第三方类库构成。与多Agent仿真密切相关的包是uchicogo.src.sim,在这个包中又根据功能的不同分成多个子包。REPAST具有良好的可扩展性,其本身集成了多个第三方的JAVA类库。例如,它集成了可以高效生成多种分布类型的随机数类库 Colt;集成了遗传算法类库 jgap。用户在建立REPAST仿真模型时还可以使用其他的类库。无论选择哪种构建方法,仿真程序都必须包含以下几种构成模块[3](表1)。四个模块中,模型类是 Repast仿真程序的核心,它为仿真模型的建立提供一系列标准的方法,以结构化的形式定义模型的执行过程。数据源类在仿真程序运行时,记录、收集Agent产生的数据并提供给分析、显示对象使用。

行为类则用于实现 Agent动作行为的模拟仿真,由调度器负责仿真时钟的推进、行为的安排与调度。它包含两个比较典型的内部机制:时间序列机制和显示机制。时间序列机制负责Repast仿真中所有状态的转换,主要用来安排在每一个仿真时钟单位“tick”内要执行的事件,仿真开始后,Repast将按照“tick”向前推进,每一个”tick”时间内,仿真模型将会循环动作执行队列以调用行为类中事先定义好的 Agent动作,从而改变仿真的状态。而显示机制主要负责运行仿真的实时可视化。这种机制主要由一些空间类、与这些空间类相应的显示类、简单图形类和各种绘图接口等组成,以图形化的方式提供Agent的仿真过程的观察和数据的采集。另外,还可以根据仿真模型的需求选择是否创建一些可选模块,例如空间类和仿真数据可视化类等[4]。

表1 Repast仿真程序核心构成模块

1.3 Repast应用领域

Repast是一种类 Swarm的模拟软件构架,由于 Swarm对模型和模型要素之间的交互方式不做任何限制,使用者则可以将精力集中在所感兴趣的特定系统中,而不必受数据处理、用户界面及其他纯软件工作和编程等方面的问题所困扰,甚至对于非计算机专业学者而言使用也是相当方便。在国内,Swarm的应用起步较晚,但发展趋势异常迅猛,尤其是2001年中国人民大学信息学院举办“Swarm仿真培训班”以后,基于Swarm研究的学者越来越多。近几年美国桑塔费研究所每年举办的“SwarmFest”和“复杂系统暑期班”,更为全球Swarm和CAS爱好者提供一个更加系统的学习交流机会。正是由于Swarm可以模拟任何物理系统、经济系统或社会系统,所以受到国内外经济学、金融学、政治学、社会学、生物学、生态学、物理学、地理学、军事以及计算机科学等领域的专家、学者或爱好者们的广泛关注。基于多智能体的Swarm仿真平台在经济学研究领域的应用最为广泛,并主要集中在市场供求关系、经济博弈论和金融等研究领域;基于 Swarm仿真平台的管理学研究主要包括微观管理学和宏观管理学,其中微观管理学以供应链研究为主,而宏观管理学则主要集中在城市管理方面;此外,在环境资源保护、生物生态地理学领域的应用研究主要包括区域可持续发展研究和生物生态学研究等方面。而自从Repast发布以来,其主要应用领域包括以下几个方面:

(1)系统理论研究:通过仿真观察、模拟系统中特定现象的产生过程,发现、验证 CAS的一般规律。例如用 REPAST实现CAS理论中的著名模型 ECHO;通过多 Agent仿真研究来研究博弈理论,例如囚徒困境问题等。

(2)复杂社会系统仿真:包括研究Agent之间、Agent与其所处环境之间的相互作用;具有不同目标、利益的多个 Agent如何才能实现合作行为等。其中的 Agent可以是个人,可以是群体,也可以是某个组织。

(3)经济系统仿真:在基于 Agent的计算经济学(Agentbased Computational Economics ACE)这一新兴的经济学分支领域,REPAST被用于经济模型的实现与仿真。例如:商业网络仿真、供应链仿真等。

(4)综合应用:美国Argonne国家实验室对 REPAST进行了扩展,使其支持GIS、分布式仿真等功能并在此基础上开发了一些大型的复杂适应系统仿真。例如,美国电力市场仿真等。

2 Repast与 GIS的集成

智能体模型缺乏空间特性,而现实中的很多事物都是跟空间相关的,例如模拟城市的扩张中,房屋的位置和交通路线都具有空间特征。GIS具有强大的空间分析功能,正好可以弥补这一缺陷。所以通过GIS与智能体模型的集成正好利用了智能体模型的智能性和GIS的强大空间分析功能。智能体模型和GIS的集成主要有3种方式,即松散耦合、中度耦合和紧密耦合。松散耦合指系统之间的数据交互是通过文件形式进行,可以通过适配器实现对各类文件的存取。中度耦合是系统间通过协议通讯进行数据交换。其利用的技术是虚拟机、客户机/服务器等。紧密耦合指在运行中完成系统间的通讯和相互调用[5]。

智能体模型所处的环境层一般通过离散的网格实现,这和栅格GIS有很大的相似性,因为两者都是用离散的二维区域单元进行空间的组织和表达,以及通过层来进行属性或状态的组织,并通过一定的算法来操作空间和属性。智能体与智能体之间或智能体和环境之间的交互可以很方便的通过矢量GIS来表达。此外,智能体在二维空间网格上的行动规则也可以通过矢量GIS来设定,所以智能体模型和 GIS集成从技术上实现是完全可行的。目前主要是以下三种方法:通过ESRI公司提供的 ArcGIS扩展模块 Agent Analyst(AA)工具进行集成、通过Java Topology Suite(JTS)GIS工具包进行集成以及使用open Map、Geo Tools等 GIS工具包进行集成。

3 Repast在地理学中的应用

多Agent建模仿真基于多个可识别的离散主体,这些主体具有自主性、适应性、智能性等特点,在计算机仿真系统中,通过对微观个体的行为和作用规则,组成自下而上的复杂系统的演化过程,与传统的建模方法相比,多Agent仿真具有灵活性、直观性和层次性的特点。地理学是一个涉及多个学科的复杂系统科学,具有自然和社会的双重属性,因此多Agent建模仿真时在局部建模阶段将自然科学、社会科学的相关领域知识进行融合,在研究地理现象与过程中具有重要的意义。

Repast现在的应用主要集中在城市交通系统仿真,经济领域以及军事领域方面[6-10],如赵凛,张星臣通过 Repast平台对城市交通系统进行了模拟仿真,简述了如何使用Repast平台对城市交通系统进行仿真模拟;湘潭大学张砚劼以个人所得税公平效应通过Repast平台探讨了经济系统仿真的探讨;孙永强等通过Repast平台建立了岛屿空降作战的仿真模型,通过CAS理论和Agent加以展开,规范、抽象对应模型的先决条件,实现空降作战的行为模式和模型结构;顾洪超等通过与博弈理论的结合,利用Repast仿真平台,将已有的模型(复制动态方程)进行封装,在给定的条件下进行仿真研究,并将该方法应用到电力市场当中,对发电厂商竞价行为进行仿真模拟;江华等通过研究,介绍了对 Repast与 GIS集成研究的必要性和可行性;在土地利用方面,江西师范大学的王强通过构建 ABM模型,运用 Repast平台对鄱阳湖地区耕地利用变化中的农户土地利用决策进行了模拟分析。总体来讲,Repast仿真软件的应用前景广大,随着研究的进一步深入,智能体仿真程序在社会各方面会扮演越来越重要的角色,但在地理学方面,Repast仿真平台的应用较少。

4 结语

(1)Repast是面向多 Agent模拟仿真构建的一个灵活简洁的可扩展平台,为研究复杂适应系统提供了免费方便的工具。

(2)通过对Repast仿真平台的基本原理、分析过程以及应用领域做了一个简单的介绍,此外对Repast于 GIS的集成做出了一个可行性分析与现阶段集成途径介绍,该平台移植性和可扩展性强,使用方便,易于学习,方便了应用基于 A-gent建模仿真方法对复杂适应系统及复杂性的研究及探索。

(3)结合国内地理学者的研究结果,总结了 Repast仿真平台在我国地理学的研究现状,基于CAS理论的复杂性研究及仿真平台给地理学提供了一个更为广阔的平台。

[1]薛领,杨开忠,沈体雁.基于 agent的建模—地理计算的新发展[J].地理科学进展.2004,19(2);351 ~359.

[2]郝成民,刘湘伟.REPAST:基于 Agent建模仿真的可扩展平台[J].计算机仿真.2007,(11).

[3]姜昌华,韩伟等.REPAST——一个多 Agent仿真平台[J].系统仿真学报.2006,(18).

[4]傅游,杜宇.基于 Agent的 Repast建模仿真平台.信息技术与信息化.2009,02,018.

[5]江华,徐兰声,杨昆.基于 Repast的智能体模型与 GIS的集成研究.长江大学学报(自然科学版).2009,(04):220~222.

[6]丁岳伟,姜波.基于Repast的地理空间仿真模型的实现.微计算机信息.2009,25(10).

[7]张砚劼,丁晨.基于Repast Simphony平台的经济系统仿真初探,中国商界(产经)1006-7833(2009)03-161-02.

[8]张砚劼.基于Repast Simphony平台的的经济仿真探讨 -以个人所得税公平效应的研究为例.湘潭大学硕士论文.2009.

[9]孙永强,王振雷等.基于 REPAST的岛屿空降作战仿真模型.火力与指挥控制.(2009)05—0025—03.

[10]顾洪超,黄仙.基于 Repast的演化博弈理论仿真研究与应用.华电技术.(2010)12-0014-04.

猜你喜欢
类库建模空间
空间是什么?
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
创享空间
用Java编写客户机/服务器端应用程序
Python在数据可视化中的应用
基于PSS/E的风电场建模与动态分析
不对称半桥变换器的建模与仿真
数据结构课程教学改革方案和应用效果
数据结构可视化类库的设计与实现
三元组辐射场的建模与仿真