打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
基于主体的仿真建模
“Agent”一词在软件界常翻译成“代理”,在其他领域往往翻译成“主体”。“Simulation” 在软件界常翻译成“模拟”,在经济或工程领域往往翻译成“仿真”。随着计算机应用,尤其是分布式计算的普及,通过对个体行为准则进行建模,创建仿真环境的方法在教学和科研上逐渐受到重视。这种建模方式被称作基于主体的仿真(Agent Based Simulation)。例如,基于主体的计算经济学(Agent-based Computational Economics,简称ACE)就是利用计算机的运算和并行处理能力来研究经济模型。在模型中,每一个个体都按照一定规则运转,而整体却呈现出有序模式,反映出演化规律。多数软件平台支持对模型的可视化观察,可以通过调整参数进行比较研究。该方法特别适合对复杂性系统的研究,其应用领域遍布生命科学、环境科学、信息科学、社会学、经济学、地理、生物、数理、管理等很多学科的教学和研究。尤其值得关注的是,信息技术与现代经济管理科学的融合与渗透已经成为社会经济生活的重要部分,也是新形势下经济与管理学科发展的一个趋势。
一、基于主体建模的特点
在现实世界中存在很多非集中控制的离散系统,例如蚁群、鸟群、交通运输以及市场经济等。基于主体的建模方式既重视群体中的每个个体的特性,更重视个体之间的相互交互作用。每个“主体”都是主动的实体,具有对环境的适应性或学习能力。这一特点使其成为在经济、社会、生态等领域中用于研究适应性复杂系统的有力手段。
1.确定性与随机性相结合
基于主体的建模方式是从底层建立仿真模型,每一个体由相对比较简单的确定法则组成。建模思想认为,个体的运动和变化不是来自系统的外部,而是在一定条件下系统内部各种因素相互作用的结果。利用蒙特卡洛方法模拟随机状态,每一个体根据其自身的准则产生近似随机行为的复杂现象,反映出“适应性造就复杂性”。
2.动态仿真
波动、不平衡是复杂系统运动的常态,系统本身处于不断运动变化当中。个体之间的非线性作用使得整个系统的宏观状态不是各个微观个体的简单叠加;系统整体的性质与各子系统的性质并不存在必然的因果关系。这是传统的数学建模和其他将宏观与微观割裂开来研究的分析方法力所不及的。因此,基于主体的计算模型具有更强的描述和表达能力,更接近客观现实世界的真实情况。
3.宏观与微观
任何复杂系统中大量个体的动态行为成为整个系统演变的基础,个体与环境,个体与个体之间的相互影响、相互作用,形成系统演化的主要动力。基于主体的建模思想是将系统的宏观变化看作是微观变化导致的结果。赋予宏观模型一个虚拟的微观基础,便于探索微观层次众多个体交互作用导致整个系统显现某种动态演化的趋势,即宏观层次所呈现的模式或规律。
二、对象与主体
从程序设计的角度来看,对象和主体都是客观世界实体的软件编程模型,面向对象编程与基于主体的计算有不少相似之处。对象和主体都是封装的数据和方法,数据对应于属性,表示它们的状态;方法是对行为的实现,表示对象或主体所具有的操作处理或行为能力。
主体(代理)是一种处于一定环境下包装的软件模型,它区别于对象的显著特性包括:
反应能力(Reactivity):主体可以感知所处的环境,并通过行为响应并适应环境。
社会能力(Social Ability):主体通过某种沟通方式与其他主体进行交互。
主动行为(Pro-Activen-ess):主体的行为是主动的,不仅简单地响应环境,还能够主动采取目标定向的行为。
自治能力(Autonomy):主体运行时不受外界干预和控制,对其自身行为和内部状态有自主控制能力。
在表1中,从程序设计的角度简要地比较了对象和主体之间的区别。可以把基于主体的概念看作是面向对象概念的自然发展,最关键的区别在于,主体在不确定环境中具有自治力;智能主体应具有较强的学习和自适应能力。
表1 对象与主体的对比
对 象 主 体
被动(包含数据、在数据上的操作) 主动(包含目标、状态和行为)
基于句法 构建在语义之上
单机工作 分布式环境
关注静态设计(design-time) 关注动态运行(run-time)
侧重继承性 侧重群体组织
三、多主体模拟软件简介
多主体(Multi-Agent)模拟软件可帮助学习者直接体验相关学科的仿真模型。研究人员可以利用它作为工具,快速建立本领域的研究模型。自从20世纪90年代美国桑塔费研究所(Santa Fe Institute)为复杂系统建模设计出软件平台Swarm以来,很多大学和研究机构投身于这类系统平台开发研制工作,形成后浪推前浪的趋势。目前,已出现不少多主体建模软件平台。其发展趋势是基于Java语言,以开放源代码形式开发。这种开发形式可以聚集众多开发者的智慧,呈现出版本不断更新的活跃局面。下面仅介绍几种比较活跃、有较大影响的多主体模拟软件工具。
1.NetLogo
NetLogo是美国西北大学网络学习和计算机建模中心推出的可编程建模环境。该系统是采用1.4.1版Java语言编写的,因此能够在多种主流平台上运行(Mac、Windows、Linux等)。它同时提供单机和网络环境两种版本,每个模型还可以保存为Java applets,可嵌入到网页上运行。
NetLogo提供一个开放的模拟平台,自身带有模型库,用户可以改变多种条件的设置,体验多主体仿真建模的思想,进行探索性研究。利用NetLogo 的HubNet版,学生可以在教室里通过网络或者手持设备来控制仿真环境中的主体。它对于研究人员也是一种有力的工具,允许建模者对几千个“独立”的主体下达指令进行并行运作,特别适合于研究随着时间演化的复杂系统。NetLogo提供了应用程序接口,用户可以通过Java编程对NetLogo进行外部控制或者扩展功能。
目前NetLogo 更新频繁,2004年8月发布了2.0.2版,9月15日又推出了NetLogo 2.1的beta2版。对于教学和科研等非商业目的应用可免费下载,其网址是:http://ccl.northwestern.edu/netlogo/。
2.StarLogo
StarLogo是在美国自然科学基金会和乐高集团(LEGO Group)赞助下,由麻省理工学院多媒体实验室开发的基于主体的可编程建模环境。早期版本的StarLogo只能在Macintosh机器上运行,2000年2月发布了基于Java的版本,摆脱了计算机平台的限制。2004年6月推出了StarLogo 2.1版,其网址是:http://education.mit.edu/starlogo/(本刊在2003年12月的创刊号上曾刊登文章介绍)。
从1998年起,麻省理工学院多媒体实验室与桑塔费研究所合作,每年都举办对教师和用户进行培训的暑期班。美国教师学院出版社还为StarLogo出版了相关教材“Adventures in Modeling: Exploring Complex Dynamic Systems with StarLogo(使用StarLogo探索复杂动态系统建模)”。美国很多学校利用它作为辅助教学工具,让9年级以上学生分析复杂现象,在教育中发挥了重要作用。现在,麻省理工学院、桑塔费研究所和美国国家科学基金会共同赞助了一个网上社区(http://education.mit.edu/aim/),专门讨论用StarLogo教学的体会和经验。
上面介绍的StarLogo和NetLogo系统本身提供很多内置原语,支持多主体建模和并行操作,用于建立模型的编程语言是一种扩展的Logo语言的“方言”。
Logo是20世纪60年代末期由麻省理工学院教授Seymour Papert和Wally Feurzeig设计的一种解释型程序设计语言,其初衷是为了方便儿童学习计算机编程技能。Logo一词源自希腊语“logos”,意思是“word”。Logo的原型取自LISP语言,它内置一套海龟绘图(Turtle Graphics)系统,用户通过向海龟发送命令,可以直观地学习程序的运行过程,因此很适合没有很强程序设计基础的人学习编程。
3.Swarm
Swarm是一个多主体复杂系统仿真软件工具集,最初是由桑塔费研究所于1994年用一种被称为GNU Objective-C的扩展C语言开发的,其目的是为研究人员进行多主体建模提供可用工具。Swarm最初只能运行在Unix、Linux操作系统平台上。1998年4月推出了可以在Windows 95/98/NT上运行的版本。1999年Swarm又提供了对Java的支持。目前,Swarm 可以在Linux系统、Unix 系统和Mac OS X下运行,要在Windows下运行,必须先安装Cygwin 环境。2004年6月发布了Windows XP下运行的Swarm2.1.1版,具体下载网址是:http://eco83.econ.unito.it/swarm/materiale/cd/。从2004年3月起,Swarm网站迁移到新址:http://wiki.swarm.org/。新的维基网站由密执安大学复杂系统研究中心主持更新。
“SwarmFest”是连续多年举行的Swarm用户和研究人员学术研讨会,2004年的第8届年会就是密执安大学复杂系统研究中心主办的,2005年的SwarmFest年会将在意大利的都灵举行。
4.Repast
Repast是Recursive Porus Agent Simulation的缩写。这是一个用Java开发的基于主体的模拟框架。Repast 从Swarm中借鉴了很多设计理念,形成一个“类Swarm”的模拟软件架构。Repast最初是由芝加哥大学的社会科学计算实验室开发研制的,后来俄勒岗国家实验室维护了一段时间,现在由来自政府、教育界和行业组织成员组成的非赢利机构管理,网址是:http://repast.sourceforge.net/。
2004年11月推出了最新版本Repast 3.0。Repast 3.0的核心部分是一个基于主体建模服务内核,支持3种实施平台:Java 平台的Repast J、微软.Net 框架下的Repast.Net 、支持Python脚本语言的Repast Py,因此它支持Java、Python、DotNet三种编程接口。高级模型需要在Repast J中用Java编写,或者在Repast .Net中用C# 编写。
Repast提供了多个类库,用于创建、运行、显示和收集基于主体的模拟数据,并提供了内置的适应功能,如遗传算法和回归等。它包括不少模版和例子,具有支持完全并行的离散事件操作、内置的系统动态模型等诸多特点。
5.TNG Lab
TNG Lab 代表Trade Network Game Laboratory(商业网络博弈实验室),它是美国爱荷华州立大学的McFadzean、Stewart和Tesfatsion用C++开发的软件包。TNG Lab提供了一个在Windows下运行的可计算“实验室”,可用于研究在多种特定市场环境下,商业网络是怎样形成和演化的。模型中包括买家、卖家和经销商,他们根据自己的预期效用重复地选择更合适的商业伙伴,参与无合作博弈的双方交易,并随着时间的推移不断调整自己的商业策略。
TNG Lab有标准组件,并具有可扩展性,操作相对比较简单。它适于作为经济研究和教学的工具,只要用户对有关经济参数的设置有清晰的认识,就可以在TNG Lab搭建的商业网络实验室中进行相关的研究。参考网址是:http://www.econ.iastate.edu/tesfatsi/tnghome.htm。
6.jES
JES是意大利都灵大学Pietro Terna用Java开发的企业仿真项目,JES就是由Java Enterprise Simulator(Java企业仿真器)三个字的首字母组成的。这是一个在Java版的本的Swarm基础上开发的模型架构,可用于测试带有不同目标的仿真企业的动态行为,并可进一步对虚拟企业的创建、发展,以及企业之间网络关系进行理论分析。JES的参考网址是:http://web.econ.unito.it/terna/jes/。
7.Ascape
Ascape代表Agent Landscape的意思,它是美国布鲁金斯研究所的Miles T. Parker开发的基于主体建模平台。它除了具有其他基于主体建模工具的许多共同特点外,用户可以在运行模型时选择不同的制图特征来定制自己的视图。Ascape全部用Java语言实现,可以在Windows、Macintosh、Unix、Linux以及网络环境下使用。因为Ascape有选择性地使用了Java 1.2 API,其网络应用可以在任何浏览器中使用。开发者于2000年10月推出Ascape 1.9.1版,其参考网址是:http://www.brookings.edu/es/dynamics/models/ascape/ main.htm。
8.其他
Ecolab是在澳大利亚新南威尔士大学高性能计算支持中心Russell Standish 教授主持下,用C++开发的基于主体动态演化模型。Ecolab 既是软件包名称也是研究项目的名称。Ecolab的参考网址是:http://parallel.hpc.unsw.edu.au/rks/ecolab/ecolab.html。
MASON代表多主体邻里或网络仿真(Multi-Agent Simulator of Neighborhoods or Networks)。它是乔治梅森大学用Java开发的离散事件多主体仿真核心库,具有快速、灵活和便携的特点。它本身支持轻量级的模拟需求,自含模型可以嵌入到其他Java应用当中,还可以选择2D和3D图形显示。MASON的网址是:http://cs.gmu.edu/~eclab/projects/mason/。
ABLE 表示主体建模和学习环境(Agent Building and Learning Environment),它是IBM公司用Java语言开发的框架,包括构件库和工具包,用于支持智能主体建模。ABLE 利用JavaBeans 提供可重用组件,并能够进行可视化编辑。ABLE的构件库包括读写文件或数据库的data beans、machine learning beans和用于推理的ruleset bean,其定义语言与Java类似。ABLE 从2000年5月起可以从IBM的alphaWorks得到。ABLE的网址是:http://www.alphaworks.ibm.com/tech/able,但是在下载之前必须先申请IBM的ID。
Cougaar 是一个用Java 构建的体系结构,适用于构筑基于主体的大规模分布式应用模型。它本身是一个开放源代码项目,从DARPA 研究项目到大规模主体系统,先后用了8年的时间。Cougaar不仅包括核心体系结构,而且带有各种用于示范、可视化演示和管理的组件。有关参考资料的网址是:http://www.cougaar.org/。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
复杂适应系统与Multi-Agent仿真
【NetLogo多主体建模入门】1 认识多主体模拟
万字综述:复杂经济学与新古典经济学,有何差异
简捷不简单——应用Netlogo编程溯源混沌管理隐喻
杂志精选 | 基于Multi-Agent的智能演艺呈现系统
发现了一款好玩又实用的软件,建模仿真爱好者的福利
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服