動(dòng)物集群運(yùn)動(dòng)行為模型-18_第1頁(yè)
動(dòng)物集群運(yùn)動(dòng)行為模型-18_第2頁(yè)
動(dòng)物集群運(yùn)動(dòng)行為模型-18_第3頁(yè)
動(dòng)物集群運(yùn)動(dòng)行為模型-18_第4頁(yè)
動(dòng)物集群運(yùn)動(dòng)行為模型-18_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、動(dòng)物集群行為的建模與仿真摘要生態(tài)系統(tǒng)中,動(dòng)物個(gè)體的行為相對(duì)簡(jiǎn)單,集群后卻能表現(xiàn)出復(fù)雜的群體行為。個(gè)體行為是構(gòu)成群體行為的基礎(chǔ),個(gè)體之間的組織結(jié)構(gòu)、個(gè)體行為之間的關(guān)系和群體行為的涌現(xiàn)機(jī)制是研究群體行為的關(guān)鍵要素。本文首先基于boid模型的三原則,從個(gè)體出發(fā),對(duì)動(dòng)物個(gè)體進(jìn)行建模,分析個(gè)體之間的行為規(guī)則及相互影響,從而仿真出動(dòng)物的集群行為。仿真結(jié)果在一定程度上反映了動(dòng)物集群行為的實(shí)際情況,但該模型對(duì)各個(gè)參數(shù)的設(shè)置非常敏感,動(dòng)物群體的速度不會(huì)趨于穩(wěn)定一致,而且此模型假設(shè)各動(dòng)物的速率相等且保持不變是不合理的,所以對(duì)模型進(jìn)行了改進(jìn)。改進(jìn)模型引入了勢(shì)場(chǎng)函數(shù),將個(gè)體之間的相互作用抽象成吸引力和排斥力,利用牛頓

2、運(yùn)動(dòng)定理描述個(gè)體運(yùn)動(dòng)規(guī)律。通過(guò)仿真結(jié)果發(fā)現(xiàn),動(dòng)物個(gè)體會(huì)先調(diào)整各自的間距,使其相互靠近以免落單,但又不至于相互碰撞;當(dāng)動(dòng)物個(gè)體之間的距離接近平衡距離時(shí),動(dòng)物個(gè)體會(huì)保持相對(duì)位置基本不變,調(diào)整各自的速度方向使趨近一致并平穩(wěn);另外,個(gè)體數(shù)目越多,出現(xiàn)落單的可能性就越小。上述結(jié)論都是符合實(shí)際情況的,說(shuō)明改進(jìn)后的模型更合理。魚(yú)群躲避鯊魚(yú)的行為,可以認(rèn)為是由鯊魚(yú)對(duì)魚(yú)群的排斥力引起的,所以在原有合力的基礎(chǔ)上再加上由鯊魚(yú)引起的斥力即得到小魚(yú)發(fā)現(xiàn)鯊魚(yú)后的合力。仿真得到的結(jié)果反映,當(dāng)有鯊魚(yú)出沒(méi)時(shí),魚(yú)群會(huì)迅速改變運(yùn)動(dòng)狀態(tài),逃離鯊魚(yú)的攻擊。動(dòng)物群中的信息豐富者可以理解成Leader-Follower模型中的Leader

3、,其他個(gè)體都是Follower。結(jié)合問(wèn)題一中改進(jìn)的模型和Leader-Follower模型,通過(guò)matlab編程仿真得到的結(jié)果反映了Leader對(duì)整個(gè)群體的作用和影響。關(guān)鍵詞:集群行為 boid模型 勢(shì)函數(shù) leader-follower模型 matlab仿真1 問(wèn)題重述在動(dòng)物界,通常有一些動(dòng)物會(huì)成群地行動(dòng),它們?cè)谶\(yùn)動(dòng)過(guò)程中具有很明顯的特征:群中的個(gè)體聚集性很強(qiáng),運(yùn)動(dòng)方向、速度具有一致性。近幾十年來(lái),智能群體(flockswarm)的協(xié)調(diào)控制問(wèn)題引起了研究人員的極大關(guān)注。最近在通信,計(jì)算技術(shù),以及相關(guān)問(wèn)題在生物學(xué),社會(huì)行為學(xué),統(tǒng)計(jì)物理,計(jì)算機(jī)圖形學(xué)方面的進(jìn)展,大大推動(dòng)了此領(lǐng)域 的研究。研究動(dòng)物

4、集群運(yùn)動(dòng)的機(jī)理,建立數(shù)學(xué)模型刻畫(huà)動(dòng)物集群運(yùn)動(dòng)、躲避威脅等行為,對(duì)智能群體(flockswarm)的協(xié)調(diào)控制問(wèn)題有重要地作用。從以下幾個(gè)方面分析建模:1. 建立數(shù)學(xué)模型模擬動(dòng)物的集群運(yùn)動(dòng)。 2. 建立數(shù)學(xué)模型刻畫(huà)魚(yú)群躲避黑鰭礁鯊魚(yú)的運(yùn)動(dòng)行為。3. 假定動(dòng)物群中有一部分個(gè)體是信息豐富者(如掌握食物源位置信息,掌握遷徙路線信息),建模分析它們對(duì)于群運(yùn)動(dòng)行為的影響,解釋群運(yùn)動(dòng)方向決策如何達(dá)成。2 模型假設(shè)1. 假設(shè)所有動(dòng)物個(gè)體都可以看成質(zhì)點(diǎn);2. 假設(shè)動(dòng)物群體中的決策者會(huì)通過(guò)一種特殊信息(氣味,動(dòng)作等)通知其他個(gè)體。3 符號(hào)說(shuō)明 動(dòng)物的位置向量; 動(dòng)物與動(dòng)物的相對(duì)位置向量; 動(dòng)物的瞬時(shí)速度; 動(dòng)物的加

