你指的是在Repast simphony的agent设计吧,, _ a$ Q& g; Z7 L5 ]( ~) X, I/ m
我没有用到一个agent拥有多个Behavior的做法,
, e3 Y4 d I+ r& j& C% d v% o一般来说可以在每个agent的类实现中顺利定义一个Behavior,
+ j& n! l- W! ^' U2 j从官方demo的范例来看,一般是step函数,注意前面的仿真调度参数(Schedule)设置,例如如下源码
4 ^! ~* v4 G( Y3 ]$ m u @ScheduledMethod(start = 2, interval = 1, priority = 2) : d# L( @, f5 z; F, d
public void step()
2 e' g j. ^) _ ……
' p0 u6 p# w U0 Z5 x3 N9 W我理解的意思就是此类agent对象创建后经过2 ticks执行step函数定义的Behavior,
+ M& j: t6 ^3 A5 r- R8 D) v此后每经过1 tick,只要这个agent还在就执行step,优先级为2.
- t) |5 w7 ]3 t: C! A) s' f$ e
' T% m8 z# ^" ]8 N, z% {( Q* ?如果多个Behavior无法通过agent的单一调度方式定义," k$ k9 n# a2 L" ?9 B8 s
那么值得考虑从这个agent类派生出对应每一种Behavior的多个agent. |