你指的是在Repast simphony的agent设计吧,
5 c1 R6 T$ |' i9 Q- Q我没有用到一个agent拥有多个Behavior的做法,
# g+ I6 D7 e- e% _, q, k一般来说可以在每个agent的类实现中顺利定义一个Behavior,
$ [- k1 @( B; s! e( x* E从官方demo的范例来看,一般是step函数,注意前面的仿真调度参数(Schedule)设置,例如如下源码' D, V5 o% V3 R0 ?' R
@ScheduledMethod(start = 2, interval = 1, priority = 2)
* B* @3 X( _8 y8 Y( \ public void step()" D; A6 V( N+ S+ D: }( s/ ?1 m( s
……( \' I2 p, k, q
我理解的意思就是此类agent对象创建后经过2 ticks执行step函数定义的Behavior,+ T/ H0 `, W/ P, f# a/ R
此后每经过1 tick,只要这个agent还在就执行step,优先级为2.6 A1 t! J2 a# z
5 a# D: f, R! W0 V' F3 p
如果多个Behavior无法通过agent的单一调度方式定义,7 q3 x& `0 U( a+ k9 E' g4 A
那么值得考虑从这个agent类派生出对应每一种Behavior的多个agent. |