你指的是在Repast simphony的agent设计吧,3 A$ X8 s) i( m6 g, w! [
我没有用到一个agent拥有多个Behavior的做法,7 T: Y% F7 z; C
一般来说可以在每个agent的类实现中顺利定义一个Behavior,+ G( P& Y" m+ h/ T; s) r! z+ x
从官方demo的范例来看,一般是step函数,注意前面的仿真调度参数(Schedule)设置,例如如下源码( v5 T' C/ T# V R( ?" o* A
@ScheduledMethod(start = 2, interval = 1, priority = 2) , [9 O* b6 T) {! t/ y& v, }
public void step()
, L) i0 }# `" V$ @5 x: X ……
" B+ G: ~. L" [$ N+ n2 j我理解的意思就是此类agent对象创建后经过2 ticks执行step函数定义的Behavior,
# W" Q: ?7 I+ Y: c此后每经过1 tick,只要这个agent还在就执行step,优先级为2.
1 R+ ], d. h6 D$ a4 C* C1 ? O0 T3 Y/ E2 v; _$ h: `2 m. V% c8 l
如果多个Behavior无法通过agent的单一调度方式定义,% }9 v) c1 o, l8 M( s$ F
那么值得考虑从这个agent类派生出对应每一种Behavior的多个agent. |