吳榮生
(漳州職業(yè)技術(shù)學(xué)院 電子信息學(xué)院,福建 漳州 363000)
海洋捕食者算法(Marine Predator Algorithm,MPA)是由 Faramarzi[1]提出的一種新穎的基于種群的群智能優(yōu)化優(yōu)化算法,其靈感主要來(lái)源于海洋捕食者不同的覓食策略以及捕食者和獵物之間的最佳遭遇率策略.文獻(xiàn)[1]的仿真結(jié)果表明,與遺傳算法(Genetic Algorithm ,GA)、粒子群優(yōu)化算法(Particle Swarm Optimization,PSO)、引力搜索算法(Gravitational Search Algorithm,GSA)、布谷鳥(niǎo)搜索(Cuckoo Search,CS)、麻雀搜索算法(Sparrow Search Algorithm,SSA)和協(xié)方差自適應(yīng)進(jìn)化策略(Covariance Matrix Adaptation Evolution Strategy,CMA-ES)相比,MPA具有較好的性能,已被廣泛用于處理實(shí)際的工程問(wèn)題,例如:光伏領(lǐng)域[2-4]、電力系統(tǒng)[5]、圖像分類[6-7]、任務(wù)調(diào)度[8].
MPA雖然已在多個(gè)領(lǐng)域中得到應(yīng)用,但對(duì)MPA的缺點(diǎn)的分析及改進(jìn)較少[9-10].MPA在進(jìn)行種群位置更新時(shí),主要是在最優(yōu)個(gè)體附近進(jìn)行搜索,而沒(méi)有利用更多個(gè)體的有效信息,容易導(dǎo)致種群多樣性降低,易于陷入局部最優(yōu);沒(méi)有設(shè)計(jì)算法停滯時(shí)的位置更新策略,僅利用原策略不利于幫助算法繼續(xù)尋優(yōu);設(shè)計(jì)魚(yú)類聚集裝置(Fish Aggregating Devices,F(xiàn)ADs)流程是用于增強(qiáng)種群多樣性,但是沒(méi)有判斷子代與父代的優(yōu)劣,一定程度上不利于算法尋優(yōu)和收斂.
針對(duì) MPA 存在的問(wèn)題,筆者提出混沌海洋捕食者算法(Choas Marine Predator Algorithm,CMPA),并通過(guò)CEC2014測(cè)試函數(shù)驗(yàn)證該算法的有效性和優(yōu)越性,實(shí)驗(yàn)表明CMPA能顯著提高算法的尋優(yōu)性能.
同大多數(shù)元啟發(fā)式算法類似,海洋捕食者算法是一種基于種群的智能優(yōu)化算法,初始解盡可能均勻分布在搜索空間內(nèi),即:
其中Xmin和Xmax分別表示種群變量的上下限,r1∈(0,1)為服從均勻分布的隨機(jī)向量.
MPA尋優(yōu)過(guò)程根據(jù)不同的速度比分為3個(gè)階段:階段一,獵物速度比捕食者速度快;階段二,獵物速度和捕食者速度相近;階段三,獵物速度比捕食者速度慢.在每個(gè)階段分別模仿捕食者和獵物在自然界中的運(yùn)動(dòng).
階段一:高速階段發(fā)生在迭代初期,此時(shí)獵物服從布朗運(yùn)動(dòng),捕食者主要進(jìn)行探索行為.該階段數(shù)學(xué)模型見(jiàn)公式(2):
其中是一個(gè)服從基于布朗運(yùn)動(dòng)的正態(tài)分布的隨機(jī)數(shù)向量,P是一個(gè)取值為5的常數(shù),∈(0,1)是一個(gè)均勻分布的隨機(jī)向量.iter表示當(dāng)前迭代數(shù),itermax表示最大迭代數(shù).
階段二:在第二階段,需要同時(shí)進(jìn)行開(kāi)發(fā)和探索,因此將種群分為兩部分,一部分進(jìn)行開(kāi)發(fā),另一部分進(jìn)行探索.其中獵物用于開(kāi)發(fā)過(guò)程,捕食者用于探索過(guò)程.該階段數(shù)學(xué)模型見(jiàn)公式(3)和公式(4).
對(duì)于第二部分種群,進(jìn)行探索行為,即:
階段三:作為最后一個(gè)階段,主要進(jìn)行開(kāi)發(fā)流程,該階段數(shù)學(xué)模型描述為:
此外,環(huán)境問(wèn)題會(huì)引起捕食者行為變化,F(xiàn)ADs是影響捕食者行為的一個(gè)因素,被視作這片搜索區(qū)域的局部最優(yōu),假設(shè)通過(guò)較長(zhǎng)步長(zhǎng)能夠跳出局部最優(yōu).FADs的影響可用公式(6)表示,即:
為增強(qiáng)MPA算法的性能,采用3種策略對(duì)算法進(jìn)行改進(jìn).首先利用立方混沌映射策略生成種群初始解,增加種群多樣性,提高算法的探索能力;其次利用混沌局部搜索策略增強(qiáng)算法的收斂性能;在算法停滯時(shí)使用高斯游走策略增強(qiáng)種群多樣性,幫助算法跳出局部最優(yōu);最后利用貪婪策略保證算法收斂效率.
群智能優(yōu)化算法的初始種群質(zhì)量對(duì)于算法的性能有很大影響,均勻分布的種群有利于算法在前期盡可能多的探尋搜索空間,增強(qiáng)算法的探索能力.
MPA和其他群智能優(yōu)化算法類似,存在種群多樣性不足,易陷入局部最優(yōu)值等缺陷.為了提高初始種群質(zhì)量,增強(qiáng)算法全局探索能力,考慮到立方混沌算子具有隨機(jī)性與規(guī)律性的特點(diǎn),且能在一定范圍內(nèi)不重復(fù)遍歷所有狀態(tài),因此筆者采用立方映射混沌算子對(duì)種群進(jìn)行初始化[11].立方映射公式為:
立方映射初始化種群的具體步驟為:首先隨機(jī)產(chǎn)生一個(gè)取值范圍在[-1,1]之間的隨機(jī)向量,然后使用公式(7)對(duì)該向量進(jìn)行迭代計(jì)算,最后使用公式(8)將立方映射產(chǎn)生的變量值映射到種群中.
混沌局部搜索策略通過(guò)搜索每一個(gè)解決方案的附近區(qū)域,從而找到更好的解決方案,因此該策略能夠有效提高算法的開(kāi)發(fā)能力[12].另一方面,混沌映射具隨機(jī)性和遍歷性的特點(diǎn),所以利用混沌映射進(jìn)一步提高局部搜索策略的有效性.在CMPA中,混沌局部搜索策略只應(yīng)用于種群的優(yōu)勢(shì)種群.混沌局部搜索策略的公式為:
當(dāng)算法陷入局部最優(yōu)時(shí),可采用隨機(jī)游走策略來(lái)幫助算法擺脫局部最優(yōu),增強(qiáng)算法的探索能力.隨機(jī)游走策略是一種模擬自然界生物隨機(jī)運(yùn)動(dòng)的概率模型,被廣泛應(yīng)用于各類優(yōu)化算法的設(shè)計(jì)與改進(jìn)[14-15].筆者提出一種利用中等群體構(gòu)造新子代的高斯隨機(jī)游走策略.
由于優(yōu)勢(shì)種群和中等種群之間的差異向量可改善種群的多樣性,筆者考慮了中等種群信息.采樣點(diǎn)與中等人口和優(yōu)勢(shì)人口的相對(duì)位置有關(guān),擴(kuò)大了搜索范圍,具有較強(qiáng)的勘探能力.該策略的數(shù)學(xué)模型見(jiàn)公式(11)、(12),即:
在每一次迭代最后,CMPA采用貪婪策略保留了父系和子代中最好的NP個(gè)體,從而形成了新的種群,這有利于CMPA的全局收斂能力.
為全面驗(yàn)證改進(jìn)算法的性能,通過(guò)與最近提出的改進(jìn)算法進(jìn)行比較,驗(yàn)證改進(jìn)算法的優(yōu)越性與競(jìng)爭(zhēng)性.本文選取CEC2014部分測(cè)試函數(shù)進(jìn)行實(shí)驗(yàn),包括3個(gè)單峰測(cè)試函數(shù),3個(gè)多峰函數(shù),3個(gè)混合函數(shù)和3個(gè)組合函數(shù),函數(shù)的定義及最優(yōu)值可參考文獻(xiàn)[16].仿真實(shí)驗(yàn)的硬件環(huán)境為:Windows 10系統(tǒng),AMD R5 3600X處理器,32 GB內(nèi)存.程序在MATLAB R2016b平臺(tái)上運(yùn)行.
為了說(shuō)明改進(jìn)算法的優(yōu)越性,選取了PSO、灰狼優(yōu)化算法(Grey Wolf Optimizer,GWO)、鯨魚(yú)優(yōu)化算法(Whale Optimization Algorithm,WOA)、SSA、MPA等5種算法同筆者提出的CMPA算法進(jìn)行比較.為保證公平,各算法參數(shù)設(shè)置參考原文獻(xiàn),所有算法種群數(shù)設(shè)置為500,最大迭代次數(shù)為600.表1為各算法獨(dú)立運(yùn)行51次的平均值及在各測(cè)試函數(shù)中的排名.
表1 CEC2014 30D測(cè)試中6種算法的結(jié)果統(tǒng)計(jì)
對(duì)于單峰測(cè)試函數(shù)F1~F3,CMPA性能優(yōu)于所有對(duì)比算法,并且可穩(wěn)定地求得這3個(gè)測(cè)試函數(shù)的最優(yōu)值,表明了CMPA在求解單峰函數(shù)的優(yōu)勢(shì),再一次驗(yàn)證了改進(jìn)策略能有效提高算法的開(kāi)發(fā)能力(見(jiàn)表1).對(duì)于多峰測(cè)試函數(shù)F4~F6,CMPA同樣優(yōu)于所有對(duì)比算法,這說(shuō)明改進(jìn)算法能夠保持足夠好的種群多樣性,避免陷入局部最優(yōu).對(duì)于復(fù)雜組合函數(shù),CMPA在其中5個(gè)測(cè)試函數(shù)上取得了最好的結(jié)果,更好的證明了CMPA解決現(xiàn)實(shí)世界中復(fù)雜優(yōu)化問(wèn)題的潛力.
CMPA在求解其中5個(gè)測(cè)試函數(shù)(F1~F3、F18、F29)時(shí),CMPA沒(méi)有異常值,這表明CMPA所求解的分布非常集中;同時(shí)對(duì)其它存在壞值的測(cè)試函數(shù)(F4~F6、F17、F19、F28、F30),CMPA有著小的中位數(shù),表明CMPA的解的質(zhì)量相對(duì)更優(yōu).因此筆者提出的改進(jìn)算法具有很強(qiáng)的魯棒性.
文獻(xiàn)[17-18]表明僅根據(jù)平均值來(lái)比較算法性能是不充分的,為從統(tǒng)計(jì)上分析改進(jìn)算法的優(yōu)越性,可使用Wilcoxon符號(hào)秩檢驗(yàn)進(jìn)行驗(yàn)證.表2列舉了每種算法和CMPA的Wilcoxon符號(hào)秩檢驗(yàn)的結(jié)果,其中“+”表示CMPA的性能更優(yōu),“-”表示CMPA性能較差,“=”表示CMPA和對(duì)比算法性能相似,沒(méi)有顯著差異.由表2可知,CMPA在10個(gè)測(cè)試函數(shù)中優(yōu)于所有比較算法,并且在所有測(cè)試函數(shù)中均優(yōu)于基本MPA,這在統(tǒng)計(jì)學(xué)上驗(yàn)證了改進(jìn)算法的出色性能.
表2 Wilcoxon符號(hào)秩檢驗(yàn)結(jié)果
算法的計(jì)算成本也是評(píng)價(jià)算法性能的另一個(gè)重要指標(biāo).表3列出了各算法在求解測(cè)試函數(shù)時(shí)的平均耗時(shí)排名.由此可知CMPA的計(jì)算耗時(shí)較多,僅排在第5位,而MPA排在第4位,這是由于引入混沌局部搜索策略導(dǎo)致的計(jì)算成本增加.雖然改進(jìn)策略的引入導(dǎo)致了基本MPA的計(jì)算耗時(shí)增多,但其帶來(lái)的性能提升是顯著的,因此本文提出的CMPA的計(jì)算耗時(shí)是能夠接受的.
表3 CEC2014測(cè)試集7種算法的計(jì)算成本
為改善基本MPA存在的不足,提出了一種融合分布估計(jì)算法和中等解高斯隨機(jī)游走策略的海洋捕食者算法.首先利用立方混沌映射生成種群初始解,利用混沌映射的遍歷隨機(jī)性,增強(qiáng)初始種群個(gè)體的多樣性,其次使用混沌局部搜索策略提高了算法的收斂性能.此外,采用中等解高斯隨機(jī)游走策略來(lái)輔助算法擺脫停滯.
使用CEC2014測(cè)試集對(duì)本文提出的改進(jìn)算法進(jìn)行仿真實(shí)驗(yàn).實(shí)驗(yàn)結(jié)果表明,CMPA能夠有效提升基本MPA的尋優(yōu)性能,并在整體性能上要優(yōu)于PSO、GWO、WOA、SSA和MPA算法.在后續(xù)研究中,考慮將改進(jìn)后的海洋捕食者算法應(yīng)用到機(jī)器人路徑規(guī)劃和機(jī)械手臂軌跡優(yōu)化中,以進(jìn)一步驗(yàn)證算法求解現(xiàn)實(shí)世界復(fù)雜優(yōu)化問(wèn)題的能力.