5、速度; 動(dòng)物個(gè)體的最大速率; 動(dòng)物個(gè)體之間的平衡距離; 動(dòng)物個(gè)體的感知半徑; 動(dòng)物與動(dòng)物之間的勢(shì)場(chǎng)函數(shù); 動(dòng)物對(duì)動(dòng)物的作用力; 動(dòng)物的鄰居個(gè)數(shù);4模型建立與模型求解4.1 動(dòng)物集群運(yùn)動(dòng)的建模與仿真動(dòng)物集群行為由三部分因素構(gòu)成:環(huán)境、個(gè)體、行為規(guī)則。環(huán)境是個(gè)體的生存空間,個(gè)體在環(huán)境中活動(dòng),收集環(huán)境中的各種信息(食物,障礙,敵人等等);個(gè)體的特性(感知范圍,速度,加速度等)制約了個(gè)體的運(yùn)動(dòng),而個(gè)體的總和構(gòu)成了研究的群體對(duì)象;群體的演化過(guò)程由其行為規(guī)則集來(lái)控制,行為規(guī)則決定了個(gè)體與個(gè)體之間、個(gè)體與環(huán)境之間相互作用的方式。由于該問(wèn)不考慮動(dòng)物覓食、避險(xiǎn)等行為,只研究動(dòng)物的集群行為,所以在這里忽略環(huán)境對(duì)動(dòng)

6、物行為的影響,假設(shè)動(dòng)物的活動(dòng)范圍無(wú)窮大。4.11 個(gè)體的描述把每個(gè)動(dòng)物個(gè)體看成是一個(gè)能夠自主決策的智能體,它們會(huì)根據(jù)自己的觀察來(lái)感知周?chē)沫h(huán)境,并按照一定的規(guī)則決策。個(gè)體之間的交互作用是局部的,只能發(fā)生在所定義的鄰域內(nèi)。個(gè)體應(yīng)當(dāng)具有以下屬性:(1)感知范圍:個(gè)體所能感知的范圍。個(gè)體的感知范圍取決于所定義鄰域半徑的大小和個(gè)體與領(lǐng)域之間的夾角(本文中),感知范圍越大,表明該個(gè)體與其它個(gè)體的作用越強(qiáng),如下圖所示:圖一 感知范圍示意圖(2)位置:個(gè)體位置向量由一組坐標(biāo)(x, y,z)表示。(3)速度:每個(gè)個(gè)體在運(yùn)動(dòng)時(shí)都具有一定的速度,它是瞬時(shí)的,具有大小和方向,用向量(x,y,z)表示。(4)加速度:

7、個(gè)體改變速度大小的能力。 (5)最大速度:每個(gè)個(gè)體的速度不可能無(wú)限增長(zhǎng),具有一個(gè)最大值。(6)平衡距離:個(gè)體之間的平衡距離。當(dāng)個(gè)體間的距離小于該值時(shí),個(gè)體將朝著遠(yuǎn)離的方向運(yùn)動(dòng)。當(dāng)個(gè)體之間的距離大于該值時(shí),個(gè)體將朝著接近的方向運(yùn)動(dòng)。 4.12 行為規(guī)則的描述1987年,Reynolds2提出了一個(gè)模仿動(dòng)物集群的計(jì)算機(jī)仿真模型,叫做Boid模型,Boid模型基于如下3條啟發(fā)式規(guī)則: 1)分離(separation):避免與鄰近的群成員發(fā)生碰撞。 2)調(diào)整(alignment):試圖與鄰近的群成員保持速度匹配。 3)聚合(cohesion):試圖與鄰近的群成員保持接近。 Reynolds最近的論文3

8、對(duì)以上三條規(guī)則做了詳細(xì)的解釋?zhuān)赃@三條規(guī)則是可信的。1.分離原則的實(shí)現(xiàn) 首先定義一個(gè)概念,當(dāng)前動(dòng)物能感知到的個(gè)體稱(chēng)為鄰居。當(dāng)某動(dòng)物和它的鄰居靠的太近時(shí),這些鄰居的中心會(huì)排斥該動(dòng)物,使其向相反方向離開(kāi),此時(shí)的排斥鄰居中心為觀察范圍內(nèi)且相對(duì)距離小于平衡距離的各個(gè)體所在位置的平均值。圖二 分離原則示意圖排斥鄰居中心的公式表示為: (1)表示為,為排斥鄰居中心位置,為各排斥鄰居的位置,為排斥鄰居的數(shù)目。該動(dòng)物由于分離原則所產(chǎn)生的運(yùn)動(dòng)方向用一個(gè)向量來(lái)表示,即為: (2)其中,表示當(dāng)前動(dòng)物的位置坐標(biāo)。2.聚合原則的實(shí)現(xiàn)每個(gè)個(gè)體都有向鄰居中心靠攏的特性,鄰居中心為感知范圍內(nèi)且相對(duì)距離大于平衡距離的各個(gè)體所

