你指的是在Repast simphony的agent设计吧,
1 D' K9 Q$ S2 a我没有用到一个agent拥有多个Behavior的做法,
5 f/ h7 ~5 M, n一般来说可以在每个agent的类实现中顺利定义一个Behavior,) \' C2 \/ K8 F9 `1 D
从官方demo的范例来看,一般是step函数,注意前面的仿真调度参数(Schedule)设置,例如如下源码
" ?. w2 X6 g8 P- M- X @ScheduledMethod(start = 2, interval = 1, priority = 2) + s+ f/ y' g& c
public void step()
- v6 K$ d V: M+ Y& Q ……
) |2 Y3 H- j7 Y" U0 d$ w$ H我理解的意思就是此类agent对象创建后经过2 ticks执行step函数定义的Behavior,
, q: L5 f1 W1 q& \5 k6 h# t$ P% v此后每经过1 tick,只要这个agent还在就执行step,优先级为2.; s- `, H9 @1 Y
) l3 v4 n# L# {2 h" {: |9 X如果多个Behavior无法通过agent的单一调度方式定义,
2 n2 q( G4 c" W$ e# Q- N那么值得考虑从这个agent类派生出对应每一种Behavior的多个agent. |