多Agent模拟软件概述(转)_百新数字科技发展中心_百度空间

  参考书:程显毅,聂文惠,谢军.面向agent开发环境JACK的实践[M].科学出版社,2009(7)

面向agent的开发平台JACKxx建立在Java程序语言的基础上,它除了包含Java开发环境的所有组件之外,还提供了特殊的扩展来实现agent 的行为,支持BDIteam。面向agent的程序是一个先进的软件模拟范例,主要应用在展示类似人类行为的、会推理的特殊领域,非常适合于如分布式的商务系统、智能工具和模拟、航空交通管理等领域。

Agent”一词在软件界常翻译成“代理”,在其他领域往往翻译成“主体”。 Simulation 在软件界常翻译成“模拟”,在经济或工程领域往往翻译成“仿真”。随着计算机应用,尤其是分布式计算的普及,通过对个体行为准则进行建模,创建仿真环境的方法在教学和科研上逐渐受到重视。这种建模方式被称作基于主体的仿真(Agent Based Simulation)。例如,基于主体的计算经济学(Agent-based Computational Economics,简称ACE)就 是利用计算机的运算和并行处理能力来研究经济模型。在模型中,每一个个体都按照一定规则运转,而整体却呈现出有序模式,反映出演化规律。多数软件平台支持 对模型的可视化观察,可以通过调整参数进行比较研究。该方法特别适合对复杂性系统的研究,其应用领域遍布生命科学、环境科学、信息科学、社会学、经济学、 地理、生物、数理、管理等很多学科的教学和研究。尤其值得关注的是,信息技术与现代经济管理科学的融合与渗透已经成为社会经济生活的重要部分,也是新形势 下经济与管理学科发展的一个趋势。

1. 基于主体建模的特点

在 现实世界中存在很多非集中控制的离散系统,例如蚁群、鸟群、交通运输以及市场经济等。基于主体的建模方式既重视群体中的每个个体的特性,更重视个体之间的 相互交互作用。每个“主体”都是主动的实体,具有对环境的适应性或学习能力。这一特点使其成为在经济、社会、生态等领域中用于研究适应性复杂系统的有力手 段。

(1)确定性与随机性相结合

基 于主体的建模方式是从底层建立xxxx,每一个体由相对比较简单的确定法则组成。建模思想认为,个体的运动和变化不是来自系统的外部,而是在一定条件下系 统内部各种因素相互作用的结果。利用蒙特卡洛方法模拟随机状态,每一个体根据其自身的准则产生近似随机行为的复杂现象,反映出“适应性造就复杂性”。

(2)动态仿真

波 动、不平衡是复杂系统运动的常态,系统本身处于不断运动变化当中。个体之间的非线性作用使得整个系统的宏观状态不是各个微观个体的简单叠加;系统整体的性 质与各子系统的性质并不存在必然的因果关系。这是传统的数学建模和其他将宏观与微观割裂开来研究的分析方法力所不及的。因此,基于主体的计算模型具有更强 的描述和表达能力,更接近客观现实世界的真实情况。

(3)宏观与微观

任 何复杂系统中大量个体的动态行为成为整个系统演变的基础,个体与环境,个体与个体之间的相互影响、相互作用,形成系统演化的主要动力。基于主体的建模思想 是将系统的宏观变化看作是微观变化导致的结果。赋予宏观模型一个虚拟的微观基础,便于探索微观层次众多个体交互作用导致整个系统显现某种动态演化的趋势, 即宏观层次所呈现的模式或规律。

2. 多Agent模拟软件简介

        多主体(Multi-Agent)模拟软件可帮助学习者直接体验相关学科的xxxx。研究人员可以利用它作为工具,快速建立本领域的研究模型。自从20世纪90年代美国桑塔费研究所(Santa Fe Institute)为复杂系统建模设计出软件平台Swarm以来,很多大学和研究机构投身于这类系统平台开发研制工作,形成后浪推前浪的趋势。目前,已出现不少多主体建模软件平台。其发展趋势是基于Java语言,以开放源代码形式开发。这种开发形式可以聚集众多开发者的智慧,呈现出版本不断更新的活跃局面。下面仅介绍几种比较活跃、有较大影响的多主体模拟软件工具。

