Repast(Recursive Porous Agent Simulation Toolkit)简介:是一种在Java语言环境下,设计生成基于主体的计算机模拟软件架构,(方便性和较短的学习周期,以及可扩展性)。它提供了一系列的生成,运行主体,显示和收集其数据的类库。Repast还能够对运行中的模型进行“快照”以及生成模型运行的影像资料。Repast从Swarm模拟工具集中借鉴了不少的设计结构和方法,可以说,它是一个“类Swarm”的模拟软件架构。 N X" F& ?% \4 S, I# m4 J
' }- L5 [1 V5 C
RePast的设计思想:建立一个像状态机的模拟模型,这种核心状态由它所有的成员的集体性的状态属性组成。这些成员可以被划分为底层结构和表层结构。底层结构是各种各样的模拟基本运行软件块、显示和收集数据软件块。而表层结构是那些模拟模型设计者创立的模拟模型。 7 G4 m0 u3 ^# \3 z3 I8 Z/ q
REPAST的应用领域可以分为四类:
+ E0 a' F7 \8 E+ d' N+ @1.理论研究(复杂适应系统(Complex Adaptive System CAS)一般规律的验证);
, J3 C& t7 l- P7 `- O' K) K* O' S2.社会系统仿真(Agent作为人);
, i* x- L, P* a6 P% W A3.经济系统仿真(计算机经济学(Agent-based Computational Economics ACE)经济模型的实现与仿真);
" J7 O+ o# M" z; v4.综合应用
) @$ M, i4 [( Y* YREPAST的优点:与SWARM相比,具有以下优点:
- d* \2 H- _" n7 ^3 y功能更强大(网络结构生成、空间关系管理、数据可视化)
2 ^! d4 N; j; }, `' ]+ N" x G易用性更好(较好的支持Windows)
6 N9 U4 N3 r8 v" _7 G# _: I! \语言基础(JAVA支持)。
; G5 T- i' V& m% ^) b1 |( q* ^; T
) q$ A' t7 K5 I$ k0 Q1 q4 rRepast的组成:Repast可用于物流仿真,供应链仿真,生产仿真,系统仿真,流程仿真本身由一系列的JAVA包以及第三方类库组成.含有近130个类,这些类封装在6个库中,还有许多模拟模型实例。下面对这些类库的功能作一个简要介绍:
8 L( _: Y) }/ ^1 P1 n2 K1.分析库 Analysis,在分析库中的类,用来聚集,记录数据以及建立数据表。
" |1 D: e( F/ o1 _' Y2.引擎库 Engine,引擎类负责建立,操纵以及运行一个模拟模型。+ w1 M* _8 v0 L% g" S! R6 }' j
3.游戏库 Games,游戏库中包含了一些如囚徒问题等等的程序。$ g8 i* O" y" i0 a4 e9 Q
4.图形用户界面库 GUI,GUI类负责实现模拟模型的图形可视化,包括提供显示情况的快照的功能以及模型运行的整个时期的多媒体电影影像资料。 2 T+ P/ x, Y$ B) c7 Q6 y
5.空间库 Space,空间类是表述各种空间的基础容量类。这些类通过恰当的接口有效的描述了各种类型的空间(2维表,圆环面等等)。空间库和在GUI库中的显示类联合工作,从而实现了它们所包含的空间以及对象(如,主体元素)的可视化。 6 Q0 @! B! O" c
6.类库,实用工具包,该类提供了一些产生表单,显示信息对话框等等的常用静态方法。 8 M' o0 P9 u W6 r6 O
o# b7 a* _9 V' ORePast含有两个比较典型的内部机制:时间序列机制和图形用户界面(GUI-graphic user interface)机制。
) V e8 c3 M" J
; J( R9 w$ m) J/ X" }1 s6 Z9 h4 j
H8 ^6 X F3 r- U# G在REPAST中,由调度器负责方针时钟的推进、行为的安排与调度。仿真时钟的单位为“TICK”,被用于执行顺序的索引。在REPAST中,系统状态的改变是在离散时间点上被改变的。分为离散事件调度和离散时间调度。事件与事件的处理子程序被封装在一个行为类中,事件的安排与调度变成了行为的安排与调度。 * s9 d0 E3 }/ u" f
|