9、在位置的平均值(如圖三所示的綠色個(gè)體):圖三 聚合原則示意圖中心位置的計(jì)算公式與排斥鄰居中心位置的計(jì)算類(lèi)似,用表示某動(dòng)物由于聚合原則所產(chǎn)生的運(yùn)動(dòng)方向用向量來(lái)表示,計(jì)算公式如下: (3)3.調(diào)整原則的實(shí)現(xiàn)個(gè)體會(huì)不斷調(diào)整自己的運(yùn)動(dòng)方向,盡量和它的鄰居保持一致。如下圖所示:圖四 調(diào)整原則示意圖某動(dòng)物由于調(diào)整原則產(chǎn)生的運(yùn)動(dòng)方向向量為,公式表示為: (4)unite是將向量進(jìn)行單位化,因?yàn)榉较蛳蛄渴怯脝挝幌蛄勘硎镜摹楦鱾€(gè)鄰居的速度,N為鄰居的個(gè)數(shù)。假設(shè)每個(gè)動(dòng)物個(gè)體都要遵守以上三條規(guī)則,這三條規(guī)則對(duì)改動(dòng)物個(gè)體下一時(shí)刻運(yùn)動(dòng)方向起作用。但動(dòng)物個(gè)體的運(yùn)動(dòng)方向不可能立刻改變,還表現(xiàn)了某種慣性的作用。這種慣性作用

10、阻止運(yùn)動(dòng)方向的改變,設(shè)為: (5)為當(dāng)前動(dòng)物個(gè)體的速度。設(shè)為下個(gè)周期動(dòng)物個(gè)體的運(yùn)動(dòng)方向向量,計(jì)算公式如下:(6)分別為分離原則,聚合原則,調(diào)整原則,慣性引起的方向向量。是權(quán)重,反映各規(guī)則對(duì)動(dòng)物個(gè)體運(yùn)動(dòng)的影響程度,不同的動(dòng)物取值有差異。設(shè)個(gè)體運(yùn)動(dòng)速度速率為,那么個(gè)體k的位置迭代公式為: (7)4.1.3仿真結(jié)果假設(shè)動(dòng)物的運(yùn)動(dòng)速率,感知半徑,平衡距離,各權(quán)重,取時(shí)間步長(zhǎng)為0.1s,根據(jù)以上三個(gè)原則以及慣性所確定的位置迭代方程,通過(guò)matlab編程仿真,我們得到了動(dòng)物個(gè)體集群行為的仿真動(dòng)態(tài)圖,下面分別給出仿真的初始狀態(tài),5s,10s的仿真結(jié)果:圖五 初始狀態(tài)圖六 5s時(shí)的仿真結(jié)果圖七 10s的仿真結(jié)

11、果圖中箭頭方向表示個(gè)體的速度方向,分析圖五、六、七,初始狀態(tài)各動(dòng)物個(gè)體的速度方向是隨機(jī)的,雜亂無(wú)章,而且位置相對(duì)分散。而5s時(shí)各動(dòng)物個(gè)體的速度方向趨近一致,位置也相對(duì)集中了,但速度方向并未高度一致,根據(jù)聚合原則,它們還會(huì)朝著集合的趨勢(shì)運(yùn)動(dòng)。所以到了10s時(shí),動(dòng)物個(gè)體高度集中,此時(shí)分離原則將會(huì)占主導(dǎo)地位,所以從圖七可以看出它們的速度方向都是背離的。從以上這些方面分析,此模型在一定程度上能夠反映動(dòng)物的集群行為。但是,該模型對(duì)各個(gè)參數(shù)的設(shè)置非常敏感,我們?cè)囍鴮?shù)設(shè)置成不同的值,發(fā)現(xiàn)仿真的結(jié)果有較大的區(qū)別,這就導(dǎo)致很難找到一組參數(shù)使動(dòng)物群體的運(yùn)動(dòng)速度和相對(duì)位置趨于平穩(wěn)并收斂于某個(gè)值,這對(duì)很多動(dòng)物群體

12、是不適用的。同時(shí)此模型假設(shè)各動(dòng)物的速率相等且保持不變,而且動(dòng)物的速度在一瞬間就可以到達(dá)期望的方向,這顯然是不合理的,所以我們對(duì)模型進(jìn)行了改進(jìn)。4.1.3基于勢(shì)函數(shù)的模型修正根據(jù)牛頓運(yùn)動(dòng)定律,動(dòng)物個(gè)體的運(yùn)動(dòng)都可以用位移、速度、加速度來(lái)描述,用公式表示如下: (8)上式的變化范圍從1到N,N為群體中動(dòng)物的總數(shù)目,表示動(dòng)物的位置向量,那么兩個(gè)動(dòng)物個(gè)體的相對(duì)位置向量為。由牛頓第二定理,為合外力,m為質(zhì)量。上述的分離原則和聚合原則,可以抽象成排斥力和吸引力,這樣可以求出動(dòng)物個(gè)體的加速度,避免了速率不變的假設(shè)。動(dòng)物個(gè)體之間有一個(gè)平衡距離,當(dāng)時(shí),兩者之間表現(xiàn)為吸引力;當(dāng)時(shí),兩者之間表現(xiàn)為排斥力。這一現(xiàn)象類(lèi)似

13、于分子之間的作用力,由物理知識(shí)可知,分子之間的作用力是由勢(shì)場(chǎng)引起的,所以在這里引入了勢(shì)函數(shù)來(lái)描述動(dòng)物個(gè)體之間的吸引力和排斥力。勢(shì)函數(shù)的定義4:一對(duì)相鄰動(dòng)物個(gè)體和的勢(shì)函數(shù)是可微、非負(fù)、關(guān)于相鄰個(gè)體和之間的間距徑向無(wú)界的,并且:(1)當(dāng)時(shí),;(2)當(dāng)相鄰個(gè)體和之間達(dá)到希望的平衡間距時(shí),即時(shí),取其唯一的極小值。本文選取相鄰個(gè)體和之間的勢(shì)函數(shù)為: (9)其中c為常數(shù),由物理知識(shí)可知,相鄰個(gè)體和之間所產(chǎn)生的力為: (10)表示個(gè)體對(duì)個(gè)體的作用力,下圖給出上式所描述的相鄰個(gè)體和間的勢(shì)函數(shù)及其產(chǎn)生的排斥力或吸引力隨的變化曲線。圖八 勢(shì)函數(shù)及其產(chǎn)生的力從上圖可以看出,當(dāng)時(shí),個(gè)體和之間表現(xiàn)為排斥力;當(dāng),個(gè)體和個(gè)

