repast总结 7-27.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Repast简介 Repast(Recursive Porous Agent Simulation Toolkit)是芝加哥大学社会科学计算研究中心研制的多主体建模工具,她提供了一系列用以生成、运行、显示和收集数据的类库,并能对运行中的模型进行“快照”,记录某一时刻模型的当前状态,还可以生成模型运行过程中状态动态演化的视频资料。 Repast从Swarm(用来给复杂性过个体行为建模, 用于对经济行为的复杂性研究仿真. 他在美国新墨西哥州的 Santa fe 研究所得到开发Repast项目拟定了三个设计目标:使用方便、容易学习和容易扩展。设计者通过让模拟软件的底层结构具备抽象性、可扩展性以及“良好”的表现来实现这些目标。 Repast建模相当于设计一个状态机,状态机的核心状态是模型中所有成员的集体状态属性集合。成员则分为底层结构和表层结构。底层结构是各种各样用于运行模型、显示和收集数据等架构的机制;表层结构是设计者创立的模型。底层结构的状态就是模型的种种显示状态、数据收集对象的状态等等;表层结构的状态指模型的描述状态,比如所有主体变量的当前值,模拟环境空间的当前状态值,或他们运行的空间以及别的可能有的各种表层对象(例如聚合“协同”的对象统计值等)。在这种状态机模式下,所有对状态机的改变都通过同一对象界面借口来实现,这个对象界面接口是SimModelImpl类。这种设计为建模者减轻了学习负担,也简化了在工具包的功能不足时的扩展编程。 Repast一共有数百个类,封装在11个库中,下面对几个主要的类库进行简要的介绍。 Analysis库(分析库) 分析库中的类是用来聚集、记录数据以及建立数据表。通过使用DataRecorder类,建模者能够将收集到的数据分类整理,并将这些数据以表格格式写入文件。这个库对于数据挖掘有着实际的作用。 Engine库(引擎库) 引擎类负责建立、操纵和运行模型。simModel借口是Repast中所有模型的超类。作为simModel的一个子类,simModelImpl类可以作为绝大多数用Repast创立的模型的基类。库中包含的控制类(BaseController、Controller、Batch-Controller)负责通过图形用户界面处理用户交互,或通过批处理参数文件自动处理交互。时序表及相关行为类主要用来改变模型中的状态。 Event库(事件库) 事件库负责监听复选框的变化以及滑动条的滚动事件等。 Games库(博弈库) 博弈库中包含了一些建立对策论模型(如囚徒困境模型)所用的基本类。 GUI库(图形用户界面库) GUI类负责实现模型的图形可视化,包括对图形界面显示的快照功能以及制作模型运行的活动录像。多个Display类与Space空间库中的类协同工作,把空间位置关系的抽象和空间关系的显示分离出来,可以针对不同的空间特征设计不同的可视化显示方案。通过一个显示界面DisplaySurface显示出来。Painter类处理这些空间库在屏幕上的显示,simGraphics类可用于显示出图片或者文本,而显示界面本身就能够完成对所显示对象的探测。对于支持鼠标点击的可视化模拟对象点击鼠标左键,就会弹出一个窗口,其中显示被点击的主体的当前状态。 Math库(数学库) 数学库中包含一些用于数学处理的类,用于一些特定的需要的模型。 Network库(网络库) 网络库包括实现网络仿真的类,例如缺省的节点和边的类,各种特殊定义的可记录网络数据的记录类。 Space库(空间库) 空间库主要包括创建网格、圆环面等空间关系的类,所有Agent互相之间都有一定的空间关系,此类包主要包括实现这些空间关系的类。空间类是表述各种空间的基础容量类。这些空间类允许在x,y坐标轴的基础上对对象进行分类概括和检索。空间库还包含了一些节点类和链接类,以方便建立基于网络的模型。空间类和在GUI库中的显示类协同操作,以实现空间和对象的可视化。。在RePast中,空间(spaces)的存在有两种目的:(1)作为空间型主体的基类,比如附带的示例模型 Sugarscape中的SugarSpace或InfiniteLifeSpace;(2)作为主体的容器,定义主体间的空间位置关系。Repast主要提供了两种空间对象:网格空间和网络空间。当研究多个 Agent在一定空间内的活动时可使用网格空间,网格空间被划分成许多元胞(cell),其中每个元胞可以同时容纳个一个或多个Agent,并按照一定的规则,网格的状态不断发生变化。具体的类在此不予叙述。 Util库 Util类库中只有一个类:SimUtiltities。该类提供了一些产生无序表单、显示信息对话框等静态方法。 除了Repast自己提供的类,它还充分利用了第三方软件提供的扩展类库,尤其是Colt库。Colt

文档评论(0)

精品报告 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档