SWARM
从1994 年开始,桑塔费研究所(SFI)开发一个称做Swarm的软件工具集。用来帮助科学家们分析复杂适应系统。1995 年SFI 发布了Swarm的beta 版。Swarm最初只能在Unix操作系统和 X Windows界面下运行。1998年四月,推出了可以在Windows 95/98/NT上运行的版本。
1999年,Swarm又提供了对Java的支持,从而使Swarm 越来越有利于非计算机专业的人士使用。用户可以使用Swarm 提供的类库构建模拟系统,使系统中的主体和元素通过离散事件进行交互。SWARM可以用于各个广泛的研究领域,比如说生物学,经济学,物理学,化学和生态学等。
Swarm的整个思想是提供一个执行环境,在这个环境中,大量的对象能够“生活”,并以一种分布式的并行方式互相作用。Swarm建立一种机制,多个时间线程可以互相作用。Swarm支持分级建模方法,具有递归结构。在嵌套中,个体可由其它个体的swarms所组成。父Swarm可以由子Swarm(subswarm)组成。 Swarm提供了面向对象的可重用组件库,用来建模并进行分析,显示以及对实验进行控制。
一个Swarm模型包括了模型Swarm(ModelSwarm)以及观察者Swarm(ObserverSwarm)。Swarm可以将模型的数据收集和实现进行分离.
ModelSwarm 中的每一个对象对应模型世界中的每一个主体。ModelSwarm包括模型中行为的时间表。ModelSwarm 还包括一系列输入和输出。输入的是模型参数,如对象的个数、初始值等;输出的是要观测的变量的值及模型的运行结果。
ObserverSwarm包括一组个体和一个行为时间表。ObserverSwarm 的个体是用来观测的探测器以及输出界面,如图表、二维格点等。ObserverSwarm的行为时间表用来描述各探测器采样的间隔和顺序。
先建ObserverSwarm。在ObserverSwarm 中建立ModelSwarm 作为自身一个 subswarm,并为它分配内存空间。 ModelSwarm 建立模型的主体(agent)以及主体的行为。
SWARM有七个核心库: defobj,collection ,random ,tkobjc ,activity, swarmobject和simtools 。前四个是支持库,有可能在Swarm 之外用到;后三个是Swarm 专有的类库。
参考网站:www.santafe.edu
TNG Lab
TNG Lab(Trade Network Game Lab)是由美国爱荷华州立大学的McFadzean, Stewart和 Tesfatsion开发的,为了研究在一个多样化的市场环境下的商业网络构成而设计的一个特殊的可计算实验室。它包括买家、卖家和经销商人,他们重复地选择更合适的商业伙伴,参与到无合作博弈的有风险的交易中,并随时间推移进化他们的商业策略。它有标准的组件,可扩展,操作简单,适于进行经济研究和教学。它是在windows下运行的。
TNG Lab的最上层是由一个图形用户界面组成,它显示主要市场参量值的变化:例如,每种类型的商人的数量,容量的限制,商业业务报酬,交易成本,呈休止状态的成本,学习参量以及商业期间的数量和长度。这些市场性能指标量结果可以通过一个实时的数据表、图表和动画呈现出来。
这个上层操作是由三个底层模块来支持的,这三个底层模块由一般的类结构(SimBioSys类结构)、扩展的类(TNG/SimBioSys, 提供了实现TNG Lab市场协议和行为准则的扩展)和事件模型(TNG/COM)组成。这些底层模块是可扩展并有标准组件的,使更有经验的用户可以完成更宽泛的应用研究。
在TNG中的每一个商人都是作为一个自治的主体,具有内在的社会规范(市场协议)、对内在状况信息的存储以及内在行为准则。尽管每一个商人都具有相同的一般内在结构,但是商人的类型可以根据他们特殊的市场协议、安装属性以及初始的天资来相互区分;并且每一个商人都能够获得不同的状态信息,并基于他自己独特的过去的经验随时间进化不同的商业行为准则。
在TNG中的活动被分为一些“阶段”的序列。在初始阶段,要根据商人的类型,赋给每一个商人一个“个性”(在他的商业交互中控制他的行为的准则);一个对他的每一个潜在的商业合作者的初始的期望效用估计;以及一个在任何给定的时间他能够接受或提供的商务意向的数量上的容量限制。然后,商人们便重复地参与到一定数量的循环中的三种类型的活动中:(1)基于现有的期望效用估计选择并决定更合适的商业伙伴匹配;(2)与合作伙伴进行交易并交互作用,模拟了无合作博弈;(3)对于期望效用估计的更新,考虑以新的方式发生的搜寻成本,休止状态成本和交易报酬。随后,每一个类型的商人将分别基于由这些准则,战略地更改其商业行为准则,从而一个新的阶段产生。
现在,TNG Lab已经用来进行对劳动力市场中的市场支配力、劳动生产率、失业率以及福利水平等等问题的研究。
参考网站:http://www.econ.iastate.edu/tesfatsi/ tlab00b.zip
RePast
RePast(Recursive Porous Agent Simulation Toolkit)是一种在Java语言环境下,设计生成基于主体的计算机模拟软件架构,它是由芝加哥大学的社会科学计算研究中心开发研制的。RePast的设计目标是使用的方便性和较短的学习周期,以及可扩展性。它提供了一系列的生成,运行主体,显示和收集其数据的类库。RePast还能够对运行中的模型进行“快照”以及生成模型运行的影像资料。RePast从Swarm模拟工具集中借鉴了不少的设计结构和方法,可以说,它是一个“类Swarm”的模拟软件架构。
RePast的设计思想是常见的概念:建立一个像状态机的模拟模型,这种核心状态由它所有的成员的集体性的状态属性组成。这些成员可以被划分为底层结构和表层结构。底层结构是各种各样的模拟基本运行软件块、显示和收集数据软件块。而表层结构是那些模拟模型设计者创立的模拟模型。
RePast含有近130个类,这些类封装在6个库中,还有许多模拟模型实例。下面对这些类库的功能作一个简要介绍:
分析库 Analysis,在分析库中的类,用来聚集,记录数据以及建立数据表。
引擎库 Engine,引擎类负责建立,操纵以及运行一个模拟模型。
游戏库 Games,游戏库中包含了一些如囚徒问题等等的程序。
图形用户界面库 GUI,GUI类负责实现模拟模型的图形可视化,包括提供显示情况的快照的功能以及模型运行的整个时期的多媒体电影影像资料。
空间库 Space,空间类是表述各种空间的基础容量类。这些类通过恰当的接口有效的描述了各种类型的空间(2维表,圆环面等等)。空间库和在GUI库中的显示类联合工作,从而实现了它们所包含的空间以及对象(如,主体元素)的可视化。
Util类库,实用工具包,该类提供了一些产生表单,显示信息对话框等等的常用静态方法。
RePast含有两个比较典型的内部机制:时间序列机制和图形用户界面(GUI-graphic user interface)机制。
参考网站: http://icg.harvard.edu/~gov2015/Technical_Notes/ InstallationNotesForRepast.doc;
http://repast.sourceforge.net/#download
Ascape
Ascape是布鲁金斯研究所(The Brookings Institution)开发的基于主体的建模平台,用来设计和分析基于主体的模型。它完全用Java编写,可以提供很大的参数配置选择,并且可利用Java中强大的类型定义和习语。Ascape主要是为了建立社会经济系统的模型。
Ascape和许多的基于主体研究所使用的其它建模工具有很多相似点。Ascape设计目标有以下7个。
1.它应该是有表达力的,可以用尽可能少的描述来定义一个完整的模型。
2.它应该是通用的,可以用多种方式表达同样的基础建模思想,然后用不同的环境和配置来测试这些思想;适用于很多领域的问题;拥有尽可能常用的特征:图表,模型视图,参数控制工具等,以及大量的常用结构和行为的类库。
3.它的功能应该是强大的,可以提供给高水平用户导向型工具,使其不用编程就可实现模型交互,它也能对复杂的系统建模编程。
4.为支持上述这些目标,它应该是抽象的,它可以封装建模思想和方法论,能够不影响其他方面而在模型的某一方面进行重大的改动,比如改变维数,拓扑结构,规则,结构以及规则的执行命令;可以促进探索和试验,允许模型的设计和工具的简单混合与匹配。
5.简单适用。用户只须由小部分的专家,大部分的潜在的聪明用户组成。尽管有挫败但不会有继续使用的障碍。
6.功能健全。只可能在编译的时候出现中断,中断就给出问题报告。不会在运行时中断。
7.快速Fast。
Ascape的设计关键在于抽象和Scapes。首先,Scapes本质上是功能强大的主体的集合。模型都是由scapes和主体的层次组成。Ascape中的第二个重要的抽象是,scape结构对于主体来说是隐藏的。最后一个抽象就是,行为仅仅通过Scapes发生。
Ascape建立和运行了"囚徒困境"。得到的结果显示具备1.善意的; 2.宽容的; 3.强硬的; 4.简单明了的。特点的人,将总会是赢家。
参考网站: http://www.brook.edu/dybdocroot/Collab/CSED/install.htm
posted on 2004-10-08 15:30 Tutuya
没有评论:
发表评论