你指的是在Repast simphony的agent设计吧,2 z8 F# u3 l' G- c j
我没有用到一个agent拥有多个Behavior的做法,0 t) ]& C& L- `
一般来说可以在每个agent的类实现中顺利定义一个Behavior,
: A$ s0 K( p6 O, N3 t" n从官方demo的范例来看,一般是step函数,注意前面的仿真调度参数(Schedule)设置,例如如下源码' P1 }; ~! C+ n2 e1 U D0 S
@ScheduledMethod(start = 2, interval = 1, priority = 2)
1 F. d2 e1 n4 K, J- `, o public void step()
* e* {0 B- W7 v3 h. b: U ……8 }9 l/ Q7 }/ a1 n
我理解的意思就是此类agent对象创建后经过2 ticks执行step函数定义的Behavior,
7 M# }. F7 w; h& d此后每经过1 tick,只要这个agent还在就执行step,优先级为2.! e W# o, }' Z+ y0 A P
" k, L7 J) K" H
如果多个Behavior无法通过agent的单一调度方式定义,
, [8 k. K: s3 ^+ ^3 l那么值得考虑从这个agent类派生出对应每一种Behavior的多个agent. |