1NetLogo

NetLogo是美国西北大学网络学习和计算机建模中心推出的可编程建模环境。该系统是采用1.4.1Java语言编写的,因此能够在多种主流平台上运行(MacWindowsLinux)。它同时提供单机和网络环境两种版本,每个模型还可以保存为Java applets,可嵌入到网页上运行。

NetLogo提供一个开放的模拟平台,自身带有模型库,用户可以改变多种条件的设置,体验多主体仿真建模的思想,进行探索性研究。利用NetLogo HubNet版,学生可以在教室里通过网络或者手持设备来控制仿真环境中的主体。它对于研究人员也是一种有力的工具,允许建模者对几千个“独立”的主体下达指令进行并行运作,特别适合于研究随着时间演化的复杂系统。NetLogo提供了应用程序接口,用户可以通过Java编程对NetLogo进行外部控制或者扩展功能。

目前NetLogo 更新频繁,20048月发布了2.0.2版,915日又推出了NetLogo 2.1beta2版。对于教学和科研等非商业目的应用可免费下载,其网址是:http://ccl.northwestern.edu/netlogo/

2StarLogo

StarLogo是在美国自然科学基金会和乐高集团(LEGO Group)赞助下,由麻省理工学院多媒体实验室开发的基于主体的可编程建模环境。早期版本的StarLogo只能在Macintosh机器上运行,20002月发布了基于Java的版本,摆脱了计算机平台的限制。20046月推出了StarLogo 2.1版,其网址是:http://education.mit.edu/starlogo/本刊在200312月的创刊号上曾刊登文章介绍)

