亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        結(jié)合JADE和CoDE差分算子的人工蜂群算法*

        2019-12-19 17:24:58李艷娟
        計算機與生活 2019年12期
        關(guān)鍵詞:測試函數(shù)蜂群全局

        耿 璐,李艷娟

        東北林業(yè)大學 信息與計算機工程學院,哈爾濱 150040

        1 引言

        近年來,隨著計算機技術(shù)的快速發(fā)展,為了在一定程度上解決大空間、非線性、全局尋優(yōu)、組合優(yōu)化等復雜問題,群智能優(yōu)化算法不斷涌現(xiàn),例如遺傳算法(genetic algorithm,GA)[1]、粒子群算法(particle swarm optimization,PSO)[2]、差分進化(differential evolution,DE)[3]、免疫算法(immune algorithm,IA)[4]和人工蜂群算法(artificial bee colony,ABC)[5]。因其獨特的優(yōu)點和機制,這些算法得到了國內(nèi)外學者的廣泛關(guān)注,掀起了研究熱潮。

        人工蜂群算法(ABC)是Karaboga于2005年提出的一種基于蜜蜂覓食行為的群智能優(yōu)化算法,并廣泛應用于各個領(lǐng)域[6-7]。然而,ABC收斂速度較慢,主要是因為其解搜索方程雖然具有良好的全局探索(exploration)能力,但是局部利用(exploitation)能力較弱[8]。一種可能的解釋是,ABC利用其解搜索方程生成候選解(新解)時每次只更改一個變量,因而后代個體繼承了雙親的大部分基因,進而導致種群進化緩慢。針對這個問題,國內(nèi)外學者開展了一些研究工作。例如,Gao 等人在標準ABC 的基礎(chǔ)上,引入了一個控制參數(shù)用來決定解搜索方程中變量改變的個數(shù)[9]。Akay 等人[10]引入了一個控制參數(shù)MR(modification rate),以確定不從雙親遺傳的基因的比例。劉明輝等人引入了gbest 個體提出了基于knee point 的雇傭蜂搜索機制,在加快種群進化速度提高種群多樣性的同時,在收斂性以及進化方向上具有更好的效果[11]。魏鋒濤等人[12]引入粒子群的全局引導機制,增強算法的“開發(fā)”能力,增強算法后期對解空間的精細搜索能力。Yu等人[13]從相關(guān)文獻中研究幾種有效的候選解生成策略,構(gòu)建策略候選池。得到最佳候選解的解決方案被用來生成當前候選解。Brajevic[14]提出了基于交叉的ABC,用以解決約束優(yōu)化問題,該算法也引入了類似的參數(shù)MR。Das 等人[15]使用Rechenberg的1/5變異規(guī)則來控制同時被干擾的變量數(shù)。上述改進在一定程度上成功地提高了ABC的性能。

        不同于ABC,差分進化算法(DE)使用差分算子(變異和交叉算子)生成候選解,該候選解至少有一個變量的值與父代候選解不同。因此,DE 算法具有良好的局部利用能力,進而具有較快的收斂速度。從這個角度出發(fā),ABC可以借鑒DE的差分算子來提高收斂速度和優(yōu)化性能。

        近年來,國內(nèi)外學者開展了大量的結(jié)合ABC 和DE的研究工作。Abraham等人提出了HDABCA(hybrid differential artificial bee colony algorithm)算法[16],在ABC的每次迭代后引入DE,在每次迭代后的種群中選擇部分最優(yōu)個體進行差分運算。Xiang 等人提出了hABCDE(hybrid evolutionary algorithm based on artificial bee colony algorithm and differential evolution)算法[17],在每次迭代過程中順序執(zhí)行ABC和DE直到滿足算法終止條件。Gao 等人提出了DGABC(DE with gbest-guided ABC)算法[18],該算法設(shè)計了一個基于搜索經(jīng)驗的評價策略,每次迭代都依據(jù)該評價策略決定執(zhí)行ABC 或DE。上述研究的實驗結(jié)果表明引入DE能夠提高ABC算法的性能。然而,上述研究工作在引入DE 時,沒有考慮DE 對參數(shù)(比例因子F和交叉率CR)的敏感性問題[19-20]。因此,Liang等人提出了基于自適應差分算子的人工蜂群算法(enhanced artificial bee colony algorithm with adaptive differential operators,ABCADE)[21]。ABCADE 在 標準ABC 的雇傭蜂階段引入了自適應差分算子,該自適應差分算子考慮了參數(shù)敏感性問題,實驗結(jié)果表明ABCADE具有更好的性能。ABCADE引入的自適應差分算子主要來源于差分進化算法JADE[22]。但JADE 算法較適合解決單峰和簡單多峰函數(shù)。另外一個比較經(jīng)典的DE算法CoDE[23]適合求解復雜多峰函數(shù)[23],可避免算法陷入局部最優(yōu)問題。并且Li等人提出了結(jié)合JADE 和CoDE 的差分進化算法[24],實驗結(jié)果表明結(jié)合算法的性能優(yōu)于JADE和CoDE。通過近期ABC、JADE 算子和CoDE 算子的相關(guān)文獻,在進行徹底分析后,本文確定可以通過結(jié)合JADE算子和CoDE 算子來提高ABC 算法的性能。為此,本文提出了結(jié)合改進JADE 和CoDE 的人工蜂群算法AMDABC(adaptive modified differential operators based artificial bee colony),實驗結(jié)果表明AMDABC具有更好的優(yōu)化性能。AMDABC 算法的主要工作包括:

        (1)分析了ABC 和DE 算法的優(yōu)缺點,提出了結(jié)合DE 算子的ABC 算法,算法在雇傭蜂階段引入JADE差分和CoDE差分算子。

        (2)給出了兩個控制參數(shù)P1和Q,根據(jù)P1和Q的值自適應決定采用JADE 差分算子、CoDE 差分算子還是ABC解搜索方程生成候選解。

        (3)在跟隨峰階段對種群進行分級處理,重新定義了選擇概率,并引入了JADE差分算子生成候選解。

        2 本文提出的AMDABC算法

        ABC具有良好的全局探索(exploration)能力,但局部利用(exploitation)能力較弱。與此相反,DE 具有良好的局部利用能力,但全局探索能力較弱。結(jié)合ABC和DE的混合算法能夠充分利用兩者的優(yōu)點,成為目前的研究熱點。JADE 和CoDE 是兩個比較經(jīng)典的DE 算法,JADE 在單峰函數(shù)和簡單多峰函數(shù)性能較好,而CoDE 更適合求解多峰函數(shù)。因此,本文提出了結(jié)合JADE 和CoDE 的ABC 算法——AMDABC。AMDABC算法是ABC算法的一個改進算法,主要在雇傭蜂階段引入JADE 和CoDE 的差分算子,并給出了相應的控制參數(shù)決定本次雇傭蜂階段采用JADE 的差分算子、CoDE 的差分算子還是ABC的解搜索方程。

        2.1 AMDABC算法框架

        本文的主要目的是設(shè)計一種算法,它在雇傭蜂階段引入一種混合框架,可以自適應地利用JADE算子、CoDE 算子和ABC 的解搜索方程,以尋求全局探索(Exploration)能力和局部利用(Exploitation)能力的平衡。

        圖1給出了AMDABC 算法框架,大體分為雇傭蜂階段、跟隨蜂階段和偵查蜂階段。在雇用蜂階段引入了JADE 算子、CoDE 算子,并根據(jù)參數(shù)Q、Q1、Q2和P1控制候選解生成公式。在跟隨蜂階段,同樣結(jié)合JADE差分算子產(chǎn)生候選解,以更好地解決人工蜂群算法收斂緩慢的問題,最大限度地發(fā)揮差分算子的優(yōu)勢。

        Fig.1 Algorithm framework圖1 算法框架

        2.2 AMDABC的雇傭蜂階段

        2.2.1 控制參數(shù)Q、Q1、Q2

        AMDABC 將JADE 與ABC 的結(jié)合當作一種選擇,將CoDE當作一種選擇,前者適合求解單峰函數(shù),而后者適合求解多峰函數(shù),在雇傭蜂階段兩者根據(jù)進化情況交替執(zhí)行。下面通過參數(shù)形式說明兩者如何交替執(zhí)行。

        第G次迭代的改進率IRG定義為:

        若IRG的值小于給定閾值e,則表示第G次迭代失敗。參數(shù)Q用來記錄迭代失敗的次數(shù),用于控制兩種選擇的交替執(zhí)行,Q的初始值為0。

        例如,假設(shè)當前執(zhí)行CoDE 的差分算子,每次迭代后根據(jù)迭代是否失敗來更新Q值,當Q值大于指定閾值Q2時,則執(zhí)行ABC 的解搜索方程或JADE 的差分算子,Q更新為0。接下來的迭代開始執(zhí)行ABC的解搜索方程或JADE的差分算子,每次迭代也不斷地更新Q值,當Q值大于指定閾值Q1時,則又開始執(zhí)行CoDE的差分算子。

        2.2.2 控制參數(shù)P1

        如圖1算法框架所示,在雇傭蜂階段,當標志flag=1時,程序進入JADE 與ABC 結(jié)合分支,此時由參數(shù)P1控制程序執(zhí)行JADE算子還是ABC搜索方程。

        其中,F(xiàn)ES是當前生成的個體總數(shù),maxFES是預定義的個體總數(shù)最大值。P1隨FES的增加逐漸增加,因此雇傭蜂在早期主要采用ABC解搜索方程生成候選解,保證了種群的多樣性;在后期主要采用JADE 差分算子生成候選解,加快了收斂速度。

        2.2.3 ABC搜索方程

        在ABC算法中,對當前第i個個體Xi依據(jù)式(3)生成新個體Vi。

        其中,i=1,2,…,SN,SN是種群大小,j=1,2,…,D,D是個體維度。r1、r2是分別從1到SN之間選擇的一個整數(shù),且不等于i。其中φij是一個-1到1之間的隨機實數(shù)。

        生成新個體Vi后,需要計算Vi的適應度,根據(jù)適應度決定是否用Vi更新Xi。

        2.2.4 JADE差分算子

        AMDABC 算法在雇傭蜂階段和跟隨蜂階段均引入了JADE差分算子,其主要包括變異算子和兩點交叉算子。

        (1)變異算子:每個個體通過變異算子生成一個新解,本文采用改進后的DE/rand/1變異算子[18],具體如式(4)所示。

        其中,xI(r1)、xI(r2)、xI(r3)分別表示隨機選擇3個個體中的最好的、次好的和最壞的個體。sig的定義如式(5)所示,其用來控制差分向量的方向。在式(6)中,xI(r1)是相對最有希望的區(qū)域。如果3個隨機選擇的個體具有相等的函數(shù)值(f(xI(r1))=f(xI(r2))=f(xI(r3)))時,P2的值設(shè)置為0.5。

        (2)兩點交叉算子:變異操作執(zhí)行完畢后,AMDABC 對當前個體Xi和變異個體Vi執(zhí)行兩點交叉運算,生成候選向量Ui=(ui1,ui2,…,uiD),具體公式如式(7)所示。

        其中,i=1,2,…,SN,SN是種群大小,j=1,2,…,D,D是個體維度,rand是一個0到1之間的隨機數(shù),jrand是1到D之間的一個隨機整數(shù),其保證了至少有一個變量遺傳自變異向量Vi。CR是交叉參數(shù),其取值范圍為[0,1]。

        (3)參數(shù)F和CR的自適應調(diào)整:在JADE 中,式(4)和式(7)的比例因子F和交叉率CR的設(shè)置可能影響算法的性能。為解決這個問題,本文采用了一種自適應機制對參數(shù)F和參數(shù)CR進行了調(diào)整,假定其服從高斯分布[24]。

        其中,F(xiàn)i和CRi均為0到1之間的實數(shù),當Fi>1或者Fi≤0時,F(xiàn)i被[0,1]范圍內(nèi)生成的隨機數(shù)代替,同樣的約束也適用于CRi。Fμ、CRμ初始值為0.5[22],F(xiàn)δ、CRδ初始值為0.3[19]。

        每次迭代,當產(chǎn)生了新的候選解,其相關(guān)的Fi和CRi分別保存在SF和SCR中,在每一代的末尾,分別根據(jù)式(10)和式(11)更新參數(shù)Fμ和Fδ。CRμ和CRδ采納相同的更新方法。

        mean(SF)和var(SF)分別代表的是當前SF的平均值和方差。Fδ和CRδ的范圍限制在[0.1,0.3]。

        2.2.5 CoDE差分算子

        AMDABC算法在雇傭蜂階段引入了CoDE差分算子。對每個個體,CoDE分別通過差分進化算子“DE/rand/1/bin”“DE/rand/2/bin”和“DE/current-to-rand/1”生成3個候選解,然后選擇一個適應度值最大的候選解作為當前候選解。根據(jù)當前候選解和當前個體適應度值的大小來決定是否用當前候選解替代當前個體。

        其中,r1、r2、r3、r4、r5是1到SN之間的一個隨機整數(shù),且與i不同且互不相同,代表一個個體。xbestj是當前群體中的最好個體。

        此外,隨機使用的3組F和CR控制參數(shù)設(shè)置分別為[F=1.0,CR=0.1],[F=1.0,CR=0.9],并且[F=0.8,CR=0.2]。

        2.3 AMDABC的跟隨蜂階段

        在跟隨蜂階段,每個跟隨蜂估量種群個體的質(zhì)量,并依據(jù)質(zhì)量按照一定的概率選擇個體?;続BC 算法為每個個體計算選擇概率,然后依據(jù)概率決定選擇哪個個體。理論上概率較大的個體被選擇概率較大。但當個體數(shù)目較多時,每個個體的選擇概率都比較小,不同個體之間的選擇概率差異也比較小,這樣不容易區(qū)分個體之間的差異性。為了克服上述問題,本文采用將個體分成n個級別,每個級別的個體具有相同的選擇概率,這樣只需要計算n個不同的選擇概率,能夠較好地區(qū)分不同級別的個體,保證跟隨蜂能以較高概率在較好級別中選擇個體。假定將所有候選解等分為n個級別,每個級別包含m=SN/n個個體。最好的m個候選解級別為n,最后m個候選解級別為1。每個候選解被選擇的概率依據(jù)式(15)進行計算。

        其中,Pi和Li分別是選擇概率和第i個個體的級別。為了避免超級個體提前誘導整個蜂群丟失種群多樣性,防止過早陷入局部最優(yōu),m不可取值較?。煌瑫r個體之間需強調(diào)差異性,算法需要快速收斂,m不可取值較大。通過設(shè)計重復性實驗確定SN=50時,m為5時效果最優(yōu)。依據(jù)式(15)可以看出,級別越高,選擇概率越大,同一級別的個體的選擇概率是相同的。通過這種方式,跟隨蜂能夠有效地識別出良好的候選解,并在有前途的區(qū)域進行局部精細搜索。同一級別的個體具有相同的選擇概率,這表明跟隨蜂平等對待相似位置,因此可以同時利用局部最優(yōu)區(qū)域。跟隨蜂選擇一個個體后采用JADE 變異算子和兩點交叉算子產(chǎn)生候選解。

        3 實驗

        3.1 測試數(shù)據(jù)和參數(shù)設(shè)置

        為測試本文算法AMDABC性能,使用了19個標準函數(shù)進行測試,具體公式如表1所示。其中,D是測試函數(shù)的維度。函數(shù)f1~f6和f8是連續(xù)的單峰函數(shù),f7是一個不連續(xù)的階躍函數(shù),f9是一個噪聲四次函數(shù),f10~f19是局部最小值隨著問題維度呈倍增長的多峰函數(shù),Range是變量的取值范圍,Min是函數(shù)理論最小值,Accept是可接受的最小值。

        Table 1 Standard test function表1 標準測試函數(shù)

        本文算法和比較算法參數(shù)設(shè)置如表2所示,所有比較算法的參數(shù)設(shè)置情況和原文一樣。

        3.2 與典型ABC改進算法的比較

        AMDABC與典型的ABC改進算法進行比較,具體包括MABC(modified artificial bee colony algo-rithm)[10]、GABC(global-best-guided artificial bee colony algorithm)[8]、CABC(crossover artificial bee colony algorithm)[25]。MABC試圖通過在解搜索方程中同時改變多個變量來提高人工蜂群的性能。GABC 將全局最優(yōu)解的信息結(jié)合到解搜索方程中以提高解搜索方程效率。CABC 通過改進解搜索方程來提高算法搜索能力及加快收斂速度。在19個標準函數(shù)上,分別進行了兩個數(shù)據(jù)維度(D=30和D=50)的實驗比較。所有算法獨立運行25次,參數(shù)masFES的值設(shè)置為5 000D,計算25次獨立運行的均值和方差。具體實驗結(jié)果見表3和表4,其中mean表示均值,std表示方差,win表示算法在19個測試函數(shù)上取得最優(yōu)結(jié)果的個數(shù),其中對取得最優(yōu)結(jié)果的情況進行了加粗處理。

        Table 2 Parameter settings of AMDABC and comparison algorithms表2 AMDABC及比較算法的參數(shù)設(shè)置

        如表3所述,在測試函數(shù)的維數(shù)等于30時,AMDABC 算法能夠在7個函數(shù)上找到全局最優(yōu)解(即f7、f11~f14、f17、f18),在其余的函數(shù)中取得的解也非常接近于函數(shù)本身的全局最優(yōu)解。依據(jù)函數(shù)取得最優(yōu)解個數(shù)來評價,AMDABC 在除了函數(shù)f19之外的所有函數(shù)上取得了最優(yōu)結(jié)果,取得最優(yōu)解個數(shù)為18,其他算法分別為1、3、7,因此依據(jù)取得最優(yōu)解個數(shù)來說,AMDABC算法優(yōu)于其他算法。整體來說,AMDABC的性能在大部分測試函數(shù)上明顯優(yōu)于MABC、GABC和CABC。

        如表4所述,在測試函數(shù)的維數(shù)等于50時,AMDABC 算法能夠在5個函數(shù)上找到全局最優(yōu)解(即:f7、f11~f13、f18),在其余的函數(shù)中取得的解也非常接近于函數(shù)本身的全局最優(yōu)解。依據(jù)函數(shù)取得最優(yōu)解個數(shù)來評價,AMDABC在除了函數(shù)f16、f17和f19之外的所有函數(shù)上取得了最優(yōu)結(jié)果,取得最優(yōu)解個數(shù)為16,其他算法分別為1、4、7,因此依據(jù)取得最優(yōu)解個數(shù)來說,AMDABC 算法優(yōu)于其他算法。整體來說,AMDABC 的性能在大部分測試函數(shù)上明顯優(yōu)于MABC、GABC和CABC。

        Table 3 Experimental results compared with improved ABC algorithms(D=30)表3 與典型ABC改進算法比較實驗結(jié)果(D=30)

        Table 4 Experimental results compared with improved ABC algorithms(D=50)表4 與典型ABC改進算法比較實驗結(jié)果(D=50)

        圖2給出了一些代表性函數(shù)在數(shù)據(jù)維數(shù)D=30時獨立運行25次的均值曲線圖,其中橫坐標FES 表示當前生成的個體總數(shù),縱坐標表示均值。曲線越陡,收斂速度越快。表3、表4和圖2說明了本文算法AMDABC具有更好性能。

        目前在文獻中,數(shù)值實驗被廣泛用于驗證算法的收斂性能。如表5所述,本文根據(jù)常用的指標AVEN將AMDABC 和典型ABC 算法(MABC、GABC 和CABC)進行比較,以證明算法有較好的收斂性能。AVEN 表示達到可接受值時所需的FES 的平均數(shù)量。顯然,AVEN越小,收斂性能越好。

        3.3 與經(jīng)典DE改進算法的比較

        本文算法AMDABC遵循人工蜂群算法的框架,但因其與差分進化也密切相關(guān),因此將它與差分進化算法比較是必要的。并且由于結(jié)合ABC 和DE 的混合算法能夠充分利用上述兩種算法的優(yōu)點,國內(nèi)外學者已開展了大量的ABC 和DE 的混合算法的研究工作。本節(jié)將AMDABC與5種典型的差分進化算法進行比較,具體包括SaDE(self-adaptive differential evolution)[19]、sinDE(sinusoidal differential evolution)[20]、JADE[22]、CoDE[25]和ABCADE[21]。其中ABCADE算法是典型的ABC 和DE 結(jié)合算法。在19個標準函數(shù)上,分別進行了兩個數(shù)據(jù)維數(shù)(D=10,D=40)的實驗比較。所有算法獨立運行25次,參數(shù)masFES的值設(shè)置為5 000D,計算25次獨立運行的均值和方差。具體實驗結(jié)果見表6和表7,其中mean表示均值,std表示方差,win表示算法在19個測試函數(shù)上取得最優(yōu)結(jié)果的個數(shù),其中對取得最優(yōu)結(jié)果的情況進行了加粗處理。

        Fig.2 Mean convergence curve compared with typical ABC improved algorithms(D=30)圖2 與典型ABC改進算法比較的均值收斂曲線(D=30)

        Table 5 AVEN comparison with typical ABC improved algorithms(D=40)表5 與典型ABC算法的AVEN比較(D=40)

        Table 6 Experimental results compared with typical DE improved algorithms(D=10)表6 與典型DE改進算法比較實驗結(jié)果(D=10)

        如表6所述,在測試函數(shù)的維數(shù)等于10時,AMDABC 算法能夠在6個函數(shù)上找到全局最優(yōu)解(即:f7,f11~f14,f18),并且方差為0,也就是說每次獨立運行都可以獲得全局最優(yōu)解;在其余的函數(shù)中取得的解也非常接近于函數(shù)本身的全局最優(yōu)解。依據(jù)函數(shù)取得最優(yōu)解個數(shù)來評價,AMDABC在除了函數(shù)f16、f17、f19之外的所有函數(shù)上取得了最優(yōu)結(jié)果,取得最優(yōu)解個數(shù)為16,其他算法分別為1、2、2、5、9,因此依據(jù)取得最優(yōu)解個數(shù)來說,AMDABC 算法優(yōu)于其他算法。整體來說,AMDABC 的性能在大部分測試函數(shù)上明顯優(yōu)于SaDE、CoDE、JADE、sinDE和ABCADE。

        如表7所述,在測試函數(shù)的維數(shù)等于40時,AMDABC 的性能進一步得到了改善,AMDABC 算法能夠在7個函數(shù)上找到全局最優(yōu)解(即:f7、f11~f14、f17、f18),并且方差為0,也就是說每次獨立運行都可以獲得全局最優(yōu)解;在其余的函數(shù)中取得的解也非常接近于函數(shù)本身的全局最優(yōu)解。依據(jù)函數(shù)取得最優(yōu)解個數(shù)來評價,AMDABC 在除了函數(shù)f4和f19之外的所有函數(shù)上取得了最優(yōu)結(jié)果,取得最優(yōu)解個數(shù)為17,其他算法分別為1、2、3、2、9,因此依據(jù)取得最優(yōu)解個數(shù)來說,AMDABC 算法優(yōu)于其他算法。整體來說,AMDABC 的性能在大部分測試函數(shù)上明顯優(yōu)于SaDE、CoDE、JADE、sinDE和ABCADE。

        圖3給出了一些代表性函數(shù)在數(shù)據(jù)維數(shù)D=40時獨立運行25次的均值曲線圖,其中橫坐標FES 表示當前生成的個體總數(shù),縱坐標表示均值。曲線越陡,收斂速度越快。表6、表7和圖3說明了本文算法AMDABC具有更好性能。

        上述比較實驗結(jié)果表明AMDABC 算法性能優(yōu)于典型ABC 算法、典型DE 算法、典型ABC 和DE 結(jié)合算法。

        3.4 Q1與Q2的參數(shù)敏感性分析

        AMDABC 算法的雇傭蜂階段主要包括兩個分支,一個分支是ABC 與JADE 結(jié)合(簡稱為分支1),一個分支是CoDE 算法(簡稱為分支2),在兩個分支之間交替執(zhí)行。算法首先不斷地執(zhí)行分支1,直到分支1失敗的次數(shù)大于參數(shù)Q1時則開始不斷地執(zhí)行分支2。當分支2失敗的次數(shù)大于參數(shù)Q2時則又開始執(zhí)行分支1。綜上,AMDABC算法依據(jù)參數(shù)Q1和Q2的值自適應地交替執(zhí)行兩個分支,參數(shù)Q1和Q2的值可能影響AMDABC算法的性能,本節(jié)通過實驗分析參數(shù)Q1和Q2的敏感性。

        Table 7 Experimental results compared with typical DE improved algorithms(D=40)表7 與典型DE改進算法比較實驗結(jié)果(D=40)

        AMDABC 算法的分支1包含一個變異算子,而分支2包含3個變異算子,因此Q1的值需要大于等于Q2的值。在保證其余參數(shù)值不變的情況下,本文測試了Q1和Q2的7種取值組合,并將其與本文設(shè)置的參數(shù)組合(Q1=10,Q2=5)進行比較。在測試函數(shù)的維數(shù)等于30時,每個組合單獨運行19次,通過Wilcoxon秩和檢驗考慮在5%的顯著性水平上檢驗顯著性差異,最終對比結(jié)果如表8所示。

        從表8可以看出,后4組組合(Q1=2Q2)的性能略優(yōu)于前3組組合(Q1=Q2)的性能,主要是因為Q1控制的分支1每次只執(zhí)行1次變異操作,而Q2控制的分支2每次執(zhí)行3次變異操作,兩個分支變異操作的優(yōu)勢互補,在Q1大于Q2時能更好地自適應調(diào)整兩個分支,保證兩個分支更公平地競爭,因此后4組組合(Q1=2Q2)的性能略優(yōu)于前3組組合(Q1=Q2)的性能。

        Table 8 Sensitivity analysis of Q1and Q2表8 Q1與Q2的參數(shù)敏感性分析

        如表8所示,在Q1=2Q2的4組組合中,組合(40,20)的性能最差,說明Q1、Q2的值較大時,AMDABC算法性能會降低。一個合理的解釋是隨著Q1、Q2值的增大,在同一蜜源處搜索新解的次數(shù)會增加,會產(chǎn)生一些沒有必要的搜索,導致算法性能降低。組合(4,2)的性能較差,說明Q1、Q2的值較小時,AMDABC 算法性能也會降低。一個合理的解釋是Q1和Q2較小時,在同一蜜源處搜索新解的次數(shù)較少,不能保證算法搜索到較優(yōu)的新解。不過從整體上來看,后4組組合的性能與本文設(shè)置的組合(10,5)的性能都比較接近,因此在保證Q1大于Q2的情況下,本文算法對這兩個參數(shù)在大部分測試函數(shù)上是不敏感的。綜上所述,建議Q1、Q2組合設(shè)置范圍為(8,4)~(20,10)。

        Fig.3 Mean convergence curve compared with typical DE improved algorithms(D=40)圖3 與典型DE改進算法比較的均值收斂曲線(D=40)

        4 結(jié)束語

        本文提出了一個改進的人工蜂群算法AMDABC,它在人工蜂群算法的框架下結(jié)合了差分進化算子,主要包括JADE 和CoDE 的差分算子。在雇傭蜂階段,通過兩個控制參數(shù)P1和Q決定雇傭蜂采用JADE差分算子、CoDE差分算子還是ABC解搜索方程生成候選解。在跟隨蜂階段,使用JADE變異算子和兩點交叉算子產(chǎn)生候選解。在19個標準函數(shù)的不同數(shù)據(jù)維數(shù)上,AMDABC 的性能與典型的人工蜂群算法、典型的差分進化算法、人工蜂群與差分進化結(jié)合算法的性能進行了比較,實驗結(jié)果表明AMDABC 算法性能優(yōu)于典型ABC 算法、典型DE 算法、典型ABC 和DE 結(jié)合算法。在未來的工作中,可以考慮將更有效的差分進化算子和人工蜂群算法的解搜索方程結(jié)合,也可考慮將AMDABC算法用于處理更復雜的優(yōu)化問題和現(xiàn)實世界的應用。

        猜你喜歡
        測試函數(shù)蜂群全局
        Cahn-Hilliard-Brinkman系統(tǒng)的全局吸引子
        量子Navier-Stokes方程弱解的全局存在性
        “蜂群”席卷天下
        落子山東,意在全局
        金橋(2018年4期)2018-09-26 02:24:54
        具有收縮因子的自適應鴿群算法用于函數(shù)優(yōu)化問題
        帶勢函數(shù)的雙調(diào)和不等式組的整體解的不存在性
        改進gbest引導的人工蜂群算法
        約束二進制二次規(guī)劃測試函數(shù)的一個構(gòu)造方法
        蜂群夏季高產(chǎn)管理
        新思路:牽一發(fā)動全局
        亚洲国产精品中文字幕久久| 亚洲欧洲久久久精品| 视频一区视频二区亚洲免费观看| 国产麻豆一区二区三区在| 久久精品中文字幕无码绿巨人| 毛片24种姿势无遮无拦| 国精品无码一区二区三区在线看| 日本精品熟妇一区二区三区 | 视频国产精品| 亚洲综合中文一区二区| 美女视频黄是免费| 无码精品人妻一区二区三区人妻斩 | 性无码专区无码| 精品国产高清a毛片无毒不卡| 老肥熟女老女人野外免费区| 天堂av网手机线上天堂| 亚洲精品成人av在线| 欧美aⅴ在线| 手机av在线观看视频| 人妻精品视频一区二区三区| 超清纯白嫩大学生无码网站| 国产精品自产拍在线观看免费| 亚洲一区二区三区ay| 久久国产精品一国产精品金尊| 女同性黄网aaaaa片| 精品国产AⅤ一区二区三区V免费| 中文字幕一区二区人妻性色av| 人妻饥渴偷公乱中文字幕| 欧美国产日产一区二区 | 成人影院视频在线播放| 少妇人妻中文字幕hd| 亚洲av国产av综合av| 中文字幕av久久激情亚洲精品| 国产精品一区二区三区在线蜜桃| 国产特级毛片aaaaaaa高清| 二区久久国产乱子伦免费精品| av黄色大片久久免费| aⅴ精品无码无卡在线观看| 日韩久久一级毛片| 亚洲精品国产第一区三区| 亚洲午夜av久久久精品影院色戒 |