• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      求解約束優(yōu)化問題的復合人工蜂群算法

      2022-02-24 12:32:26支俊陽李旭飛崔軻軻
      計算機工程與應用 2022年3期
      關(guān)鍵詞:測試函數(shù)種群約束

      王 貞,支俊陽,李旭飛,崔軻軻

      1.北方民族大學 數(shù)學與信息科學學院,銀川 750021

      2.咸陽師范學院 數(shù)學與信息科學學院,陜西 咸陽 712000

      實際工程優(yōu)化問題大多被構(gòu)建為約束優(yōu)化問題,例如:焊接梁結(jié)構(gòu)設計、拉力/壓力彈簧設計、壓力容器最小費用優(yōu)化等。約束的存在增加了問題的求解難度,因此研究者們設計了多種策略來處理約束,如ε約束法[1]、多目標優(yōu)化法[2]、罰函數(shù)法[3]等。此外,隨著智能優(yōu)化算法的發(fā)展,研究者們還通過改進智能優(yōu)化算法提高求解約束優(yōu)化問題的性能。2015年,龍文等[4]提出了一種改進的螢火蟲算法,加快算法求解約束優(yōu)化問題的收斂速度,避免其陷入局部最優(yōu)。2018年,劉三陽等[5]提出了一種協(xié)同進化教與學優(yōu)化算法,使得隨著種群的進化懲罰因子及約束容忍度自適應調(diào)整,提高了算法求解約束優(yōu)化問題的效率。2019年,Wang等[6]為了平衡收斂性與多樣性、目標函數(shù)與約束違反,提出了一種約束優(yōu)化的復合差分進化方法來求解約束優(yōu)化問題。2020年,顧啟元等[7]提出一種改進的水波優(yōu)化算法,提高了算法求解約束優(yōu)化問題的收斂精度。

      人工蜂群算法(ABC)是Karaboga[8]于2005年提出的一種智能優(yōu)化算法,它具有控制參數(shù)少,收斂速度快等優(yōu)點。2010年,Zhu等[9]為了提高ABC算法的開發(fā)能力,采用Gbest引導種群進行搜索,提出了GABC算法。Mezura等[10]通過使用等式約束動態(tài)容忍機制及修改三種蜜蜂搜索方程,提出了Elitist-ABC算法。2011年,Karaboga等[11]提出了改進的ABC算法(MABC),使用Deb選擇規(guī)則替換ABC原有的選擇方式。Kang等[12]提出了一種基于Hooke Jeeves模式搜索的混合Hooke Jeeves ABC算法。2017年,Bansal等[13]在雇傭蜂和觀察蜂階段通過結(jié)合基于個體移動適應度概率的概念,對GABC進行了改進。2018年,Gao等[14]提出了一種基于人工蜂群算法(ABC)的新機制,該算法由兩種新的學習策略-方向?qū)W習和精英學習組成,相互補充,提高算法的性能。王志剛等[15]在雇傭蜂和觀察蜂階段動態(tài)調(diào)整搜索維數(shù),提出多搜索策略協(xié)同進化的人工蜂群算法。2020年,郭佳等[16]提出了IMABC算法,將算法的進化過程分為兩個階段,減少算法隨機搜索的同時避免了算法的早熟。莫建麟等[17]提出了ABCIS算法,放棄了傳統(tǒng)的貪婪選擇機制并通過智能搜索與特殊劃分的方式提升了算法的搜索性能。盡管對ABC算法的研究取得了很多成果,但大部分人工蜂群算法在求解約束優(yōu)化問題時,在搜索過程中僅采用單一搜索方程,很難平衡種群的收斂性與多樣性,使算法易陷入局部最優(yōu)。在保留較優(yōu)個體時,僅使用一種策略,難以平衡種群的目標函數(shù)與約束違背。

      為了解決上述問題,本文提出了一種復合人工蜂群算法(composite artificial bee colony algorithm,CABC)來求解約束優(yōu)化問題。算法中使用了不同的搜索方程平衡種群的多樣性與收斂性,來提高算法的收斂精度。通過ε約束和可行性準則結(jié)合的方式選擇個體,促使種群向可行區(qū)域靠近,同時平衡目標函數(shù)與約束,極大地提高了算法的探索能力。通過將CABC算法用于求解CEC 2006和CEC 2010測試函數(shù),并應用到3個工程優(yōu)化問題上檢驗了算法的性能。

      1 人工蜂群算法

      受到蜜蜂采蜜行為的啟發(fā)[8],在ABC中,食物源位置對應優(yōu)化問題的一個候選解,每個食物源的質(zhì)量代表其對應候選解的適應度值。

      在初始化階段,隨機生成一個均勻分布含SN個食物源的初始種群,每個食物源x i(i=1,2,…,SN)的維數(shù)為D,每個解通過下面方式來初始化:

      其中,x i是種群中的第i個解,xmin,j和xmax,j分別是第j維的下界和上界,rand是[0,1]范圍內(nèi)分布的隨機數(shù)。在雇傭蜂階段,種群探索新食物源,通過如下形式更新:

      其中,j∈[1,2,…,D],k∈[1,2,…,SN],k≠i。φij是在[-1,1]中隨機產(chǎn)生的數(shù)。產(chǎn)生新解之后,在xi和新解v i之間保留更好的食物源。對于每個食物源x i的適應度值fit i以如下方式計算:

      其中,f i代表解xi的目標函數(shù)值。

      開采食物源后,雇傭蜂返回蜂巢,通過搖擺舞與跟隨蜂分享食物源的位置和質(zhì)量信息。在跟隨蜂階段,跟隨蜂依據(jù)雇傭蜂分享的信息計算食物源xi的選擇概率prob i:

      其中,maxf it i是種群中的最大適應度值。跟隨蜂通過輪盤賭選擇食物源,并根據(jù)式(2)進行更新。

      若任何食物源的開采達到limit次,則放棄該食物源,對應的雇傭蜂就會轉(zhuǎn)化為偵查蜂,在整個搜索空間中根據(jù)式(1)探索新的食物源。人工蜂群算法流程如下。

      算法1人工蜂群算法

      步驟1利用式(1)進行種群初始化,設定算法的所有參數(shù)。食物源數(shù)量SN,最大迭代次數(shù)maxGen,當前代數(shù)gen=1,最大開采次數(shù)limit。

      步驟2雇傭蜂根據(jù)式(2)搜索新的食物源vi,通過式(3)計算新食物源的適應度值fit i。比較x i和vi的適應度值保留較好的食物源。

      步驟3利用式(4)計算跟隨蜂選擇食物源的概率,通過式(2)選擇一個食物源進行更新。計算新食物源的適應度值,根據(jù)其適應度值選擇要保留的食物源。

      步驟4如果有食物源達到最大開采次數(shù),則根據(jù)式(1)產(chǎn)生一個新食物源。

      步驟5識別是否滿足滿足終止條件,若滿足終止條件,則輸出最優(yōu)解,否則轉(zhuǎn)至步驟2。

      2 復合人工蜂群算法

      原始ABC算法僅僅使用一種搜索方程,難以平衡種群的收斂性與多樣性,影響了算法的性能。因此,CABC算法在雇傭蜂階段使用三種不同的搜索方程產(chǎn)生三個新食物源。在這三個新食物源之間根據(jù)可行性準則保留較優(yōu)新食物源,將得到的新食物源再與舊食物源之間基于ε約束進行比較,保留較優(yōu)食物源。這樣可以平衡種群的收斂性與多樣性,同時兼顧目標函數(shù)與約束的有效信息。

      2.1 搜索方程

      在原始的人工蜂群算法中,蜂群的搜索方程往往是對解進行一維變異,但這樣將會導致種群中的個體過于關(guān)注自身的信息,進而忽略了其他個體以及優(yōu)秀個體的信息。但若對種群中個體的每一維都進行變異,種群過度吸收其他個體的信息而忽略了自身的信息,丟失個體在尋優(yōu)過程中得到的優(yōu)良信息。所以在雇傭蜂階段種群需要由最優(yōu)個體引導并隨機選取部分維進行變異來保證種群的收斂性,但這樣將會造成種群的多樣性有所損失。為了平衡種群的收斂性與多樣性,需要由鄰居個體引導并對其每一維都進行變異來維持種群的多樣性。因此在雇傭蜂階段采用如式(5)、(6)兩個搜索方程產(chǎn)生新的蜜源:

      其中,k∈{1,2,…,SN},k≠i,j=[1,2,…,D],φi∈[-1,1]是均勻分布的隨機數(shù),D為問題的維數(shù)。

      其中,r1,r2,r3∈{1,2,…,SN},r1≠r2≠r3≠i,j=[j1,j2,…,j m],j r∈{1,2,…,D},r∈{1,2,…,m},m∈{1,2,…,[rand×D]},φi∈[-1,1]是均勻分布的隨機數(shù),φi∈[-0.75,0.75]是均勻分布的隨機數(shù),D為問題的維數(shù)。在式(6)中,F(xiàn)隨著代數(shù)的增加而減?。?/p>

      首先利用式(5)對雇傭蜂進行變異,生成第一個新食物源v1,通過對每一維都進行變異維持了種群的多樣性。其次選取具有最小目標函數(shù)值的個體xbest,利用式(6)對雇傭蜂部分維進行變異,生成第二個新食物源v2,通過具有最小目標函數(shù)值個體的引導促使種群快速收斂。最后選取具有最小約束違反程度的個體xbest,利用式(6)對雇傭蜂部分維進行變異,生成第三個新食物源v3,通過具有最小約束違反程度個體的引導幫助種群快速進入可行域。若種群中具有最小目標函數(shù)值的個體不止一個,則選取具有最小目標函數(shù)值中具有最小約束違反程度的個體;若種群中具有最小約束違反程度的個體不止一個,則選擇具有最小約束違反程度個體中具有最小目標函數(shù)值的個體。

      由于在雇傭蜂階段采用了兩種最優(yōu)引導策略和一種多樣性引導策略,增強了算法的收斂性,對于種群的多樣性有所損失。為了平衡種群的收斂性與多樣性,所以在跟隨蜂階段采用如下搜索方程維持種群的多樣性。

      其中,k∈{1,2,…,SN},k≠i,j=[j1,j2,…,j m],j r∈{1,2,…,D},r∈{1,2,…,m},m∈{1,2,…,[rand×D]},φi∈[-1,1]是均勻分布的隨機數(shù)。

      在偵察蜂階段仍使用與原始ABC相同的搜索方程(1)產(chǎn)生新的個體,通過隨機搜索幫助種群跳出局部最優(yōu)。因為雇傭蜂及觀察蜂階段的搜索方程促使更多距離種群較遠的個體進入種群中,在進化過程中維持了種群的多樣性,使算法更容易跳出局部最優(yōu)。

      2.2 約束處理方法

      可行性準則是Deb[18]于2000年提出的約束處理方法。由于其原理簡單、方便執(zhí)行、收斂速度快,被研究者廣泛使用。在可行性準則中,采用如下規(guī)則來比較個體:

      (1)兩個個體均為可行解,具有最小目標函數(shù)值的個體占優(yōu)。

      (2)一個個體為可行解,另一個個體為不可行解,可行個體占優(yōu)。

      (3)兩個個體都為不可行解,約束違背程度小的個體占優(yōu)。

      由于可行性規(guī)則較為嚴格的特性,如果可行區(qū)域在整個空間中占比較小,不可行解將難以被選入下一代種群中,因此種群很難進入可行區(qū)域。為了加快種群的收斂,除可行解外,需要特別關(guān)注位于可行區(qū)域邊界的不可行解,因為這些解可能攜帶優(yōu)良解的基因。這就需要一種約束處理方法保留位于可行區(qū)域邊界的解以便在進化過程中對這些解進一步開發(fā),幫助種群快速進入可行區(qū)域。

      ε約束是Takahama和Sakai[1]提出的有代表性的約束處理技術(shù),它可以放松約束,讓約束違反程度低目標函數(shù)值小的個體有機會被選入下一代種群,使得算法能夠探測到可行區(qū)域邊緣的優(yōu)良解,進而指導種群搜索到最優(yōu)區(qū)域。ε約束中比較兩個個體xi和x j時,稱xi優(yōu)于x j當且僅當:

      在式(9)中,ε隨著代數(shù)的增加而下降:

      其中,gen代表當前代數(shù),maxGen代表最大迭代次數(shù),ε0代表在當前代種群中個體的最大約束違反程度。

      本文采用ε約束和可行性準則兩種約束條件處理方法進行解的比較與選擇。通過ε約束促使位于可行區(qū)域邊界的不可行解有機會進入下一代種群,引導種群進入可行區(qū)域。通過使用可行性準則對進化過程中產(chǎn)生的解進行更嚴格的選擇,促進算法收斂。

      2.3 適應度值的計算

      受文獻[12]的啟發(fā),在CABC算法中,極小化約束優(yōu)化問題第i個食物源的適應度值為:

      式(11)中fito i為第i個食物源的原值適應度值:其中,SP∈[1.0,2.0]是選擇壓力,SP=1.5是最佳選擇。rank i是第i個個體在整個種群中排序后的位置。

      在計算rank時,先對種群中個體根據(jù)約束違背值進行排序,在這個排序基礎(chǔ)上再對種群中個體基于其目標函數(shù)值進行排序。由于跟隨蜂選擇食物源的概率為:

      所以通過這種排序的方法使得種群中個體約束違背程度且目標函數(shù)值小的個體總是位于前方,也就是說在下一代種群中優(yōu)先選擇那些可行且目標函數(shù)值小的個體。若種群中的個體全部是不可行的,這種排序方式就退化為僅依靠約束違背程度進行排序,這樣具有較小約束違背程度的個體有著更大的概率進入下一代種群,從而引導種群向可行區(qū)域靠近。若種群中的個體都是可行的,該排序方式就僅依靠目標函數(shù)值進行排序,具有更小目標函數(shù)的個體有著更大的概率進入下一代種群,增強了算法的開發(fā)能力。

      2.4 CABC算法的框架

      算法2給出了CABC算法的基本框架。初始化過程中,算法在搜索區(qū)域內(nèi)隨機產(chǎn)生食物源。在雇傭蜂階段,采用一種隨機搜索方程與兩種最優(yōu)引導方程產(chǎn)生三個新的食物源。這樣能夠提高算法的收斂能力,并且保證種群的多樣性。在這三個新食物源中根據(jù)可行性規(guī)則選擇要保留的新食物源,促使種群向可行區(qū)域靠近。在產(chǎn)生的新食物源與舊食物源之間根據(jù)ε約束保留優(yōu)良個體,這種保留機制對約束條件有著一定的放松,促使種群中約束違反程度低且目標函數(shù)值小的個體有機會進入下一代種群,這樣有利于保留較好的不可行解,促進算法收斂。在跟隨蜂階段采用隨機搜索方程,平衡了種群的收斂性與多樣性。

      算法2復合人工蜂群算法

      步驟1設置算法參數(shù),食物源數(shù)量SN,最大迭代次數(shù)maxGen,當前代數(shù)gen=1,最大開采次數(shù)limit。利用式(1)進行種群初始化。

      步驟2雇傭蜂按照式(5)、(6)搜索新的食物源,計算新食物源目標函數(shù)值、約束違反程度。利用可行性規(guī)則在產(chǎn)生的三個新食物源中選出一個較優(yōu)新食物源。

      步驟3利用ε約束在新食物源與舊食物源之間進行選擇,保留較優(yōu)食物源。

      步驟4利用式(13)計算跟隨蜂選擇食物源的概率,并選擇一個食物源進行更新。根據(jù)式(8)搜索新食物源,計算新食物源的目標函數(shù)值,約束違反程度。根據(jù)可行性規(guī)則在新食物源和舊食物源之間進行選擇,保留較優(yōu)食物源。

      步驟5如果有食物源達到最大開采次數(shù),則根據(jù)式(1)重新初始化一個食物源。

      步驟6識別是否滿足滿足終止條件,若滿足終止條件,則輸出最優(yōu)解,否則轉(zhuǎn)至步驟2。

      2.5 算法的性能分析

      為了從理論上驗證CABC算法的性能,進行如下所述分析。

      2.5.1 算法的尋優(yōu)能力分析

      CABC算法在雇傭蜂階段使用三種不同的搜索方程平衡種群的收斂性與多樣性,通過將可行性準則和ε約束結(jié)合的方式促使位于可行區(qū)域邊界的不可行個體有機會進入下一代種群,引導種群快速進入可行區(qū)域,提高了算法的全局探索能力。使用新的適應度值計算方式更容易識別種群中高質(zhì)量個體,并且跟隨蜂階段采用輪盤賭方式在高質(zhì)量個體附近進行搜索,提高了算法的局部探索能力,使得種群向較優(yōu)個體靠近,保證了算法的收斂。

      當種群中大部分個體位于可行區(qū)域中,這就需要盡可能多地保留種群中高質(zhì)量個體的信息。在雇傭蜂階段由具有最小約束違反程度的個體引導的搜索方程已經(jīng)變成由具有最小目標函數(shù)的可行解引導,因此算法將在最優(yōu)個體附近進一步開發(fā),提高了算法的局部尋優(yōu)能力。隨著迭代次數(shù)的增加,逐漸確定了可行區(qū)域的大致位置,這時不需要不可行個體引導種群的搜索方向,ε約束逐漸演變?yōu)榭尚行詼蕜t引導種群在可行區(qū)域內(nèi)部搜索,促使算法收斂到最優(yōu)值。另一方面由于在雇傭蜂及跟隨蜂階段采用多維隨機變異操作,保證了種群的多樣性,偵察蜂階段采用隨機搜索的方式,使種群更容易跳出局部最優(yōu),避免了算法的早熟。

      為了進一步說明CABC算法的尋優(yōu)能力,對IEEE CEC2006[19]中g(shù)08測試函數(shù)的種群分布特征進行實驗,實驗結(jié)果如圖1所示,其中圖1(e)、(f)右上角為種群分布的局部放大圖,percent代表當前種群的可行性比例。從圖中可以直觀地看出,在進化初期,種群可行性比例不斷增加,說明了CABC算法將可行性準則和ε約束結(jié)合能夠幫助高質(zhì)量不可行個體進入下一代種群,從而引導種群快速進入可行區(qū)域。隨著迭代次數(shù)的增加,種群中個體逐漸向最優(yōu)個體附近聚集并且具有良好的分散性,說明了利用多維隨機變異操作和最優(yōu)引導變異操作使CABC算法在迭代過程中始終進行全局搜索和局部搜索,在已有經(jīng)驗的基礎(chǔ)上對較優(yōu)個體附近區(qū)域進一步探索且保持了種群的多樣性,平衡了算法的探索能力和開發(fā)能力。

      圖1 測試函數(shù)g08上種群分布變化圖Fig.1 Variation of population distribution on test function g08

      2.5.2 算法的時間復雜度分析

      由算法1可知ABC算法的時間復雜度為O(maxGen×SN×D),其中max Gen是最大迭代次數(shù),SN是食物源數(shù)量,D是問題的維數(shù)。與ABC算法相比,CABC算法初始化的時間復雜度為O(SN×D)。CABC算法在雇傭蜂階段通過不同搜索方程產(chǎn)生了三個新種群,其時間復雜度為O(3×maxGen×SN×D)。所以CABC算法的時間復雜度為O(SN×D+3×maxGen×SN×D+maxGen×SN×D),即O(max Gen×SN×D)。所以CABC算法的時間復雜度為O(maxGen×SN×D),與ABC算法相同。

      2.5.3 算法的空間復雜度分析

      由算法1可知ABC算法的空間復雜度為O(SN×D)。與ABC算法相比,CABC算法在雇傭蜂階段通過不同搜索方程產(chǎn)生了三個新種群,其空間復雜度為O(3×SN×D),即O(SN×D)。所以CABC算法的空間復雜度為O(SN×D),與ABC算法相同。

      3 數(shù)值實驗及結(jié)果分析

      為了系統(tǒng)地驗證CABC算法求解約束優(yōu)化問題的性能,在兩組標準測試函數(shù)上對CABC算法和其他算法進行了比較。測試函數(shù)包括IEEE CEC2006中的20個測試函數(shù)[19],IEEE CEC2010的18個測試函數(shù)[20],它們涵蓋了強非線性、多模態(tài)、極小可行區(qū)域等各種特性。測試函數(shù)詳情見文獻[19-20]。

      3.1 參數(shù)設置

      為了使CABC算法的結(jié)果和其他改進算法的結(jié)果進行對比,在這里將算法的迭代次數(shù)達到最大迭代次數(shù)作為算法的終止條件。按照對比算法在對應文獻中設置的最大評估次數(shù)設置本文的最大迭代次數(shù),使得CABC算法的最大評估次數(shù)小于或者等于對比算法的最大評估次數(shù)。最大迭代次數(shù)max Gen的設置和種群規(guī)模NP的設置在表1中給出。食物源數(shù)量SN=1/2×NP。所有算法的最大開采次數(shù)lim it=SN×D,F(xiàn)0=0.5。實驗中各個算法均進行30次獨立實驗,并取其平均值作為最終實驗結(jié)果。

      表1 參數(shù)設置Table 1 Parameter settings

      3.2 在IEEE CEC2006測試函數(shù)上的實驗

      將CABC算法應用于IEEE CEC2006中的20個測試函數(shù)的求解。與ABC算法進行了比較,實驗結(jié)果如表2所示,加粗部分表示具有良好的結(jié)果。表中best、mean、worst、std、percent分別代表算法獨立運行30次找到的最好值、平均值、最差值、標準差、可行性比例??梢钥闯鲈?0個測試函數(shù)中除了g02、g18外,CABC算法的平均值和標準差均優(yōu)于或者類似于ABC算法的優(yōu)化結(jié)果。ABC算法在測試函數(shù)g05、g13、g17、g20上找不到可行解。CABC算法僅在g20函數(shù)上找不到可行解。圖2為CABC與ABC算法在部分測試函數(shù)上的收斂曲線圖。從圖中可以直觀地看出,CABC算法在收斂精度與收斂速度方面明顯優(yōu)于ABC算法。

      圖2 IEEE CEC2006部分測試函數(shù)上CABC與ABC的收斂曲線Fig.2 Convergence curve of CABC and ABC on partial test functions in IEEE CEC2006

      表2 IEEE CEC2006 20個測試函數(shù)上CABC與ABC的優(yōu)化結(jié)果Table 2 Optimization results of CABC and ABC on 20 benchmark test functions in IEEE CEC2006

      將CABC算法同文獻[13]中的MGABC、BSFABC、GABC、MABC、LFABC的實驗結(jié)果進行比較,最大評估次數(shù)和文獻[13]中設置相同,比較結(jié)果如表3所示??梢钥闯鲈跍y試函數(shù)g01、g03、g04、g06、g07、g08、g10、g11、g12、g15、g16、g19上CABC算法獲得的平均目標函數(shù)值均優(yōu)于其他算法獲得的平均目標函數(shù)值,除g07、g10測試函數(shù)外,CABC算法得到的標準差均小于其他算法得到的標準差,這表明CABC具有更好的穩(wěn)定性。

      表3 IEEE CEC2006 20個測試函數(shù)上CABC與各種改進ABC的優(yōu)化結(jié)果Table 3 Optimization results of CABC and various improved ABC on 20 benchmark test functions in IEEE CEC2006

      將CABC算法同文獻[7]中CGWO、E-BRM及文獻[21]中PSO、HCS-LSAL算法的優(yōu)化結(jié)果進行比較,比較結(jié)果如表4所示。可以看出在測試函數(shù)g01、g03、g04、g06、g08、g11、g12上均值和標準差均優(yōu)于其他算法。在測試函數(shù)g05、g07、g09、g13上尋找到的平均最優(yōu)值非常接近最優(yōu)值。這表明CABC算法能夠有效求解約束優(yōu)化問題。

      表4 IEEE CEC 2006 13個測試函數(shù)上CABC與其他算法的優(yōu)化結(jié)果Table 4 Optimization results of CABC and other algorithms on 13 benchmark test functions in IEEE CEC 2006

      3.3 在IEEE CEC2010測試函數(shù)上的實驗

      為了進一步驗證CABC算法的性能,將CABC算法應用于IEEE CEC2010中18個測試函數(shù)的求解。

      在10維上CABC算法與文獻[14]中的LL-CABC及文獻[10]中的Elitist-ABC進行了比較,最大評估次數(shù)與原文獻中設置的相同。實驗結(jié)果如表5所示,可以看出CABC算法在測試函數(shù)C01、C02、C03、C04、C05、C06、C09、C10、C14、C15、C17、C18上平均值優(yōu)于其他算法,其中除C01、C06外標準差均小于其他算法。Elitist-ABC在測試函數(shù)C04、C11上找不到可行解。ABC與LL-ABC在測試函數(shù)C03、C04、C05、C06、C09、C10、C11、C12上找不到可行解。CABC僅在測試函數(shù)函數(shù)C11、C12上找不到可行解。

      表5 IEEE CEC2010 10維18個測試函數(shù)上CABC與各種改進ABC算法的優(yōu)化結(jié)果Table 5 Optimization results of CABC and various improved ABC algorithms on 18 benchmark test functions with dimension 10 in IEEE CEC2010

      在30維上CABC算法與文獻[14]中的LL-CABC以及文獻[10]中的Elitist-ABC進行了比較,最大評估次數(shù)與原文獻中設置的相同。實驗結(jié)果如表6所示,可以看出CABC算法在測試函數(shù)C01、C02、C05、C06、C09、C10、C15、C16、C17、C18上平均值優(yōu)于其他算法,其中除C01、C02外標準差均小于其他算法。Elitist-ABC在測試函數(shù)C03、C04、C11、C12上找不到可行解;ABC與LL-ABC在測試函數(shù)C03、C04、C05、C06、C09、C10、C11上找不到可行解,CABC僅在測試函數(shù)C03、C04、C11上找不到可行解。綜上所述,CABC算法求解約束優(yōu)化問題可行有效。

      3.4 在工程設計方面的應用

      為了檢驗CABC算法在實際工程問題中的有效性,本文將其應用于3個實際工程問題中,即焊接橋梁結(jié)構(gòu)設計優(yōu)化問題、拉力/壓力彈簧結(jié)構(gòu)設計優(yōu)化問題、壓力容器最小設計優(yōu)化問題。為了使CABC算法的結(jié)果可以和文獻[4-5,14]的結(jié)果進行對比,將算法迭代次數(shù)達到最大迭代次數(shù)作為算法的終止條件。并且按照原文獻設置的最大評估次數(shù)將最大迭代次數(shù)設置為maxGen=1 000。

      3.4.1 焊接梁設計問題

      該問題是在滿足約束條件的情況下使其總費用達到最小,它的決策變量是h(x1)、l(x2)、t(x3)、b(x4),問題的模型為:

      式中:

      通過CABC算法求解焊接梁設計問題,與ABC算法和文獻[4]中CDE、CPSO算法以及文獻[14]中LL-ABC算法比較結(jié)果如表7所示。由表可知,在求解焊接梁設計優(yōu)化問題時CABC算法在最優(yōu)值計算及算法的穩(wěn)定性上明顯優(yōu)于ABC、CDE、CPSO、LL-ABC算法。圖3為ABC、LL-CABC、CABC算法在焊接梁設計優(yōu)化問題上的收斂曲線圖。從圖中可以直觀地看出,CABC算法在收斂精度和收斂速度方面明顯優(yōu)于ABC、LL-CABC算法。

      圖3 各個算法在焊接梁設計問題上的收斂曲線Fig.3 Convergence curve of each algorithm in welding beam design

      表7 各個算法在焊接梁設計上的優(yōu)化結(jié)果Table 7 Optimization results of each algorithm in welding beam design

      3.4.2 拉力/壓力彈簧設計問題

      該問題是在滿足約束條件的情況下使其質(zhì)量達到最小,它的數(shù)學模型如下:

      式中:

      0.25≤x1≤1.30,0.05≤x2≤2.00,2.00≤x3≤15.00

      用CABC算法求解壓力/拉力彈簧設計優(yōu)化問題,與ABC算法和文獻[4]中CDE、CPSO算法以及文獻[14]中LL-ABC算法比較結(jié)果如表8所示。由表可知,在求解拉力壓力彈簧設計優(yōu)化問題時CABC算法在最優(yōu)值計算及算法穩(wěn)定性上明顯優(yōu)于ABC、CDE、CPSO、LL-ABC算法。圖4表示ABC、LL-ABC、CABC在拉力/壓力彈簧設計設計優(yōu)化問題上的收斂曲線圖,從圖中可以直觀地看出,CABC算法在收斂精度和收斂速度方面明顯優(yōu)于ABC、LL-CABC算法。

      圖4 各個算法在壓力/拉力彈簧設計問題上的收斂曲線Fig.4 Convergence curves of each algorithm in pressure/tension spring design

      表8 各個算法在拉伸/壓縮彈簧設計上的優(yōu)化結(jié)果Table 8 Optimization results of each algorithm in pressure/tension spring design

      3.4.3 壓力容器設計最小費用問題

      該問題的主要目標是在滿足一定約束的條件下使得費用最小,它的數(shù)學模型如下:

      式中:

      1≤x1≤99,1≤x2≤99,10≤x3≤200,10≤x4≤200

      用CABC算法求解壓力容器設計最小費用問題,與ABC算法和文獻[5]中CDE、TLBO算法以及文獻[14]中LL-CABC算法比較結(jié)果如表9所示。由表可知,在求解壓力容器設計最小費用優(yōu)化問題時CABC算法在最優(yōu)值及算法穩(wěn)定性上明顯優(yōu)于ABC、CDE、TLBO、LLCABC算法。圖5表示ABC、LL-CABC、CABC在壓力容器設計最小費用優(yōu)化問題上的收斂曲線圖,從圖中可以直觀地看出,CABC算法在收斂精度和收斂速度方面明顯優(yōu)于ABC、LL-CABC算法。

      表9 各個算法在壓力容器設計上的優(yōu)化結(jié)果Table 9 Optimization results of each algorithm in pressure vessel design

      圖5 各個算法在壓力容器設計問題上的收斂曲線Fig.5 Convergence curve of each algorithm in pressure vessel design

      4 結(jié)論

      本文提出CABC算法來求解約束優(yōu)化問題。通過對兩個標準測試集及3個實際工程優(yōu)化問題的實驗可知,CABC算法的搜索方程可以有效平衡種群的多樣性和收斂性。將ε約束和可行性準則相結(jié)合進行約束處理,可以有效地平衡目標函數(shù)和約束。改進的適應度函數(shù)可以識別優(yōu)良個體,增加了算法的開發(fā)能力。實驗證明本文提出的CABC算法能夠有效地解決約束優(yōu)化問題。

      猜你喜歡
      測試函數(shù)種群約束
      邢氏水蕨成功繁衍并建立種群 等
      山西省發(fā)現(xiàn)刺五加種群分布
      “碳中和”約束下的路徑選擇
      約束離散KP方程族的完全Virasoro對稱
      具有收縮因子的自適應鴿群算法用于函數(shù)優(yōu)化問題
      帶勢函數(shù)的雙調(diào)和不等式組的整體解的不存在性
      約束二進制二次規(guī)劃測試函數(shù)的一個構(gòu)造方法
      適當放手能讓孩子更好地自我約束
      人生十六七(2015年6期)2015-02-28 13:08:38
      面向真實世界的測試函數(shù)Ⅱ
      崗更湖鯉魚的種群特征
      岗巴县| 高台县| 长岭县| 渭源县| 齐河县| 龙口市| 项城市| 江华| 磐石市| 凌云县| 黄骅市| 新巴尔虎右旗| 从江县| 麟游县| 清镇市| 寿宁县| 舞钢市| 沙坪坝区| 阿克苏市| 长寿区| 措勤县| 柘荣县| 玉林市| 仁寿县| 鸡泽县| 惠水县| 肇东市| 祁阳县| 射阳县| 布尔津县| 墨脱县| 双峰县| 静安区| 米易县| 荆州市| 西丰县| 揭阳市| 财经| 洞头县| 郑州市| 兰考县|