你指的是在Repast simphony的agent设计吧,; c. t6 q* x" U v, }8 q7 X) s' X
我没有用到一个agent拥有多个Behavior的做法,
0 Y- ?; {& H; N: @& @( k一般来说可以在每个agent的类实现中顺利定义一个Behavior,
5 R3 [9 h& d9 Y( S f从官方demo的范例来看,一般是step函数,注意前面的仿真调度参数(Schedule)设置,例如如下源码% [+ r& o1 k" E. \0 x
@ScheduledMethod(start = 2, interval = 1, priority = 2)
( t; j P2 x; H public void step()1 s2 o+ A9 c6 F6 f8 P) I. E, e
…… l2 V9 v# n0 }
我理解的意思就是此类agent对象创建后经过2 ticks执行step函数定义的Behavior,
, R: n2 r5 t# Y1 X G此后每经过1 tick,只要这个agent还在就执行step,优先级为2.
9 s1 z* |+ _( {3 e2 k- f
# M. \& M7 V7 \5 ^$ l. z C如果多个Behavior无法通过agent的单一调度方式定义,, W/ P) U( ^9 W8 }" C Q- g
那么值得考虑从这个agent类派生出对应每一种Behavior的多个agent. |