Swarm Flocking 經典蜂擁模型大全

1. Reynold Boid 模型

  Boid 模型是 Reynold 在1986 年建立的一個用來模擬羣體行爲的空間模型,是首次針對蜂擁運動提出的著名模型。在該模型中定義了三個基本規則:

i)分離(Separation),即每個個體受到其鄰域內的其他個體的排斥力的矢量和,以避免和附近的智能體碰撞。

ii)聚合(Cohesion),即每個個體受到其鄰域內的其他個體的吸引力的矢量和,以保持整個團隊的緊湊。

iii)速度匹配(Alignment),即讓每個個體與其鄰域內的其他個體的平均速度保持一致,最終使整個團隊的速度趨於一致。

  在此三條規則的基礎上,諸多學者對蜂擁運動展開了深入研究。


2. Vicsek 模型

2.1 參考文獻

Vicsek, Tamás, et al. “Novel type of phase transition in a system of self-driven particles.” Physical review letters 75.6 (1995): 1226.

2.2 模型定義

  在 Vicsek 模型對中,羣體中的個體可以與其周圍半徑爲rr內的其他個體相互作用,在仿真開始時,個體位置和速度隨機分佈,並且每個個體運動速度均爲vv且一直保持不變,每一步的仿真時間爲Δt\Delta_{t},則個體的位置更新可以表示爲:
xi(t+1)=xi(t)+vi(t)Δtx_i(t+1)=x_i(t)+v_i(t)\Delta_{t}
角度的更新可以表示爲:
θi(t+1)=θ)r+Δθ\theta_i(t+1)=\left\langle {\theta)} \right\rangle_r +\Delta{\theta}
其中θ(t)r\left\langle {\theta(t)} \right\rangle_r表示在個體ii通信範圍rr內羣體中個體的平均速度(包含個體ii)。平均方向角由arctan[sin(θ(t))r/cos(θ(t))r]arctan[\left\langle {sin(\theta(t))} \right\rangle_r/ \left\langle {cos(\theta(t))} \right\rangle_r]。其中Δθ\Delta{\theta}表示噪音,是以均勻概率隨機從[η/2,η/2][-\eta/2,\eta/2]中取得的。同時還有三個隨機參數:η\etaρ\rhovv,其中vv是粒子在兩次相鄰步長之間個體運動的距離。

3. Cucker-Smale 模型

3.1 參考文獻

Cucker, Felipe, and Steve Smale. “Emergent behavior in flocks.” IEEE Transactions on automatic control 52.5 (2007): 852-862.

3.2 模型定義

  Cucker-Smale 模型與上面的 Vicsek 模型相似,但是該模型提供了詳細的收斂性證明。在該模型中位置更新函數如下:
xi(t+1)=xi(t)+vi(t)Δtx_i(t+1)=x_i(t)+v_i(t)\Delta_{t}
使用速度更新函數代替 Vicsek 模型中的角度更新函數
vi(t+1)vi(t)=j=1kaij(vj(t)vi(t)){{v}_{i}}(t+1)-{{v}_{i}}(t)=\sum\limits_{j=1}^{k}{{{a}_{ij}}({{v}_{j}}(t)-{{v}_{i}}(t))}
其中aija_{ij}是與個體ii和個體ii位置相關的函數
aij=ηxixj2{{a}_{ij}}\text{=}\eta {{\left\| {{x}_{i}}-{{x}_{j}} \right\|}^{2}}
η(y)\eta(y)是遞減函數
η(y)=K(σ2+y)β\eta (y)=\frac{K}{{{({{\sigma }^{2}}+y)}^{\beta }}}


3. Couzin模型

3.1 參考文獻

Couzin, Iain D. , et al. “Collective Memory and Spatial Sorting in Animal Groups.” Journal of Theoretical Biology 218.1(2002):1-11.

3.2 模型定義

在這裏插入圖片描述
  個體在原點中心處,並將其周圍空間劃分爲三個區域:zorzor = 排斥區,zoozoo = 速度匹配區,zoazoa = 吸引區。同時改模型還考慮個體的“盲區”,其位於個體背後,即個體只能感知α\alpha範圍內的信息。

3.3 控制規律

  該模型控制分爲三個階段分別對應於zorzorzoozoozoazoa 三個區域。其中優先級最高的爲zorzor

1)當個體ii視野內的zorzor區域內有個體時,(忽略背後360-α\alpha範圍內的個體),其受到zorzor區域內個體的排斥,則下一時刻的速度可以表示爲:

dr(t+τ)=jinrrij(t)rij(t){{d}_{r}}(t+\tau )=-\sum\limits_{j\ne i}^{{{n}_{r}}}{\frac{{{r}_{ij}}(t)}{|{{r}_{ij}}(t)|}}

其中rij=cjcicjcir_{ij}=\frac{c_j-c_i}{c_j-c_i|}cic_icjc_j分別表示個體iijj的位置矢量,nrn_r表示位於個體iizorzor區域內的其他個體的數量。