14、體之間表現(xiàn)為吸引力;當(dāng),個(gè)體和之間既不吸引也不排斥,此時(shí)勢(shì)能最小。那么,個(gè)體受到的合力的向量形式為: (11)個(gè)體由于受到周?chē)従拥奈团懦饬λ鸬募铀俣葹椋?(12)為個(gè)體周?chē)従拥膫€(gè)數(shù)。由三個(gè)基本原則可知,每一個(gè)個(gè)體都要盡量與其他個(gè)體的速度保持一致,這也會(huì)引起當(dāng)前個(gè)體速度的改變。鄰居的速度方向引起個(gè)體速度的改變可以由下圖表示:圖九 速度一致原則速度一致原則引起個(gè)體的加速度取各鄰居引起的加速度的平均值為: (13)那么,合成加速度為,那么個(gè)體運(yùn)動(dòng)迭代公式為: (14)式中為時(shí)間步長(zhǎng)。假設(shè)動(dòng)物的最大運(yùn)動(dòng)速率,最大加速度,感知半徑,平衡距離,質(zhì)量,為了使動(dòng)物群體盡快地達(dá)到穩(wěn)定狀態(tài),我們?cè)O(shè)置

15、所有動(dòng)物個(gè)體的初始速度方向指向第一象限,但具體方向隨機(jī)產(chǎn)生,取時(shí)間步長(zhǎng)為0.1s,根據(jù)上述迭代公式進(jìn)行仿真,下面分別給出初始狀態(tài)、2.5s,5s, 10s的仿真結(jié)果:圖十 初始狀態(tài)圖十一 2.5s時(shí)的仿真結(jié)果圖十二 5s時(shí)的仿真結(jié)果圖十三 10s時(shí)的仿真結(jié)果圖中箭頭方向?yàn)閭€(gè)體的速度方向,從以上四幅圖可以看出,初始狀態(tài)位置分散,而且速度方向不一致;到了2.5s時(shí)動(dòng)物個(gè)體的位置集中起來(lái),但速度方向雜亂無(wú)章,這說(shuō)明動(dòng)物群體會(huì)先調(diào)整各自的間距,使它們相互靠近以免落單,但又不至于相互碰撞;到了5s時(shí),動(dòng)物個(gè)體之間的相對(duì)位置基本不變,但速度方向更趨近于一致,這說(shuō)明動(dòng)物個(gè)體調(diào)整好各自的間距后,會(huì)在保持相對(duì)位

16、置基本不變的基礎(chǔ)上,調(diào)整各自的速度使其盡量保持一致;到了10s時(shí),個(gè)體之間的速度方向已經(jīng)高度一致,而且個(gè)體之間的間距沒(méi)有發(fā)生大的變化,但從坐標(biāo)上來(lái)看,它們的位置已經(jīng)發(fā)生了變化,這證明了前一觀點(diǎn)。10s以后的仿真圖沒(méi)有給出,但從10s以后的仿真結(jié)果來(lái)看,動(dòng)物群體基本保持此間距和速度方向往前運(yùn)動(dòng),但會(huì)有波動(dòng)。從仿真結(jié)果來(lái)看,我們還發(fā)現(xiàn)了另一結(jié)論,當(dāng)某一群體的個(gè)體數(shù)目越少時(shí),越容易發(fā)生落單的現(xiàn)象,下面分給出10個(gè)、30個(gè)、60個(gè)個(gè)體在10s時(shí)的仿真結(jié)果:圖十四 10個(gè)、30個(gè)、60個(gè)個(gè)體在10s時(shí)的仿真從圖十四可以看出,當(dāng)個(gè)體只有10個(gè)時(shí),各個(gè)體朝四周運(yùn)動(dòng),基本不存在集群行為;而當(dāng)個(gè)體為30個(gè)時(shí),大

17、部分個(gè)體集群在一起,而且速度能趨近一致,但是有少部分個(gè)體會(huì)落單,速度朝著遠(yuǎn)離群體的方向;當(dāng)個(gè)體達(dá)到60個(gè)時(shí),所有個(gè)體都集群在一起,而且速度基本一致,不存在落單的現(xiàn)象。所以,在自然界中,動(dòng)物(如鳥(niǎo)類(lèi),魚(yú)類(lèi)等)的集群行為通常是成千上萬(wàn)的個(gè)體,很少出現(xiàn)幾十個(gè)個(gè)體集群的現(xiàn)象,這樣能保證所有個(gè)體都不會(huì)落單。4.2 魚(yú)群躲避鯊魚(yú)行為的建模與仿真問(wèn)題一中的模型只考慮了個(gè)體之間的相互影響,而忽視了環(huán)境對(duì)個(gè)體運(yùn)動(dòng)的影響,而動(dòng)物的行為常常會(huì)受到環(huán)境因素(敵人,障礙,食物等)的影響。例如當(dāng)魚(yú)群遇到鯊魚(yú)時(shí),會(huì)改變自己的運(yùn)動(dòng)方向以躲避鯊魚(yú)的攻擊。魚(yú)群的這種行為,可以看成是當(dāng)鯊魚(yú)進(jìn)入魚(yú)群的感知范圍時(shí),魚(yú)群受到鯊魚(yú)的排斥力

