




已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
動物集群行為的建模與仿真摘要生態(tài)系統(tǒng)中,動物個體的行為相對簡單,集群后卻能表現(xiàn)出復(fù)雜的群體行為。個體行為是構(gòu)成群體行為的基礎(chǔ),個體之間的組織結(jié)構(gòu)、個體行為之間的關(guān)系和群體行為的涌現(xiàn)機(jī)制是研究群體行為的關(guān)鍵要素。本文首先基于boid模型的三原則,從個體出發(fā),對動物個體進(jìn)行建模,分析個體之間的行為規(guī)則及相互影響,從而仿真出動物的集群行為。仿真結(jié)果在一定程度上反映了動物集群行為的實際情況,但該模型對各個參數(shù)的設(shè)置非常敏感,動物群體的速度不會趨于穩(wěn)定一致,而且此模型假設(shè)各動物的速率相等且保持不變是不合理的,所以對模型進(jìn)行了改進(jìn)。改進(jìn)模型引入了勢場函數(shù),將個體之間的相互作用抽象成吸引力和排斥力,利用牛頓運動定理描述個體運動規(guī)律。通過仿真結(jié)果發(fā)現(xiàn),動物個體會先調(diào)整各自的間距,使其相互靠近以免落單,但又不至于相互碰撞;當(dāng)動物個體之間的距離接近平衡距離時,動物個體會保持相對位置基本不變,調(diào)整各自的速度方向使趨近一致并平穩(wěn);另外,個體數(shù)目越多,出現(xiàn)落單的可能性就越小。上述結(jié)論都是符合實際情況的,說明改進(jìn)后的模型更合理。魚群躲避鯊魚的行為,可以認(rèn)為是由鯊魚對魚群的排斥力引起的,所以在原有合力的基礎(chǔ)上再加上由鯊魚引起的斥力即得到小魚發(fā)現(xiàn)鯊魚后的合力。仿真得到的結(jié)果反映,當(dāng)有鯊魚出沒時,魚群會迅速改變運動狀態(tài),逃離鯊魚的攻擊。動物群中的信息豐富者可以理解成Leader-Follower模型中的Leader,其他個體都是Follower。結(jié)合問題一中改進(jìn)的模型和Leader-Follower模型,通過matlab編程仿真得到的結(jié)果反映了Leader對整個群體的作用和影響。關(guān)鍵詞:集群行為 boid模型 勢函數(shù) leader-follower模型 matlab仿真1 問題重述在動物界,通常有一些動物會成群地行動,它們在運動過程中具有很明顯的特征:群中的個體聚集性很強(qiáng),運動方向、速度具有一致性。近幾十年來,智能群體(flockswarm)的協(xié)調(diào)控制問題引起了研究人員的極大關(guān)注。最近在通信,計算技術(shù),以及相關(guān)問題在生物學(xué),社會行為學(xué),統(tǒng)計物理,計算機(jī)圖形學(xué)方面的進(jìn)展,大大推動了此領(lǐng)域 的研究。研究動物集群運動的機(jī)理,建立數(shù)學(xué)模型刻畫動物集群運動、躲避威脅等行為,對智能群體(flockswarm)的協(xié)調(diào)控制問題有重要地作用。從以下幾個方面分析建模:1. 建立數(shù)學(xué)模型模擬動物的集群運動。 2. 建立數(shù)學(xué)模型刻畫魚群躲避黑鰭礁鯊魚的運動行為。3. 假定動物群中有一部分個體是信息豐富者(如掌握食物源位置信息,掌握遷徙路線信息),建模分析它們對于群運動行為的影響,解釋群運動方向決策如何達(dá)成。2 模型假設(shè)1. 假設(shè)所有動物個體都可以看成質(zhì)點;2. 假設(shè)動物群體中的決策者會通過一種特殊信息(氣味,動作等)通知其他個體。3 符號說明 動物的位置向量; 動物與動物的相對位置向量; 動物的瞬時速度; 動物的加速度; 動物個體的最大速率; 動物個體之間的平衡距離; 動物個體的感知半徑; 動物與動物之間的勢場函數(shù); 動物對動物的作用力; 動物的鄰居個數(shù);4模型建立與模型求解4.1 動物集群運動的建模與仿真動物集群行為由三部分因素構(gòu)成:環(huán)境、個體、行為規(guī)則。環(huán)境是個體的生存空間,個體在環(huán)境中活動,收集環(huán)境中的各種信息(食物,障礙,敵人等等);個體的特性(感知范圍,速度,加速度等)制約了個體的運動,而個體的總和構(gòu)成了研究的群體對象;群體的演化過程由其行為規(guī)則集來控制,行為規(guī)則決定了個體與個體之間、個體與環(huán)境之間相互作用的方式。由于該問不考慮動物覓食、避險等行為,只研究動物的集群行為,所以在這里忽略環(huán)境對動物行為的影響,假設(shè)動物的活動范圍無窮大。4.11 個體的描述把每個動物個體看成是一個能夠自主決策的智能體,它們會根據(jù)自己的觀察來感知周圍的環(huán)境,并按照一定的規(guī)則決策。個體之間的交互作用是局部的,只能發(fā)生在所定義的鄰域內(nèi)。個體應(yīng)當(dāng)具有以下屬性:(1)感知范圍:個體所能感知的范圍。個體的感知范圍取決于所定義鄰域半徑的大小和個體與領(lǐng)域之間的夾角(本文中),感知范圍越大,表明該個體與其它個體的作用越強(qiáng),如下圖所示:圖一 感知范圍示意圖(2)位置:個體位置向量由一組坐標(biāo)(x, y,z)表示。(3)速度:每個個體在運動時都具有一定的速度,它是瞬時的,具有大小和方向,用向量(x,y,z)表示。(4)加速度:個體改變速度大小的能力。 (5)最大速度:每個個體的速度不可能無限增長,具有一個最大值。(6)平衡距離:個體之間的平衡距離。當(dāng)個體間的距離小于該值時,個體將朝著遠(yuǎn)離的方向運動。當(dāng)個體之間的距離大于該值時,個體將朝著接近的方向運動。 4.12 行為規(guī)則的描述1987年,Reynolds2提出了一個模仿動物集群的計算機(jī)仿真模型,叫做Boid模型,Boid模型基于如下3條啟發(fā)式規(guī)則: 1)分離(separation):避免與鄰近的群成員發(fā)生碰撞。 2)調(diào)整(alignment):試圖與鄰近的群成員保持速度匹配。 3)聚合(cohesion):試圖與鄰近的群成員保持接近。 Reynolds最近的論文3對以上三條規(guī)則做了詳細(xì)的解釋,所以這三條規(guī)則是可信的。1.分離原則的實現(xiàn) 首先定義一個概念,當(dāng)前動物能感知到的個體稱為鄰居。當(dāng)某動物和它的鄰居靠的太近時,這些鄰居的中心會排斥該動物,使其向相反方向離開,此時的排斥鄰居中心為觀察范圍內(nèi)且相對距離小于平衡距離的各個體所在位置的平均值。圖二 分離原則示意圖排斥鄰居中心的公式表示為: (1)表示為,為排斥鄰居中心位置,為各排斥鄰居的位置,為排斥鄰居的數(shù)目。該動物由于分離原則所產(chǎn)生的運動方向用一個向量來表示,即為: (2)其中,表示當(dāng)前動物的位置坐標(biāo)。2.聚合原則的實現(xiàn)每個個體都有向鄰居中心靠攏的特性,鄰居中心為感知范圍內(nèi)且相對距離大于平衡距離的各個體所在位置的平均值(如圖三所示的綠色個體):圖三 聚合原則示意圖中心位置的計算公式與排斥鄰居中心位置的計算類似,用表示某動物由于聚合原則所產(chǎn)生的運動方向用向量來表示,計算公式如下: (3)3.調(diào)整原則的實現(xiàn)個體會不斷調(diào)整自己的運動方向,盡量和它的鄰居保持一致。如下圖所示:圖四 調(diào)整原則示意圖某動物由于調(diào)整原則產(chǎn)生的運動方向向量為,公式表示為: (4)unite是將向量進(jìn)行單位化,因為方向向量是用單位向量表示的。為各個鄰居的速度,N為鄰居的個數(shù)。假設(shè)每個動物個體都要遵守以上三條規(guī)則,這三條規(guī)則對改動物個體下一時刻運動方向起作用。但動物個體的運動方向不可能立刻改變,還表現(xiàn)了某種慣性的作用。這種慣性作用阻止運動方向的改變,設(shè)為: (5)為當(dāng)前動物個體的速度。設(shè)為下個周期動物個體的運動方向向量,計算公式如下:(6)分別為分離原則,聚合原則,調(diào)整原則,慣性引起的方向向量。是權(quán)重,反映各規(guī)則對動物個體運動的影響程度,不同的動物取值有差異。設(shè)個體運動速度速率為,那么個體k的位置迭代公式為: (7)4.1.3仿真結(jié)果假設(shè)動物的運動速率,感知半徑,平衡距離,各權(quán)重,取時間步長為0.1s,根據(jù)以上三個原則以及慣性所確定的位置迭代方程,通過matlab編程仿真,我們得到了動物個體集群行為的仿真動態(tài)圖,下面分別給出仿真的初始狀態(tài),5s,10s的仿真結(jié)果:圖五 初始狀態(tài)圖六 5s時的仿真結(jié)果圖七 10s的仿真結(jié)果圖中箭頭方向表示個體的速度方向,分析圖五、六、七,初始狀態(tài)各動物個體的速度方向是隨機(jī)的,雜亂無章,而且位置相對分散。而5s時各動物個體的速度方向趨近一致,位置也相對集中了,但速度方向并未高度一致,根據(jù)聚合原則,它們還會朝著集合的趨勢運動。所以到了10s時,動物個體高度集中,此時分離原則將會占主導(dǎo)地位,所以從圖七可以看出它們的速度方向都是背離的。從以上這些方面分析,此模型在一定程度上能夠反映動物的集群行為。但是,該模型對各個參數(shù)的設(shè)置非常敏感,我們試著將參數(shù)設(shè)置成不同的值,發(fā)現(xiàn)仿真的結(jié)果有較大的區(qū)別,這就導(dǎo)致很難找到一組參數(shù)使動物群體的運動速度和相對位置趨于平穩(wěn)并收斂于某個值,這對很多動物群體是不適用的。同時此模型假設(shè)各動物的速率相等且保持不變,而且動物的速度在一瞬間就可以到達(dá)期望的方向,這顯然是不合理的,所以我們對模型進(jìn)行了改進(jìn)。4.1.3基于勢函數(shù)的模型修正根據(jù)牛頓運動定律,動物個體的運動都可以用位移、速度、加速度來描述,用公式表示如下: (8)上式的變化范圍從1到N,N為群體中動物的總數(shù)目,表示動物的位置向量,那么兩個動物個體的相對位置向量為。由牛頓第二定理,為合外力,m為質(zhì)量。上述的分離原則和聚合原則,可以抽象成排斥力和吸引力,這樣可以求出動物個體的加速度,避免了速率不變的假設(shè)。動物個體之間有一個平衡距離,當(dāng)時,兩者之間表現(xiàn)為吸引力;當(dāng)時,兩者之間表現(xiàn)為排斥力。這一現(xiàn)象類似于分子之間的作用力,由物理知識可知,分子之間的作用力是由勢場引起的,所以在這里引入了勢函數(shù)來描述動物個體之間的吸引力和排斥力。勢函數(shù)的定義4:一對相鄰動物個體和的勢函數(shù)是可微、非負(fù)、關(guān)于相鄰個體和之間的間距徑向無界的,并且:(1)當(dāng)時,;(2)當(dāng)相鄰個體和之間達(dá)到希望的平衡間距時,即時,取其唯一的極小值。本文選取相鄰個體和之間的勢函數(shù)為: (9)其中c為常數(shù),由物理知識可知,相鄰個體和之間所產(chǎn)生的力為: (10)表示個體對個體的作用力,下圖給出上式所描述的相鄰個體和間的勢函數(shù)及其產(chǎn)生的排斥力或吸引力隨的變化曲線。圖八 勢函數(shù)及其產(chǎn)生的力從上圖可以看出,當(dāng)時,個體和之間表現(xiàn)為排斥力;當(dāng),個體和個體之間表現(xiàn)為吸引力;當(dāng),個體和之間既不吸引也不排斥,此時勢能最小。那么,個體受到的合力的向量形式為: (11)個體由于受到周圍鄰居的吸引力和排斥力所引起的加速度為: (12)為個體周圍鄰居的個數(shù)。由三個基本原則可知,每一個個體都要盡量與其他個體的速度保持一致,這也會引起當(dāng)前個體速度的改變。鄰居的速度方向引起個體速度的改變可以由下圖表示:圖九 速度一致原則速度一致原則引起個體的加速度取各鄰居引起的加速度的平均值為: (13)那么,合成加速度為,那么個體運動迭代公式為: (14)式中為時間步長。假設(shè)動物的最大運動速率,最大加速度,感知半徑,平衡距離,質(zhì)量,為了使動物群體盡快地達(dá)到穩(wěn)定狀態(tài),我們設(shè)置所有動物個體的初始速度方向指向第一象限,但具體方向隨機(jī)產(chǎn)生,取時間步長為0.1s,根據(jù)上述迭代公式進(jìn)行仿真,下面分別給出初始狀態(tài)、2.5s,5s, 10s的仿真結(jié)果:圖十 初始狀態(tài)圖十一 2.5s時的仿真結(jié)果圖十二 5s時的仿真結(jié)果圖十三 10s時的仿真結(jié)果圖中箭頭方向為個體的速度方向,從以上四幅圖可以看出,初始狀態(tài)位置分散,而且速度方向不一致;到了2.5s時動物個體的位置集中起來,但速度方向雜亂無章,這說明動物群體會先調(diào)整各自的間距,使它們相互靠近以免落單,但又不至于相互碰撞;到了5s時,動物個體之間的相對位置基本不變,但速度方向更趨近于一致,這說明動物個體調(diào)整好各自的間距后,會在保持相對位置基本不變的基礎(chǔ)上,調(diào)整各自的速度使其盡量保持一致;到了10s時,個體之間的速度方向已經(jīng)高度一致,而且個體之間的間距沒有發(fā)生大的變化,但從坐標(biāo)上來看,它們的位置已經(jīng)發(fā)生了變化,這證明了前一觀點。10s以后的仿真圖沒有給出,但從10s以后的仿真結(jié)果來看,動物群體基本保持此間距和速度方向往前運動,但會有波動。從仿真結(jié)果來看,我們還發(fā)現(xiàn)了另一結(jié)論,當(dāng)某一群體的個體數(shù)目越少時,越容易發(fā)生落單的現(xiàn)象,下面分給出10個、30個、60個個體在10s時的仿真結(jié)果:圖十四 10個、30個、60個個體在10s時的仿真從圖十四可以看出,當(dāng)個體只有10個時,各個體朝四周運動,基本不存在集群行為;而當(dāng)個體為30個時,大部分個體集群在一起,而且速度能趨近一致,但是有少部分個體會落單,速度朝著遠(yuǎn)離群體的方向;當(dāng)個體達(dá)到60個時,所有個體都集群在一起,而且速度基本一致,不存在落單的現(xiàn)象。所以,在自然界中,動物(如鳥類,魚類等)的集群行為通常是成千上萬的個體,很少出現(xiàn)幾十個個體集群的現(xiàn)象,這樣能保證所有個體都不會落單。4.2 魚群躲避鯊魚行為的建模與仿真問題一中的模型只考慮了個體之間的相互影響,而忽視了環(huán)境對個體運動的影響,而動物的行為常常會受到環(huán)境因素(敵人,障礙,食物等)的影響。例如當(dāng)魚群遇到鯊魚時,會改變自己的運動方向以躲避鯊魚的攻擊。魚群的這種行為,可以看成是當(dāng)鯊魚進(jìn)入魚群的感知范圍時,魚群受到鯊魚的排斥力而改變了它們的運動方向,而小魚之間的相互作用力也存在,這就相當(dāng)于在第一問式(11)求得合力的基礎(chǔ)上再加一個較大的排斥力,修改(11)式如下: (15)其中,表示鯊魚對小魚(該條小魚能感知到鯊魚)的排斥力,k為常數(shù);,為小魚與鯊魚之間的相對位置。小魚運動的迭代公式和(14)相同,設(shè)小魚最大運動速率,最大加速度,質(zhì)量,感知半徑,平衡距離,常數(shù),設(shè)鯊魚的初始位置是隨機(jī)的,但沿一個方向勻速運動,運動速率1.25,仿真時間步長為0.1s。為了較明顯地看到魚群逃逸效果,matlab編程是在二維空間實現(xiàn)的,下面給出初始狀態(tài),2s,4s,7s的仿真結(jié)果:圖十五 初始狀態(tài)的鯊魚和小魚圖十六 仿真2s后的鯊魚和小魚圖十七 仿真4s后的鯊魚和小魚圖十八 仿真7s后的鯊魚和小魚上面四幅圖中紅色的點為鯊魚,其它小點都是小魚。從圖中可以看出,當(dāng)有鯊魚出沒時,魚群會迅速改變運動狀態(tài),逃離鯊魚的攻擊。到7s時,魚群已經(jīng)成功逃離了鯊魚的追捕。4.3 Leader-Follower的動物集群行為的建模與仿真在上述模型的基礎(chǔ)上,可以將其分為有決策者Leader和追隨者Followers的集群運動。群體中的信息豐富者即為決策者,當(dāng)其掌握到有用信息后,會向其他成員散布一種信息(氣味、動作、聲音等),此信息會影響到其他成員的運動,即Followers會追隨Leader的運動。Leader的運動是自主的,屬于單agent控制問題,而為了構(gòu)造穩(wěn)定的集群運動系統(tǒng),F(xiàn)ollowers需要服從相應(yīng)的有序化集群運動控制律。在該模型中,若Follower 接收到Leader的信息,影響它運動加速度的因素有兩個:(1)Leader的運動;(2)鄰居的運動。若Follower 未接收到Leader的信息,則只受鄰居運動的影響??紤]一個包含Leader-Followers的群體,F(xiàn)ollower 的運動控制律 可定義為(1)速度矢量: Leader的速度矢量(2)加速度: Leader的加速度其中:為平衡agent之間速度的控制矢量,為控制agent之間距離的控制矢量項。此模型用matlab編程后,仿真結(jié)果為:圖十九 初始狀態(tài)圖二十 5秒后的仿真結(jié)果圖二十一 20秒后的仿真結(jié)果圖二十二 30秒后的仿真結(jié)果上圖中,圓圈表示決策者Leader,藍(lán)點表示追隨者Followers,綠色箭頭為運動方向??梢钥吹剑跏紶顟B(tài)時,各個agent的運動隨機(jī)生成,是雜亂無章的。5秒后Followers的速度方向基本與Leader的速度方向保持一致,跟隨Leader運動;20秒后,Leader的運動方向發(fā)生改變(實際中可以認(rèn)為是發(fā)現(xiàn)危險或是食物),其他Followers的運動方向隨之進(jìn)行相應(yīng)的調(diào)整;30秒后Followers的運動方向又基本與Leader的方向一致。這樣,作為一個決策者的Leader,就起到了領(lǐng)導(dǎo)其他Followers的作用。在實際的動物集群行為里,角色Leader是由先掌握有用信息的部分agents充當(dāng)?shù)?,它們通過散布特殊信息(該群體特有的氣味、動作、聲音等)向其他agents告知掌握的信息。隨之,可以接收到信息agents作為Followers跟隨Leader的運動(這里假設(shè)凡是掌握有用信息的agents都具有正確的決策能力)。那些不能接收到Leader特殊信息的agents則通過鄰居的運動保證不脫離整個群體而間接地達(dá)到跟隨Leader的目的。5模型評價模型優(yōu)點:1. 利用勢函數(shù)的概念,將動物個體之間的相互作用抽象為吸引力和排斥力,這樣的描述合理形象,而且克服了原模型中不合理的假設(shè),使得仿真結(jié)果更加符合動物集群行為的客觀規(guī)律。2. 對每一個模型都用matlab軟件進(jìn)行了仿真,仿真程序很好地實現(xiàn)了理論算法,仿真結(jié)果將抽象的運算數(shù)據(jù)轉(zhuǎn)變?yōu)榱诵蜗蟮膱D形,而且實際情況非常相近。模型缺點:1. 由于計算機(jī)的運算能力有限,只能得到較少數(shù)量的動物集群行為的仿真結(jié)果,沒能得到現(xiàn)實情況中大量動物集群行為的仿真結(jié)果。 2.仿真得到的結(jié)果雖然很好地反映了實際情況,但動物個體的速度方向會不斷震蕩。6模型改進(jìn)與推廣1.模型改進(jìn)(1)在第一問基于勢函數(shù)的模型中,當(dāng)agents間達(dá)到平衡間距即時,達(dá)到最小勢能,此狀態(tài)最穩(wěn)定,agents都朝著這個平衡間距移動,但由于慣性的作用,agents的間距會在平衡間距附近震蕩,導(dǎo)致不能盡快地達(dá)到平衡狀態(tài)。這是由勢函數(shù)平衡間距的單值性引起的,可在勢函數(shù)中將平衡間距設(shè)為一個適當(dāng)?shù)姆秶?,使其盡快到達(dá)平衡狀態(tài)。(2)在第三問的Leader-Follower模型中,只限定了決策者的數(shù)量為一個。實際中是有多個信息豐富者的即Leaders,可將模型改進(jìn)為多個Leaders對Followers的領(lǐng)導(dǎo)。而且leaders的充當(dāng)者會時時地改變,合理地處理Leaders間的決策沖突以及Leaders角色變換中的銜接過程,可以更真實地仿真實際中的Leader-Follower群體決策問題。2. 模型推廣我們的模型可推廣到機(jī)器群的控制中,通過模擬動物集群行為,可將機(jī)器群中的每個個體看成agent,其中有Leaders與followers,agents之間會通過一定的約束關(guān)系使其保持一種穩(wěn)定的隊形。只需通過控制Leaders的運動狀態(tài),可以使Followers自動達(dá)到與Leaders運動一致的狀態(tài),簡化了控制程序。參考文獻(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 charactersCSan Francisco,CA:Miller Freeman Game Group,1999:7637824 賈秋玲.基于勢函數(shù)的多機(jī)器人系統(tǒng)的編隊控制.機(jī)器人,28(2):112-113,2006.附錄附件:程序一:%此程序?qū)崿F(xiàn)boid模型的仿真clear all %實現(xiàn)三維空間下的swarm行為 %預(yù)定義 agentnum =50; %個體數(shù) maxneighborhoodsize =10;%最大鄰居界限 iterate = 1; %迭代次數(shù)初值%各常數(shù)值velocity = 5.0; cruiseDistance = 5; %最小碰撞距離%初始化 position = 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 %總的運行次數(shù) %初始化neighborArray,記錄符合要求的各agent鄰居編號 neighborArray = zeros(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)2); D1t(i,3)=(v(i,3)/sqrt(v(i,1)2+v(i,2)2+v(i,3)2); end %計算速度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); %給各點加上箭頭以表示每個點的速度方向 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)-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) cruiseDistance & length maxneighborhoodsize & acos(x(t)-x(i)/length) 2.6167 %對相應(yīng)鄰居進(jìn)行標(biāo)注 neighborArray1(i,t) = 1; elseif lengthcruiseDistance & acos(x(t)-x(i)/length) 2.6167 neighborArray2(i,t)=1; end end end end %計算靠近規(guī)則下平均每條魚附近的大于碰撞距離魚的平均位置方向D2t for n = 1:agentnum count = 0; aveposition1=0,0,0 for m = 1:agentnum if neighborArray1(n,m) = 1 %用于記錄agent個數(shù) count = count + 1; aveposition1 = aveposition1 + x(m),y(m),z(m); end end if count = 0 aveposition1 = aveposition1/count; %aveposition1表示平均每條魚附近的大于碰撞距離的魚的平均位置 end a(1,1)=aveposition1(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);%計算平均位置角度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 %計算同向原則下的速度平均方向D3t for n = 1:agentnum count = 0; direction=0; for m = 1:agentnum if neighborArray(n,m) = 1 %用于記錄agent個數(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; D3t(n,5)=sum(D3t(count,2)/count; D3t(n,6)=sum(D3t(count,3)/count; end %計算避免碰撞原則下平均每條魚附近的小于碰撞距離魚的位置方向D4t for n = 1:agentnum count = 0; aveposition2=0,0,0 for m = 1:agentnum if neighborArray2(n,m) = 1 %用于記錄agent個數(shù) count = count + 1; aveposition2 = aveposition2 + x(m),y(m),z(m); end end if count = 0 aveposition2 = aveposition2/count; %aveposition1表示平均每條魚附近的大于碰撞距離魚的平均位置 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);%計算平均位置角度D4t D4t(n,2)=(b(1,2)/sqrt(b(1,1)2+b(1,2)2+b(1,3)2); 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 %計算速度v lamda1=0.25; lamda2=0.25; lamda3=0.35; lamda4=0.15; for n=1:agentnum Dt(n,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 %記錄時間 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ù)的模型的仿真clear all clc%實現(xiàn)三維空間下的swarm行為 %預(yù)定義 agentnum =40%個體數(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ī)生成各個agent的速度向量為0到2 v(i,1)= 2 * rand(1,1); v(i,2)= 2 * rand(1,1); v(i,3)= 2 * rand(1,1);end%主循環(huán) while iterate = 1000 %總的運行次數(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)2+v(i,2)2+v(i,3)2); end %計算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); %為每個點標(biāo)上箭頭表示運動的速度方向 hold on; end hold off; xlim(min(x)-2 max(x)+1) %使坐標(biāo)系合理變動 ylim(min(y)-2 max(y)+1) zlim(min(z)-2 max(z)+1) %獲取各agent的鄰居信息 fx=zeros(agentnum,agentnum); fy=zeros(agentnum,agentnum); fz=zeros(agentnum,agentnum); accleration_x=zeros(agentnum,1); %定義三個方向的初始加速度 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) = 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) 0; %對鄰居速度進(jìn)行分類 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); %計算調(diào)整原則影響的加速度 accleration1_y(i,1)=Yaver-v(i,2); accleration1_z(i,1)=Zaver-v(i,3); Fx(i,1)=sum(fx(:,i); %計算第i個點個方向的合力及加速度 accleration_x(i,1)=Fx(i,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(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年社區(qū)服務(wù)與管理專業(yè)能力測試試題及答案
- 2025年人性與社會關(guān)系的哲學(xué)思考考試試題及答案
- 2025年經(jīng)濟(jì)發(fā)展與區(qū)域規(guī)劃考試試題及答案
- 2025年工程物理實驗綜合測試試卷及答案
- 2025年甘肅省武威市古浪縣民權(quán)鎮(zhèn)招聘大學(xué)生村文書筆試參考題庫及答案詳解1套
- 2025年甘肅省平?jīng)鍪徐`臺縣新開鄉(xiāng)招聘大學(xué)生村文書筆試參考題庫及完整答案詳解1套
- 2025年中國郵政集團(tuán)有限公司福建省分公司校園招聘筆試備考試題及參考答案詳解一套
- 物資采購常用管理制度
- 特殊兒童管理管理制度
- 特殊消防日常管理制度
- GB/T 43650-2024野生動物及其制品DNA物種鑒定技術(shù)規(guī)程
- GB/T 748-2023抗硫酸鹽硅酸鹽水泥
- 改革開放與新時代智慧樹知到期末考試答案2024年
- CorelDRAW實例教程(CorelDRAW 2020)全套教學(xué)課件
- 蒸氣管道安全知識1
- 公司法人個人簡介怎么寫
- 從“瑞幸會計造假案”談會計誠信問題
- 食品配送業(yè)食品安全培訓(xùn)
- 崗位之間工作銜接配合安全與職業(yè)衛(wèi)生事項課件
- 華為IPD流程管理
- 保險經(jīng)紀(jì)行業(yè)保險安全培訓(xùn)
評論
0/150
提交評論