人工水母搜索算法--JS


1. 人工水母算法原理背景

      水母生活在世界上不同深度和溫度的水中。它們酷似鍾狀,一些水母的直徑小於1cm,然有些水母直徑則非常大。它們有各種各樣的顏色、大小和形狀。大多數水母偏好海洋環境。它們進食的方式有兩種:1.利用觸手把食物送進嘴里;2.以觸手過濾水中的微小的浮游生物,經口腕溝靠纖毛作用送入口.然而,它們捕食方式也有兩種:1.食用洋流帶來的任何食物(被動);2.主動捕食獵物,利用觸手刺中獵物,令其動彈不得(主動)。、
      水母利用觸手刺中獵物,釋放毒素,令其麻木。它們不會攻擊人,但是觸碰到它們的人可能會被蟄死。有些水母刺人很疼,但是不是致命的。表現的症狀有引起疼痛、紅腫、瘙癢、麻木等。然而,箱水母,又稱海黃蜂,非常危險,致人死亡。這類水母多數出現在澳大利亞、菲律賓沿海水域,印度洋和太平洋中部。當它們聚集在一起形成水母潮時,才是最危險的。
      水母可以自己控制移動。它們下側像一把傘一樣合攏,利用體內噴水反射前進。盡管它們擁有這種能力,但是它們大多數漂流在水中依靠洋流和潮汐運動。當條件有利時,水母會形成群,這種被稱為水母潮。水母是一種脆弱的生物,維持水母潮的關鍵是它們相對洋流的方向,才不至於被擱淺。
      水母潮形成的因素包括:洋流、可利用的營養物、氧氣的可用性、捕食和溫度等。在這些因素中,洋流是水母潮形成的主要因素。因為水母可以生活在高咸度和低氧區域,所以它們無須和其他生物競爭食物。咸水含有大量的碘,有利於水母息肉的產生。海水溫度的上升,有利於水母潮的產生。因為在這種情況下,水母更容易存活。總而言之,水母潮的形成離不開生態系統和洋流地影響。
      洋流(Ocean Current),即海流,也稱洋面流,是指海水沿着一定方向有規律的具有相對穩定速度的水平流動,是從一個海區水平或垂直地向另一個海區大規模的非周期性的運動,是海水的主要運動形式。洋流的尺度非常大。例如,在開闊的海洋中,洋流移動大約是次中等尺度;它們的大小可能只有幾百米左右的中尺度特征,或者少數可能在幾十公里左右。它們可能橫穿或環繞整個海洋盆地,就像墨西哥灣流(北大西洋)、黑潮流(太平洋)和阿古拉斯洋流(印度洋)。形成洋流地主要因素是太陽輻射和海平面地風。
      水母自身的運動和洋流的運動促成了水母潮的形成,這種現象在海洋中隨處可見。水母去的地方,食物數量各不相同。因此,通過食物比例的比較,確定最佳位置。

2. 人工水母算法數學模型

2.1 模型假設

   2020年Chou等人提出人工水母算法.該算法基於三個理想化規則:

  1. 水母要么跟隨洋流,要么在群內自身移動,這兩者運動由時間控制機制切換;
  2. 在海洋中,水母尋找食物。它們更多被食物數量多的位置吸引;
  3. 找到的食物數量由該位置和對應的目標函數決定。

2.2 洋流

      因為洋流中含有大量水母所需的營養物,所以水母才會被吸引過來。洋流的方向由水母種群位置的平均值和當前水母最好位置決定。洋流方向的定義如下:

\[\vec{trend}=\frac{1}{n_{pop}}\Sigma{\vec{trend_{i}}}=\frac{1}{n_{pop}}\Sigma{(X^*-e_c\frac{\Sigma{X_i}}{n_{pop}})}=X^*-e_c\mu \]

Set  \(df=e_c\mu\)

即,

\[\vec{trend}=X^*-df \]

其中,\(n_{pop}\)是水母種群數目;\(X^*\)表示當前水母種群中最好的位置;\(e_c\)是吸引力因子;\(\mu\)表示種群的平均位置;\(df\)是當前最好位置於平均位置的差分。
      基於水母所有維度的正態分布假設,平均位置的\({\pm\beta\sigma}\)領域內包含所有水母的可能性,其中\({\sigma}\)是分布的標准差。因此,

\[df = \beta\times\sigma\times{rand}^{f}(0,1) \]

Set  \({\sigma={rand}^{\alpha}(0,1)\times\mu}\)
因此,

\[df=\beta\times{rand}^f(0,1)\times{rand}^\alpha(0,1)\times\mu \]

