邱 磊
(武漢船舶職業(yè)技術(shù)學院計算機教研室,湖北武漢430050)
自然界中很多種類的動物中都存在著復雜的群集運動行為,典型的例子有鳥群、魚群、蟻群和蜂群等,以群集運動行為作為研究對象的模型系統(tǒng)是一個由大量自治個體組成的集合,一般通過個體的局部感知作用和相應(yīng)的反應(yīng)行為使其整體呈現(xiàn)出復雜的行為.在計算機虛擬世界中對群集運動行為進行模擬,具有較強的理論意義和使用價值[1],群集運動行為的模擬廣泛應(yīng)用于公共安全、游戲動畫和影視特效等領(lǐng)域.本文在對群集運動機理分析的基礎(chǔ)上,對群集運動行為進行了建模與仿真模擬.
如果有一群能夠自行其事、自由移動的個體,只需要使每個個體服從于3 個附加的規(guī)則[2-3],就可以使由個體組成的集合并像自然界的魚群和鳥群那樣具有群體行為的能力,這3條規(guī)則是:1)分離規(guī)則:個體應(yīng)當避免和自己的鄰居距離太近、造成碰撞;2)對齊規(guī)則:個體應(yīng)當和自己附近的大多數(shù)鄰居保持相同的方向和速度;3)聚合規(guī)則:個體不能離自己附近的鄰居太遠(見圖1).只要用此3條行為規(guī)則,就能讓計算機中的虛擬個體模擬現(xiàn)實世界中的群集運動行為.在群集運動過程中,每個個體都要遵守以上3條規(guī)則運動,3條規(guī)則對改變個體下一時刻運動的方向起作用[4].
圖1 群集運動行為3規(guī)則示意圖
現(xiàn)以某群體為研究對象,將其建模為一個連續(xù)的三維空間且含有N個個體,每個個體的速度大小恒為v,設(shè)個體i在空間中的位置向量用ci=(x,y,z)來表示.迭代至第t步,個體i的位置向量為ci(t),速度向量為vi(t),速度方向為di(t)(模為1,即di(t)為vi(t)同方向的單位向量).將每一個體的感知范圍由里及外依次劃分為3個行為區(qū)域(如圖2所示):1)ZOR(Zone Of Repulsion)表示排斥區(qū)域:以個體i為球心,以rr為半徑的球,為分離規(guī)則的作用區(qū)域,在這個區(qū)域之內(nèi)的其他個體對個體i有排斥作用,即個體i希望遠離排斥區(qū)域內(nèi)的其他個體;2)ZOO(Zone Of Orientation)表示一致區(qū)域:以個體i為中心,處于rr和ro之間的球形區(qū)域,為對齊規(guī)則的作用區(qū)域,在這個區(qū)域內(nèi)的其他個體對個體i總保持一致運動或保持一致運動的趨勢;3)ZOA(Zone Of Attraction)表示吸引區(qū)域:以個體i為中心,處于ro和ra之間的球形區(qū)域,為聚合規(guī)則的作用區(qū)域,在此區(qū)域的其他個體對這個體i有吸引作用,即這個個體希望向它們靠近.ZOO和ZOA 2個球形區(qū)域要去除個體i背后的體積,該體積內(nèi)的鄰居是個體i無法感知的,因此稱之為盲區(qū)[5],若個體的感知視角定義為α,則盲區(qū)定義為內(nèi)角(360-α)°的圓錐體.α=360°的個體則可感知行為區(qū)域內(nèi)任意方向的鄰居.
圖2 以個體i為球心的感知范圍所劃分的3個行為區(qū)域示意圖
在每一步,各個體會評估3個不重疊的行為區(qū)域內(nèi)其他鄰居的位置和(或)方向,依據(jù)群集運動行為3個規(guī)則,該評估信息可用來確定第t步時個體i的速度方向di(t).具體描述如下:
1)每個個體都試圖與ZOR區(qū)域中的各個鄰居維持一個最小距離,假設(shè)第t步時,ZOR區(qū)域內(nèi)有nr個鄰居,則個體i為避讓鄰居將其速度方向調(diào)整為
式中,j為個體i的鄰居且rij(t)=(cj-ci).ZOR可被理解為個體維持自身空間、避免碰撞所對應(yīng)的行為區(qū)域.
2)ZOO區(qū)域的寬度Δro=ro-rr且滿足rr≤|(cj-ci)|<ro,個體i不斷調(diào)整自己的方向使之與ZOO區(qū)域內(nèi)的鄰居對齊,假設(shè)第t步時,ZOO區(qū)域中含有no個可感知的鄰居,得出
這種方向一致性能使群集運動中個體之間發(fā)生碰撞的次數(shù)最少.
3)每個個體當與各個鄰居距離太遠時,都有向各鄰居中心靠攏的特性.ZOA區(qū)域的寬度Δra=ra-ro且滿足ro≤|(cj-ci)|≤ra,假設(shè)第t步時,ZOA區(qū)域中含有na個可感知的鄰居,得出
這種引力表征了動物體具有集群性、避免邊緣化的趨向.
將3個行為區(qū)域?qū)€體的影響抽象為3種作用力:即排斥力、一致力和吸引力.個體i的速度方向由其受到的作用力決定,一共可以分為3個部分:即由排斥力產(chǎn)生的速度方向dr(t)、由一致力產(chǎn)生的速度方向do(t)和由吸引力產(chǎn)生的速度方向da(t).通過速度方向分量的改變,可以計算出迭代至第t步時個體i總的速度方向
3個行為區(qū)域?qū)€體i的作用力因群體不同而有不同的權(quán)重,故可以加入作用力權(quán)重因子.設(shè)排斥區(qū)域、一致區(qū)域和吸引區(qū)域?qū)€體i的作用力權(quán)重因子分別為λr,λo,λa,則式(4)可改寫為
其中,λr,λo,λa?[0,1],且 λr+ λo+ λa=1. 有了速度方向公式之后,此個體的速度可以計算為
此個體的新位置可以由當前位置和速度共同確定
利用Matlab仿真群集運動行為在三維空間內(nèi)的運動情況,取個體數(shù)N=50,設(shè)作用力權(quán)重因子λr=0.4,λo=0.2,λa=0.4.初始狀態(tài)個體的位置和速度是隨機的、相對分散的,隨著迭代步數(shù)的增加,個體在各自運動模型的基礎(chǔ)上通過個體間的相互作用,逐漸朝著聚合的趨勢運動,最終形成了方向一致的群集運動效果.筆者給出的軌跡圖很好地反映了這一點,由此證明該模型在模擬動物的群集運動上是有效的.
圖3 群集運動行為仿真結(jié)果
本文將動物群的信息傳遞機制體現(xiàn)在吸引力、排斥力和一致力3個方面,通過分析個體間的行為規(guī)則,確定了個體的總的速度方向,從而求解出個體位置的迭代方程,并最終構(gòu)建了能表示動物群集行為的通用模型.該模型只考慮了個體間的相互影響,并未對個體周圍的環(huán)境因素進行探討,并且假定了每個個體的運動速率是恒定的,因此,本文所述群集運動行為的模型有待于進一步改進.
[1]李健.群體運動模擬中的控制與計算方法研究[D].北京:中國科學院計算技術(shù)研究所,2010.
[2]REYNOLDS C W.Flocks,herds and schools:a distributed behavioral model[J].Computer Graphics,1987,21(4):25 -34.
[3]REYNOLDS C W.Steering behaviors for autonomous characters:proceedings of Game Developers Conference 1999.San Jose,March 15 -19,1999[C].[S.l]:[s.n.].
[4]田寶美.基于Vicsek模型的自驅(qū)動集群動力學研究[D].合肥:中國科學技術(shù)大學,2009.
[5]COUZINW D I,KRAUSEW J,JAMESZ R,et al.Collective memory and spatial sorting in animal groups[J].Journal of Theoretical Biology,2002,218(1):1-11.