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