你指的是在Repast simphony的agent设计吧,
6 W2 ^0 {# A9 \我没有用到一个agent拥有多个Behavior的做法,, N' w0 u' j, N, b
一般来说可以在每个agent的类实现中顺利定义一个Behavior,
0 C; k3 A0 U, T( j9 T( c从官方demo的范例来看,一般是step函数,注意前面的仿真调度参数(Schedule)设置,例如如下源码
7 z X& c# f* q& d6 G# z @ScheduledMethod(start = 2, interval = 1, priority = 2)
+ u* {; F. I+ q2 h3 c( b0 E' ] public void step()8 P6 ^1 Z! m7 b- O7 y
…… [4 s+ [8 @2 L8 d/ W3 W
我理解的意思就是此类agent对象创建后经过2 ticks执行step函数定义的Behavior,
- F# g# w: q) V) `此后每经过1 tick,只要这个agent还在就执行step,优先级为2.
3 J* R# U5 E, b5 |: V3 W
4 Y/ ^; A V8 I3 m$ P1 K. p如果多个Behavior无法通过agent的单一调度方式定义,2 o& r5 k. ^- z
那么值得考虑从这个agent类派生出对应每一种Behavior的多个agent. |