2)當個體ii視野內的zorzor區域內沒有其他個體時,即nr=0n_r=0,這時個體對zoozoozoazoa 區域中的個體做出反應。

  • 對於zoozoo區域內個體:

do(t+τ)=jinovj(t)vj(t){{d}_{o}}(t+\tau )=-\sum\limits_{j\ne i}^{{{n}_{o}}}{\frac{{{v}_{j}}(t)}{|{{v}_{j}}(t)|}}

  • 對於zoazoa區域內個體:

da(t+τ)=jinarij(t)rij(t){{d}_{a}}(t+\tau )=-\sum\limits_{j\ne i}^{{{n}_{a}}}{\frac{{{r}_{ij}}(t)}{|{{r}_{ij}}(t)|}}

其中non_onan_a分別爲位於個體iizoozoozoazoa 區域中的個體的數量,vjv_j表示個體jj的速度矢量。

  最終下一時刻個體ii的期望速度di(t+τ)d_i(t+\tau)定義爲:
1)若zorzor區域內有其他個體,即nr0n_r \ne 0,則
di(t+τ)=dr(t+τ)d_i(t+\tau)=d_r(t+\tau)
2)若zorzor區域內沒有其他個體,即nr=0n_r=0,則:

  • zoozoo區域內有其他個體,zoazoa區域內沒有,即no0n_o \ne0na=0n_a=0,則
    di(t+τ)=do(t+τ)d_i(t+\tau)=d_o(t+\tau)
  • zoazoa區域內有其他個體,zoozoo區域內沒有,即na0n_a \ne0no=0n_o=0,則
    di(t+τ)=da(t+τ)d_i(t+\tau)=d_a(t+\tau)
  • zoozoo區域和內zoazoa曲雲均有其他個體,即no0n_o \ne0na0n_a \ne0,則
    di(t+τ)=12[do(t+τ)+da(t+τ)]d_i(t+\tau)=\frac{1}{2}[d_o(t+\tau)+d_a(t+\tau)]

確定下一時刻的期望速度di(t+τ)d_i(t+\tau)後,個體ii在下一時刻從當前速度vi(t)v_i(t)向速度di(t+τ)d_i(t+\tau)轉動角度θ\theta,得到下一時刻速度vi(t+τ)v_i(t+\tau),這裏的θ\theta應該小於最大轉動角度θτ\theta_{\tau}。至此,該模型建立完畢。


4. Gábor Vásárhelyi模型

4.1 參考文獻

Vásárhelyi Gábor, et al. “Optimized flocking of autonomous drones in confined environments.” Science Robotics 3.20(2018):eaat3536-.

4.2 模型定義

一個可調的自推植絨模型

4.2.1 排斥速度 Repulsion

  當個體ii與其周圍的個體jj的距離小於距離閾值r0repr^{rep}_0時,個體jj對個體ii產生排斥速度項。個體ii周圍r0repr^{rep}_0距離內沒有其他個體時,該項爲0。則排斥速度項定義如下:
vijrep={prep(r0reprij)rirjrijif rij<r0rep0otherwisev_{ij}^{rep}=\left\{ \begin{matrix} {{p}^{rep}}\cdot (r_{0}^{rep}-{{r}_{ij}})\cdot \frac{{{r}_{i}}-{{r}_{j}}}{{{r}_{ij}}} & if\text{ }{{r}_{ij}}<r_{0}^{rep} \\ 0 & otherwise \\ \end{matrix} \right.
其中vijrepv_{ij}^{rep}爲個體ii收到個體jj的影響產生的速度項,prepp^{rep}爲排斥速度項的增益係數(線性增益)。

  如下圖所示,左邊藍色斜線爲vijrepv_{ij}^{rep}在參數r=10r=10p=1p=1v=10v=10時的的排斥速度項。

在這裏插入圖片描述
因此,個體ii最終排斥速度項定義如下:
virep=jivijrepv_{i}^{rep}=\sum\limits_{j\ne i}{v_{ij}^{rep}}

4.2.2 速度對齊項 Velocity alignment term

  以往的工作通常使用冪律函數,使個體與羣體內其他個體的速度差在空間中漸近衰減爲零。這些模型在較低速度範圍內的某些特定條件下可以正常工作。速度對齊項也必須充當阻尼介質,以減少由於對例如斥力的延遲和噪聲導致的自激振盪現象。它必須是局部的,但同時還必須具有可擴展性,以適應較大的速度(因爲可能存在較大的速度差異)。最後一個條件意味着如果限制了代理的加速度,則應在速度差較大時應該放寬制動距離,以避免碰撞。

  因此文中使用理想的制動曲線,即空間中平滑的速度衰減函數D(.)D(.):在高速時保持恆定加速度,在低速時保持指數速度,其定義如下:
D(r,a,p)={0if r0rpif 0<rp<a/p2ara2/p2otherwiseD(r,a,p)=\left\{ \begin{matrix} 0 & if\text{ }r\le 0 \\ rp & if\text{ }0<rp<a/p \\ \sqrt{2ar-{{a}^{2}}/{{p}^{2}}} & otherwise \\ \end{matrix} \right.
其中,rr是代理與預期停止點之間的距離,aa是首選加速度,pp是線性增益,pp還確定了減速的兩個階段之間的交叉點。

  速度對齊項的基本原理是禁止給定距離上的兩個代理在此距離之外的速度差大於此理想制動曲線所允許的值,因此在其他基於瞬時力的方程式中用作運動規劃項,該項定義如下:

vijfrictmax=max(vfrict,D(rijr0frict,africt,pfrict))v_{ij}^{frict\max }=\max ({{v}^{frict}},D({{r}_{ij}}-r_{0}^{frict},{{a}^{frict}},{{p}^{frict}}))

vijfrict={cfrict(vijvijfrictmax)vivjvijif vij>vijfrictmax0otherwisev_{ij}^{frict}=\left\{ \begin{matrix} {{c}^{frict}}({{v}_{ij}}-v_{ij}^{frict\max })\cdot \frac{{{v}_{i}}-{{v}_{j}}}{{{v}_{ij}}} & \text{if }{{v}_{ij}}>v_{ij}^{frict\max } \\ 0 & \text{otherwise} \\ \end{matrix} \right.

  在上面的等式中,CfrictC^{frict}是速度對準誤差減小的線性係數;vfrictv^{frict}是速度鬆弛,以允許一定量的速度差,而與代理之間的距離無關,r0frictr^{frict}_0是代理ii與個體jj相關且還沒有到達個體jj所在位置的停止點的距離。pfrictp^{frict}africta^{frict}是線性增益和對齊的加速度參數,並且vij=vivjv_{ij} = | v_i − v_j |是代理iiii之間的速度差值。 爲代理ii計算的相對於其他代理的總速度對齊項(與排斥項類類似)似,其定義爲:
vifrict=jivijfrictv_{i}^{frict}=\sum\limits_{j\ne i}{v_{ij}^{frict}}

4.2.3 牆壁和障礙物的作用 Interaction with walls and obstacles

  文章使用競技臺對羣體進行吸引和約束,並替代了傳統羣體對羣體的吸引力。羣體中的個體朝着競技場飛行,進入競技場後個體受到競技場牆壁的排斥力,以確保個體在競技場內運動。
visshillmax=D(ris,r0shill,ashill,pshill)v^{shillmax}_{is}=D(r_{is},r^{shill}_0,a^{shill},p^{shill})

vijwall=vijfrict(C1)={(visvisshillmax)vivsvisif vis>visshallmax0otherwise(9)\begin{aligned} & v_{ij}^{wall}=v_{ij}^{frict}(C-1) \\ & =\left\{ \begin{matrix} ({{v}_{is}}-v_{is}^{shill\max })\cdot \frac{{{v}_{i}}-{{v}_{s}}}{{{v}_{is}}} & \text{if }{{v}_{is}}>v_{is}^{shall\max } \\ 0 & \text{otherwise} \\ \end{matrix} \right. \end{aligned} \tag{9}
  其中不允許壁的速度鬆弛,因此將誤差比例項(CshillC^{shill})保持爲1,以實現最強的牆壁對齊。在上面的等式中,ss是指分別爲所有牆多邊形邊緣定義的代理; ris=rirsr_{is} = | r_i-r_s |,其中rsr_s是牆壁代理的位置,位於任意形狀的凸壁多邊形的邊緣,且相對於代理ii的最近點;vis=vivsv_{is} = | v_i − v_s |,其中vsv_s是競技場代理的速度,垂直於競技場指向內部,幅度爲vshillv^{shill}

  可以使用相同的概念來避免在競技場內出現凸形障礙物,但是與上文針對競技場所描述的不同,這裏代理需要遠離障礙物而不是向其內移動。另一個區別是,所有競技場的牆壁會在其內部生成一個分離的代理,但障礙物卻是在障礙物靠近個體ii的表面生成一個代理。因此,對於每個智能體ii和障礙物ss,我們都可以定義速度分量障礙,其類似於方程式 9,使用與競技場相同的參數。

4.2.4 自推進項 Self-propelling term

  該項保證個體ii可以一直保持在運動狀態,與實際速度方向viv_i相同,其大小爲固定值vflockv^{flock}

4.2.5 最終速度

  最終個體ii的期望速度綜合上述各項,其定義爲:
v~id=vivivflock+virep+vifrict+sviswall+svisobstacle\tilde{v}_{i}^{d}=\frac{{{v}_{i}}}{\left| {{v}_{i}} \right|}{{v}^{flock}}+v_{i}^{rep}+v_{i}^{frict}+\sum\limits_{s}{v_{is}^{wall}}+\sum\limits_{s}{v_{is}^{obstacle}}

除此之外,最終速度仍需滿足約束條件,即,引入速度限制vmaxv^{max}如果超出極限,則減小其大小:
vid=v~idv~idmin{v~id,vmax}v_{i}^{d}=\frac{\tilde{v}_{i}^{d}}{\left| \tilde{v}_{i}^{d} \right|}\cdot \min \{\left| \tilde{v}_{i}^{d} \right|,{{v}^{\max }}\}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章