18、而改變了它們的運(yùn)動(dòng)方向,而小魚(yú)之間的相互作用力也存在,這就相當(dāng)于在第一問(wèn)式(11)求得合力的基礎(chǔ)上再加一個(gè)較大的排斥力,修改(11)式如下: (15)其中,表示鯊魚(yú)對(duì)小魚(yú)(該條小魚(yú)能感知到鯊魚(yú))的排斥力,k為常數(shù);,為小魚(yú)與鯊魚(yú)之間的相對(duì)位置。小魚(yú)運(yùn)動(dòng)的迭代公式和(14)相同,設(shè)小魚(yú)最大運(yùn)動(dòng)速率,最大加速度,質(zhì)量,感知半徑,平衡距離,常數(shù),設(shè)鯊魚(yú)的初始位置是隨機(jī)的,但沿一個(gè)方向勻速運(yùn)動(dòng),運(yùn)動(dòng)速率1.25,仿真時(shí)間步長(zhǎng)為0.1s。為了較明顯地看到魚(yú)群逃逸效果,matlab編程是在二維空間實(shí)現(xiàn)的,下面給出初始狀態(tài),2s,4s,7s的仿真結(jié)果:圖十五 初始狀態(tài)的鯊魚(yú)和小魚(yú)圖十六 仿真2s后的鯊魚(yú)和小

19、魚(yú)圖十七 仿真4s后的鯊魚(yú)和小魚(yú)圖十八 仿真7s后的鯊魚(yú)和小魚(yú)上面四幅圖中紅色的點(diǎn)為鯊魚(yú),其它小點(diǎn)都是小魚(yú)。從圖中可以看出,當(dāng)有鯊魚(yú)出沒(méi)時(shí),魚(yú)群會(huì)迅速改變運(yùn)動(dòng)狀態(tài),逃離鯊魚(yú)的攻擊。到7s時(shí),魚(yú)群已經(jīng)成功逃離了鯊魚(yú)的追捕。4.3 Leader-Follower的動(dòng)物集群行為的建模與仿真在上述模型的基礎(chǔ)上,可以將其分為有決策者Leader和追隨者Followers的集群運(yùn)動(dòng)。群體中的信息豐富者即為決策者,當(dāng)其掌握到有用信息后,會(huì)向其他成員散布一種信息(氣味、動(dòng)作、聲音等),此信息會(huì)影響到其他成員的運(yùn)動(dòng),即Followers會(huì)追隨Leader的運(yùn)動(dòng)。Leader的運(yùn)動(dòng)是自主的,屬于單agent控制問(wèn)

20、題,而為了構(gòu)造穩(wěn)定的集群運(yùn)動(dòng)系統(tǒng),F(xiàn)ollowers需要服從相應(yīng)的有序化集群運(yùn)動(dòng)控制律。在該模型中,若Follower 接收到Leader的信息,影響它運(yùn)動(dòng)加速度的因素有兩個(gè):(1)Leader的運(yùn)動(dòng);(2)鄰居的運(yùn)動(dòng)。若Follower 未接收到Leader的信息,則只受鄰居運(yùn)動(dòng)的影響??紤]一個(gè)包含Leader-Followers的群體,F(xiàn)ollower 的運(yùn)動(dòng)控制律 可定義為(1)速度矢量: Leader的速度矢量(2)加速度: Leader的加速度其中:為平衡agent之間速度的控制矢量,為控制agent之間距離的控制矢量項(xiàng)。此模型用matlab編程后,仿真結(jié)果為:圖十九 初始狀態(tài)圖二十

21、 5秒后的仿真結(jié)果圖二十一 20秒后的仿真結(jié)果圖二十二 30秒后的仿真結(jié)果上圖中,圓圈表示決策者Leader,藍(lán)點(diǎn)表示追隨者Followers,綠色箭頭為運(yùn)動(dòng)方向??梢钥吹?,初始狀態(tài)時(shí),各個(gè)agent的運(yùn)動(dòng)隨機(jī)生成,是雜亂無(wú)章的。5秒后Followers的速度方向基本與Leader的速度方向保持一致,跟隨Leader運(yùn)動(dòng);20秒后,Leader的運(yùn)動(dòng)方向發(fā)生改變(實(shí)際中可以認(rèn)為是發(fā)現(xiàn)危險(xiǎn)或是食物),其他Followers的運(yùn)動(dòng)方向隨之進(jìn)行相應(yīng)的調(diào)整;30秒后Followers的運(yùn)動(dòng)方向又基本與Leader的方向一致。這樣,作為一個(gè)決策者的Leader,就起到了領(lǐng)導(dǎo)其他Followers的作用。

22、在實(shí)際的動(dòng)物集群行為里,角色Leader是由先掌握有用信息的部分agents充當(dāng)?shù)?,它們通過(guò)散布特殊信息(該群體特有的氣味、動(dòng)作、聲音等)向其他agents告知掌握的信息。隨之,可以接收到信息agents作為Followers跟隨Leader的運(yùn)動(dòng)(這里假設(shè)凡是掌握有用信息的agents都具有正確的決策能力)。那些不能接收到Leader特殊信息的agents則通過(guò)鄰居的運(yùn)動(dòng)保證不脫離整個(gè)群體而間接地達(dá)到跟隨Leader的目的。5模型評(píng)價(jià)模型優(yōu)點(diǎn):1. 利用勢(shì)函數(shù)的概念,將動(dòng)物個(gè)體之間的相互作用抽象為吸引力和排斥力,這樣的描述合理形象,而且克服了原模型中不合理的假設(shè),使得仿真結(jié)果更加符合動(dòng)物集群

