你指的是在Repast simphony的agent设计吧,6 @! z' j/ _ J* @2 Q- F2 @3 T5 K* B
我没有用到一个agent拥有多个Behavior的做法,
7 i( i t1 c8 d0 U& W7 o一般来说可以在每个agent的类实现中顺利定义一个Behavior,! n/ i' {8 L+ {3 c5 l
从官方demo的范例来看,一般是step函数,注意前面的仿真调度参数(Schedule)设置,例如如下源码$ o. r* ~3 e' p$ q
@ScheduledMethod(start = 2, interval = 1, priority = 2)
. d$ f2 k. ~" O* P$ h public void step()
: J2 S9 Y: O2 e7 a ……
3 L* S, R0 M+ M1 Z我理解的意思就是此类agent对象创建后经过2 ticks执行step函数定义的Behavior,
6 M( F, x* j# U此后每经过1 tick,只要这个agent还在就执行step,优先级为2.
0 M( K* K- b& T( a, J3 D# [
' d8 `, i1 v, G3 M/ A; R如果多个Behavior无法通过agent的单一调度方式定义,
" L& F- h! e3 ~$ h2 d9 b那么值得考虑从这个agent类派生出对应每一种Behavior的多个agent. |