你指的是在Repast simphony的agent设计吧,3 [& y* Z8 T/ K: Y& ?: t2 Q
我没有用到一个agent拥有多个Behavior的做法,
7 ~: y: f8 ]2 M! F) y' w8 ?6 ~: U* j一般来说可以在每个agent的类实现中顺利定义一个Behavior,
; z4 V' z' l- Y& }8 A) y% p% }从官方demo的范例来看,一般是step函数,注意前面的仿真调度参数(Schedule)设置,例如如下源码+ m3 R6 I a# e' Y( n* H
@ScheduledMethod(start = 2, interval = 1, priority = 2) 0 x; Z, s4 f5 Y0 g% b
public void step()
9 l$ d% ~* S; o ……
. d! A4 q! V7 x% |' d, }, u我理解的意思就是此类agent对象创建后经过2 ticks执行step函数定义的Behavior,% g& v, s/ s: S' P8 c @
此后每经过1 tick,只要这个agent还在就执行step,优先级为2.
1 g; h5 ]2 l3 K4 t
! M/ f8 r, i( @- s* ~如果多个Behavior无法通过agent的单一调度方式定义,
9 I+ z' r5 x+ T4 k, v那么值得考虑从这个agent类派生出对应每一种Behavior的多个agent. |