23、行為的客觀規(guī)律。2. 對(duì)每一個(gè)模型都用matlab軟件進(jìn)行了仿真,仿真程序很好地實(shí)現(xiàn)了理論算法,仿真結(jié)果將抽象的運(yùn)算數(shù)據(jù)轉(zhuǎn)變?yōu)榱诵蜗蟮膱D形,而且實(shí)際情況非常相近。模型缺點(diǎn):1. 由于計(jì)算機(jī)的運(yùn)算能力有限,只能得到較少數(shù)量的動(dòng)物集群行為的仿真結(jié)果,沒(méi)能得到現(xiàn)實(shí)情況中大量動(dòng)物集群行為的仿真結(jié)果。 2.仿真得到的結(jié)果雖然很好地反映了實(shí)際情況,但動(dòng)物個(gè)體的速度方向會(huì)不斷震蕩。6模型改進(jìn)與推廣1.模型改進(jìn)(1)在第一問(wèn)基于勢(shì)函數(shù)的模型中,當(dāng)agents間達(dá)到平衡間距即時(shí),達(dá)到最小勢(shì)能,此狀態(tài)最穩(wěn)定,agents都朝著這個(gè)平衡間距移動(dòng),但由于慣性的作用,agents的間距會(huì)在平衡間距附近震蕩,導(dǎo)致不能盡快

24、地達(dá)到平衡狀態(tài)。這是由勢(shì)函數(shù)平衡間距的單值性引起的,可在勢(shì)函數(shù)中將平衡間距設(shè)為一個(gè)適當(dāng)?shù)姆秶?,使其盡快到達(dá)平衡狀態(tài)。(2)在第三問(wèn)的Leader-Follower模型中,只限定了決策者的數(shù)量為一個(gè)。實(shí)際中是有多個(gè)信息豐富者的即Leaders,可將模型改進(jìn)為多個(gè)Leaders對(duì)Followers的領(lǐng)導(dǎo)。而且leaders的充當(dāng)者會(huì)時(shí)時(shí)地改變,合理地處理Leaders間的決策沖突以及Leaders角色變換中的銜接過(guò)程,可以更真實(shí)地仿真實(shí)際中的Leader-Follower群體決策問(wèn)題。2. 模型推廣我們的模型可推廣到機(jī)器群的控制中,通過(guò)模擬動(dòng)物集群行為,可將機(jī)器群中的每個(gè)個(gè)體看成agent,其中有

25、Leaders與followers,agents之間會(huì)通過(guò)一定的約束關(guān)系使其保持一種穩(wěn)定的隊(duì)形。只需通過(guò)控制Leaders的運(yùn)動(dòng)狀態(tài),可以使Followers自動(dòng)達(dá)到與Leaders運(yùn)動(dòng)一致的狀態(tài),簡(jiǎn)化了控制程序。參考文獻(xiàn)1 王正林,劉明.精通matlab7.北京:電子工業(yè)出版社,2008。2REYNOLDS C W.Flocks,herds,andschools:a distributed behavioral model.Computer Graphics,21(4):25-34,1987.3 REYNOLDS C W.Steering behaviors for autonomous c

26、haractersCSan Francisco,CA:Miller Freeman Game Group,1999:7637824 賈秋玲.基于勢(shì)函數(shù)的多機(jī)器人系統(tǒng)的編隊(duì)控制.機(jī)器人,28(2):112-113,2006.附錄附件:程序一:%此程序?qū)崿F(xiàn)boid模型的仿真clear all %實(shí)現(xiàn)三維空間下的swarm行為 %預(yù)定義 agentnum =50; %個(gè)體數(shù) maxneighborhoodsize =10;%最大鄰居界限 iterate = 1; %迭代次數(shù)初值%各常數(shù)值velocity = 5.0; cruiseDistance = 5; %最小碰撞距離%初始化 position

