你指的是在Repast simphony的agent设计吧,
# g% ^+ H# N: v2 A6 u我没有用到一个agent拥有多个Behavior的做法,
# ?9 ]+ ^' n, k/ u/ i一般来说可以在每个agent的类实现中顺利定义一个Behavior,
" x. J3 O: K" F从官方demo的范例来看,一般是step函数,注意前面的仿真调度参数(Schedule)设置,例如如下源码4 D& `+ S4 X8 X/ ^, a2 e8 D
@ScheduledMethod(start = 2, interval = 1, priority = 2) . d, Y- e, T+ R0 x
public void step() l9 T+ v/ q% F: H6 Z6 {/ C
……7 |/ c! ^# b; Q. m, p0 O
我理解的意思就是此类agent对象创建后经过2 ticks执行step函数定义的Behavior,
) ?7 j" f" Y2 L: k* o4 ~( p此后每经过1 tick,只要这个agent还在就执行step,优先级为2.9 ?! S( r$ t7 g, M3 z2 z1 d# p
/ p3 N( O3 ?5 G8 a# `7 ?' j
如果多个Behavior无法通过agent的单一调度方式定义,- S) \' j3 R8 O: l
那么值得考虑从这个agent类派生出对应每一种Behavior的多个agent. |