韓毅 徐梓斌 沈國珍 張亮 蔡建湖
摘 要:目前,由于工程領域中獲得復雜問題最優解具有相當大的難度,工程師們只能退而求其次,寄希望于在有限的時間內獲取問題的近似最優解。在此背景下,眾多智能優化算法相繼問世。文獻[1]提出了一種受自然界口孵魚啟發的新穎全局優化算法。口孵魚算法(Mouth Brooding Fish Algorithm, MBFA)模擬生物在生態系統中生存和繁殖所采用的共生交互策略,口孵魚利用大嘴作為保護幼魚免受外界危險的屏障,算法考慮了口孵魚的運動行為、移動距離和在母魚口附近對幼魚的散布行為,提出了口孵魚運動、幼魚散布和保護行為算子,幫助算法尋找潛在的最佳方案。
關鍵詞:智能優化;口孵魚;共生交互;散布
在海洋中,慈鯛魚屬的魚類與一般魚類不同,它們投入大量精力撫養小魚。這些魚類不通過產大量的魚卵這種形式去消耗能量和資源,而是繁殖相對較少的后代并在后代完全獨立之前盡心呵護。雖然后代獨立以后仍然是小魚,但它們與其他小魚相比更成熟、體型更大并且速度更快,可以獲取更好的生存機會。雖然許多水下生物都有保護自己免受傷害的策略(例如偽裝),但并不是所有的水下生物都有保護自己幼仔的方法。口孵魚類以其照顧和保護后代的能力而聞名,這主要是由于一種非常不尋常的技術。如圖1a所示,口孵魚類用它們的嘴作為庇護所來保護它們的幼魚。口孵魚類包括慈鯛、海鯰魚、天竺鯛、巴格里德鯰魚、棱頭鱸、后頜 ?、吻口魚和金龍魚。非洲慈鯛是一種母魚,是一種在卵孵化后仍能繼續保護其幼魚的魚類。慈鯛會在危險出現時使用獨一無二的動作提示,讓幼仔知道是時候游回去尋求保護了。在小魚長大過程中,母親的庇護所沒有足夠的空間容納所有小魚,在危險的時候,一些弱小的慈鯛不得不獨自面對危險和自然環境(圖1b)。
算法特征
一、主要參數
MBF算法受到口孵魚生命周期過程的啟發,包含5個控制參數:慈鯛種群數量(nFish)、母魚位置(SP)、小魚(細胞)散播距離(Dis)、散播概率(Pdis)和母魚位置阻尼(SPdamp)。算法中的每條魚都是問題解,由一些代表解中變量的細胞(維度)所組成(圖2)。口孵魚算法的主要考慮慈鯛圍繞它們母親的運動以及自然或危險對這些運動的影響。
二、慈鯛運動行為和外界影響
慈鯛運動行為和外界影響包括:自主活動、弱小魚苗的附加運動、輪盤賭選擇交配個體和鯊魚攻擊或外界危險對慈鯛運動的影響。此外,某些因素也會對慈鯛魚的運動產生影響。
(1)第一個因素是母親的力量或源點SP對慈鯛運動的影響。這個因素只影響運動距離,對運動方向沒有任何影響。力量或原點是在[0,1]之間的數值。從圖3中可以看出,通過增加力量值,運動距離增加,意味著慈鯛有一個強壯的母親,必須在海里緊緊跟隨。應該注意的是,增加力量值并不總是能找到最好的解。
在自然界中,4%的慈鯛群落或種群受到鯊魚或其他攻擊。因此,MBF算法對4%的種群使用了稱為鯊魚攻擊效應的額外運動,nshark=0.04×nFish,nshark是為鯊魚攻擊選擇的慈鯛魚數量。這種效應是保存解中的所有細胞編號,以及在迭代過程中當前迭代中全局最優解的細胞與上一次迭代中全局最優解中的對應細胞有60%及以上差異的次數。
MBF算法的停止準則是最大迭代次數。根據計算實驗結果,算法的種群大小、sp、Dis、Pdis和SPdamp的最佳取值為50、0.6、1.8、0.2和0.95。
算法執行步驟:
步驟1:初始化參數,計算nm和nshark等
步驟2:初始化種群,計算適應度函數
步驟3:保存個體最好解和全局最好解
步驟4:如果,當前迭代后的全局最好解與之前所有迭代中獲得的全局最好解的比值小于0.85(目標函數為求最小值),則采用effect-1、effect-2和effect-3來影響慈鯛魚群的移動。否則,采用effect-1、effect-2、effect-3和effect-4來影響慈鯛魚群的移動。
步驟5:移動步長檢查(不能超過ASDP或ASDN)
步驟6:更新慈鯛魚位置,采用鏡像效應處理超出搜索空間的位置。
步驟7:計算種群適應度函數
步驟8:更新全局和局部最優解
步驟9:檢查算法停止準則,滿足則結束并輸出全局最優解,未滿足則繼續步驟10。
步驟10:計算被排斥小魚(細胞)個數NCC
步驟11:利用公式(9)更新母魚位置(隨機取+或-符號)
步驟12:利用UASDP和UASDN檢查小魚的移動距離限制(母魚新位置與舊位置的差值)
步驟13:利用鏡像效應處理超邊界的解
步驟14:計算母魚適應值
步驟15:更新全局和個體最優解
步驟16:檢查停止準則,滿足則退出并輸出全局最優解,不滿足則繼續執行步驟17
步驟17:計算慈鯛魚群的輪盤賭選擇概率
步驟18:交叉變異產生新的魚代替親本魚
步驟19:計算新魚的適應度函數值
步驟20:更新全局和個體最優解
步驟21:檢查停止準則,滿足則退出并輸出全局最優解,不滿足則繼續執行步驟22
步驟22:若迭代次數大于1,則計算上一次迭代中的全局最優解和當前迭代中的全局最優解中對應細胞差異為60%及以上的細胞,利用公式(5)和公式(6)將上一次迭代中的全局最好解在自然力量驅使下進行位移。檢查超界情況,計算適應值并更新全局最優解和個體最優解。
步驟23:若迭代次數大于1,則更新鯊魚攻擊矩陣(由nVar和全局最好解的各細胞產生60%及以上差異的次數組成)。用公式(10)計算隨機選擇的進行鯊魚攻擊的慈鯛母魚的新位置,用UASDP和UASDN及鏡像效應處理超界情況。計算新位置的適應度函數值,更新全局和個體最好解。
步驟33:檢查停止準則,滿足則結束并輸出全局最好解,否則,返回步驟4。
結束語:
本文根據文獻[1]描述,基本還原了一種新型智能優化算法——口孵魚優化算法,再現了口孵魚算法的基本思想、重要公式和算法執行步驟。本文目的是起到拋磚引玉的作用,為智能優化領域的學者提供參考和借鑒作用。口孵魚算法本身并不完美,算法各細節的描述并不細致,邏輯性不強,這也給學者們在此基礎上,提出改進版本提供了研究土壤。
參考文獻:
[1]Jahani E, Chizari M. Tackling global optimization problems with a novel algorithm-Mouth brooding fish algorithm [J]. Applied Soft Computing, 2018, 62(1): 987-1002.