你指的是在Repast simphony的agent设计吧,# B+ f8 q+ s# y+ R6 H
我没有用到一个agent拥有多个Behavior的做法,% c( Q5 G0 [$ g! o% \
一般来说可以在每个agent的类实现中顺利定义一个Behavior,
# H* W8 I: G( b& i7 n+ ~- Z" h, k从官方demo的范例来看,一般是step函数,注意前面的仿真调度参数(Schedule)设置,例如如下源码
0 N6 k/ p9 [# _5 s1 I @ScheduledMethod(start = 2, interval = 1, priority = 2) - u, @, `( n* z& I% u
public void step()
3 p* ]9 X! i8 C% m7 U* e0 L& T- H ……
4 C. q" A- u4 q+ B. U# D我理解的意思就是此类agent对象创建后经过2 ticks执行step函数定义的Behavior,3 Q6 ]. u, W# e7 e* Z
此后每经过1 tick,只要这个agent还在就执行step,优先级为2.. k' N9 h _9 D0 G, E: c; @2 q
' p% e$ f1 I$ N" v6 {$ [/ T如果多个Behavior无法通过agent的单一调度方式定义,8 H" I* k' A* O G$ P- Q
那么值得考虑从这个agent类派生出对应每一种Behavior的多个agent. |