崔旭冉,林涵軒,劉云帆,石朝宇
?
基于Agent-based自組織算法的魚群逃生模型
崔旭冉,林涵軒,劉云帆,石朝宇
(山東科技大學(xué)電氣信息系,山東 濟(jì)南 250000)
自然界生物以其特定的方式抵御傷害和襲擊。硬骨魚綱動(dòng)物沙丁魚以聚集成群、協(xié)作逃生的方式對(duì)抗捕食者的捕食和侵犯?;贏gent-based自組織算法建立關(guān)于魚群逃生過(guò)程的數(shù)學(xué)模型,并加以改進(jìn)。將逃生過(guò)程分為兩部分進(jìn)行模型的建立與求解。將魚群遇到捕食者之前設(shè)為第一部分,使用Boids行為準(zhǔn)則作為魚群普通運(yùn)動(dòng)的規(guī)律要求,根據(jù)內(nèi)聚、分散、對(duì)齊三大原則分別對(duì)沙丁魚的運(yùn)動(dòng)規(guī)律進(jìn)行約束,并使用Matlab仿真實(shí)現(xiàn)模型的可視化,從而證明魚群普通運(yùn)動(dòng)狀態(tài)近似成球形的推斷。將魚群突遇捕食者開始改變運(yùn)動(dòng)狀態(tài)設(shè)為第二部分,使用基于Agent-baesd的自組織算法,定義每條沙丁魚為一個(gè)AFishAgent,其行為模型為AFishBehModel[1]。在第一部分建立的普通運(yùn)動(dòng)規(guī)律模型的基礎(chǔ)上和AFishAgent之間的局部連接準(zhǔn)則,建立魚群突遇捕食者時(shí)協(xié)作逃生運(yùn)動(dòng)模型。
Boids行為準(zhǔn)則;Agent-based自組織算法;Matlab仿真;逃生模型
在光線較暗的海洋環(huán)境中,沙丁魚群在遇到捕食者捕食前后,其運(yùn)動(dòng)狀態(tài)會(huì)發(fā)生顯著變化。假設(shè)捕食者只能通過(guò)回聲定位判斷較遠(yuǎn)處魚群的位置,第一部分將魚群運(yùn)動(dòng)狀態(tài)抽象成球形,并分析出魚群的普通運(yùn)動(dòng)軌跡;第二部分以現(xiàn)有模型為基礎(chǔ),模擬魚群在突遇襲擊時(shí)整體的協(xié)作逃生規(guī)律,以實(shí)現(xiàn)對(duì)魚群在遇捕食者前后的運(yùn)動(dòng)規(guī)律變化路線的近似模擬。
從捕食者使用回聲定位時(shí)只能判斷魚群的整體位置,難以分辨?zhèn)€體為切入點(diǎn),分析沙丁魚群在沒有受到外部威脅時(shí)的運(yùn)動(dòng)狀態(tài),將Boids行為準(zhǔn)則作為魚群在沒有受到外部威脅時(shí)的運(yùn)動(dòng)準(zhǔn)則,并給魚群的各種變量賦予參數(shù),建立出魚群普通運(yùn)動(dòng)規(guī)律的模型。從捕食者接觸魚群時(shí)魚群會(huì)改變運(yùn)動(dòng)狀態(tài),進(jìn)行協(xié)同躲避為切入點(diǎn),將沙丁魚改變運(yùn)動(dòng)規(guī)律后捕食者不易在大魚群中追蹤一個(gè)目標(biāo)為約束條件,建立沙丁魚突遇捕食者時(shí)協(xié)作逃生的運(yùn)動(dòng)模型。
魚群群體的相對(duì)同步游動(dòng)是一種群體性行為,是基于每條魚對(duì)周圍環(huán)境的感知以及對(duì)其他鄰近魚的局部感知基礎(chǔ)上的,所以在這個(gè)群體結(jié)構(gòu)中并不存在一個(gè)集中控制者[2]。同時(shí),盡管沙丁魚群能夠聚集構(gòu)成一個(gè)群體,但魚群結(jié)構(gòu)中每個(gè)個(gè)體都可以相互影響相互協(xié)調(diào),所以同樣不存在維持整個(gè)群體協(xié)調(diào)有序的協(xié)調(diào)者。基于此,如果魚群需要形成或保持一種特定的共同棲息活動(dòng)的運(yùn)動(dòng)狀態(tài),則所有個(gè)體魚必須遵循特定的行為原則[3]。Boids模型采用了3個(gè)主要行為原則,用以假設(shè)沙丁魚群中每條魚的運(yùn)動(dòng)形態(tài):①內(nèi)聚原則。目標(biāo)沙丁魚需要與鄰近的其他沙丁魚在一定范圍內(nèi)聚集在一起,即在一定范圍內(nèi)個(gè)體需要聚在一起,如圖1所示,四面八方的沙丁魚個(gè)體朝一個(gè)中心點(diǎn)匯集,成凝聚狀。②分散原則。一定范圍內(nèi),個(gè)體需要與周圍臨近的其他成員保持一定的距離,如圖2所示,各沙丁魚個(gè)體雖成凝聚狀,但個(gè)體與個(gè)體間保持安全距離,避免發(fā)生碰撞,即避免與視野范圍內(nèi)個(gè)體的單位距離小于碰撞條件的排斥距離。③對(duì)齊原則。沙丁魚個(gè)體的運(yùn)動(dòng)方向和速度需要與周圍的其他沙丁魚保持一致,即選擇同一方向運(yùn)動(dòng),不能出現(xiàn)相背而行或交叉運(yùn)動(dòng)的情況,具體如圖3所示。
圖1 內(nèi)聚原則
圖2 分散原則
圖3 對(duì)齊原則
為探究捕食者捕食對(duì)沙丁魚群造成的影響,需要對(duì)未發(fā)動(dòng)攻擊時(shí)沙丁魚的運(yùn)動(dòng)狀態(tài)建立模型,而此時(shí)沙丁魚群的行為應(yīng)與3個(gè)基本規(guī)則一致,滿足內(nèi)聚原則、分散原則、對(duì)齊原則,并且運(yùn)動(dòng)形狀呈一個(gè)收斂的球形。此外,相對(duì)單一的沙丁魚個(gè)體在沒有集中控制的情況下,通過(guò)相互之間的影響與作用產(chǎn)生相對(duì)復(fù)雜的群體行為,當(dāng)沙丁魚群受刺激時(shí),對(duì)外部條件的應(yīng)激性導(dǎo)致沙丁魚群脫離球形狀態(tài),但仍保持3個(gè)原則,運(yùn)動(dòng)方向和加速度有了一定改變,可以通過(guò)設(shè)定沙丁魚群的方向和加速度來(lái)描述這種變化。
由于魚群的對(duì)齊原則,沙丁魚無(wú)論處于安全狀態(tài)還是危險(xiǎn)狀態(tài),都不會(huì)立刻返回游動(dòng),這將導(dǎo)致魚群整體運(yùn)動(dòng)的混亂甚至崩潰[4]。因此沙丁魚只能選擇向前、上、下、左、右5個(gè)方向進(jìn)行移動(dòng)。在此可設(shè)定任意一條沙丁魚的游動(dòng)方向?yàn)?,同時(shí)假定為任意游動(dòng)方向的概率大小,所有值的和取值為1.即有=11+22+33+44+55(1+2+3+4+5=1),對(duì)數(shù)組(1,2,3,4,5)任意賦值后,則可以預(yù)測(cè)假定的任意一條沙丁魚下一秒運(yùn)動(dòng)方向,由于沙丁魚運(yùn)動(dòng)的對(duì)齊原則,因此可知沙丁魚群的運(yùn)動(dòng)將隨該條魚的變化而變化。
確定需要遵循的3個(gè)原則后,即可對(duì)沙丁魚的運(yùn)動(dòng)軌跡建立模型,以滿足上述3個(gè)基本原則。
內(nèi)聚原則:為模擬滿足范圍的沙丁魚群在保持一定距離的情況下相互聚集的狀態(tài),可假定出如下公式:
為避免魚群過(guò)度密集產(chǎn)生誤差,在以1為半徑的范圍內(nèi)設(shè)置收斂圓,此圓為任意一條魚可以自由活動(dòng)的最小半徑,當(dāng)在最接近1內(nèi)出現(xiàn)其他單個(gè)沙丁魚時(shí)將會(huì)對(duì)該沙丁魚產(chǎn)生排斥作用[5]。因此給出相應(yīng)公式:
通過(guò)排斥作用,可由距離得到反方向的變化過(guò)程。此時(shí),設(shè)t為下一時(shí)刻的速度,為1內(nèi)的相互排斥的其他沙丁魚個(gè)數(shù),為條魚中的任意一條沙丁魚。因此可將聚集的密度定義為2~3范圍為沙丁魚自由活動(dòng)的最大距離,如果超過(guò)的距離則表示沙丁魚之間相互吸引,吸引作用的公式為:
式(3)中:為2~3之內(nèi)沙丁魚的個(gè)數(shù);為條沙丁魚中的任意一條。利用沙丁魚之間的吸引作用提高吸引方向上沙丁魚的速度。
分散原則:為保證沙丁魚在游動(dòng)時(shí)不會(huì)相互碰撞干擾,在此給出小于安全距離時(shí),可能出現(xiàn)在游動(dòng)的沙丁魚群中的其他單一沙丁魚的角度公式為:
式(4)中:為在安全距離以內(nèi),附近沙丁魚可能出現(xiàn)的任意角度;k為安全距離以內(nèi)的沙丁魚的角度;為安全距離以內(nèi)沙丁魚的數(shù)量。
通過(guò)Matlab編程實(shí)現(xiàn)結(jié)果的可視化分析,從而有效降低該情況出現(xiàn)的概率[6]。
對(duì)齊原則:為保證沙丁魚各個(gè)體之間的一定自由空間,需要確保每?jī)蓷l沙丁魚之間保持相對(duì)確定的距離。因此給出公式:
式(5)中:為總體的運(yùn)動(dòng)方向;i為附近每條沙丁魚的運(yùn)動(dòng)方向;為附近的沙丁魚總數(shù)。
沙丁魚的運(yùn)動(dòng)公式為:
式(6)中:i為任意一條沙丁魚在任意方向上的游動(dòng)距離;0為該沙丁魚在任一方向上(5個(gè)方向中的任意一個(gè)方向)的初始坐標(biāo);為沙丁魚的速度,給定確定值為30 km/h。
通過(guò)使用Matlab進(jìn)行建模后得到沙丁魚群在正常情況下的運(yùn)動(dòng)規(guī)律結(jié)果,如圖4所示。
圖4 第一部分結(jié)果圖
針對(duì)沙丁魚突遇捕食者襲擊時(shí)的情況,沙丁魚群中的每條魚可以看作是一個(gè)單獨(dú)的agent,當(dāng)某個(gè)agent發(fā)現(xiàn)捕食者時(shí)將發(fā)送消息給其他的agent,假設(shè)某一agent接收到鄰近的危險(xiǎn)信號(hào),將分析捕食者的相對(duì)位置、方向以及自身的心理、生理從而做出最佳的逃生路線選擇[7]。下面將這個(gè)逃生行為抽象并模擬,同時(shí)作出不同假設(shè),假定時(shí)間內(nèi)速度與位移的變化公式為:
式(7)中:沙丁魚的質(zhì)量=0.03 kg;沙丁魚群的初始速度為=30 km/h;遇到捕食者的時(shí)間=5 s;沙丁魚遇襲逃逸時(shí)的速度max=36 km/h;遇襲時(shí)為更換游動(dòng)路線需要旋轉(zhuǎn)的角度為;沙丁魚在逃跑時(shí)需要克服相互排斥力的大小為;且速度隨時(shí)間的變化為().
圖5 第二部分結(jié)果圖
至此,便可以利用時(shí)間與速度的關(guān)系求解下一時(shí)刻魚的具體位置:
j=×+?. (8)
式(8)中:j為下一時(shí)刻的位置;為時(shí)間段;?為位置的改變量。
位置的改變量為:
式(9)中:為魚群的總數(shù)量,為10 000條;為魚的長(zhǎng)度,為20 cm;i為附近魚的具體位置;j是魚的具體位置。
本模型的建立是在Boids行為準(zhǔn)則的基礎(chǔ)上進(jìn)行抽象分析和改進(jìn),構(gòu)建出符合3個(gè)原則,同時(shí)可以應(yīng)用于實(shí)際問(wèn)題的數(shù)學(xué)模型,使問(wèn)題更加簡(jiǎn)化,計(jì)算更加明確。同時(shí)綜合運(yùn)用與理論分析相結(jié)合,使得建立的模型更具有實(shí)用性,更易被推廣[8]。
[1]班曉娟,寧淑榮,涂序彥.人工魚群高級(jí)自組織行為研究[J].自動(dòng)化學(xué)報(bào),2008(10).
[2]李曉磊.組合應(yīng)用問(wèn)題中的人工魚群算法運(yùn)用[J].山東大學(xué)學(xué)報(bào),2004,34(5):64-67.
[3]程代展,陳翰馥.從群聚到社會(huì)行為控制[J].科技導(dǎo)報(bào)(復(fù)雜性科學(xué)研究專題),2004(8):4-7.
[4]Okubo A.Diffusion and Ecological Problems:Mathematical Models[M].Heidelberg:Springer Verlag,1980.
[5]Breder C.M.Equations Descriptive of Fish Schools and Other Animal Aggregations[J].Ecology,1954,35(3):361-370.
[6]李建會(huì).數(shù)字創(chuàng)世紀(jì):人工生命的新科學(xué)[M].北京:科學(xué)出版社,2006.
[7]Reynolds CW.Flocks,Herds,and Schools:A Distributed Behavioral Mode[J].Computer Grephics,1987(21):25-33.
[8]姜啟源.數(shù)學(xué)建模[M].第四版.北京:高等教育出版社,2011.
TP301.6
A
10.15913/j.cnki.kjycx.2018.22.058
崔旭冉(1998—),女,研究方向?yàn)樾畔⒐芾砼c信息系統(tǒng)。林涵軒(1998—),男,研究方向?yàn)橥ㄐ殴こ獭?/p>
2095-6835(2018)22-0058-03
〔編輯:嚴(yán)麗琴〕