版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于Boid模型的動物集群運動行為研究基于Boid模型的動物集群運動行為研究摘要本文通過對Boid模型進行研究并進行改進,運用MATLAB軟件對群體在不同環(huán)境下的運動進行仿真,形象地展現(xiàn)了動物的集群運動行為。問題一:在Boid模型的向心性(靠近鄰居中心)、同向性(與鄰居方向一致)、排斥性(避免碰撞)三個原則的基礎(chǔ)上,添加了內(nèi)聚性(向群體中心聚合)、排列性(朝平均的方向運動)、可變速性三個原則,進行加權(quán)建立函數(shù)關(guān)系,運用MATLAB進行仿真,很好地模擬出了動物的集群運動。個體的位置變化公式為:問題二:在問題一的基礎(chǔ)上,增加了在兩種不同情況下個體躲避天敵的原則:當(dāng)個體離天敵較近時,忽略群體的影響,
2、選擇最快方向逃逸;當(dāng)個體離天敵較遠時,主要考慮逃逸,但仍考慮群體的對個體的影響。當(dāng)個體無法感受到天敵時,按第一問的原則進行運動。對不同環(huán)境下的個體建立了不同的函數(shù)關(guān)系式,使整體效果更加接近實際情況。個體處在危險區(qū)時,下一時刻的方向為:個體能感知到捕食者,但不在危險區(qū)時,下一時刻的方向:問題三:考慮了一部分個體是信息豐富者,設(shè)置了含有食物的場景,在第一問原則的基礎(chǔ)上采用Lead-follower模型,確定了信息豐富者能第一時間發(fā)現(xiàn)食物并向其緩慢前進,對其他個體進行引導(dǎo),達到群體向食物前進的效果,并且通過MATLAB進行仿真,得到了群體的運動情況。關(guān)鍵詞:集群運動、Boid模型、Lead-foll
3、ower模型、MATLAB仿真一、問題重述在動物世界,大量集結(jié)成群進行移動或者覓食的例子并不少見,這種現(xiàn)象在食草動物、鳥、魚和昆蟲中都存在。這些動物群在運動過程中具有明顯的特征:群中的個體聚集性很強,運動方向、速度具有一致性。通過數(shù)學(xué)模型來模擬動物群的集群運動行為以及探索動物群中信息傳遞機制一直是仿生學(xué)領(lǐng)域的一項重要內(nèi)容。附件給出了鳥群在空中組圖、幾種魚群運動以及躲避鯊魚追捕的相關(guān)視頻,根據(jù)所給資料并在網(wǎng)上搜索相關(guān)資料,思考動物集群運動的機理,建立數(shù)學(xué)模型刻畫動物集群運動、躲避威脅等行為,例如,可以考慮以下問題的分析建模:1、 建立數(shù)學(xué)模型模擬動物的集群運動。2、 建立數(shù)學(xué)模型刻畫魚群躲避黑鰭
4、礁鯊魚的行為。3、假定動物群中有一部分個體是信息豐富者(如掌握食物源位置信息,掌握遷徙路線信息),請建模分析它們對于群運動行為的影響,解釋群運動方向決策如何達成。二、模型假設(shè)2.1、群體所處環(huán)境不受天氣、氣候的影響;2.2、群體中的個體之間沒有競爭;2.3、群體的活動范圍有限;2.4、個體的感知范圍是一個圓形區(qū)域。三、符號說明3.1、:個體的本來方向;3.2、:指向鄰居中心的方向;3.3、:鄰居的平均方向;3.4、:避免碰撞的方向;3.5、:遠離捕食者的方向;3.6、:捕食者運動方向的反方向;3.7、:群體的平均位置;3.8、:群體的平均方向;3.9、:速度;3.10、:食物的位置;3.11、
5、:捕食者的位置;3.12、:第個個體的位置;3.13、:一致性序數(shù);3.14、:群體的個數(shù);3.15、:鄰居的個數(shù)。四、模型的建立與求解4.1、問題一(1)、Boid模型在群體運動過程中,每個個體都要遵守三條原則(盡量靠近鄰居的中心、盡量與鄰居的方向一致、盡量避免碰撞)運動,這三條原則對改變個體下一時刻運動方向起作用。下面對三個原則進行描述:a、向心性(靠近)每個個體周圍都會有鄰居,個體的運動應(yīng)根據(jù)鄰居們的運動來確定自己的運動方向。以鄰居們所在位置的平均值作為鄰居中心,每個個體都應(yīng)具有向鄰居中心靠攏的特性。公式表示為: b、同向性(對齊)當(dāng)鄰居們的運動方向一致時,個體會和它的鄰居朝同一個方向游
6、動。公式表示為: c、排斥性(避免碰撞)當(dāng)個體和它的鄰居靠的太近時,可能會發(fā)生碰撞,個體應(yīng)自動避開,以免影響群體的運動,出現(xiàn)混亂。公式表示為: 則下一時刻的運動方向(為權(quán)重,可以根據(jù)偏好決定): 靠近原則對齊原則避免碰撞原則(2)、改進模型在Boid模型基礎(chǔ)上,增加內(nèi)聚性(向群體中心聚合)、排列性(朝平均的方向運動)、可變速性三個原則,共同來限制個體的運動。a、內(nèi)聚性僅具向心性可能會導(dǎo)致魚群分散為多個小群體,為了避免這種情況發(fā)生,各個體在運動過程中都應(yīng)主動向群體中心靠攏,跟隨群體的運動。公式表示為:b、排列性僅與鄰居的運動方向保持一致,不能很好地模仿群體的運動,所以個體的運動方向也要與群體的平
7、均運動方向一致。公式表示為:c、可變速性對個體而言,由于視野半徑是有限的,它只能根據(jù)自己認(rèn)為的最優(yōu)方向進行運動,在鄰居的運動方向十分混亂時,它雖然可以上按照策略得出平均運動方向,但這個方向不能很好地刻畫出周圍的同步方向。在這種情況下,個體應(yīng)采取相對保守的策略,即雖然得出了平均運動方向并調(diào)整了運動方向,但由于對這個方向的不確定性,為了避免多次進行方向調(diào)整,可以采取降低自己的速度,僅當(dāng)鄰居們已經(jīng)達到同步的情況下,在令其以較快的速度進行運動。為了描述局域個體的同步程度,我們引入,稱為第個個體的視野半徑內(nèi)所有個體的同步序列數(shù):的取值在0到1之間,取值越大,表示該半徑內(nèi)個體方向一致性好,即局域同步程度越
8、高;取值越小,則表示該處個體局域同步程度越低。當(dāng)時,該半徑內(nèi)所有個體方向都一致。我們將個體的速率大小的變化范圍定為0,0.1。根據(jù)上面的討論,可變速率的運動協(xié)議應(yīng)當(dāng)滿足:a、當(dāng),即視野半徑內(nèi)所有個體達到同步時,該個體的速率為0.1。b、當(dāng),即視野半徑內(nèi)所有個體的運動狀態(tài)完全混亂時,該個體的速率接近0。這里,為一可調(diào)參數(shù),當(dāng)時,速度為原速度,當(dāng),個體的運動速度比原模型快,系統(tǒng)更易趨于同步。這樣,速率不僅具有改變下一時刻的作用,而且是攜帶信息的載體。這種信息就是個體的一致性序數(shù)。為了是所有的個體盡快達到同步,下一時刻速度方向的計算中,我們就利用這一信息,以加快收斂速度。當(dāng)個體超出活動范圍時,它會向
9、相反的方向運動,即:當(dāng)在活動范圍內(nèi)時,對各個原則的影響設(shè)置權(quán)重,在此更多地考慮聚集性和排列性。下一時刻的方向:下一時刻的位置:運用MATLAB模擬,可得: t=0s t=10st=30st=20s 4.2、問題二當(dāng)個體和捕食者的距離較短時,該個體迅速逃逸,暫時不考慮對群體的影響。小魚的方向捕食者小魚個體運動方向當(dāng)捕食者在其感知范圍內(nèi)且處于危險區(qū)之外,主要考慮個體逃逸,雖然此時群體的影響存在,但可假設(shè)它比較小;當(dāng)捕食者處于個體感知范圍之外時,按照第一問的原則進行運動。鄰居中心的運動方向鄰居平均的運動方向群體平均的運動方向群體中心的運動方向捕食者小魚個體運動方向捕食者下一時刻的方向:捕食者下一時刻
10、的位置:當(dāng)魚處在危險區(qū)時:下一時刻的方向:下一時刻的位置:當(dāng)魚能感知到捕食者,但不在危險區(qū)時:下一時刻的方向:下一時刻的位置:運用MATLAB模擬,可得: t=0s t=10s t=20s t=30s4.3、問題三采用Lead-follower模型,假設(shè)魚群中有一部分個體是信息豐富者,設(shè)置含有食物的環(huán)境,這一部分個體最先感知到食物的存在,并以一定速率接近食物.建立在第一問的基礎(chǔ)上,由于個體之間有運動的聯(lián)系,靠近信息豐富者的個體會感知到鄰居的運動,這部分個體會首先向信息豐富者靠攏,并使自身的運動方向向信息豐富者的運動方向轉(zhuǎn)移,使得有更多的個體向食物運動。再有了多數(shù)個體向食物運動后,剩下的少部分離
11、信息豐富較遠的個體,由于必須向整體的中心和平均方向靠攏的原則,所以這部分個體會先向整體靠近,然后感知到向食物運動的鄰居,接著使自己的位置和速度方向向食物轉(zhuǎn)移。對于信息豐富者,幾乎不受群體的影響,只考慮排斥性,但是速度不能太快,否則,就不能達到帶動群體的效果,以最大速度的1/8做為信息豐富者的速度。信息豐富者下一時刻的方向:信息豐富者下一時刻的位置:當(dāng)其他魚接近食物時,它們的速度也會發(fā)生變化: 運用MATLAB模擬,可得: t=0s t=10s t=20s t=30s五、模型的優(yōu)缺點5.1、模型的優(yōu)點(1)、模型中給出的原則較好地揭示了動物集群運動行為的本質(zhì)。(2)、用MATLAB進行仿真,結(jié)果
12、貼近實際。5.2、模型的缺點(1)、表達式中的權(quán)重都是人為規(guī)定的,有一定偏差。(2)、第三問中的食物沒有考慮實際情況,將其固化,現(xiàn)實中會有水流等因素的影響而改變食物的位置。六、參考文獻1趙建,曾建潮,魚群集群行為的建模與仿真,太原科技大學(xué)2班曉娟,寧淑榮,涂序彥,人工魚群高級自組織行為研究3田寶美,汪秉宏,基于Vicsek模型的自驅(qū)動集群動力學(xué)研究,中國科學(xué)技術(shù)大學(xué)4王小紅,基于多Agent的人工魚群自組織行為研究,北京大學(xué)5翟超,張海濤,生命群協(xié)調(diào)行為模型的改進及同步控制研究,華中科技大學(xué)七、附錄8.1、問題一的程序代碼:pos=cell(1,30);for i=1:30 posi=rand
13、(1,1)*10,rand(1,1)*10,rand(1,1)*10 %定義30個個體endx=zeros(1,30);y=zeros(1,30);z=zeros(1,30);v=0.1; %最大速度direc1=cell(1,30); %定義各個方向向量direc2=cell(1,30); direc3=cell(1,30);direc4=cell(1,30);direc7=cell(1,30);direc8=cell(1,30);cons=zeros(1,30);for i=1:30 direc1i=rand(1,1)*10,rand(1,1)*10,rand(1,1)*10-posi;
14、direc2i=zeros(1,3); direc3i=zeros(1,3); direc4i=zeros(1,3); endfor t=1:1000for i=1:30 m=0;n=0;k=0;l=0,0,0;direc7i=zeros(1,3); direc8i=zeros(1,3); for j=1:30 if j=i continue else for r=1:30 direc7i=(direc7i+posr-posi)./r; %內(nèi)聚性和排列性 direc8i=(direc8i+direc1r)./r; end if (norm(posi-posj)<=5)&&
15、(norm(posi-posj)>=0.1) %向心性和同向性 m=m+1;k=k+norm(direc1j);l=l+direc1j; direc2i= (direc2i+(posj-posi)./m; direc3i=(direc3i+direc1j)./m; cons(i)=norm(l)/k; elseif norm(posi-posj)<0.1 n=n+1; direc4i=(direc4i+posi-posj)./n; %排斥性 end end end if (posi(1)>=10)|(posi(2)>=10)|(posi(1)<=0)|(posi(
16、2)<=0)|(posi(3)>=10)|(posi(3)<=0) direc1i=direc1i*(-1); %限定個體活動范圍 else direc1i=0.1*direc1i+0.1*direc2i+0.1*direc3i+0.1*direc4i+0.3*direc7i+0.3*direc8i; end posi=posi+direc1i/norm(direc1i)*v*exp(5*(cons(i)-1);endfor i=1:30 x(i)=posi(1); y(i)=posi(2); z(i)=posi(3);endplot3(x,y,z,'.')a
17、xis(0 10 0 10 0 10,'square','manual')grid on;pause(0.01)end8.2、問題二的程序代碼:pos=cell(1,100);for i=1:100 posi=rand(1,1)*5,rand(1,1)*5,rand(1,1)*5; %縮小活動范圍至5*5*5endpre=rand(1,1)*5,rand(1,1)*5,rand(1,1)*5;direcpre=pos1-pre;for i=2:100 %增加個體數(shù)目至100 if norm(posi-pre)<norm(direcpre) direcpre
18、=posi-pre; endend x=zeros(1,100);y=zeros(1,100);z=zeros(1,100);v=0.1;direc1=cell(1,100);direc2=cell(1,100);direc3=cell(1,100);direc4=cell(1,100);direc5=cell(1,100);direc6=cell(1,100);direc7=cell(1,100);direc8=cell(1,100);cons=ones(1,100);for (i=1:100) direc1i=rand(1,1)*5,rand(1,1)*5,rand(1,1)*5-posi
19、; direc2i=zeros(1,3); direc3i=zeros(1,3); direc4i=zeros(1,3); direc7i=zeros(1,3); direc8i=zeros(1,3);endfor t=1:2000 pre=pre+direcpre/norm(direcpre)*1.1*v/10;for i=1:100 m=0; n=0; k=0; l=0,0,0; direc5i=zeros(1,3); direc6i=zeros(1,3); for j=1:100 if j=i continue else direc7i=(direc7i+posj-posi)./j; d
20、irec8i=(direc8i+direc1j)./j; if( norm(posi-posj)<=5)&&(norm(posi-posj)>=0.01) m=m+1;k=k+norm(direc1j);l=l+direc1j; direc2i= (direc2i+(posj-posi)./m; direc3i=(direc3i+direc1j)./m; cons(i)=norm(l)./k; elseif norm(posi-posj)<0.01 n=n+1; direc4i=(direc4i+posi-posj)./n; end end end if no
21、rm(posi-pre)<=1 %定義危險區(qū)域 direc5i=posi-pre; direc6i=(-1)*direcpre; direc1i=direc5i+direc6i; posi=posi+(0.5*direc5i+0.5*direc6i)*v; if norm(posi-pre)<=0.1 posi=-111,-11,-11;direcpre=rand(1,1)*10,rand(1,1)*10,rand(1,1)*10; end for r=1:30 if norm(posr-pre)<norm(direcpre) direcpre=posr-pre; end e
22、nd else if (posi(1)>=5)|(posi(2)>=5)|(posi(1)<=0)|(posi(2)<=0)|(posi(3)>=5)|(posi(3)<=0) direc1i=(-1)*direc1i; posi=posi+direc1i/norm(direc1i)*v; else if norm(posi-pre)<=2.5 %定義感知區(qū)域 direc5i=posi-pre; direc6i=direcpre*(-1); direc1i=0.1*direc2i+0.1*direc3i+0.1*direc4i+0.25* direc5
23、i+ 0.25*direc6i+0.1*direc7i+0.1*direc8i; posi=posi+direc1i/norm(direc1i)*v; else direc1i=0.1*direc1i+0.1*direc2i+0.1*direc3i+0.1*direc4i+0.3*direc7i+0.3*direc8i; posi=posi+direc1i/norm(direc1i)*v*exp(5*(cons(i)-1); end end end end if (pre(1)>=5)|(pre(2)>=5)|(pre(1)<=0)|(pre(2)<=0)|(pre(3
24、)>=5)|(pre(3)<=0) direcpre=(-1)*direcpre; end pre=pre+direcpre/norm(direcpre)*1.1*v/10; for i=1:100 x(i)=posi(1); y(i)=posi(2); z(i)=posi(3);endplot3(x,y,z,'.',pre(1),pre(2),pre(3),'o')axis(0 5 0 5 0 5,'square','manual');grid on;pause(0.1);end8.3、問題三的程序代碼:pos=ce
25、ll(1,30);food=5,5,5; %確定食物位置for i=1:30 posi=rand(1,1)*10,rand(1,1)*10,rand(1,1)*10endx=zeros(1,30);y=zeros(1,30);z=zeros(1,30);v=0.1;direc1=cell(1,30);direc2=cell(1,30);direc3=cell(1,30);direc4=cell(1,30);direc8=cell(1,30);direc9=cell(1,30);cons=zeros(1,30);for i=1:30 direc1i=rand(1,1)*10,rand(1,1)*
26、10,rand(1,1)*10-posi; direc2i=zeros(1,3); direc3i=zeros(1,3); direc4i=zeros(1,3); direc7i=zeros(1,3); direc8i=zeros(1,3);endfor t=1:2000 for i=1:10 %信息豐富者行為 n=0; for j=1:30 if norm(posi-posj)<0.1; n=n+1; direc4i=(direc4i+posi-posj)./n; end end if norm(posi-food)>=0.1 posi=posi+(0.5*direc4i+0.5*(food-posi)/norm(0.5*direc4i+0.5*(food-posi)*v/8; end end for i=11:30 %普通個體行為 if norm(posi-food)<=3 direc1i=direc1i+0.5*(food-posi); end m=0;n=0;k=0;
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 不安全行為的糾正和改進措施
- 2025年度美食節(jié)廚師長臨時兼職與宣傳合作合同3篇
- 2025年度化妝品退換貨及安全標(biāo)準(zhǔn)合同
- 電容式傳感器課件2
- 《公交知識競賽》課件
- 【中學(xué)】健康教育課件 眼與視覺
- 二零二五年度旅游度假區(qū)建筑裝修承包合同4篇
- 二零二五年度面料輔料采購與供應(yīng)鏈管理合同4篇
- 2024版食堂廚師崗位聘任合同書版B版
- 《供應(yīng)鏈管理方法》課件
- 城市軌道交通的網(wǎng)絡(luò)安全與數(shù)據(jù)保護
- 英國足球文化課件
- 《行政職業(yè)能力測驗》2023年公務(wù)員考試新疆維吾爾新疆生產(chǎn)建設(shè)兵團可克達拉市預(yù)測試題含解析
- 醫(yī)院投訴案例分析及處理要點
- 燙傷的安全知識講座
- 工程變更、工程量簽證、結(jié)算以及零星項目預(yù)算程序?qū)嵤┘殑t(試行)
- 練習(xí)20連加連減
- 五四制青島版數(shù)學(xué)五年級上冊期末測試題及答案(共3套)
- 員工內(nèi)部崗位調(diào)換申請表
- 商法題庫(含答案)
- 鋼結(jié)構(gòu)用高強度大六角頭螺栓連接副 編制說明
評論
0/150
提交評論