你指的是在Repast simphony的agent设计吧,
7 m( ^$ s5 l8 N h8 ]8 q我没有用到一个agent拥有多个Behavior的做法,9 Y6 L: _/ Y2 T2 O
一般来说可以在每个agent的类实现中顺利定义一个Behavior,
, u4 b' c( P \/ {# N从官方demo的范例来看,一般是step函数,注意前面的仿真调度参数(Schedule)设置,例如如下源码
d9 b" P9 q( c$ k" N @ScheduledMethod(start = 2, interval = 1, priority = 2) 1 ~8 t* R$ [6 W- s* m7 l5 r! ~
public void step()/ F, e1 T1 Y- a% g: i- Y; z! q
……3 m4 }- m) v, u
我理解的意思就是此类agent对象创建后经过2 ticks执行step函数定义的Behavior,
" r3 z" u! I' j9 I" d# R# v& j( T此后每经过1 tick,只要这个agent还在就执行step,优先级为2.
7 @$ u5 q+ u- O3 A: |' N6 n* O* V. ^8 N) z
如果多个Behavior无法通过agent的单一调度方式定义,
, B( \% z9 ^+ ?$ [! O那么值得考虑从这个agent类派生出对应每一种Behavior的多个agent. |