崔旭冉,林涵軒,劉云帆,石朝宇
?
基于Agent-based自組織算法的魚群逃生模型
崔旭冉,林涵軒,劉云帆,石朝宇
(山東科技大學電氣信息系,山東 濟南 250000)
自然界生物以其特定的方式抵御傷害和襲擊。硬骨魚綱動物沙丁魚以聚集成群、協作逃生的方式對抗捕食者的捕食和侵犯?;贏gent-based自組織算法建立關于魚群逃生過程的數學模型,并加以改進。將逃生過程分為兩部分進行模型的建立與求解。將魚群遇到捕食者之前設為第一部分,使用Boids行為準則作為魚群普通運動的規律要求,根據內聚、分散、對齊三大原則分別對沙丁魚的運動規律進行約束,并使用Matlab仿真實現模型的可視化,從而證明魚群普通運動狀態近似成球形的推斷。將魚群突遇捕食者開始改變運動狀態設為第二部分,使用基于Agent-baesd的自組織算法,定義每條沙丁魚為一個AFishAgent,其行為模型為AFishBehModel[1]。在第一部分建立的普通運動規律模型的基礎上和AFishAgent之間的局部連接準則,建立魚群突遇捕食者時協作逃生運動模型。
Boids行為準則;Agent-based自組織算法;Matlab仿真;逃生模型
在光線較暗的海洋環境中,沙丁魚群在遇到捕食者捕食前后,其運動狀態會發生顯著變化。假設捕食者只能通過回聲定位判斷較遠處魚群的位置,第一部分將魚群運動狀態抽象成球形,并分析出魚群的普通運動軌跡;第二部分以現有模型為基礎,模擬魚群在突遇襲擊時整體的協作逃生規律,以實現對魚群在遇捕食者前后的運動規律變化路線的近似模擬。
從捕食者使用回聲定位時只能判斷魚群的整體位置,難以分辨個體為切入點,分析沙丁魚群在沒有受到外部威脅時的運動狀態,將Boids行為準則作為魚群在沒有受到外部威脅時的運動準則,并給魚群的各種變量賦予參數,建立出魚群普通運動規律的模型。從捕食者接觸魚群時魚群會改變運動狀態,進行協同躲避為切入點,將沙丁魚改變運動規律后捕食者不易在大魚群中追蹤一個目標為約束條件,建立沙丁魚突遇捕食者時協作逃生的運動模型。
魚群群體的相對同步游動是一種群體性行為,是基于每條魚對周圍環境的感知以及對其他鄰近魚的局部感知基礎上的,所以在這個群體結構中并不存在一個集中控制者[2]。同時,盡管沙丁魚群能夠聚集構成一個群體,但魚群結構中每個個體都可以相互影響相互協調,所以同樣不存在維持整個群體協調有序的協調者?;诖?,如果魚群需要形成或保持一種特定的共同棲息活動的運動狀態,則所有個體魚必須遵循特定的行為原則[3]。Boids模型采用了3個主要行為原則,用以假設沙丁魚群中每條魚的運動形態:①內聚原則。目標沙丁魚需要與鄰近的其他沙丁魚在一定范圍內聚集在一起,即在一定范圍內個體需要聚在一起,如圖1所示,四面八方的沙丁魚個體朝一個中心點匯集,成凝聚狀。②分散原則。一定范圍內,個體需要與周圍臨近的其他成員保持一定的距離,如圖2所示,各沙丁魚個體雖成凝聚狀,但個體與個體間保持安全距離,避免發生碰撞,即避免與視野范圍內個體的單位距離小于碰撞條件的排斥距離。③對齊原則。沙丁魚個體的運動方向和速度需要與周圍的其他沙丁魚保持一致,即選擇同一方向運動,不能出現相背而行或交叉運動的情況,具體如圖3所示。

圖1 內聚原則

圖2 分散原則

圖3 對齊原則
為探究捕食者捕食對沙丁魚群造成的影響,需要對未發動攻擊時沙丁魚的運動狀態建立模型,而此時沙丁魚群的行為應與3個基本規則一致,滿足內聚原則、分散原則、對齊原則,并且運動形狀呈一個收斂的球形。此外,相對單一的沙丁魚個體在沒有集中控制的情況下,通過相互之間的影響與作用產生相對復雜的群體行為,當沙丁魚群受刺激時,對外部條件的應激性導致沙丁魚群脫離球形狀態,但仍保持3個原則,運動方向和加速度有了一定改變,可以通過設定沙丁魚群的方向和加速度來描述這種變化。
由于魚群的對齊原則,沙丁魚無論處于安全狀態還是危險狀態,都不會立刻返回游動,這將導致魚群整體運動的混亂甚至崩潰[4]。因此沙丁魚只能選擇向前、上、下、左、右5個方向進行移動。在此可設定任意一條沙丁魚的游動方向為,同時假定為任意游動方向的概率大小,所有值的和取值為1.即有=11+22+33+44+55(1+2+3+4+5=1),對數組(1,2,3,4,5)任意賦值后,則可以預測假定的任意一條沙丁魚下一秒運動方向,由于沙丁魚運動的對齊原則,因此可知沙丁魚群的運動將隨該條魚的變化而變化。
確定需要遵循的3個原則后,即可對沙丁魚的運動軌跡建立模型,以滿足上述3個基本原則。
內聚原則:為模擬滿足范圍的沙丁魚群在保持一定距離的情況下相互聚集的狀態,可假定出如下公式:


為避免魚群過度密集產生誤差,在以1為半徑的范圍內設置收斂圓,此圓為任意一條魚可以自由活動的最小半徑,當在最接近1內出現其他單個沙丁魚時將會對該沙丁魚產生排斥作用[5]。因此給出相應公式:

通過排斥作用,可由距離得到反方向的變化過程。此時,設t為下一時刻的速度,為1內的相互排斥的其他沙丁魚個數,為條魚中的任意一條沙丁魚。因此可將聚集的密度定義為2~3范圍為沙丁魚自由活動的最大距離,如果超過的距離則表示沙丁魚之間相互吸引,吸引作用的公式為:

式(3)中:為2~3之內沙丁魚的個數;為條沙丁魚中的任意一條。利用沙丁魚之間的吸引作用提高吸引方向上沙丁魚的速度。
分散原則:為保證沙丁魚在游動時不會相互碰撞干擾,在此給出小于安全距離時,可能出現在游動的沙丁魚群中的其他單一沙丁魚的角度公式為:

式(4)中:為在安全距離以內,附近沙丁魚可能出現的任意角度;k為安全距離以內的沙丁魚的角度;為安全距離以內沙丁魚的數量。
通過Matlab編程實現結果的可視化分析,從而有效降低該情況出現的概率[6]。
對齊原則:為保證沙丁魚各個體之間的一定自由空間,需要確保每兩條沙丁魚之間保持相對確定的距離。因此給出公式:

式(5)中:為總體的運動方向;i為附近每條沙丁魚的運動方向;為附近的沙丁魚總數。
沙丁魚的運動公式為:

式(6)中:i為任意一條沙丁魚在任意方向上的游動距離;0為該沙丁魚在任一方向上(5個方向中的任意一個方向)的初始坐標;為沙丁魚的速度,給定確定值為30 km/h。
通過使用Matlab進行建模后得到沙丁魚群在正常情況下的運動規律結果,如圖4所示。

圖4 第一部分結果圖
針對沙丁魚突遇捕食者襲擊時的情況,沙丁魚群中的每條魚可以看作是一個單獨的agent,當某個agent發現捕食者時將發送消息給其他的agent,假設某一agent接收到鄰近的危險信號,將分析捕食者的相對位置、方向以及自身的心理、生理從而做出最佳的逃生路線選擇[7]。下面將這個逃生行為抽象并模擬,同時作出不同假設,假定時間內速度與位移的變化公式為:

式(7)中:沙丁魚的質量=0.03 kg;沙丁魚群的初始速度為=30 km/h;遇到捕食者的時間=5 s;沙丁魚遇襲逃逸時的速度max=36 km/h;遇襲時為更換游動路線需要旋轉的角度為;沙丁魚在逃跑時需要克服相互排斥力的大小為;且速度隨時間的變化為().


圖5 第二部分結果圖

至此,便可以利用時間與速度的關系求解下一時刻魚的具體位置:
j=×+?. (8)
式(8)中:j為下一時刻的位置;為時間段;?為位置的改變量。
位置的改變量為:

式(9)中:為魚群的總數量,為10 000條;為魚的長度,為20 cm;i為附近魚的具體位置;j是魚的具體位置。
本模型的建立是在Boids行為準則的基礎上進行抽象分析和改進,構建出符合3個原則,同時可以應用于實際問題的數學模型,使問題更加簡化,計算更加明確。同時綜合運用與理論分析相結合,使得建立的模型更具有實用性,更易被推廣[8]。
[1]班曉娟,寧淑榮,涂序彥.人工魚群高級自組織行為研究[J].自動化學報,2008(10).
[2]李曉磊.組合應用問題中的人工魚群算法運用[J].山東大學學報,2004,34(5):64-67.
[3]程代展,陳翰馥.從群聚到社會行為控制[J].科技導報(復雜性科學研究專題),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]李建會.數字創世紀:人工生命的新科學[M].北京:科學出版社,2006.
[7]Reynolds CW.Flocks,Herds,and Schools:A Distributed Behavioral Mode[J].Computer Grephics,1987(21):25-33.
[8]姜啟源.數學建模[M].第四版.北京:高等教育出版社,2011.
TP301.6
A
10.15913/j.cnki.kjycx.2018.22.058
崔旭冉(1998—),女,研究方向為信息管理與信息系統。林涵軒(1998—),男,研究方向為通信工程。
2095-6835(2018)22-0058-03
〔編輯:嚴麗琴〕