27、= 5+(10-5) * rand(agentnum,3); %記錄各agent的位置信息,使x,y,z在5-10之間取值for i=1:agentnumv(i,1)= velocity * cos(2*pi*rand(1,1); %記錄各agent的速度信息v(i,2)= velocity * cos(2*pi*rand(1,1);v(i,3)= velocity * cos(2*pi*rand(1,1);end%主循環(huán) while iterate <= 1000 %總的運(yùn)行次數(shù) %初始化neighborArray,記錄符合要求的各agent鄰居編號(hào) neighborArray = z

28、eros(agentnum,agentnum); neighborArray1 = zeros(agentnum,agentnum); neighborArray2 = zeros(agentnum,agentnum); %figure(iterate)%連續(xù)繪圖命令 x = position(:,1); y = position(:,2); z = position(:,3); for i=1:agentnum D1t(i,1)=(v(i,1)/sqrt(v(i,1)2+v(i,2)2+v(i,3)2); D1t(i,2)=(v(i,2)/sqrt(v(i,1)2+v(i,2)2+v(i,3

29、)2); D1t(i,3)=(v(i,3)/sqrt(v(i,1)2+v(i,2)2+v(i,3)2); end %計(jì)算速度v for i=1:agentnum plot3(x(i),y(i),z(i),'.'); hold on; quiver3(x(i),y(i),z(i),0.5*D1t(i,1),0.5*D1t(i,2),0.5*D1t(i,3); %給各點(diǎn)加上箭頭以表示每個(gè)點(diǎn)的速度方向 hold on; end hold off; xlim(min(x)-2 max(x)+1) %使坐標(biāo)系合理的調(diào)節(jié) ylim(min(y)-2 max(y)+1) zlim(min(z

30、)-2 max(z)+1) %獲取各agent的鄰居信息 for i = 1:agentnum for t = 1:agentnum %不考慮位置相同的agent if x(i) = x(t) && y(i) = y(t) && z(i) = z(t) length = sqrt(x(t)-x(i)2 + (y(t)-y(i)2+(z(t)-z(i)2); %規(guī)定區(qū)域內(nèi)并在可視范圍中 if length < maxneighborhoodsize && acos(x(t)-x(i)/length) < 2.6167 neighborA

31、rray(i,t)=1; end if length>cruiseDistance && length < maxneighborhoodsize && acos(x(t)-x(i)/length) < 2.6167 %對(duì)相應(yīng)鄰居進(jìn)行標(biāo)注 neighborArray1(i,t) = 1; elseif length<cruiseDistance && acos(x(t)-x(i)/length) < 2.6167 neighborArray2(i,t)=1; end end end end %計(jì)算靠近規(guī)則下平均每條魚(yú)

32、附近的大于碰撞距離魚(yú)的平均位置方向D2t for n = 1:agentnum count = 0; aveposition1=0,0,0 for m = 1:agentnum if neighborArray1(n,m) = 1 %用于記錄agent個(gè)數(shù) count = count + 1; aveposition1 = aveposition1 + x(m),y(m),z(m); end end if count = 0 aveposition1 = aveposition1/count; %aveposition1表示平均每條魚(yú)附近的大于碰撞距離的魚(yú)的平均位置 end a(1,1)=av

33、eposition1(1,1)-position(n,1); a(1,2)=aveposition1(1,2)-position(n,2); a(1,3)=aveposition1(1,3)-position(n,3); D2t(n,1)= a(1,1)/sqrt(a(1,1)2+a(1,2)2+a(1,3)2);%計(jì)算平均位置角度D2t D2t(n,2)=a(1,2)/sqrt(a(1,1)2+a(1,2)2+a(1,3)2); D2t(n,3)=a(1,3)/sqrt(a(1,1)2+a(1,2)2+a(1,3)2); end %計(jì)算同向原則下的速度平均方向D3t for n = 1:ag

34、entnum count = 0; direction=0; for m = 1:agentnum if neighborArray(n,m) = 1 %用于記錄agent個(gè)數(shù) count = count + 1; D3t(count,1)=v(m,1)/sqrt(v(m,1)2+v(m,2)2+v(m,3)2); D3t(count,2)=v(m,2)/sqrt(v(m,1)2+v(m,2)2+v(m,3)2); D3t(count,3)=v(m,3)/sqrt(v(m,1)2+v(m,2)2+v(m,3)2); end end D3t(n,4)=sum(D3t(count,1)/count

35、; D3t(n,5)=sum(D3t(count,2)/count; D3t(n,6)=sum(D3t(count,3)/count; end %計(jì)算避免碰撞原則下平均每條魚(yú)附近的小于碰撞距離魚(yú)的位置方向D4t for n = 1:agentnum count = 0; aveposition2=0,0,0 for m = 1:agentnum if neighborArray2(n,m) = 1 %用于記錄agent個(gè)數(shù) count = count + 1; aveposition2 = aveposition2 + x(m),y(m),z(m); end end if count = 0

36、aveposition2 = aveposition2/count; %aveposition1表示平均每條魚(yú)附近的大于碰撞距離魚(yú)的平均位置 end b(1,1)=position(n,1)-aveposition2(1,1); b(1,2)=position(n,2)-aveposition2(1,2); b(1,3)=position(n,3)-aveposition2(1,3); D4t(n,1)=(b(1,1)/sqrt(b(1,1)2+b(1,2)2+b(1,3)2);%計(jì)算平均位置角度D4t D4t(n,2)=(b(1,2)/sqrt(b(1,1)2+b(1,2)2+b(1,3)2

37、); D4t(n,3)=(b(1,3)/sqrt(b(1,1)2+b(1,2)2+b(1,3)2); end for i=1:agentnum D1t(i,1)=(v(i,1)/sqrt(v(i,1)2+v(i,2)2+v(i,3)2); D1t(i,2)=(v(i,2)/sqrt(v(i,1)2+v(i,2)2+v(i,3)2); D1t(i,3)=(v(i,3)/sqrt(v(i,1)2+v(i,2)2+v(i,3)2); end %計(jì)算速度v lamda1=0.25; lamda2=0.25; lamda3=0.35; lamda4=0.15; for n=1:agentnum Dt(n

38、,1)=lamda1*D1t(n,1)+lamda2*D2t(n,1)+lamda3*D3t(n,4)+lamda4*D4t(n,1); Dt(n,2)=lamda1*D1t(n,2)+lamda2*D2t(n,2)+lamda3*D3t(n,5)+lamda4*D4t(n,2); Dt(n,3)=lamda1*D1t(n,3)+lamda2*D2t(n,3)+lamda3*D3t(n,6)+lamda4*D4t(n,3); v(n,1)=velocity*(Dt(n,1); v(n,2)=velocity*(Dt(n,2); v(n,3)=velocity*(Dt(n,3); end %記錄

39、時(shí)間 time = 0.1; %依據(jù)速度v跟新各agent的位置信息,x=x+v*t. for i = 1:agentnum position(i,1) = position(i,1) + v(i,1) * time; position(i,2) = position(i,2) + v(i,2) * time; position(i,3) = position(i,3) + v(i,3) * time; end iterate = iterate+1; pause(time)end 程序二:%此程序?qū)崿F(xiàn)基于勢(shì)函數(shù)的模型的仿真clear all clc%實(shí)現(xiàn)三維空間下的swarm行為 %預(yù)定義

40、agentnum =40%個(gè)體數(shù) maxneighborhoodsize =10;%最大鄰居界限 iterate = 1; %迭代次數(shù)初值k=1.5; %平衡距離m=1; %質(zhì)量R=40; %最大邊界值%各常數(shù)值 maxvelocity=3;%最大速度maxaccleration=2 % 最大加速度%初始化 position = (10-5) * rand(agentnum,3); %記錄各agent的位置信息,使x,y,z在5-10之間取值lamda1=1lamda2=1for i=1:agentnum %隨機(jī)生成各個(gè)agent的速度向量為0到2 v(i,1)= 2 * rand(1,1);

41、 v(i,2)= 2 * rand(1,1); v(i,3)= 2 * rand(1,1);end%主循環(huán) while iterate <= 1000 %總的運(yùn)行次數(shù) figure(iterate) x = position(:,1); y = position(:,2); z = position(:,3); for i=1:agentnum D1t(i,1)=(v(i,1)/sqrt(v(i,1)2+v(i,2)2+v(i,3)2); D1t(i,2)=(v(i,2)/sqrt(v(i,1)2+v(i,2)2+v(i,3)2); D1t(i,3)=(v(i,3)/sqrt(v(i,1

42、)2+v(i,2)2+v(i,3)2); end %計(jì)算velocityUrge for i=1:agentnum plot3(x(i),y(i),z(i),'.'); hold on; quiver3(x(i),y(i),z(i),D1t(i,1),D1t(i,2),D1t(i,3); %為每個(gè)點(diǎn)標(biāo)上箭頭表示運(yùn)動(dòng)的速度方向 hold on; end hold off; xlim(min(x)-2 max(x)+1) %使坐標(biāo)系合理變動(dòng) ylim(min(y)-2 max(y)+1) zlim(min(z)-2 max(z)+1) %獲取各agent的鄰居信息 fx=zeros

43、(agentnum,agentnum); fy=zeros(agentnum,agentnum); fz=zeros(agentnum,agentnum); accleration_x=zeros(agentnum,1); %定義三個(gè)方向的初始加速度 accleration_y=zeros(agentnum,1); accleration_z=zeros(agentnum,1); for i = 1:agentnum count=0; X=0;Y=0;Z=0; for j = 1:agentnum %不考慮位置相同的agent if x(i) = x(j) && y(i) =

44、y(j) && z(i) = z(j) length(j,i) = sqrt(x(j)-x(i)2 + (y(j)-y(i)2+(z(j)-z(i)2); %規(guī)定區(qū)域內(nèi)并在可視范圍中 if length(j,i) < maxneighborhoodsize && acos(x(j)-x(i)/length(j,i) < 2.6167 count=count+1; %對(duì)鄰居個(gè)數(shù)進(jìn)行計(jì)數(shù) X=X+v(j,1); %計(jì)算鄰居三個(gè)方向的速度和 Y=Y+v(j,2); Z=Z+v(j,3); f(count,i)=1/length(j,i)-k/(length

45、(j,i)2; cos_a= (x(j)-x(i)/sqrt(x(j)-x(i)2 + (y(j)-y(i)2+(z(j)-z(i)2); %對(duì)向量進(jìn)行標(biāo)準(zhǔn)化 cos_b= (y(j)-y(i)/sqrt(x(j)-x(i)2 + (y(j)-y(i)2+(z(j)-z(i)2); cos_c= (z(j)-z(i)/sqrt(x(j)-x(i)2 + (y(j)-y(i)2+(z(j)-z(i)2); fx(count,i)=f(count,i)*cos_a; fy(count,i)=f(count,i)*cos_b; fz(count,i)=f(count,i)*cos_c; end en

46、d end if count>0; %對(duì)鄰居速度進(jìn)行分類(lèi) Xaver=X/count; Yaver=Y/count; Zaver=Z/count; else Xaver=x(i); Yaver=y(i); Zaver=z(i); end accleration1_x(i,1)=Xaver-v(i,1); %計(jì)算調(diào)整原則影響的加速度 accleration1_y(i,1)=Yaver-v(i,2); accleration1_z(i,1)=Zaver-v(i,3); Fx(i,1)=sum(fx(:,i); %計(jì)算第i個(gè)點(diǎn)個(gè)方向的合力及加速度 accleration_x(i,1)=Fx(i

47、,1)/m; Fy(i,1)=sum(fy(:,i); accleration_y(i,1)=Fy(i,1)/m; Fz(i,1)=sum(fz(:,i); accleration_z(i,1)=Fz(i,1)/m; Xaccleration(i,1)=lamda1*accleration1_x(i,1)+lamda2*accleration_x(i,1); %計(jì)算各個(gè)方向綜合加速度 Yaccleration(i,1)=lamda1*accleration1_y(i,1)+lamda2*accleration_y(i,1); Zaccleration(i,1)=lamda1*accleration1_z(i,1)+lamda2*accleration_z(i,1); accleration=sqrt(Xaccleration(i,1)2+Yaccleration(i,1)2+Zaccleration(i,1)2) cos_a1=Xaccleration(i,1)/accleration; cos_b1=Yaccleration(i,1)/accleration; cos_c1=Zaccleration(i,1)/accleration; if acclera

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論