你指的是在Repast simphony的agent设计吧,8 f/ s1 ^9 _4 ~$ c7 r1 M6 Q e
我没有用到一个agent拥有多个Behavior的做法,7 s1 K" o; i+ G$ P
一般来说可以在每个agent的类实现中顺利定义一个Behavior,. [; g. O# S v6 W5 O
从官方demo的范例来看,一般是step函数,注意前面的仿真调度参数(Schedule)设置,例如如下源码
% o3 P% q a' ^7 r$ v. n4 t# Q$ ^ @ScheduledMethod(start = 2, interval = 1, priority = 2) # J" T0 |( T+ Z# i; Y4 V
public void step()# W z, t, K: t. t# I2 T5 @. E! O# a
……
3 s" ?! k9 j" X我理解的意思就是此类agent对象创建后经过2 ticks执行step函数定义的Behavior,
; P, }* A: G. x4 z6 ~) _此后每经过1 tick,只要这个agent还在就执行step,优先级为2.( J( D* k/ `( R) \" m, I7 a. V
' h5 X# N5 ^2 j9 s9 X- ~
如果多个Behavior无法通过agent的单一调度方式定义,
$ W \" E- v6 R* B ^那么值得考虑从这个agent类派生出对应每一种Behavior的多个agent. |