你指的是在Repast simphony的agent设计吧,& T. |7 j) v4 W& J+ V- V( G
我没有用到一个agent拥有多个Behavior的做法,
# q3 O: V/ T, H8 G7 Q% Z一般来说可以在每个agent的类实现中顺利定义一个Behavior,
/ f6 G) ?6 v$ t从官方demo的范例来看,一般是step函数,注意前面的仿真调度参数(Schedule)设置,例如如下源码
* D3 P' S8 d. [: j) q, }5 V6 } @ScheduledMethod(start = 2, interval = 1, priority = 2) 5 I1 n0 G, V( R) m( M3 M, \
public void step()
; ^+ W4 Y! [% B! a! M ……
( i! A4 b+ z7 t我理解的意思就是此类agent对象创建后经过2 ticks执行step函数定义的Behavior,3 Q4 R# f2 m2 I5 ?, N# r
此后每经过1 tick,只要这个agent还在就执行step,优先级为2.. q/ m. s9 p* w1 m' _
2 D1 o+ Q0 B- b5 v. H
如果多个Behavior无法通过agent的单一调度方式定义," O$ w4 P+ I/ r) d2 M! ^) B" @" W
那么值得考虑从这个agent类派生出对应每一种Behavior的多个agent. |