你指的是在Repast simphony的agent设计吧,+ E6 y5 H' w ^$ S
我没有用到一个agent拥有多个Behavior的做法,& n, `- I1 @7 W4 g5 i
一般来说可以在每个agent的类实现中顺利定义一个Behavior,1 L$ X5 e& D3 K: I1 T j
从官方demo的范例来看,一般是step函数,注意前面的仿真调度参数(Schedule)设置,例如如下源码
8 O( F6 W% z3 _, \7 s @ScheduledMethod(start = 2, interval = 1, priority = 2)
3 r2 V! C1 J* o' M$ \ public void step()) Q1 u# M. N. g% n; ]
……
! S: K# a) y0 M9 T7 }, h我理解的意思就是此类agent对象创建后经过2 ticks执行step函数定义的Behavior,+ ^, @* L* k$ `6 z7 @
此后每经过1 tick,只要这个agent还在就执行step,优先级为2.
$ }* |/ g# R2 o" V* H- Y$ w
! V# \% ]: C8 t1 n2 E5 u/ X如果多个Behavior无法通过agent的单一调度方式定义, e7 [( a: H/ L; m2 A
那么值得考虑从这个agent类派生出对应每一种Behavior的多个agent. |