1998年起,麻省理工学院多媒体实验室与桑塔费研究所合作,每年都举办对教师和用户进行培训的暑期班。美国教师学院出版社还为StarLogo出版了相关教材“Adventures in Modeling: Exploring Complex Dynamic Systems with StarLogo(使用StarLogo探索复杂动态系统建模)”。美国很多学校利用它作为辅助教学工具,让9年级以上学生分析复杂现象,在教育中发挥了重要作用。现在,麻省理工学院、桑塔费研究所和美国国家科学基金会共同赞助了一个网上社区(http://education.mit.edu/aim/,专门讨论用StarLogo教学的体会和经验。

上面介绍的StarLogoNetLogo系统本身提供很多内置原语,支持多主体建模和并行操作,用于建立模型的编程语言是一种扩展的Logo语言的“方言”。

Logo20世纪60年代末期由麻省理工学院教授Seymour PapertWally Feurzeig设计的一种解释型程序设计语言,其初衷是为了方便儿童学习计算机编程技能。Logo一词源自希腊语“logos”,意思是“word”。Logo的原型取自LISP语言,它内置一套海龟绘图(Turtle Graphics)系统,用户通过向海龟发送命令,可以直观地学习程序的运行过程,因此很适合没有很强程序设计基础的人学习编程。

3Swarm

Swarm是一个多主体复杂系统仿真软件工具集,最初是由桑塔费研究所于1994年用一种被称为GNU Objective-C的扩展C语言开发的,其目的是为研究人员进行多主体建模提供可用工具。Swarm最初只能运行在UnixLinux操作系统平台上。19984月推出了可以在Windows 95/98/NT上运行的版本。1999Swarm又提供了对Java的支持。目前,Swarm 可以在Linux系统、Unix 系统和Mac OS X下运行,要在Windows下运行,必须先安装Cygwin 环境。20046月发布了Windows XP下运行的Swarm2.1.1版,具体下载网址是:http://eco83.econ.unito.it/swarm/materiale/cd/。从20043月起,Swarm网站迁移到新址:http://wiki.swarm.org/。新的维基网站由密执安大学复杂系统研究中心主持更新。

 SwarmFest”是连续多年举行的Swarm用户和研究人员学术研讨会,2004年的第8届年会就是密执安大学复杂系统研究中心主办的,2005年的Swarm Fest年会将在意大利的都灵举行。

4Repast

RepastRecursive Porus Agent Simulation的缩写。这是一个用Java开发的基于主体的模拟框架。Repast Swarm中借鉴了很多设计理念,形成一个“类Swarm”的模拟软件架构。Repast最初是由芝加哥大学的社会科学计算实验室开发研制的,后来俄勒岗国家实验室维护了一段时间,现在由来自政府、教育界和行业组织成员组成的非赢利机构管理,网址是:http://repast.sourceforge.net/

200411月推出了{zx1}版本Repast 3.0Repast 3.0的核心部分是一个基于主体建模服务内核,支持3种实施平台:Java 平台的Repast J、微软.Net 框架下的Repast.Net 、支持Python脚本语言的Repast Py,因此它支持JavaPythonDotNet三种编程接口。高级模型需要在Repast J中用Java编写,或者在Repast .Net中用C# 编写。

Repast提供了多个类库,用于创建、运行、显示和收集基于主体的模拟数据,并提供了内置的适应功能,如遗传算法和回归等。它包括不少模版和例子,具有支持xx并行的离散事件操作、内置的系统动态模型等诸多特点。

5TNG Lab

TNG Lab 代表Trade Network Game Laboratory(商业网络博弈实验室),它是美国爱荷华州立大学的McFadzeanStewartTesfatsionC++开发的软件包。TNG Lab提供了一个在Windows下运行的可计算“实验室”,可用于研究在多种特定市场环境下,商业网络是怎样形成和演化的。模型中包括买家、卖家和经销商,他们根据自己的预期效用重复地选择更合适的商业伙伴,参与无合作博弈的双方交易,并随着时间的推移不断调整自己的商业策略。

TNG Lab有标准组件,并具有可扩展性,操作相对比较简单。它适于作为经济研究和教学的工具,只要用户对有关经济参数的设置有清晰的认识,就可以在TNG Lab搭建的商业网络实验室中进行相关的研究。参考网址是:http://www.econ.iastate.edu/tesfatsi/tnghome.htm

6jES

JES是意大利都灵大学Pietro TernaJava开发的企业仿真项目,JES就是由Java Enterprise Simulator(Java企业仿真器)三个字的首字母组成的。这是一个在Java版的本的Swarm基础上开发的模型架构,可用于测试带有不同目标的仿真企业的动态行为,并可进一步对虚拟企业的创建、发展,以及企业之间网络关系进行理论分析。JES的参考网址是:http://web.econ.unito.it/terna/jes/

7Ascape

Ascape代表Agent Landscape的意思,它是美国布鲁金斯研究所的Miles T. Parker开发的基于主体建模平台。它除了具有其他基于主体建模工具的许多共同特点外,用户可以在运行模型时选择不同的制图特征来定制自己的视图。Ascape全部用Java语言实现,可以在WindowsMacintoshUnixLinux以及网络环境下使用。因为Ascape有选择性地使用了Java 1.2 API,其网络应用可以在任何浏览器中使用。开发者于200010月推出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应用当中,还可以选择2D3D图形显示。MASON的网址是:http://cs.gmu.edu/~eclab/projects/mason/

ABLE 表示主体建模和学习环境(Agent Building and Learning Environment),它是IBM公司用Java语言开发的框架,包括构件库和工具包,用于支持智能主体建模。ABLE 利用JavaBeans 提供可重用组件,并能够进行可视化编辑。ABLE的构件库包括读写文件或数据库的data beansmachine learning beans和用于推理的ruleset bean,其定义语言与Java类似。ABLE 20005月起可以从IBMalphaWorks得到。ABLE的网址是:http://www.alphaworks.ibm.com/tech/able,但是在下载之前必须先申请IBMID

Cougaar 是一个用Java 构建的体系结构,适用于构筑基于主体的大规模分布式应用模型。它本身是一个开放源代码项目,从DARPA 研究项目到大规模主体系统,先后用了8年的时间。Cougaar不仅包括核心体系结构,而且带有各种用于示范、可视化演示和管理的组件。有关参考资料的网址是:http://www.cougaar.org/



郑重声明:资讯 【多Agent模拟软件概述(转)_百新数字科技发展中心_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——