對上式簡化如下:

\[df=\beta\times{rand}(0,1)\mu \]

其中,\({e_c=\beta\times{rand}(0,1)}\)
從而,

\[\vec{trend}=X^*-\beta\times{rand}(0,1)\times\mu \]

每個水母現在位置的更新公式如下:

\[X_i(t+1)=X_i(t)+rand(0,1)\times\vec{trend} \]

即,

\[X_i(t+1)=X_i(t)+rand(0,1)\times(X^*-\beta\times{rand}(0,1)\times\mu) \]

其中,\({\beta>0}\)是分布系數,\({\vec{trend}}\)的模有關。基於數值實驗中的敏感度分析,\({\beta=3}\).

2.3 水母種群

      在水母種群中,有兩種運動方式:主動運動和被動運動。水母群剛剛形成,多數水母進行被動運動,經過一段時間后,它們逐漸進行主動移動。
      被動運動:水母圍繞自身位置移動,位置更新公式如下:

\[X_i(t+1)=X_i(t)+\gamma\times{rand}(0,1)\times(U_b - L_b) \]

其中,\(U_b\)\(L_b\)分別表示搜索空間的上下界;\(\gamma>0\)是移動系數,與水母位置周圍的運動長度有關。基於數值實驗中的敏感度分析,\(\gamma=0.1\).
      為了模擬主動運動,隨機選取兩個水母位置\({i,j}\)來決定移動方向。當\({j}\)位置的食物數量超過\({i}\)位置的食物數量,則后者朝前者移動。反之,遠離前者。所以,種群中的所有的水母朝更好的位置發現食物。
1.移動方向公式如下:

\[\vec{Step}=X_i(t+1)-X_i(t) \]

其中,\(\vec{Step}={rand}(0,1)\times\vec{Direction}\)

\[ \vec{Direction} = \begin{cases} X_j(t)-X_i(t), & \text{if $f(X_i)\geq{f(X_j)}$} \\ X_i(t)-X_j(t), & \text{if $f(X_i)\leq{f(X_j)}$} \end{cases} \]

注意:這里適應度函數值是最小值。
其中,\(f\)是目標函數。
因此,

\[X_i(t+1)=X_i(t)+\vec{Step} \]

2.4 時間控制機制

      洋流中含有大量的營養物,所以引來水母。隨着時間的流逝,越來越多的水母聚集在一起形成水母群。隨着洋流中溫度或風力的變化,種群中的水母朝另外洋流移動,並導致另外的水母群形成。在水母群中有被動運動和主動運動。剛開始水母側重被動運動,隨着時間的流逝,主動運動越來越受水母的歡迎。
      介於這種狀況,作者引入時間控制機制。時間控制機制利用時間控制函數\(c(t)\)\(c_0\)控制洋流和種群內部運動之間的轉換。時間控制函數是隨時間從0-1波動的隨機值。公式如下:

\[c(t)=\vert(1-\frac{t}{Max_{iter}})\times(2\times{rand}(0,1)-1)\vert \]

其中,\(C_0=0.5\). 若\(C(t)\)值大於0.5進行洋流,反之進行群內運動。其他,參數和別的算法一樣。

3. 初始化種群

      水母種群通常都是隨機初始化的。這種方法的缺陷是收斂速度慢,易陷入局部最優且種群多樣性低。為了提高初始化種群多樣性,許多混沌映射被開發。比如,logistic map、tent map、Liebovitch map. 其中,logistic是最簡單的一種混沌映射。這種初始化的種群比隨機初始化種群更具有多樣性。映射公式如下:

\[X_{i+1}=\eta{X_{i}(1-X_{i})},0\leq{X_{0}}\leq1 \]

\(X_i\)是第\(i\)個水母位置的邏輯混沌映射值;\(X_0\)用於產生初始種群,\(X_0\in(0,1),X_0\notin\{0.0,0.25,0.5,0.75,1.0\},\eta=0.4\)

4. 邊界處理

      海洋遍布世界。地球近似球形,所以當水母移動超出搜索邊界,將會超邊界相反的方向移動。公式如下:

\[ \begin{cases} X^{'}_{i,d}=(X_{i,d}-U_{b,d})+L_b(d), &\text{ if $X_{i,d}>U_{b,d}$}\\ X^{'}_{i,d}=(X_{i,d}-L_{b,d})+U_b(d), &\text{ if $X_{i,d}<U_{b,d}$} \end{cases} \]

其中,\(X_{i,d}\)是第\(i\)個水母位置\(d\)維的分量;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM