劉小龍
(華南理工大學(xué)工商管理學(xué)院 廣州 510641)
20世紀(jì)40年代以來(lái),源于生物系統(tǒng)靈感的群體智能優(yōu)化方法得到了極大應(yīng)用。群體智能方法是一種基于群體迭代的隨機(jī)搜索優(yōu)化方法,具有潛在的并行性、分布式搜索等特點(diǎn),可以有效規(guī)避部分局部極值,全局搜索能力較強(qiáng),成為近些年來(lái)的研究熱點(diǎn)。群體智能優(yōu)化的仿生對(duì)象主要來(lái)自自然,像早期的蟻群、鳥(niǎo)群、蜂群等,近期不同學(xué)者針對(duì)魚群、狼群、蟻獅、鯨魚、蚱蜢和樽海鞘等生物行為特性,提出了許多新的優(yōu)化方法。數(shù)值實(shí)驗(yàn)表明這些方法具有一定的問(wèn)題適用性,但同時(shí)也存在著收斂精度不高、局部規(guī)避能力不強(qiáng)、大規(guī)模問(wèn)題優(yōu)化能力一般等相關(guān)問(wèn)題[1]。鯨魚優(yōu)化算法(Whale Optimization Algorithm,WOA)是澳大利亞學(xué)者M(jìn)irjalili等人[2]于2016年提出的,該算法主要是通過(guò)模擬座頭鯨的覓食行為方式來(lái)實(shí)現(xiàn)對(duì)優(yōu)化問(wèn)題的求解,已經(jīng)在樣本特征選擇[3]、流水車間調(diào)度[4]、太陽(yáng)光伏模型參數(shù)提取[5]、工程設(shè)計(jì)優(yōu)化[6]、電力最優(yōu)潮流設(shè)計(jì)[7]、云制造資源配置[8]、配電網(wǎng)綜合優(yōu)化[9]、無(wú)人機(jī)航路規(guī)劃[10]等問(wèn)題上得到了廣泛的應(yīng)用。現(xiàn)有研究表明,傳統(tǒng)WOA仍然存在早熟收斂、收斂速度慢以及無(wú)法找到全局最優(yōu)解等問(wèn)題[11-20]。
現(xiàn)有針對(duì)WOA方法的改進(jìn)主要從初始化策略、非線性參數(shù)、慣性權(quán)重和局部跳出策略等幾個(gè)方面展開(kāi)。如Sun等人[11]提出基于余弦函數(shù)的非線性動(dòng)態(tài)控制參數(shù)更新策略,來(lái)平衡算法的探索和開(kāi)發(fā)能力,采用萊昂飛行策略(Lévy-flight)來(lái)跳出局部最優(yōu)。Chen等人[6]針對(duì)高維函數(shù)優(yōu)化問(wèn)題,將萊昂飛行策略和混沌局部搜索策略組成兩種新的策略,引導(dǎo)群體在全局探索能力與鄰域開(kāi)發(fā)能力之間進(jìn)行協(xié)調(diào)。龍文等人[12]提出了一種非線性收斂因子的改進(jìn)鯨魚優(yōu)化算法,在搜索空間中利用對(duì)立學(xué)習(xí)策略進(jìn)行初始化,高維函數(shù)測(cè)試展現(xiàn)了該改進(jìn)方法的有效性。褚鼎立等人[13]提出了自適應(yīng)權(quán)重和模擬退火的鯨魚優(yōu)化算法,通過(guò)改進(jìn)自適應(yīng)權(quán)重來(lái)調(diào)整算法收斂速度,借助模擬退火增強(qiáng)鯨魚優(yōu)化算法的尋優(yōu)精度。王堅(jiān)浩等人[14]提出了基于混沌搜索策略的鯨魚優(yōu)化算法,通過(guò)采用混沌反向?qū)W習(xí)策略來(lái)產(chǎn)生初始種群,設(shè)計(jì)收斂因子和慣性權(quán)重的非線性混沌擾動(dòng)策略,來(lái)平衡全局探索和局部開(kāi)發(fā)能力。肖子雅等人[15]利用精英反向?qū)W習(xí)策略,來(lái)提高種群的多樣性和質(zhì)量,有效地提升了算法的收斂速度,同時(shí)引入黃金分割數(shù)來(lái)優(yōu)化WOA的尋優(yōu)方式,進(jìn)一步協(xié)調(diào)WOA的全局與局部開(kāi)發(fā)能力平衡。吳澤忠等人[16]針對(duì)鯨魚優(yōu)化算法后期的種群多樣性丟失問(wèn)題,提出了螺旋更新位置改進(jìn)模型,并結(jié)合對(duì)立學(xué)習(xí)策略、隨機(jī)參數(shù)調(diào)整、正態(tài)變異操作等方法優(yōu)化鯨魚算法的性能。張達(dá)敏等人[17]利用Circle混沌序列隨機(jī)產(chǎn)生初始種群,提出一種逐維小孔成像的反向?qū)W習(xí)策略,來(lái)增加尋優(yōu)多樣性,并提出一種融合貝塔分布和逆不完全Γ函數(shù)的自適應(yīng)權(quán)重方法,改進(jìn)了鯨魚算法的尋優(yōu)精度和收斂速度。劉景森等人[18]提出了一種基于分段式隨機(jī)慣性權(quán)重和最優(yōu)反饋機(jī)制的改進(jìn)算法,通過(guò)在隨機(jī)游走策略中引入基于當(dāng)前全局最優(yōu)解的反饋機(jī)制,在收縮包圍策略和螺旋泡泡網(wǎng)捕食策略中引入分段式隨機(jī)慣性權(quán)重,以提高算法的尋優(yōu)精度和跳出局部極值的能力。黃清寶等人[19]提出了一種基于余弦控制因子和多項(xiàng)式變異的改進(jìn)方法,通過(guò)對(duì)余弦參數(shù)的慣性權(quán)值和最佳鯨魚位置引入的多項(xiàng)式變異,來(lái)改進(jìn)優(yōu)化性能。黃飛等人[20]結(jié)合反向?qū)W習(xí)策略進(jìn)行種群初始化,用正態(tài)變異算子來(lái)選擇種群,配合非線性收斂因子和正弦螺旋更新策略,從而形成了一種閾值控制的改進(jìn)方法。
在上述改進(jìn)策略中,混沌映射和反向初始化是為了增加種群的多樣性,非線性參數(shù)或者參數(shù)自適應(yīng)是希望通過(guò)提高早期解的質(zhì)量來(lái)加快收斂速度和提高尋優(yōu)精度,最優(yōu)鄰域?qū)W習(xí)和最優(yōu)解變異是希望提高尋優(yōu)精度和增強(qiáng)跳出局部極值的能力。同時(shí),針對(duì)局部極值問(wèn)題,萊昂飛行和混沌變異是一種隨機(jī)步長(zhǎng)策略,是通過(guò)對(duì)最優(yōu)個(gè)體的隨機(jī)維度擾動(dòng),來(lái)增加跳出局部陷阱的能力。而考慮收斂因子和慣性權(quán)重,是為了增強(qiáng)算法對(duì)前期解的繼承,平衡算法的全局探索與局部開(kāi)發(fā),并借此加快收斂速度。
可見(jiàn),上述改進(jìn)思路已從參數(shù)改進(jìn)、局部擾動(dòng)、最優(yōu)點(diǎn)學(xué)習(xí)、鄰域?qū)W習(xí)等方面進(jìn)行了探討,在基本W(wǎng)OA算法的局部規(guī)避和全局極值精度方面取得了一定成果,但都是針對(duì)單一種群,部分方法如局部擾動(dòng)、最優(yōu)點(diǎn)學(xué)習(xí)、鄰域?qū)W習(xí)等只是增加了計(jì)算精度,并不保證求得全局最優(yōu)解。本文提出一種多種群縱橫雙向?qū)W習(xí)和信息互換的研究思路,可以在不增加計(jì)算復(fù)雜度的情況下,有效求得大部分函數(shù)的全局最優(yōu)解。
基準(zhǔn)函數(shù)的數(shù)值實(shí)驗(yàn)結(jié)果表明本文算法相對(duì)基本W(wǎng)OA方法及其最新哈里斯鷹優(yōu)化算法 (Harris Hawks Optimization, HHO)等具有極大提升,可以獲得絕大部分函數(shù)的全局極值。跨文獻(xiàn)的比較研究表明,本文方法相對(duì)現(xiàn)有WOA 及其改進(jìn)方法具有較強(qiáng)的優(yōu)勢(shì),在多數(shù)問(wèn)題上的性能表現(xiàn)優(yōu)越。
鯨被認(rèn)為是世界上最大的哺乳動(dòng)物,成年鯨魚可以長(zhǎng)到30 m,重180 t。這種巨型哺乳動(dòng)物有7種不同的主要物種,例如座頭鯨,翅背鯨和藍(lán)鯨等鯨魚通常被視為掠食者。座頭鯨是最大的古鯨之一,它們最喜歡的獵物是磷蝦和小魚群,座頭鯨的覓食行為被稱為泡泡網(wǎng)覓食方法[21]。這種覓食行為包括兩種行為方式:“向上螺旋”和“雙循環(huán)”。在“向上螺旋”中,座頭鯨可以向下俯沖約12 m,然后圍繞獵物形成螺旋氣泡并上游至水面。“雙循環(huán)”包括3個(gè)不同的階段:珊瑚環(huán),垂尾和捕獲環(huán)。針對(duì)座頭鯨的覓食行為方式,Mirjalili等人[2]從數(shù)學(xué)上構(gòu)建了針對(duì)優(yōu)化問(wèn)題的鯨魚優(yōu)化模型,該模型模擬了座頭鯨俯沖包圍覓食、螺旋氣泡覓食和隨機(jī)尋找獵物等3種數(shù)學(xué)模型。
算法模型假設(shè)座頭鯨能夠識(shí)別獵物的位置并將它們?nèi)ζ饋?lái),此時(shí)鯨魚通過(guò)群體交流,使整個(gè)種群向獵物位置移動(dòng),從而獲得食物。俯沖包圍獵物覓食的數(shù)學(xué)模型為

式(1)和式(2)中,t為當(dāng)前迭代步數(shù),X*(t)為食物位置,X(t)為座頭鯨位置。A和C為系數(shù)向量,按式(1)和式(2)定義。其中,r是[0,1]的隨機(jī)數(shù),a隨迭代從2線性遞減到0。
螺旋更新位置是模擬座頭鯨圍繞獵物的螺旋狀運(yùn)動(dòng)來(lái)實(shí)現(xiàn)的,如式(3)所示。座頭鯨的泡泡網(wǎng)覓食通過(guò)收縮包圍機(jī)制和螺旋更新位置來(lái)實(shí)現(xiàn)。其中,收縮包圍機(jī)制通過(guò)減小式(3)中的a值來(lái)實(shí)現(xiàn),當(dāng)a值從2降為1時(shí),A的波動(dòng)范圍也線性減小1/2。

式(3)中,b為定義螺旋形狀的參數(shù),l為[-1,1]的隨機(jī)數(shù)。
在無(wú)法發(fā)現(xiàn)獵物的階段,座頭鯨通過(guò)對(duì)周邊進(jìn)行隨機(jī)搜索,來(lái)獲取獵物的可能位置。這個(gè)階段通過(guò)A的絕對(duì)值來(lái)界定,當(dāng)|A|>1時(shí),座頭鯨群體會(huì)隨機(jī)選擇一個(gè)個(gè)體來(lái)執(zhí)行俯沖包圍覓食,其搜索獵物的數(shù)學(xué)模型如式(4)所示

基于上述座頭鯨的覓食模型,Mirjalili等人[2]提出了鯨魚優(yōu)化算法。文獻(xiàn)分析發(fā)現(xiàn),該算法通過(guò)參數(shù)A來(lái)控制搜索獵物和包圍覓食的次數(shù)。另外,該算法執(zhí)行一種雙種群結(jié)構(gòu),1/2種群執(zhí)行泡泡網(wǎng)覓食,1/2種群執(zhí)行俯沖包圍覓食。在俯沖包圍中,迭代前期(1/2時(shí)間)先圍繞隨機(jī)個(gè)體執(zhí)行搜索獵物(探索階段),迭代后期圍繞最優(yōu)食物源執(zhí)行包圍覓食(開(kāi)發(fā)階段),每一次迭代結(jié)束,兩個(gè)種群交換信息,更新最佳食物源即獵物的位置。與粒子群算法(Particle Swarm Optimization, PSO)、差分算法(Differential Evolution algorithm, DE)、快速進(jìn)化編程(Fast Evolutionary Programming,FEP)、引力搜索算法(Gravitational Search Algorithm, GSA)等4種經(jīng)典群智能優(yōu)化方法的對(duì)比實(shí)驗(yàn)表明,該算法在單峰函數(shù)的Sphere和Schwefel 2.22上,以及多峰函數(shù)Rastrigin上,其尋優(yōu)能力和魯棒性最好。在其他的測(cè)試函數(shù)上,大部分處于第2和第3的位置。
現(xiàn)有文獻(xiàn)改進(jìn)的基于余弦函數(shù)的非線性動(dòng)態(tài)控制參數(shù)更新、萊昂飛行跳出局部最優(yōu)策略、搜索空間中利用對(duì)立學(xué)習(xí)策略進(jìn)行種群多樣化、利用自適應(yīng)權(quán)重來(lái)調(diào)整算法收斂速度、借助模擬退火來(lái)增強(qiáng)尋優(yōu)精度,以及其他算法中的修改相關(guān)系數(shù)和采用高斯縮放、多項(xiàng)式學(xué)習(xí)等做法,其本質(zhì)上都是經(jīng)典數(shù)學(xué)方法。本文嘗試從多種群的視角,基于縱橫雙向?qū)W習(xí)和橫向信息互換的思路提出一種新策略。具體如下。
在Mirjalili等人設(shè)計(jì)的鯨魚優(yōu)化算法邏輯框架中,現(xiàn)有種群數(shù)目假設(shè)為M,按照隨機(jī)概率P>0.5可以區(qū)分為兩個(gè)隨機(jī)性種群,而且每次迭代,這個(gè)種群的個(gè)體都會(huì)發(fā)生變化。一個(gè)種群按照泡泡網(wǎng)的方式覓食,即個(gè)體迭代執(zhí)行式(3),式(3)中的所有個(gè)體圍繞最優(yōu)個(gè)體按照螺旋更新模式進(jìn)行收縮包圍。另一個(gè)種群依據(jù)系數(shù)向量A的絕對(duì)值與1的判斷,采取搜索獵物或者包圍覓食的方式,即個(gè)體執(zhí)行式(1)或式(4),其中式(1)或式(4)的差別在于個(gè)體是圍繞最優(yōu)個(gè)體迭代還是圍繞隨機(jī)個(gè)體迭代,按照多項(xiàng)式縮放的方式進(jìn)行。
上述邏輯設(shè)置對(duì)于基準(zhǔn)函數(shù)如Sphere, Schwefel2.22, Rastrigin等具有一定效果,但對(duì)于大部分其他基準(zhǔn)函數(shù),并不能獲得全局最優(yōu)。因此,本文提出一種多種群縱橫雙向結(jié)構(gòu),即種群M由p個(gè)子種群組成,每個(gè)子群有k個(gè)個(gè)體,具體如圖1所示。
現(xiàn)有文獻(xiàn)如隨機(jī)種群線性差分方法等[22],都是將多個(gè)種群的個(gè)體按照權(quán)重進(jìn)行加和,也就是1次迭代。本文對(duì)于隨機(jī)個(gè)體M33來(lái)說(shuō),它受到縱橫雙向的子群最優(yōu)(假設(shè)為M53和M3p)的影響,也就是根據(jù)式(3)按照?qǐng)D1進(jìn)行雙向兩次迭代。即隨機(jī)個(gè)體M33首先縱向選定M53按照式(3)迭代,然后再橫向選定M3p按照式(3)迭代。第1次迭代并不進(jìn)行適應(yīng)度計(jì)算,這一思路是考慮到在種群進(jìn)化的初期,隨機(jī)個(gè)體與子群最優(yōu)的最優(yōu)值相差較大,通過(guò)2次迭代從兩個(gè)方向促進(jìn)個(gè)體進(jìn)化。上述思路不考慮雙向迭代后在部分時(shí)期的適應(yīng)度變差的情況。

圖1 改進(jìn)鯨魚優(yōu)化算法的多種群縱橫雙向結(jié)構(gòu)
本文基于多種群雙向?qū)W習(xí)的方法,雖然個(gè)體可以從兩個(gè)方向迭代學(xué)習(xí),但是種群之間的信息交互較少。為了獲取全局極值,有必要推動(dòng)不同種群個(gè)體的信息互動(dòng)。現(xiàn)有文獻(xiàn)的信息交流都是隨機(jī)種群劃分、多種群加權(quán)迭代等方法,提出一種個(gè)體互換的信息交互機(jī)制,具體如圖1所示。假設(shè)隨機(jī)個(gè)體M33所在子群為M3群,該群的橫向?yàn)镸31~M3p共p個(gè)個(gè)體,針對(duì)p個(gè)個(gè)體設(shè)定隨機(jī)數(shù)選擇組,假設(shè)選中組別為M1p~Mkp所在的p組,該組的最差適應(yīng)度個(gè)體是Mkp,此時(shí)將M33和Mkp互換,就完成了一次基于橫向信息交流的個(gè)體互換機(jī)制。對(duì)于第l次迭代步來(lái)說(shuō),每次迭代中的個(gè)體置換概率Pp為(L-l)/L。
這一置換概率的設(shè)置是保證縱橫雙向?qū)W習(xí)的子種群個(gè)體,在迭代前期具有較大的置換可能,在后期具有較小的置換可能。由上述機(jī)制可以看出,本文方法的信息交流是個(gè)體互換,而非對(duì)子群個(gè)體進(jìn)行位置遷移,這樣就保證了選定子群的多樣性會(huì)隨著其他子群最差個(gè)體的導(dǎo)入而增加;而被選中的最差子群也會(huì)因?yàn)橄鄬?duì)較好個(gè)體的導(dǎo)入使得子群的整體應(yīng)變能力可能相對(duì)變好。數(shù)值實(shí)驗(yàn)和收斂曲線表明,上述設(shè)置加快了算法的收斂,對(duì)于很多基準(zhǔn)函數(shù)都很快獲得了全局最優(yōu)。
WOA算法任意的迭代中,隨機(jī)概率P>0.5,則種群中的選定個(gè)體按照泡泡網(wǎng)方式覓食,否則按照|A|>1的比較來(lái)選定搜索獵物或者包圍覓食方式。在此,相較于隨機(jī)概率P與0.5的判斷比較,本文提出一種貪婪機(jī)制的策略算子選擇方法,即利用個(gè)體適應(yīng)度值的歷史變化來(lái)考慮算子策略。具體為各個(gè)子群的個(gè)體,在上次的迭代中,如果適應(yīng)度值變好,則選擇縱橫雙向的最優(yōu)值個(gè)體,按照泡泡網(wǎng)覓食的方式進(jìn)化迭代。如果上次的迭代過(guò)程,其個(gè)體適應(yīng)度函數(shù)的值變差,則按照搜索或包圍覓食的策略方式迭代。這一策略有效地利用了個(gè)體進(jìn)化的歷史信息。
式(1)中,A按照均勻分布概率從±2收縮到0,即迭代l=0,大于1的概率為50%;迭代l>=L/2,大于1的概率為0。因此,依據(jù)A的定義,從數(shù)值概率角度分析,泡泡網(wǎng)覓食方式是50%(全迭代時(shí)期)的可能,包圍覓食方式是25%~50%(前L/2迭代時(shí)期,后L/2迭代期其概率為50%)和搜索獵物方式是25%~0%(前L/2迭代時(shí)期,后L/2迭代期其概率為0%)。
基于上述分析,本文將A定義為座頭鯨的視域系數(shù),以區(qū)分現(xiàn)有系數(shù)向量的概念。|A|>1表示視域較大,子群個(gè)體隨機(jī)選擇所有種群M(M11-Mkp)中的個(gè)體,按照式(4)更新位置。|A|<1表示視域較近,子群個(gè)體縱橫雙向選擇最優(yōu)個(gè)體,按照式(1)進(jìn)行包圍覓食方式更新個(gè)體位置。
改進(jìn)算法的實(shí)現(xiàn)流程描述如下:
步驟 1 參數(shù)初始化。定義問(wèn)題維度D、子種群數(shù)p、子群內(nèi)個(gè)體數(shù)目k,最大迭代步數(shù)L;定義個(gè)體初始適應(yīng)度f(wàn)值為inf,視域參數(shù)為A,子群內(nèi)的個(gè)體互換概率Pp。
步驟 2 初始化群體位置,并計(jì)算適應(yīng)度值,定義p個(gè)子群內(nèi)的最優(yōu)為子群獵物位置。
步驟 3 從M11到Mkp開(kāi)始循環(huán),進(jìn)行個(gè)體歷史適應(yīng)度值的判斷。
策略1 若個(gè)體適應(yīng)度值改善,則當(dāng)前子群內(nèi)選定個(gè)體按式(3)進(jìn)行縱橫雙向的泡泡網(wǎng)式覓食。
策略2 若個(gè)體適應(yīng)度值變差且|A|>1,則當(dāng)前子群內(nèi)選定個(gè)體按式(4), M11~Mkp中隨機(jī)選定個(gè)體進(jìn)行獵物搜索。
策略3 若個(gè)體適應(yīng)度值變差且|A|<=1,則當(dāng)前子群內(nèi)選定個(gè)體按式(1)進(jìn)行縱橫雙向的包圍覓食。
步驟 4 子群信息互換。M11~Mkp開(kāi)始循環(huán),產(chǎn)生均勻分布隨機(jī)數(shù)rand,如果rand>Pp,則啟動(dòng)子群信息互換機(jī)制。如對(duì)于當(dāng)前個(gè)體M33,隨機(jī)選中一個(gè)橫向的個(gè)體如M3p,對(duì)當(dāng)前橫向個(gè)體所在的子群M1p~Mkp中,找出其子群的最差適應(yīng)度如Mkp,此時(shí)將M33和Mkp的位置和適應(yīng)度值互換,這樣就完成了一次子群信息互換。
步驟 5 更新各子群個(gè)體的適應(yīng)度值和縱橫雙向子群的獵物位置,定義最佳獵物位置為全局最優(yōu)。
步驟 6 循環(huán)條件判斷,滿足則結(jié)束,輸出結(jié)果。不滿足則跳轉(zhuǎn)步驟3。
基本W(wǎng)OA算法利用隨機(jī)向量A和隨機(jī)數(shù)判斷,執(zhí)行3種圍捕策略;本文算法按照適應(yīng)度值的改善情況和視域A的判斷,也遵守原算法的3種狩獵行為,與基本W(wǎng)OA算法一樣,針對(duì)種群M的總計(jì)算次數(shù)一樣,也就是計(jì)算代價(jià)一致。但與原算法不同的是,本文算法需要存儲(chǔ)每個(gè)個(gè)體的上次適應(yīng)度值,以便于進(jìn)行價(jià)值判斷;其次,本文算法需要縱橫雙向進(jìn)行算子迭代,相較于原算法的1次迭代,其計(jì)算時(shí)間稍多,但不增加適應(yīng)度的計(jì)算次數(shù)。
上述設(shè)置和文獻(xiàn)[13-16]中改進(jìn)算法當(dāng)中的模擬退火、混沌反向、精英反向和柯西變異等策略有根本不同,屬于方程表達(dá)式的增加,并不增加整體算法的計(jì)算復(fù)雜度,因此計(jì)算時(shí)間增加極少。而文獻(xiàn)[13-16]中的模擬退火、混沌反向、精英反向和柯西變異等,會(huì)調(diào)用更多的適應(yīng)度計(jì)算函數(shù),增加同一次迭代中的適應(yīng)度計(jì)算次數(shù),故而產(chǎn)生了計(jì)算代價(jià)。如果種群數(shù)目為M,一次適應(yīng)度調(diào)用的時(shí)間為t,那么L次迭代的調(diào)用總時(shí)間為M×L×t。因此,改進(jìn)方法的計(jì)算復(fù)雜度與文獻(xiàn)[2]相當(dāng),調(diào)用總時(shí)間為M×L×t。
文獻(xiàn)[8-20]對(duì)標(biāo)準(zhǔn)WOA算法提出了諸多的改進(jìn),但不同算法的測(cè)試標(biāo)準(zhǔn)不一樣,為進(jìn)行跨文獻(xiàn)比較,參考文獻(xiàn)[2,13-16,23]的基準(zhǔn)函數(shù)和指標(biāo)選取情況,本文選取30次測(cè)試的平均值、標(biāo)準(zhǔn)差、尋優(yōu)成功率等指標(biāo)來(lái)衡量算法性能,利用上述文獻(xiàn)的相關(guān)標(biāo)準(zhǔn)函數(shù)進(jìn)行對(duì)比實(shí)驗(yàn)研究,函數(shù)的表達(dá)式見(jiàn)文獻(xiàn)[2]。
現(xiàn)有文獻(xiàn)針對(duì)文獻(xiàn)[2]的測(cè)試函數(shù)進(jìn)行了對(duì)比研究,但缺少對(duì)問(wèn)題函數(shù)的具體討論。本文基于文獻(xiàn)[2]提供的理論知識(shí)(給定最優(yōu)點(diǎn)坐標(biāo)),利用Matlab工具進(jìn)行驗(yàn)證(D=30),發(fā)現(xiàn)函數(shù)F7, F10, F12和F13的最優(yōu)值與現(xiàn)有文獻(xiàn)提供的理論值不同(均為0),分別是接近0的隨機(jī)值、8.88178e-016,1.57054e-032和1.34978e-032,而現(xiàn)有文獻(xiàn)[23]等計(jì)算的F12和F13平均值卻為0,因此現(xiàn)有文獻(xiàn)相關(guān)算法的計(jì)算過(guò)程存在些許問(wèn)題。
文獻(xiàn)[2]中,F(xiàn)1~F7為單峰函數(shù),F(xiàn)8~F13為多峰函數(shù)。單峰函數(shù)中的F1~F4主要測(cè)試算法的尋優(yōu)精度,函數(shù)的局部極小點(diǎn)少,大多數(shù)算法都能夠獲得較好的尋優(yōu)精度,F(xiàn)5~F7擁有較多的局部極值點(diǎn),許多算法不能跳出局部極值,這3個(gè)函數(shù)是現(xiàn)有算法對(duì)比的主要參考。多峰函數(shù)F8~F13中的F9~F11主要測(cè)試算法的尋優(yōu)精度,函數(shù)的局部極小點(diǎn)少,大多數(shù)算法都能夠獲得較好的尋優(yōu)精度。但F8, F12和F13擁有較多的局部極值點(diǎn),許多算法不能跳出局部極值,這3個(gè)函數(shù)是相關(guān)算法對(duì)比的主要參考。
本文改進(jìn)算法提出了多種群的邏輯框架,框架中整體種群的數(shù)量由子群數(shù)p和子群內(nèi)的個(gè)體數(shù)k決定。由于采用了一種多子群方法,導(dǎo)致單一種群的數(shù)量相對(duì)較少,進(jìn)化較慢,原WOA算法中的參數(shù)A和C對(duì)新框架存在一定的影響,需要進(jìn)一步進(jìn)行分析。另外,為了避免單一種群的信息孤島現(xiàn)象,基于種群間的個(gè)體互換概率也影響單個(gè)子群的多樣性。最后,本文針對(duì)視距A和置換概率Pp假設(shè)是線性下降,但也可以是非線性下降,如凸函數(shù)或者凹函數(shù)下降,但影響相對(duì)較少,故而本文不作進(jìn)一步討論。
考慮到原始WOA算法的種群數(shù)為30,故而本文設(shè)置子群數(shù)為6,子群內(nèi)個(gè)體數(shù)目為5,算法的最大評(píng)估次數(shù)即函數(shù)的調(diào)用次數(shù)與文獻(xiàn)[2,13-16,23]相同取15000,算法針對(duì)上述基準(zhǔn)函數(shù)測(cè)試30次,利用前述文獻(xiàn)提及的均值、成功率等指標(biāo)進(jìn)行衡量。另外,參數(shù)A由正負(fù)2線性下降至0,參數(shù)C為[0,1]隨機(jī)數(shù),置換概率Pp為(L-l)/L即由1線性下降至0。最后,還需要考察縱橫雙向?qū)W習(xí)和子群內(nèi)單向?qū)W習(xí)的區(qū)別。
在其他參數(shù)不變的情況下,對(duì)參數(shù)C=rand(實(shí)驗(yàn)1)和C=1(實(shí)驗(yàn)2)進(jìn)行參數(shù)實(shí)驗(yàn)。另外,在上述初始Pp=1的基礎(chǔ)上,對(duì)置換概率Pp進(jìn)行參數(shù)實(shí)驗(yàn),設(shè)置Pp由0.7, 0.4和0.1下降至0,分別記為實(shí)驗(yàn)3, 4, 5,測(cè)試數(shù)據(jù)精度等級(jí)如表1所示。
由表1可知,C=1的整體精度優(yōu)于C=rand,參照表1全局極值和文獻(xiàn)[12]關(guān)于成功率的閾值設(shè)置,算法參數(shù)C=1的數(shù)值結(jié)果表明改進(jìn)算法除了F8以外全部獲得了全局極值。而算法參數(shù)C=rand的設(shè)置,在函數(shù)F5, F6, F12和F13上的精度不高,所以本文取參數(shù)C=1。
研究發(fā)現(xiàn),如果Pp=0,所有測(cè)試函數(shù)均無(wú)法獲得全局極值,故而設(shè)置一定的置換概率是合適的,結(jié)合表1實(shí)驗(yàn)數(shù)據(jù),本文認(rèn)為初始的Pp值應(yīng)該較大,本文取初始Pp值為1。
同時(shí),視距A影響著算法的尋優(yōu)精度,比如基準(zhǔn)函數(shù)F1~F4等,因此本文在表1算法參數(shù)的基礎(chǔ)上,設(shè)置視距A由1.7, 1.4和1.1線性下降至0,分別記為實(shí)驗(yàn)6, 7, 8,測(cè)試數(shù)據(jù)的精度等級(jí)如表2所示。

表1 本文算法參數(shù)C 和Pp的基準(zhǔn)函數(shù)測(cè)試均值精度等級(jí)(D=30)
由表2可知,較小的A值會(huì)顯著提高算法在測(cè)試函數(shù)F1~F4上的尋優(yōu)精度,這是因?yàn)楸疚目蚣芩惴ㄋO(shè)置的多子群結(jié)構(gòu)相當(dāng)于一個(gè)個(gè)的位置子領(lǐng)域,而適應(yīng)度值變差且|A|>1時(shí)啟動(dòng)的算子探索功能其作用有限,故而本文設(shè)置相對(duì)較小的初始A值,考慮取值1.6。

表2 本文算法參數(shù)A的基準(zhǔn)函數(shù)測(cè)試均值精度等級(jí)(D=30)
針對(duì)測(cè)試函數(shù)F8,除了采用C=rand的實(shí)驗(yàn)1獲得了全局極值,其他設(shè)置均無(wú)法獲得全局極值。在此,本文基于上述設(shè)置即C=1,初始Pp=1,初始A=1,子群數(shù)p=6,子群內(nèi)個(gè)體k=5,通過(guò)更改子群規(guī)模進(jìn)行參數(shù)實(shí)驗(yàn)。設(shè)置實(shí)驗(yàn)9(p=4, k=3)、實(shí)驗(yàn)10(p=7, k=6)、實(shí)驗(yàn)11(p=8, k=7)、實(shí)驗(yàn)12(p=9, k=8),測(cè)試數(shù)據(jù)的精度等級(jí)如表3所示。
由表3可知,較小規(guī)模的子群數(shù),可以有效提高算法針對(duì)F1~F4的尋優(yōu)精度,如實(shí)驗(yàn)9所示全部獲得了這4個(gè)函數(shù)的全局極值,但對(duì)于基準(zhǔn)函數(shù)F5,F8和F9則難以獲得全局極值。提高子群規(guī)模,雖然會(huì)降低部分函數(shù)(F1~F4)的求解精度,但根據(jù)文獻(xiàn)[12]有關(guān)成功率的界定,本文實(shí)驗(yàn)11和實(shí)驗(yàn)12的結(jié)果是全部獲得了最優(yōu)解,其成功率為100%。因此,在不更改算子表達(dá)式和增加過(guò)多其他算法的融合算子的條件下,本文多子群的框架設(shè)置具有較強(qiáng)的優(yōu)勢(shì)。

表3 本文算法種群參數(shù)p和k的基準(zhǔn)函數(shù)測(cè)試均值精度等級(jí)(D=30)
為了說(shuō)明縱橫雙向?qū)W習(xí)的效果優(yōu)于基于單個(gè)子群的單向?qū)W習(xí),在實(shí)驗(yàn)11的基礎(chǔ)上采用單向?qū)W習(xí)的方式進(jìn)行基準(zhǔn)函數(shù)的測(cè)試研究,相關(guān)結(jié)果除了F1~F4的尋優(yōu)精度較低外(分別為e-170, e-087, e-167和e-087),其他的測(cè)試函數(shù)都獲得了全局極值,這就說(shuō)明采用縱橫雙向?qū)W習(xí)的多種群框架結(jié)構(gòu),在不改變算法性能的條件下能夠更快地收斂,進(jìn)而獲得全局極值。
HHO算法是由Heidari等人[24]新近提出的優(yōu)化方法,與遺傳算法(Genetic Algorithm, GA)、生物地理學(xué)優(yōu)化方法(Biogeography-Based Optimization, BBO)、差分進(jìn)化DE、粒子群算法PSO、布谷鳥(niǎo)搜索算法(Cuckoo Search, CS)、基于教學(xué)的學(xué)習(xí)優(yōu)化方法(Teaching-Learning-Based Optimization, TLBO)、蝙蝠算法(Bat Algorithm, BA)、花卉授粉算法(Flower Pollination Algorithm,FPA)、螢火蟲(chóng)算法(Firefly Algorithm, FA)、灰狼優(yōu)化(Grey Wolf Optimizer, GWO)和飛蛾撲火算法(Moth-Flame Optimization, MFO)等的比較研究表明,該算法具有極強(qiáng)的全局尋優(yōu)能力和局部規(guī)避能力。因此,本文算法與HHO算法和WOA算法進(jìn)行指標(biāo)對(duì)比。
HHO和WOA算法中,種群數(shù)M為30,迭代500次,測(cè)試次數(shù)30,其他參數(shù)參照HHO和WOA的實(shí)驗(yàn)設(shè)置不作更改,統(tǒng)計(jì)相應(yīng)的實(shí)驗(yàn)均值精度指標(biāo),以考察算法是否具備全局尋優(yōu)能力。測(cè)試指標(biāo)數(shù)據(jù)如表4所示。
由表4可知,以文獻(xiàn)[12]的成功率閾值度量,本文算法在全部測(cè)試函數(shù)中獲得了全局最優(yōu),僅F1~F4的尋優(yōu)精度稍低,但仍然遠(yuǎn)高于HHO算法和WOA算法。另外,本文統(tǒng)計(jì)了上述算法的標(biāo)準(zhǔn)差指標(biāo),發(fā)現(xiàn)本文算法在所有測(cè)試函數(shù)中的標(biāo)準(zhǔn)差是最小的,HHO算法針對(duì)F5的尋優(yōu)精度偏低且不穩(wěn)定,針對(duì)F8完全不收斂。WOA算法僅針對(duì)F1~F3、F9和F11具有一定的求解優(yōu)勢(shì),針對(duì)其他測(cè)試函數(shù)求解精度低或者穩(wěn)定性相對(duì)較差。

