你指的是在Repast simphony的agent设计吧,! [& s1 Q- b* _9 e9 u' b. e, X9 ?
我没有用到一个agent拥有多个Behavior的做法,& E6 b- ]- ]; t; y
一般来说可以在每个agent的类实现中顺利定义一个Behavior,
9 P9 n4 {/ @+ ]; h从官方demo的范例来看,一般是step函数,注意前面的仿真调度参数(Schedule)设置,例如如下源码
3 R" n% ^$ w8 q9 p( E& V& h' ~7 | @ScheduledMethod(start = 2, interval = 1, priority = 2) # t! f) P% Q( Q9 D' j
public void step()
8 D4 q$ M5 a! u' L ……- H, j; r! u, t; F. r
我理解的意思就是此类agent对象创建后经过2 ticks执行step函数定义的Behavior,
8 e/ |& \' c$ K) X( v+ d此后每经过1 tick,只要这个agent还在就执行step,优先级为2.
1 s1 n# h2 Q% G. a
# q4 P& f8 L, L$ \9 {如果多个Behavior无法通过agent的单一调度方式定义,; v4 o( _% K/ w$ W! a; N
那么值得考虑从这个agent类派生出对应每一种Behavior的多个agent. |