劉小娟,王聯(lián)國
甘肅農(nóng)業(yè)大學(xué)信息科學(xué)技術(shù)學(xué)院,蘭州 730070
正弦余弦算法(Sine cosine algorithm,簡稱SCA)是2016年由澳大利亞學(xué)者Seyedali Mirjalili提出的一種新型仿自然優(yōu)化算法[1].該算法通過創(chuàng)建多個(gè)隨機(jī)候選解,利用正余弦數(shù)學(xué)模型來求解優(yōu)化問題,具有結(jié)構(gòu)簡單、參數(shù)少、易于實(shí)現(xiàn)的特點(diǎn),但也存在優(yōu)化精度低、容易陷入局部極值、收斂速度慢等問題.
近年以來,許多學(xué)者與研究人員對(duì)SCA進(jìn)行了相關(guān)的研究與改進(jìn).其中,文獻(xiàn)[2]通過分析轉(zhuǎn)換參數(shù),設(shè)計(jì)出轉(zhuǎn)換參數(shù)拋物線函數(shù)遞減和指數(shù)函數(shù)遞減兩種正弦余弦算法,并以協(xié)同過濾推薦算法中相似度函數(shù)的計(jì)算為應(yīng)用對(duì)象,驗(yàn)證了改進(jìn)指數(shù)函數(shù)遞減正弦余弦算法的可行性和有效性;文獻(xiàn)[3]通過引入慣性權(quán)重和反向?qū)W習(xí)策略,在提高算法收斂精度的同時(shí)加快了其收斂速度;文獻(xiàn)[4]結(jié)合正弦余弦參數(shù)和候選解慣性權(quán)重提出了一種改進(jìn)的正弦余弦算法,通過仿真實(shí)驗(yàn)說明了改進(jìn)算法的有效性;文獻(xiàn)[5]提出了一種基于改進(jìn)正弦余弦算法的光譜特征峰識(shí)別定位方法,實(shí)驗(yàn)表明該方法在識(shí)別率等多方面均有顯著提高;文獻(xiàn)[6]提出了一種基于精英混沌搜索策略的交替正余弦算法,并將基于該策略的改進(jìn)算法與反向?qū)W習(xí)算法交替執(zhí)行以增強(qiáng)其探索能力,降低了算法時(shí)間復(fù)雜度并提高了收斂速度;文獻(xiàn)[7]通過引入精英反向?qū)W習(xí)策略,并利用個(gè)體的反思學(xué)習(xí)能力對(duì)正弦余弦算法進(jìn)行改進(jìn),提高了算法的尋優(yōu)精度;文獻(xiàn)[8]提出了一種基于非線性轉(zhuǎn)換參數(shù)和隨機(jī)差分變異策略的正弦余弦算法,并利用該算法優(yōu)化神經(jīng)網(wǎng)絡(luò)參數(shù)以解決經(jīng)典分類問題;文獻(xiàn)[9]通過混沌策略和反向?qū)W習(xí)策略提出了一種基于改進(jìn)正余弦算法的多閾值圖像分割方法,對(duì)比實(shí)驗(yàn)結(jié)果表明該算法運(yùn)行時(shí)間較短,分割精度較高,魯棒性較強(qiáng);文獻(xiàn)[10]提出了一種以交叉策略改進(jìn)的全局優(yōu)化正弦余弦算法,并應(yīng)用于圖像分割中的多閾值分割;文獻(xiàn)[11]提出了一種基于反向?qū)W習(xí)的自適應(yīng)混合正弦余弦算法,并驗(yàn)證了該算法求解實(shí)際全局優(yōu)化問題的有效性;文獻(xiàn)[12]提出了一種新穎的混合BPSOSCA特征選擇方法并進(jìn)行聚類分析,與其它競(jìng)爭方法相比該方法具有更優(yōu)的性能;文獻(xiàn)[13]提出了一種基于Riesz分?jǐn)?shù)階導(dǎo)數(shù)變異策略的正余弦算法,通過擬反向?qū)W習(xí)策略、反向?qū)W習(xí)策略和Riesz分?jǐn)?shù)階變異策略增強(qiáng)種群的全局探索能力并提高算法的收斂速度;文獻(xiàn)[14]提出了一種用于文本分類的改進(jìn)正弦余弦算法,避免了算法的早熟收斂;文獻(xiàn)[15]提出了一種融合最優(yōu)鄰域和二次插值策略的改進(jìn)正弦余弦算法,協(xié)調(diào)了算法的全局探索與局部開發(fā)能力;文獻(xiàn)[16]提出了一種改進(jìn)的正余弦算法,利用正交學(xué)習(xí)、多種群機(jī)制和貪婪選擇機(jī)制,提高了算法的優(yōu)化性能;文獻(xiàn)[17]提出了一種用于全局優(yōu)化和約束實(shí)際工程問題的多策略正余弦優(yōu)化算法,將Cauchy突變算子、混沌局部搜索機(jī)制、基于反向?qū)W習(xí)策略等多種機(jī)制與基于差分進(jìn)化的兩種算子(變異和交叉)相結(jié)合,有效避免了算法陷入局部最優(yōu);文獻(xiàn)[18]提出了一種基于帶Lévy飛行的正余弦頻帶選擇方法,實(shí)驗(yàn)結(jié)果表明所提出的頻帶選擇方法在頻帶子集的選擇上優(yōu)于其它先進(jìn)的分類方法,具有較高的分類精度.
為了更好地平衡算法的探索和開發(fā)能力,并使SCA既能從局部極值的鄰域跳轉(zhuǎn)到全局最優(yōu)解的鄰域,又能在全局最優(yōu)解的鄰域內(nèi)進(jìn)行高精度搜索,本文借鑒文獻(xiàn)[19-21]中智能優(yōu)化算法的混合方法,將差分進(jìn)化算法與正弦余弦算法進(jìn)行混合,提出了一種基于差分進(jìn)化的正弦余弦(Sine cosine algorithm based on differential evolution,SCADE)算法.算法主要做了以下5方面的改進(jìn):(1)按非線性方式調(diào)整參數(shù)r1,并使每個(gè)個(gè)體采用相同的參數(shù)r1、r2、r3和r4,提高算法的搜索能力和收斂速度;(2)通過差分進(jìn)化策略(包括交叉、變異、選擇),充分利用全局最優(yōu)個(gè)體的引導(dǎo)作用和種群中其它個(gè)體的信息,平衡算法的全局探索能力和局部開發(fā)能力;(3)利用偵察蜂策略,對(duì)個(gè)體適應(yīng)度值連續(xù)nlim次沒有進(jìn)步的個(gè)體隨機(jī)初始化,以增加種群多樣性,提高全局探索能力;(4)利用全局最優(yōu)個(gè)體變異策略,在最優(yōu)解附近進(jìn)行精細(xì)搜索,增強(qiáng)算法的開發(fā)能力,提高優(yōu)化精度;(5)按固定迭代間隔,交替執(zhí)行差分進(jìn)化策略和全局最優(yōu)個(gè)體變異策略.最后,對(duì)23個(gè)測(cè)試函數(shù)進(jìn)行仿真實(shí)驗(yàn),將SCADE算法與其它改進(jìn)算法進(jìn)行比較,驗(yàn)證SCADE算法的有效性.
SCA利用正弦函數(shù)和余弦函數(shù)的數(shù)學(xué)性質(zhì),通過自適應(yīng)改變正弦函數(shù)和余弦函數(shù)的振幅來平衡算法在搜索過程中的全局探索和局部開發(fā)能力,并最終找到全局最優(yōu)解.
設(shè)Xi=(xi1,xi2,···,xiN)為第i(i=1, 2,···,M) 個(gè)個(gè)體,N表示搜索空間的維度,M為種群規(guī)模,Pg=(pg1,pg2,···,pgN)為全局最優(yōu)個(gè)體.在搜索過程中,第i個(gè)個(gè)體的第j維按式(1)進(jìn)行位置更新.
式中,T為最大迭代次數(shù),a為常數(shù),一般取值為2.
表1 sinr2的符號(hào)對(duì)2種分項(xiàng)符號(hào)的影響Table 1 Effect of the sign of sin r2 on the signs of two itemized items
(2)算法的收斂速度較慢.SCA按式(1)更新個(gè)體后,個(gè)體直接進(jìn)入下一代,因此可以保持種群多樣性,有利于全局探索,但算法收斂速度較慢,因此可以采用貪婪選擇策略,使較優(yōu)個(gè)體進(jìn)入下一代,提高算法的收斂速度.然而,這卻增加了算法陷入局部最優(yōu)的可能性,故可采用偵察蜂算子,對(duì)較差個(gè)體進(jìn)行隨機(jī)初始化.
(3)第i個(gè)個(gè)體按式(1)更新時(shí),只利用了全局最優(yōu)個(gè)體Pg和第i個(gè)個(gè)體自身的信息,使第i個(gè)個(gè)體快速向全局最優(yōu)個(gè)體Pg靠攏,容易造成算法陷入局部最優(yōu).
2.1.1 按非線性方式調(diào)整參數(shù)r1
按非線性方式調(diào)整參數(shù)r1,調(diào)整策略見式(3).通過改變參數(shù)r1的線性遞減方式,使算法在迭代前期,SCA全局探索能力最強(qiáng);在迭代中期,算法逐步從全局探索向局部開發(fā)階段過渡;到迭代后期,r1非線性遞減加快,使算法局部開發(fā)能力增強(qiáng).
2.1.2 每個(gè)個(gè)體采用相同的參數(shù)r1、r2、r3和r4
在每次迭代中,每個(gè)個(gè)體的所有維度采用相同的參數(shù)r1、r2、r3和r4,使每個(gè)個(gè)體所有維度以相同方式與比例進(jìn)行搜索,降低算法的隨機(jī)性,提高算法的搜索能力和收斂速度.
2.2.1 差分變異操作
差分變異利用父代種群中的多個(gè)個(gè)體的線下組合生成變異個(gè)體Vi=(vi1,vi2,vi3,···,viN),在改進(jìn)算法中利用式(4)生成變異個(gè)體Vi.
式中,rand()為[0, 1]上的隨機(jī)數(shù),i1和i2是在當(dāng)前種群中隨機(jī)選擇的2個(gè)個(gè)體,并且i1≠i2≠i.該變異操作既利用了全局最優(yōu)個(gè)體Pg,又利用了種群中其它個(gè)體的信息,較好地平衡了算法的全局探索能力和局部開發(fā)能力,防止算法陷入局部最優(yōu).
2.2.2 交叉操作
交叉操作通過變異個(gè)體Vi=(vi1,vi2,···,viN)和Xi的各維度分量的隨機(jī)重組產(chǎn)生交叉?zhèn)€體Ui=(ui1,ui2,···,uiN),提高種群多樣性,Ui按式(5)產(chǎn)生.
式中,CR為交叉概率常數(shù),r5為[0, 1]上的隨機(jī)數(shù),jrand∈{1, 2,···,N}為隨機(jī)選擇的維度索引,它保證Ui至少要從Vi中獲得一個(gè)元素,以確保有新的個(gè)體產(chǎn)生.
2.2.3 選擇操作
采用貪婪選擇策略,根據(jù)Xi和交叉?zhèn)€體Ui的適應(yīng)度值f(·)來選擇較優(yōu)個(gè)體進(jìn)入下一代.對(duì)于最小化問題,其選擇操作按式(6)進(jìn)行.
采用了貪婪選擇策略,加快了算法的收斂速度,但隨著迭代的進(jìn)行,算法收斂于全局最優(yōu)解和局部最優(yōu)解.為了防止算法陷入局部最優(yōu),采用人工蜂群(ABC)算法中的偵察蜂算子,對(duì)個(gè)體適應(yīng)度值連續(xù)nlim次沒有進(jìn)步的個(gè)體隨機(jī)初始化,以增加種群多樣性,提高全局探索能力.
以提高算法優(yōu)化精度和收斂速度為目標(biāo),對(duì)全局最優(yōu)個(gè)體Pg按式(7)和(8)進(jìn)行高斯變異操作,生成新個(gè)體,如果的適應(yīng)度值優(yōu)于Pg,則用替代P.g
式中,δ2為方差,按式(8)產(chǎn)生,δ2max和δ2min分別為方差變化的最大值和最小值.這種處理使算法在迭代搜索前期注重全局探索,而在迭代搜索后期主要進(jìn)行局部開發(fā),這在一定程度上提高了算法的優(yōu)化精度.
為了減少算法時(shí)間復(fù)雜度,每隔h次迭代,執(zhí)行kmax次小規(guī)模的全局最優(yōu)個(gè)體變異策略.一般情況下,滿足kmax≤M.
SCADE算法的步驟如下:
步驟1:隨機(jī)產(chǎn)生種群M個(gè)個(gè)體,設(shè)置當(dāng)前迭代次數(shù)t,最大迭代次數(shù)T,交叉概率常數(shù)CR,方差變化的最大值δ2max和最小值δ2min,執(zhí)行全局最優(yōu)個(gè)體變異策略的迭代間隔h和迭代次數(shù)kmax;
步驟2:計(jì)算每個(gè)個(gè)體的適應(yīng)度,并找出全局最優(yōu)個(gè)體Pg;
步驟 3:計(jì)算r1;
步驟 4:當(dāng)tmodh==0時(shí),按式(7)和(8)執(zhí)行kmax次小規(guī)模的全局最優(yōu)個(gè)體變異策略,轉(zhuǎn)向步驟8,否則轉(zhuǎn)向步驟5;
步驟 5:按式(4)~(6)更新每個(gè)個(gè)體;
步驟6:更新全局最優(yōu)個(gè)體Pg;
步驟7:執(zhí)行偵察蜂策略;
步驟8:終止條件是否滿足?若滿足,停止迭代并輸出全局最優(yōu)解,否則轉(zhuǎn)向步驟3.
SCADE算法對(duì)應(yīng)的流程圖如圖1所示.
圖1 SCADE算法流程圖Fig.1 Flowchart of the proposed SCADE algorithm
SCADE算法的時(shí)間復(fù)雜度主要由差分進(jìn)化、偵察蜂策略和全局最優(yōu)個(gè)體變異策略3部分組成.假設(shè)種群規(guī)模為M,問題維度為N,最大迭代次數(shù)為T,每隔h次迭代,交叉概率常數(shù)CR,執(zhí)行kmax次小規(guī)模的全局最優(yōu)個(gè)體變異策略,當(dāng)種群中每個(gè)個(gè)體適應(yīng)度值連續(xù)nlim次沒有進(jìn)步時(shí),在解空間中隨機(jī)產(chǎn)生一個(gè)新個(gè)體進(jìn)行替換,則SCADE算法的時(shí)間復(fù)雜度為:
SCA的算法時(shí)間復(fù)雜度為:
實(shí)驗(yàn)環(huán)境配置為:操作系統(tǒng)Windows 8.1,處理器Intel_Core_i3-4150_CPU_@_3.50 GHz,內(nèi)存4G,編程語言Microsoft Visual C++ 6.0.本文選取文獻(xiàn)[1, 22]中的23個(gè)基準(zhǔn)測(cè)試函數(shù)(函數(shù)表達(dá)式詳見文獻(xiàn)),以求函數(shù)最小值為例進(jìn)行仿真實(shí)驗(yàn)以評(píng)價(jià)SCADE算法的優(yōu)化性能.其中,F(xiàn)1~F7為單峰函數(shù),F(xiàn)8~F13為多峰函數(shù),F(xiàn)14~F23為固定維度多峰函數(shù).各算法設(shè)置的具體參數(shù)見表2.其中,PSO中Vmax和W分別為微粒的飛行最大速度和慣性加權(quán)系數(shù),DE中F為常量因子,m-SCA中JR為躍變率,COSCA中pr 為選擇比例,astart和aend分別為控制參數(shù)a的初始值和最終值.最終測(cè)試結(jié)果采用獨(dú)立運(yùn)行30次后的平均值,實(shí)驗(yàn)結(jié)果如表3、表4和圖2所示.
表2 各算法設(shè)置的具體參數(shù)表Table 2 Specific parameters set by each algorithm
通過算法找到的平均最優(yōu)值、中值、最優(yōu)值、最差值、標(biāo)準(zhǔn)差、平均運(yùn)行時(shí)間和收斂曲線圖等7個(gè)方面評(píng)價(jià)算法的性能.其中平均最優(yōu)值反映算法的優(yōu)化精度,中值、最優(yōu)值和最差值反映可行解的質(zhì)量,標(biāo)準(zhǔn)差反映算法的穩(wěn)定性,平均運(yùn)行時(shí)間反映算法執(zhí)行的時(shí)間代價(jià),收斂曲線圖反映算法的收斂情況.
表3 SCADE與基本SCA的實(shí)驗(yàn)結(jié)果Table 3 Experimental results of SCADE and basic SCA
表3 (續(xù))Table 3 (Continued)
表4 SCADE與SCA改進(jìn)算法及其它智能優(yōu)化算法的性能比較Table 4 Performance comparison of SCADE with modified SCA and other algorithms
表4 (續(xù))Table 4 (Continued)
為了測(cè)試改進(jìn)算法SCADE相比基本SCA的尋優(yōu)性能,2種算法參數(shù)設(shè)置見表2,并采用相同的函數(shù)最大評(píng)價(jià)次數(shù)15000.表3列出了改進(jìn)算法SCADE與基本SCA的測(cè)試結(jié)果對(duì)比情況.
由表3可以看出:在算法獲得的平均最優(yōu)值和標(biāo)準(zhǔn)差方面,SCADE對(duì)函數(shù)F16、F18和F19的優(yōu)化結(jié)果中的平均最優(yōu)值與SCA相當(dāng),標(biāo)準(zhǔn)差優(yōu)于SCA,但對(duì)其余的20個(gè)測(cè)試函數(shù),所獲得的優(yōu)化結(jié)果明顯優(yōu)于SCA,而且優(yōu)化精度較高;在算法獲得的中值、最優(yōu)值和最差值方面,SCADE對(duì)函數(shù)F15、F16、F17和F18的優(yōu)化結(jié)果與SCA相當(dāng),在其余測(cè)試函數(shù)上所獲得的優(yōu)化結(jié)果仍明顯優(yōu)于SCA,表明SCADE獲得的可行解質(zhì)量較高;在算法獲得的運(yùn)行時(shí)間方面,相比SCA,SCADE除了函數(shù)F14、F16和F18稍長或相等外,在其余測(cè)試函數(shù)上運(yùn)行時(shí)間最短,這是因?yàn)镾CADE中去掉了絕對(duì)值運(yùn)算符,采用了差分進(jìn)化策略,只對(duì)部分維度進(jìn)行更新,減少了計(jì)算量,從而縮短了算法的運(yùn)行時(shí)間.
為進(jìn)一步測(cè)試改進(jìn)算法的性能,將SCADE與SCA改進(jìn)算法及其它智能優(yōu)化算法PSO、DE、ABC、m-SCA、COSCA進(jìn)行比較.參數(shù)設(shè)置同上文,函數(shù)最大評(píng)價(jià)次數(shù)仍保持一致.另外,采用顯著性水平為5%的Wilcoxon秩和檢驗(yàn)以評(píng)價(jià)算法的尋優(yōu)性能.
3.4.1 優(yōu)化精度分析
表4列出了改進(jìn)算法SCADE與上述算法在23個(gè)測(cè)試函數(shù)上的平均最優(yōu)值、標(biāo)準(zhǔn)差及秩和檢驗(yàn)決策結(jié)果(+ /=/-).其中,決策結(jié)果“+ /=/ -”分別表示通過Wilcoxon秩和檢驗(yàn)后對(duì)比算法“優(yōu)于/相當(dāng)/遜于”SCADE算法的函數(shù)個(gè)數(shù).
由表4可以看出:SCADE在12個(gè)測(cè)試函數(shù)上獲得的優(yōu)化結(jié)果優(yōu)于其它對(duì)比算法,且在多峰函數(shù)F9、F11、F14、F16、F17、F18、F19、F22和F23上均已取得理論最優(yōu)值.同時(shí),從秩和檢驗(yàn)結(jié)果可知,SCADE在23個(gè)測(cè)試函數(shù)上的結(jié)果優(yōu)于SCA,在19個(gè)測(cè)試函數(shù)上的結(jié)果優(yōu)于PSO,在16個(gè)測(cè)試函數(shù)上的結(jié)果優(yōu)于DE,在18個(gè)測(cè)試函數(shù)上的結(jié)果優(yōu)于ABC,在21個(gè)測(cè)試函數(shù)上的結(jié)果優(yōu)于m-SCA,在18個(gè)測(cè)試函數(shù)上的結(jié)果優(yōu)于COSCA.
3.4.2 收斂性分析
圖2是7種算法在部分測(cè)試函數(shù)中運(yùn)行30次后得到平均最優(yōu)值收斂曲線圖.除了圖2(c)和(f)外,其余函數(shù)收斂曲線圖的縱坐標(biāo)為函數(shù)平均最優(yōu)值的對(duì)數(shù)值,橫坐標(biāo)為迭代次數(shù).
從圖中可以看出:在單峰測(cè)試函數(shù)中,對(duì)于F2,相比其它6種算法,SCADE收斂速度明顯加快,同時(shí)優(yōu)化精度最高,并且相比基本SCA達(dá)到了60次方數(shù)量級(jí)的優(yōu)化效果.對(duì)于F5,SCADE與COSCA的收斂趨勢(shì)一致,但SCADE收斂速度更快,得到的解較好;在多峰測(cè)試函數(shù)中,對(duì)尋優(yōu)難度較大的F8而言,在迭代前期,SCADE收斂速度高于基本SCA、DE、PSO、m-SCA和COSCA,但在迭代中期,SCADE的收斂速度顯著加快,并且在迭代次數(shù)約350次時(shí)開始收斂直到趨向全局最優(yōu)解.對(duì)具有許多局部極小值的F10而言,在迭代次數(shù)小于150次時(shí),SCADE和COSCA的收斂趨勢(shì)基本一致,并且收斂速度大于其它6種對(duì)比算法,當(dāng)?shù)螖?shù)大于150次時(shí),SCADE同COSCA以相等的收斂速度和優(yōu)化精度不斷收斂;在固定維度的多峰測(cè)試函數(shù)中,對(duì)于F14,相比其它5種算法,SCADE同ABC收斂趨勢(shì)和優(yōu)化精度基本一致,且好于DE、PSO以及SCA的改進(jìn)算法m-SCA和COSCA.對(duì)于F23,相比其它6種算法,SCADE前期的收斂速度略低于ABC和DE,但當(dāng)?shù)螖?shù)達(dá)到400次左右時(shí),SCADE能優(yōu)于PSO、m-SCA和COSCA達(dá)到其理論最優(yōu)值.
綜上所述,相比基本SCA、SCA改進(jìn)算法及其它智能優(yōu)化算法,本文提出的算法SCADE收斂性較好,優(yōu)化精度更高,穩(wěn)定性和魯棒性更強(qiáng).
3.5.1 連續(xù)次數(shù)nlim
在ABC算法的偵察峰策略中,連續(xù)次數(shù)nlim的選取對(duì)算法性能的影響顯得尤為重要.一般而言,nlim的設(shè)置不能太小[26].因此,選取不同峰型、具有代表性的3個(gè)測(cè)試函數(shù),通過仿真實(shí)驗(yàn)分析不同取值的nlim對(duì)SCADE性能的影響.仿真實(shí)驗(yàn)中,考慮到算法的最大迭代次數(shù)為500,故在范圍[0, 100]內(nèi)設(shè)置不同間隔的nlim值,其它參數(shù)設(shè)置見表2,同時(shí)用顯著性水平為5%的Friedman檢驗(yàn)反映實(shí)驗(yàn)結(jié)果的差異性.表5列出了不同nlim的值對(duì)SCADE性能影響的實(shí)驗(yàn)結(jié)果,影響指標(biāo)包含平均最優(yōu)值、標(biāo)準(zhǔn)差、排序及Friedman檢驗(yàn)的概率值P.從表5可以看出,除測(cè)試函數(shù)F2外,其它函數(shù)的Friedman檢驗(yàn)概率值P均小于0.05,這說明不同的nlim設(shè)置下實(shí)驗(yàn)結(jié)果存在一定的差異性.根據(jù)表中函數(shù)結(jié)果顯示,當(dāng)nlim等于50時(shí)算法性能最優(yōu),故本文設(shè)置參數(shù)nlim的值為50.
3.5.2 交叉概率常數(shù)CR
交叉概率常數(shù)CR在SCADE算法中起關(guān)鍵作用.通過仿真實(shí)驗(yàn)分析不同取值的交叉概率常數(shù)CR對(duì)SCADE性能的影響.在[0.1, 0.5]范圍內(nèi)以0.1的間距設(shè)置CR的值,測(cè)試函數(shù)及其它參數(shù)設(shè)置見表2,表6列出了不同取值的CR對(duì)SCADE的性能影響.由表6可見,除測(cè)試函數(shù)F2外,其余函數(shù)的Friedman檢驗(yàn)概率值P均小于0.05,這說明在不同的CR設(shè)置下,實(shí)驗(yàn)結(jié)果仍存在差異性.同時(shí),表中函數(shù)結(jié)果顯示,當(dāng)CR等于0.3時(shí)算法性能最好,故本文設(shè)置參數(shù)CR的值為0.3.
表5 nlim對(duì)SCADE的性能影響Table 5 Influence of nlim on the SCADE performance
表6 CR對(duì)SCADE的性能影響Table 6 Influence of CR on the SCADE performance
3.5.3 迭代間隔h
為提高算法的優(yōu)化精度,每隔h次迭代,執(zhí)行小規(guī)模的全局最優(yōu)個(gè)體變異策略.在[5, 25]范圍內(nèi)以5的間距設(shè)置h的值并進(jìn)行實(shí)驗(yàn),測(cè)試函數(shù)及其它參數(shù)設(shè)置同見表2.表7列出了不同取值的h對(duì)SCADE性能的影響.表中所有函數(shù)的Friedman檢驗(yàn)概率值P均小于0.05,同樣說明不同的h設(shè)置下實(shí)驗(yàn)結(jié)果存在差異性.另外,表中測(cè)試函數(shù)結(jié)果顯示,h等于10時(shí)算法尋優(yōu)效果較好.
表7 h對(duì)SCADE的性能影響Table 7 Influence of h on the SCADE performance
針對(duì)SCA在優(yōu)化部分高維函數(shù)問題時(shí)的缺陷,提出了一種基于差分進(jìn)化的正弦余弦(SCADE)算法.本文所做的主要工作總結(jié)為:(1)通過去掉SCA位置更新公式中的絕對(duì)值,降低算法的計(jì)算復(fù)雜度;(2)通過參數(shù)調(diào)整策略,提高算法的搜索能力和收斂速度;(3)通過交替執(zhí)行差分進(jìn)化策略和全局最優(yōu)個(gè)體變異策略,較好地平衡算法的全局探索能力和局部搜索能力;(4)通過利用偵察蜂策略,增加種群多樣性,并提高全局探索能力;(5)通過選取有代表性的不同峰型測(cè)試函數(shù)進(jìn)行Friedman檢驗(yàn),反映出連續(xù)次數(shù)、交叉概率常數(shù)和迭代間隔的特定取值對(duì)SCADE算法性能影響較敏感;(6)通過23個(gè)測(cè)試函數(shù)的仿真實(shí)驗(yàn),并與其它改進(jìn)算法進(jìn)行比較,結(jié)果表明SCADE算法具有較高的優(yōu)化性能.最后,下一步的工作將是研究如何運(yùn)用SCADE算法解決實(shí)際優(yōu)化問題.