表4 針對(duì)基本測(cè)試函數(shù)的算法性能均值指標(biāo)對(duì)比(D=30)
文獻(xiàn)[2,13-16]對(duì)上述7個(gè)單峰函數(shù)(F1~F7)和6個(gè)多峰函數(shù)(F8~F13)的可變測(cè)試函數(shù)問(wèn)題進(jìn)行了30次統(tǒng)計(jì)實(shí)驗(yàn)研究,其中F8的最優(yōu)值為-418.9829D(D是維度),其他函數(shù)理論最優(yōu)值為0或接近0,且F5, F6, F8和F12, F13的最優(yōu)位置不在原點(diǎn)。現(xiàn)繼續(xù)采用上述文獻(xiàn)的參數(shù)設(shè)置,種群數(shù)M=30,迭代次數(shù)L=500,維度D=30,進(jìn)行30次獨(dú)立實(shí)驗(yàn),對(duì)比實(shí)驗(yàn)結(jié)果如表5所示。

表5 本文算法與現(xiàn)有文獻(xiàn)的性能指標(biāo)對(duì)比(D=30)
從計(jì)算精度來(lái)看,文獻(xiàn)[13]與粒子群算法PSO、差分算法DE以及WOA算法的對(duì)比研究表明,基于自適應(yīng)權(quán)重和模擬退火的鯨魚優(yōu)化算法(Whale Optimization Algorithm based on adaptive Weight and Simulated Annealing, W-SAWOA)在計(jì)算精度和收斂速度方面都有明顯提升,本文算法對(duì)比文獻(xiàn)[13],除了F1, F3和F4的計(jì)算精度相對(duì)稍低外,在其他測(cè)試函數(shù)的均值指標(biāo)都比文獻(xiàn)[13]強(qiáng)或一致(F7和F9)。文獻(xiàn)[14]與文獻(xiàn)[12]進(jìn)行了對(duì)比研究,發(fā)現(xiàn)混沌搜索策略的鯨魚優(yōu)化算法(Whale Optimization Algorithm based on Chaotic Search, CWOA)在收斂速度、收斂精度、魯棒性方面均較文獻(xiàn)[12]有較大提升,本文算法除了F1,F2和F4的計(jì)算精度比CWOA稍差,其他指標(biāo)都相對(duì)比文獻(xiàn)[14]強(qiáng)或一致(F6, F7, F9和F11)。文獻(xiàn)[15]對(duì)比了粒子群算法P S O、黃金正弦優(yōu)化算法(Golden-Sine optimization Algorithm, Golden-SA)、WOA等算法,發(fā)現(xiàn)精英反向黃金正弦鯨魚算法(Elite opposition-based Golden-Sine Whale Optimization Algorithm, EGolden-SWOA)具有更好的尋優(yōu)精度和穩(wěn)定性,本文算法除了F1, F2,F3和F4的計(jì)算精度稍低,其他的均值指標(biāo)都相對(duì)比文獻(xiàn)[15]強(qiáng)或一致(F7, F9, F10和F11)。文獻(xiàn)[16]與粒子群算法PSO、引力搜索算法GSA、基于自適應(yīng)權(quán)重和柯西變異的鯨魚優(yōu)化算法(the Whale Optimization algorithm based on Adaptive Weight and Cauchy Mutation, WOAWC)[24]以及基本W(wǎng)OA算法進(jìn)行了比較,低維度實(shí)驗(yàn)數(shù)據(jù)表明,改進(jìn)螺旋更新位置模型的鯨魚優(yōu)化算法(Whale Optimization Algorithm based on Improved spiral update position Model, IMWOA)是5種方法中最優(yōu)的;本文算法除了F1, F2, F3和F4的計(jì)算精度稍低,其他測(cè)試函數(shù)的尋優(yōu)精度都相對(duì)比文獻(xiàn)[16]好或一致(F6,F9和F11)。需要說(shuō)明的是,F(xiàn)7測(cè)試函數(shù)的求解精度不應(yīng)該為0,在30維度變量值全為0的情況下,最優(yōu)值是隨機(jī)值,只有當(dāng)變量接近0時(shí)的最優(yōu)解,其最優(yōu)值才接近0。所以,文獻(xiàn)[16]針對(duì)F7的測(cè)試結(jié)果有所偏差。
從計(jì)算穩(wěn)定性指標(biāo)來(lái)看,所有算法針對(duì)F7的尋優(yōu)標(biāo)準(zhǔn)差等級(jí)較低,這是因?yàn)樵摵瘮?shù)的結(jié)果存在隨機(jī)變量,導(dǎo)致最優(yōu)值接近0且不唯一,導(dǎo)致所有算法的標(biāo)準(zhǔn)差值處于e-04左右。如果將e-10作為閾值,則文獻(xiàn)[13-16]分別有7, 2, 4, 4個(gè)函數(shù)的穩(wěn)定性相對(duì)較差,而本文算法僅針對(duì)F7的尋優(yōu)標(biāo)準(zhǔn)差等級(jí)較低,在其他基準(zhǔn)函數(shù)上的標(biāo)準(zhǔn)差都極小,基本都高于現(xiàn)有文獻(xiàn)[13-16]。可見(jiàn),本文對(duì)種群結(jié)構(gòu)的改進(jìn)方法相較于前述文獻(xiàn)的算子改進(jìn)策略具有較強(qiáng)的優(yōu)勢(shì)。
另外,文獻(xiàn)[11,12,14,16,25]針對(duì)大規(guī)模問(wèn)題(D=1000)的優(yōu)化,選取了不同的測(cè)試函數(shù),其中Rosenbrock(F5)和Penalized1(F12)函數(shù)的測(cè)試表現(xiàn)相對(duì)較差,其他函數(shù)相對(duì)能獲得較好的全局極值。以下本文利用這兩個(gè)函數(shù)進(jìn)行大規(guī)模問(wèn)題的跨文獻(xiàn)對(duì)比研究。參考前述文獻(xiàn)設(shè)置,設(shè)定閾值為1e-05,如果算法收斂到此范圍,則認(rèn)定算法獲得了全局最優(yōu)解,成功率(Success Rate, SR)為成功收斂到閾值范圍內(nèi)的測(cè)試比率。為了公平起見(jiàn),所有算法的最大適應(yīng)度計(jì)算次數(shù)一樣(MaxFEs=15000),因此更改最大迭代次數(shù)為500,種群數(shù)為30,記錄30次獨(dú)立測(cè)試的各性能指標(biāo),見(jiàn)表6。
由表6可知,本文算法在上述單峰和多峰的高維度(D=1000)測(cè)試函數(shù)中,收斂精度均優(yōu)于其他算法,成功率SR都為100%,表現(xiàn)良好的尋優(yōu)精度和魯棒性,總體性能優(yōu)于文獻(xiàn)[11,12,14,16,25]相應(yīng)的改進(jìn)鯨魚優(yōu)化算法。另外,現(xiàn)有文獻(xiàn)[16]采用的最大迭代次數(shù)為5×106,高于本文的迭代次數(shù),說(shuō)明本文算法在較小的迭代代價(jià)下取得了較好的優(yōu)化效果。

