你指的是在Repast simphony的agent设计吧,0 _0 e7 X9 Y$ a( t" l3 z' i
我没有用到一个agent拥有多个Behavior的做法,
; o% I* }% l+ ] w6 W8 A" B7 i一般来说可以在每个agent的类实现中顺利定义一个Behavior,1 r+ z- N) W5 m! q, O
从官方demo的范例来看,一般是step函数,注意前面的仿真调度参数(Schedule)设置,例如如下源码
6 l' l( t q5 t1 j6 M( c @ScheduledMethod(start = 2, interval = 1, priority = 2) 1 a/ j4 A) M. m
public void step()
, C/ s% O k& X4 i; q ……, D8 s" P- \' `; \6 H/ d' w( Q, y$ l
我理解的意思就是此类agent对象创建后经过2 ticks执行step函数定义的Behavior,% v! {$ {9 p% `) \/ R7 F
此后每经过1 tick,只要这个agent还在就执行step,优先级为2.5 a( |- v! j5 W3 W0 _, L' x
- B4 M1 V0 U4 p( ]如果多个Behavior无法通过agent的单一调度方式定义,; p$ e8 B- Z8 z+ M0 I. w n
那么值得考虑从这个agent类派生出对应每一种Behavior的多个agent. |