表6 大規(guī)模(D=1000)測(cè)試函數(shù)的算法性能指標(biāo)對(duì)比
為了進(jìn)一步對(duì)比大規(guī)模問(wèn)題上的算法性能,本文與文獻(xiàn)[12,23]進(jìn)行對(duì)比研究,測(cè)試函數(shù)選擇上述文獻(xiàn)中的15個(gè)基準(zhǔn)函數(shù),函數(shù)表達(dá)式見(jiàn)上述文獻(xiàn)。本文利用15000次的總計(jì)算代價(jià)進(jìn)行實(shí)驗(yàn)測(cè)試,其他參數(shù)設(shè)置同上,測(cè)試結(jié)果如表7所示。
由表7可知,按照上述文獻(xiàn)有關(guān)測(cè)試函數(shù)的閾值設(shè)置,本文算法的成功率SR全部為100%,且本文算法在f1~f3, f5~f7和f15上均優(yōu)于其他算法,但本文算法在f4和f11的求解精度相對(duì)稍低,通過(guò)將最大計(jì)算次數(shù)從15000更改為25000,本文算法針對(duì)上述4個(gè)函數(shù)的求解精度分別為1.3518e-265,3.6627e-130,均有效地提高了算法的求解精度。

表7 本文算法與文獻(xiàn)[12,23]的性能對(duì)比(D=1000)
針對(duì)不同算法在大規(guī)模問(wèn)題上的收斂性情況,限于篇幅本文對(duì)比了WOA和HHO算法在求解F4和F12的收斂情況。其中,測(cè)試函數(shù)F4的最優(yōu)值為0,在有限的迭代步下,本文算法的收斂效果優(yōu)于WOA和HHO算法,下降速度最快,而WOA和HHO算法卻較早停滯。測(cè)試函數(shù)F12的最優(yōu)解是1.57e-032,本文算法在80步迭代后基本獲得了全局極值,而WOA算法和HHO算法在100步迭代后限于局部極值,無(wú)法進(jìn)一步提高收斂精度。
鯨魚優(yōu)化算法(WOA)是新近提出的生物群體啟發(fā)式算法,對(duì)部分問(wèn)題具有較好的適用性,但也存在難以跳出局部極值、尋優(yōu)精度待提高等問(wèn)題。針對(duì)鯨魚優(yōu)化算法的開(kāi)發(fā)和探索能力不平衡的問(wèn)題,本文提出了一種多種群縱橫雙向?qū)W習(xí)的種群框架思路。針對(duì)這種子群分離的信息孤島現(xiàn)象,提出了一種橫向種群之間的信息溝通互換機(jī)制,即縱向子群選定的個(gè)體與橫向隨機(jī)個(gè)體所在的子群最差值進(jìn)行置換,以解決子群間的信息溝通難題。最后,為了有效地利用歷史信息,提出了一種利用歷史進(jìn)化信息的算子選擇機(jī)制,替換現(xiàn)有WOA算法中基于隨機(jī)概率P>0.5來(lái)選擇策略的行為,進(jìn)而更好地利用算子進(jìn)化的問(wèn)題信息。數(shù)值結(jié)果表明,本文改進(jìn)方法對(duì)于絕大多數(shù)函數(shù)都能夠較為穩(wěn)定地獲得全局最優(yōu)解,對(duì)于部分測(cè)試問(wèn)題可以通過(guò)調(diào)整子群規(guī)模,或者改變參數(shù)C,也能夠穩(wěn)定地獲得全局極值,因此具有一定的參考價(jià)值。