袁 磊,王 勇,2,趙艷玲
(1.廣西民族大學(xué) 人工智能學(xué)院,廣西 南寧 530006;2.廣西混雜計(jì)算與集成電路設(shè)計(jì)分析重點(diǎn)實(shí)驗(yàn)室,廣西 南寧 530006)
元啟發(fā)式算法在科學(xué)和工程等領(lǐng)域得到廣泛的應(yīng)用,其優(yōu)越性也得到界內(nèi)研究者的廣泛認(rèn)可,因而自20世紀(jì)70年代Holland提出遺傳算法(GA)[1]以來(lái),元啟發(fā)式算法的研究越來(lái)越受到國(guó)內(nèi)外研究者的重視。目前在國(guó)內(nèi)外刊物或國(guó)際會(huì)議上發(fā)表的有關(guān)元啟發(fā)式算法研究成果大體上可分為兩類:一是原創(chuàng)性提出新算法(如粒子群算法(PSO)[2],蝗蟲優(yōu)化算法(GOA)[3],鯨魚算法(WOA)[4],黑猩猩優(yōu)化算法(COA)[5],社會(huì)模擬算法樣式(SMO)[6]、教學(xué)優(yōu)化算法(TLBO)[7],算數(shù)優(yōu)化算法(AOA)[8]、哈里斯鷹優(yōu)化算法(HHO)[9],知識(shí)共享算法(GSK)[10]等);一是修改或完善現(xiàn)有算法或混合各種算法(如文獻(xiàn)[11-14]等)。由于包括文獻(xiàn)[1-10]在內(nèi)的這些新算法通常存在全局收斂速度慢、易陷入局部最優(yōu)等不足,因而需要人們?nèi)ネ晟七@些現(xiàn)有算法,以改善其優(yōu)化性能。
基于知識(shí)共享的優(yōu)化算法(Gaining-sharing knowledge based algorithm for solving optimization problems, GSK)[10]是由Mohamed等人從人類獲取和共享知識(shí)過(guò)程中得到啟發(fā),于2019年提出的一種新的群智能優(yōu)化算法。GSK具有算法模型簡(jiǎn)單易懂、易于編程實(shí)現(xiàn)等優(yōu)點(diǎn)。然而,GSK存在全局搜索能力不強(qiáng)、收斂速度慢、易陷入局部極值等不足,仍有待進(jìn)一步完善。針對(duì)GSK之不足,Mohamed等人[11]提出改進(jìn)版本的GSK,稱之為APGSK,該APGSK用自適應(yīng)概率參數(shù)來(lái)控制知識(shí)比率,以平衡全局探索與局部開發(fā)。然而從文獻(xiàn)[11]給出的具體實(shí)例實(shí)驗(yàn)與仿真結(jié)果上看,APGSK的收斂速度相對(duì)較慢、優(yōu)化精度也不高。Zhong等人[12]提出將GSK與HHO相結(jié)合的混合差分進(jìn)化算法,稱之為DEGH。該算法首先構(gòu)建一個(gè)混合變異算子,用于平衡全局探索和局部開發(fā);其次利用交叉概率自適應(yīng)來(lái)加強(qiáng)差分變異、交叉和選擇之間的聯(lián)系。然而從文獻(xiàn)[12]列出的具體實(shí)例實(shí)驗(yàn)結(jié)果上看,該算法的全局搜索能力不強(qiáng)、收斂速度較慢、優(yōu)化精度不高。Xiong等人[13]只是將GSK應(yīng)用于求解決太陽(yáng)能光伏模型參數(shù)提取問題,并沒對(duì)GSK進(jìn)行改進(jìn)。綜合以上分析,文獻(xiàn)[11]和[12]提出的改進(jìn)版本GSK在優(yōu)化精度方面比標(biāo)準(zhǔn)GSK有所提高,但提升的程度非常有限,仍存在較明顯的全局搜索能力不強(qiáng)、收斂速度較慢、易陷入局部最優(yōu)等問題,仍有待進(jìn)一步完善。針對(duì)這一問題,本文對(duì)GSK進(jìn)行改進(jìn),提出采用動(dòng)態(tài)知識(shí)因子的基于知識(shí)共享的優(yōu)化算法(Gaining-sharing knowledge based algorithm Using Dynamic Knowledge-factor,DKGSK),并通過(guò)具體實(shí)例仿真來(lái)驗(yàn)證本文提出改進(jìn)策略的有效性和可行性。
基于知識(shí)共享的優(yōu)化算法(GSK)將人類知識(shí)的獲取分為初級(jí)(junior)和高級(jí)(senior)兩個(gè)階段:第一階段稱為初級(jí)獲取與分享階段;第二階段稱為高級(jí)獲取與分享階段。GSK算法把每個(gè)人(一生中)在中前期(幼年期或早期)、中后期(成年期)獲得知識(shí)的階段分別稱為初級(jí)階段和高級(jí)階段。GSK算法模型如下:
設(shè)N為特定人群總?cè)藬?shù)(種群規(guī)模),D是人可獲取知識(shí)的學(xué)科領(lǐng)域數(shù)(表示人的知識(shí)全部從D個(gè)學(xué)科獲取,表征搜索空間維數(shù)是D),以xij表示第i人從第j學(xué)科中獲取知識(shí),以xi=(xi1,xi2,…,xiD)表示第i人的知識(shí)維度,f(xi)為其適應(yīng)度值,i=1,…,N。
搜索開始時(shí),首先計(jì)算第i人xi使用初級(jí)方案(初級(jí)獲?。└碌木S度數(shù),從而也就確定了使用高級(jí)方案(高級(jí)獲?。┑木S數(shù)。具體方法如下:設(shè)t時(shí)刻第i人的位置為xi(t)=(xi1(t),…,xiD(t)),則由公式(1)計(jì)算:
其中:k稱為知識(shí)率,是大于0的實(shí)數(shù)(GSK在數(shù)值實(shí)驗(yàn)中取k=10),Tmax為最大迭代次數(shù),t為當(dāng)前迭代次數(shù)。記Djun為不超過(guò)D(juniorphase)的最大正整數(shù)。則在t+1時(shí)刻,xi(t)=(xi1(t),…,xiD(t))的前Djun個(gè)維按初級(jí)獲取知識(shí)方案進(jìn)行更新,后Dsen個(gè)維則按高級(jí)獲取知識(shí)方案進(jìn)行更新,其中:
記xi(t)為第i人于t時(shí)刻的位置(i=1,…,N),f(xi)為其適應(yīng)度值。根據(jù)適應(yīng)度值將人群按升序排列:xbest(t),…,xi-1(t),xi(t),xi+1(t),…,xworst(t),并且從[0,1]中取一個(gè)隨機(jī)數(shù)rand:
針對(duì)初級(jí)獲取與分享階段,首先給定kf(知識(shí)因子)和kr(知識(shí)比率),其中kf>0,0 若rand≤kr,則xi(t)的前Djun個(gè)維均按公式(3)更新知識(shí): 否則(即rand>kr時(shí))不更新,i=1,…,N,j=1,…,Djun。即xi(t)的前Djun個(gè)維均采用初級(jí)獲取知識(shí)方案更新知識(shí)。其中:xi-1(t)和xi+1(t)分別是比xi(t)更好和更差的兩個(gè)“人”,作為xi(t)獲取知識(shí)的來(lái)源,再?gòu)娜后w中隨機(jī)選擇另一個(gè)“人”xr(t)作為知識(shí)共享的來(lái)源。注:若xi(t)為當(dāng)前最優(yōu)個(gè)體,則以xbest+1(t)和xbest+2(t)作為其獲取知識(shí)的來(lái)源;若xi(t)為當(dāng)前最差個(gè)體,則以xworst-1(t)和xworst-2(t)作為其獲取知識(shí)的來(lái)源。 針對(duì)高級(jí)獲取與分享階段,首先將種群分為最好人群(人數(shù)為p?N)、中等人群(人數(shù)為(1-2p)?N)、最差人群(人數(shù)為p?N)三個(gè)群體(GSK在數(shù)值實(shí)驗(yàn)中取p=0.1)。然后每個(gè)“人”使用如下方案更新知識(shí): 若rand≤kr,則xi(t)按公式(4)更新知識(shí): 否則(即rand>kr時(shí))不更新。i=1,…,N,j=Djun+1,…,D。其中xp-best(t)、xm(t)和xp-worst(t)為分別從最好人群、中等人群、最差人群中隨機(jī)選擇的一個(gè)個(gè)體。 GSK實(shí)現(xiàn)步驟如下: Step1:給定目標(biāo)函數(shù)f(x),種群規(guī)模N,搜索空間維數(shù)D,最大迭代次數(shù)Tmax,知識(shí)率k,知識(shí)因子kf,知識(shí)比率kr,種群最好人群比例p。 Step2:初始化種群xi(t),評(píng)估每一個(gè)體的適應(yīng)度值f(xi(t)),i=1,…,N。 Step3:根據(jù)適應(yīng)度值將種群按升序排列:xbest(t),…,xi-1(t),xi(t),xi+1(t),…,xworst(t)。 Step4:利用公式(1)和(2)確定Djun和Dsen=D-Djun。 Step5:從[0,1]中取一個(gè)隨機(jī)數(shù)rand,若rand≤kr,則xi(t)的前Djun維度均采用公式(3)更新知識(shí),后DDjun維度均采用公式(4)更新知識(shí);否則不更新。 Step6:評(píng)估每一個(gè)體的適應(yīng)度值f(xi(t)),i=1,…,N。 Step7:判斷是否滿足終止條件:若滿足則轉(zhuǎn)Step8;否則轉(zhuǎn)Step3。 Step8:算法終止,并根據(jù)適應(yīng)度值將最優(yōu)位置作為優(yōu)化問題的最優(yōu)解。 分析標(biāo)準(zhǔn)GSK算法模型:不管是在初級(jí)階段還是在高級(jí)階段,搜索個(gè)體的前Djun個(gè)維均按公式(3)更新位置、后D-Djun個(gè)維則均按公式(4)更新位置。顯然,GSK的公式(3)和(4)中,每個(gè)維更新位置時(shí),其步長(zhǎng)均由知識(shí)因子kf確定,然而kf是給定的常數(shù)(GSK在數(shù)值實(shí)驗(yàn)中取kf=0.5),因此,GSK種群中個(gè)體每個(gè)維的搜索步長(zhǎng)是固定的,也就是說(shuō),GSK種群中的每一個(gè)體在搜索空間中均采用“同一時(shí)刻步長(zhǎng)完全相同、同步跳躍”的搜索策略。這使得種群個(gè)體搜索明顯缺乏隨機(jī)性和靈活性,限制了個(gè)體的搜索靈活性和自主性,降低了個(gè)體的搜索能力和效率,造成算法搜索效率低下,最終導(dǎo)致GSK的全局搜索能力不強(qiáng)、全局收斂速度較慢、優(yōu)化精度不高之不足。針對(duì)GSK存在的問題,本文提出相應(yīng)的改進(jìn)策略,詳述如下: i=1,…,N,j=1,…,Djun。其中r為[0,1]中的隨機(jī)數(shù)。 i=1,…,N,j=Djun+1,…,D。其中w=(1-t/Tmax)4,L(λ)為列維飛行[14]: 公式(5)中的r?kf和公式(6)中的L(λ)?kf均是隨機(jī)可變的, 而標(biāo)準(zhǔn)GSK的知識(shí)因子kf是固定的。因此,本文將r?kf和L(λ)?kf統(tǒng)稱為動(dòng)態(tài)知識(shí)因子(本文算法在數(shù)值實(shí)驗(yàn)中取kf=1.8)。 說(shuō)明:a)公式(5)和(6)中的w?xi,j(t)表示:個(gè)體i對(duì)知識(shí)的吸取具有習(xí)慣性,并保持其這一習(xí)慣性趨勢(shì)。w=(1-t/Tmax)4是一個(gè)關(guān)于算法搜索時(shí)間t的單調(diào)遞減函數(shù),當(dāng)t=1時(shí),w=(1-1/Tmax)4≈1(本文算法置Tmax=300),t=300時(shí),w=0 。換言之,w從算法搜索前期到后期逐步從1單調(diào)遞減到0;w在算法前期的值相對(duì)較大,從而加快了個(gè)體的搜索速度,使群體能以較快速度遍歷整個(gè)空間。這有利于算法進(jìn)行全局探索、可為后期開展局部搜索盡可能多地積累和反饋信息;w在算法后期下降較慢,并隨著搜索時(shí)間t的增加而趨于0。因而在w的作用下,可提升個(gè)體的局部搜索精度,進(jìn)而增強(qiáng)算法的局部開發(fā)能力。b)公式(5)表示:個(gè)體i是由向量w?xi,j(t)與向量rkf×Δ 根據(jù)平行四邊形法則來(lái)控制其搜索的,其中Δ=[(xi-1,j(t)-xi+1,j(t))+(xr,j(t)-xi,j(t))]或[(xi-1,j(t)-xi+1,j(t))+ (xi,j(t)-xr,j(t))]。而r為[0,1]中的隨機(jī)數(shù),因而個(gè)體i可以在由第一部分w?xi,j(t)與第二部分rkf×Δ 所確定的平行四邊形覆蓋的范圍內(nèi)開展精細(xì)化搜索,其搜索步長(zhǎng)具有隨機(jī)性和靈活性,這使其全局探索與局部開發(fā)能力均得到了提升。c)公式(6)表示:個(gè)體i是利用w?xi,j(t)與L(λ)×Ω 來(lái)控制 其 搜 索 的,其 中Ω=kf?[(xp-best,j(t)-xp-worst,j(t))+(xm,j(t)-xi,j(t))]或kf?[(xp-best,j(t)-xp-worst,j(t))+(xi,j(t)-xm,j(t))]。由于列維飛行L(λ)具有隨機(jī)行走特性和行走步長(zhǎng)呈現(xiàn)重尾的分布特征,故采用這一方法來(lái)控制個(gè)體搜索可使搜索步長(zhǎng)更具靈活性和隨機(jī)性,當(dāng)搜索個(gè)體陷入局部最優(yōu)位置時(shí),利用列維飛行能以較大概率實(shí)現(xiàn)大跨步跳出當(dāng)前最優(yōu)位置,進(jìn)而可提升算法跳出局部最優(yōu)的能力、增強(qiáng)算法的局部開發(fā)能力。d)到算法后期,w幾乎為0,故個(gè)體i在算法后期主要由rkf×Δ或L(λ)×Ω控制,即其主要是從比其更優(yōu)的個(gè)體中吸取知識(shí),亦即在后期側(cè)重開展局部搜索,進(jìn)而增強(qiáng)了群體的局部搜索能力。 本文算法已對(duì)標(biāo)準(zhǔn)GSK中的“Step5:從[0,1] 中取一個(gè)隨機(jī)數(shù)rand,若rand≤kr,則xi(t)的前Djun維度均采用公式(3)更新知識(shí),后D-Djun維度均采用公式(4)更新知識(shí);否則不更新”進(jìn)行了修改,去掉其中的“從[0,1] 中取一個(gè)隨機(jī)數(shù)rand,若rand≤kr”條件,進(jìn)一步簡(jiǎn)化了算法實(shí)現(xiàn)條件。 本文算法(DKGSK)實(shí)現(xiàn)步驟如下: Step1:給定目標(biāo)函數(shù)f(x),種群規(guī)模N,搜索空間維度D,最大迭代次數(shù)Tmax,知識(shí)率k,知識(shí)因子kf,種群最好人群比例p(本文算法在實(shí)驗(yàn)中取kf=1.8,k=10,p=0.1)。 Step2:初始化種群xi(t),并評(píng)估適應(yīng)度值f(xi(t)),i=1,…,N。 Step3:根據(jù)適應(yīng)度值將種群按升序排列:xbest(t),…,xi-1(t),xi(t),xi+1(t),…,xworst(t)。 Step4:由公式(1)和(2)確定Djun和Dsen=D-Djun。 Step5:xi(t)分別根據(jù)公式(5)和(6)更新其前Djun個(gè)維和后D-Djun個(gè)維。 Step6:評(píng)估每一個(gè)體的適應(yīng)度值f(xi(t)),i=1,…,N。 Step7:判斷是否滿足終止條件:若滿足則轉(zhuǎn)Step8;否則轉(zhuǎn)Step3。 Step8:算法終止,并根據(jù)適應(yīng)度值將最優(yōu)位置作為優(yōu)化問題的最優(yōu)解。 設(shè)最大迭代次數(shù)是T,種群規(guī)模是N,探索空間維數(shù)是D。初始化種群的時(shí)間復(fù)雜度是O(N),計(jì)算初級(jí)階段維數(shù)的時(shí)間復(fù)雜度是O(T),排序時(shí)間復(fù)雜度是O(N(N-1)T/2),因而標(biāo)準(zhǔn)GSK的時(shí)間復(fù)雜度是O(N(N-1)T/2)+O(NDT)+O(N)+O(T)。在AGSK中,引入自適應(yīng)權(quán)重與列維飛行的時(shí)間復(fù)雜度為O(NT),故DKGSK的時(shí)間復(fù)雜度是O(N(N-1)T/2)+O(NDT)+O(NT)+O(N)+O(T),若略去時(shí)間復(fù)雜度之低次項(xiàng),則兩種算法的計(jì)算時(shí)間復(fù)雜度是一致的。 為 了 測(cè) 試 本 文 算 法(DKGSK)的 性 能,本 文 將DKGSK與 標(biāo) 準(zhǔn)GSK[10]、PSO[2]、WOA[4]、APGSK[11]、DEGH[12]作算法性能對(duì)比分析,以驗(yàn)證本文算法(DKGSK)的優(yōu)化性能。 本文選取12個(gè)已被廣泛用來(lái)測(cè)試算法優(yōu)化性能的基準(zhǔn)測(cè)試函數(shù)(具體見表1),作為算法數(shù)值實(shí)驗(yàn)與優(yōu)化性能對(duì)比分析的測(cè)試實(shí)例,這些基準(zhǔn)測(cè)試函數(shù)當(dāng)中包含5個(gè)單峰函數(shù)和7個(gè)多峰函數(shù)。其中:?jiǎn)畏搴瘮?shù)主要用來(lái)測(cè)試算法的收斂速度,多峰函數(shù)則用來(lái)測(cè)試算法的全局搜索能力和規(guī)避陷入局部最優(yōu)的能力。 表1 基準(zhǔn)測(cè)試函數(shù) 為了數(shù)值實(shí)驗(yàn)測(cè)試結(jié)果的公平性,本文實(shí)驗(yàn)針對(duì)六種對(duì)比算法均統(tǒng)一設(shè)置種群規(guī)模為100、最大迭代次數(shù)為300。對(duì)于GSK[10]、PSO[2]、WOA[4]、APGSK[11]、DEGH[12]這五種算法的其余參數(shù),均與相對(duì)應(yīng)的文獻(xiàn)[10]、[2]、[4]、[11]、[12]的設(shè)置一致。 為了盡可能避免隨機(jī)性對(duì)數(shù)值實(shí)驗(yàn)結(jié)果的影響,本文在做數(shù)值實(shí)驗(yàn)測(cè)試時(shí),六種算法針對(duì)每一個(gè)測(cè)試問題都獨(dú)立進(jìn)行30次實(shí)驗(yàn),并將運(yùn)行結(jié)果(最優(yōu)值、平均值、標(biāo)準(zhǔn)差)記錄下來(lái)。這些評(píng)價(jià)指標(biāo)總體上反應(yīng)了算法優(yōu)化能力的強(qiáng)弱以及算法穩(wěn)定性的好壞。其中:“最優(yōu)值”評(píng)價(jià)指標(biāo)反映了算法的全局搜索能力和優(yōu)化精度,“平均值、標(biāo)準(zhǔn)差”評(píng)價(jià)指標(biāo)能夠反映算法的穩(wěn)定性能。本文針對(duì)30維和200維搜索空間分別做數(shù)值實(shí)驗(yàn),得到的實(shí)驗(yàn)結(jié)果見表2。 為了便于觀察和比較六種算法各自的收斂速度,本文也給出了六種算法分別求解這12個(gè)基準(zhǔn)測(cè)試函數(shù)時(shí)得到的適應(yīng)度進(jìn)化曲線圖,具體如圖1所示。 本文根據(jù)實(shí)驗(yàn)數(shù)據(jù)表2和進(jìn)化曲線圖1來(lái)分析這六種對(duì)比算法各自的優(yōu)化性能。 從“最優(yōu)值”上看:本文算法(DKGSK)找到F1~F5,F(xiàn)7~F12這11個(gè)測(cè)試函數(shù)的理論最優(yōu)值;WOA只找到F8和F9這兩個(gè)函數(shù)的理論最優(yōu)值;其余的四種算法均沒有找到這12個(gè)測(cè)試函數(shù)的理論最優(yōu)值。六種對(duì)比算法都沒有找到F6的理論最優(yōu)值,但本文算法(DKGSK)找到F6的最優(yōu)值均比其他五種算法更接近理論最優(yōu)值,且優(yōu)化精度均比其他五種算法至少高2個(gè)數(shù)量級(jí)。這說(shuō)明在六種對(duì)比算法當(dāng)中,本文算法(DKGSK)的全局搜索能力最強(qiáng)、優(yōu)化精度最高、比其他五種對(duì)比算法明顯具有較大的優(yōu)勢(shì)。 從“平均值”和“標(biāo)準(zhǔn)差”上看:本文算法(DKGSK)求解F1~F5,F(xiàn)7~F12這11個(gè)測(cè)試函數(shù)時(shí)得到的“平均值、標(biāo)準(zhǔn)差”均與理論最優(yōu)值相同;WOA求解F8和F9得到的“平均值、標(biāo)準(zhǔn)差”與理論最優(yōu)值相同,而求解其余10個(gè)函數(shù)得到的“平均值、標(biāo)準(zhǔn)差”均與理論最優(yōu)值有偏差;其余四種算法求解這12個(gè)測(cè)試函數(shù)時(shí)得到的“平均值、標(biāo)準(zhǔn)差”均與理論最優(yōu)值有偏差。DKGSK求解F6時(shí)得到的“平均值、標(biāo)準(zhǔn)差”與理論最優(yōu)值有點(diǎn)偏差,但偏差量比較?。ㄐ∮?0-4),且偏差的程度均比其他五種算法的小。這說(shuō)明本文算法找到全局最優(yōu)值的概率明顯高于其余五種對(duì)比算法,算法的穩(wěn)定性均好于其他五種對(duì)比算法;這對(duì)DKGSK用于求解工程等方面的優(yōu)化問題提供了技術(shù)可靠性。 從圖1的(a)~(l)上看:相較于其他五種對(duì)比算法,本文算法(DKGSK)的進(jìn)化曲線均位于對(duì)比算法的進(jìn)化曲線當(dāng)中之最底下、下降的速度是最快的。本文算法求解F1~F5、F7~F12這11個(gè)測(cè)試函數(shù)時(shí)得到的進(jìn)化曲線均到達(dá)理論最優(yōu)位置;WOA只有求解F8和F9時(shí)得到的進(jìn)化曲線能到達(dá)理論最優(yōu)位置,其余的10個(gè)測(cè)試函數(shù)的進(jìn)化曲線均沒能到達(dá)理論最優(yōu)位置;另外四種算法(GSK,PSO,APGSK,DEGH)求解這12個(gè)測(cè)試函數(shù)得到的進(jìn)化曲線均沒能到達(dá)理論最優(yōu)位置。這說(shuō)明了本文算法的收斂速度最快、優(yōu)化精度最高。 圖1 函數(shù)收斂圖 為了進(jìn)一步測(cè)試這六種對(duì)比算法各自的優(yōu)化性能,本文再用六種算法分別求解表1中的12個(gè)函數(shù)當(dāng)D=200時(shí)的優(yōu)化表現(xiàn),以考查六種算法的魯棒性問題。具體得到的實(shí)驗(yàn)結(jié)果均列在表2中。 基于表2的實(shí)驗(yàn)數(shù)據(jù)進(jìn)一步分析六種對(duì)比算法各自的性能。 表2 30/200維基準(zhǔn)測(cè)試函數(shù)測(cè)試結(jié)果對(duì)比 本文算法(DKGSK)找到F1~F5,F(xiàn)7~F12這11個(gè)函數(shù)的“最優(yōu)值、平均值、標(biāo)準(zhǔn)差”都是函數(shù)理論最優(yōu)值;WOA只找到F8和F9這兩個(gè)函數(shù)的“最優(yōu)值、平均值、標(biāo)準(zhǔn)差”是函數(shù)理論最優(yōu)值;其余的四種算法找到這12個(gè)測(cè)試函數(shù)的“最優(yōu)值、平均值、標(biāo)準(zhǔn)差”都不是函數(shù)理論最優(yōu)值,與理論最優(yōu)值有偏差。本文算法找到F6的“最優(yōu)值4.383E-06”非常接近理論最優(yōu)值0,比D=30時(shí)找到的最優(yōu)值9.906E-06還要好,找到的“平均值2.436E-05,標(biāo)準(zhǔn)差2.350E-05”也非常接近理論最優(yōu)值,與D=30時(shí)找到的“平均值3.4565E-05,標(biāo)準(zhǔn)差2.057E-05”相當(dāng)。本文算法找到F6的“最優(yōu)值、平均值、標(biāo)準(zhǔn)差”都比其他五種對(duì)比算法更接近理論最優(yōu)值,優(yōu)化精度都比其他五種算法至少高2個(gè)數(shù)量級(jí)。標(biāo)準(zhǔn)GSK、DEGH、APGSK、PSO求解這12個(gè)函數(shù)時(shí)找到的“最優(yōu)值”出現(xiàn)了明顯地偏離理論最優(yōu)值的“失靈”現(xiàn)象,且偏離還比較大?;谝陨戏治?,說(shuō)明了將搜索空間維度從30增加到200時(shí),本文算法(DKGSK)的全局搜索能力并沒有減弱、優(yōu)化精度并沒有下降、算法穩(wěn)定性也沒有下降,沒有出現(xiàn)隨著搜索空間維度的增加而出現(xiàn)“失靈”的現(xiàn)象。這進(jìn)一步說(shuō)明了本文算法的穩(wěn)定性和魯棒性比較好,規(guī)避陷入局部最優(yōu)的能力比較強(qiáng)。 記p=最好人群/群體規(guī)模N。為了研究p之不同值對(duì)DKGSK優(yōu)化性能的影響,本文針對(duì)p=0.1,0.2,0.3,0.4分別做數(shù)值實(shí)驗(yàn)。表1中的F6是一個(gè)具有多極小點(diǎn)但只有一個(gè)全局最小點(diǎn)(0,…,0)的多峰函數(shù),由于受random[0,1)的擾動(dòng),要找到其全局最小點(diǎn)相對(duì)較難,故尋找F6的最小點(diǎn)是較能考驗(yàn)算法的全局探索和局部開發(fā)能力的。因此,本文就以F6作為確定p值之測(cè)試函數(shù)。實(shí)驗(yàn)種群規(guī)模為100,最大迭代次數(shù)300,D=30。針對(duì)p之不同值,均獨(dú)立運(yùn)行30次,考查p取不同值時(shí)算法穩(wěn)定性的變化情況。利用繪制箱線圖來(lái)反映30次運(yùn)行結(jié)果,可容易觀察到多組連續(xù)型定量數(shù)據(jù)分布的中心位置和散布范圍。當(dāng)p取不同值時(shí),DKGSK 的中位數(shù)線均靠近全局最小位置,且大部分?jǐn)?shù)據(jù)都接近理論最優(yōu)位置。這說(shuō)明DKGSK具有較強(qiáng)的全局尋優(yōu)能力、較強(qiáng)的跳出局部最優(yōu)能力和較好的優(yōu)化精度,采用的改進(jìn)策略是有效和可行的。從箱線圖的高度上看,p取4個(gè)不同值時(shí),大部分?jǐn)?shù)據(jù)點(diǎn)都沒有嚴(yán)重偏離理論最優(yōu)位置。從偏離理論最優(yōu)位置上看,當(dāng)p=0.1時(shí),沒有出現(xiàn)偏離理論最優(yōu)位置的數(shù)據(jù)點(diǎn),而p取其余3個(gè)值時(shí),均出現(xiàn)偏離理論最優(yōu)位置的數(shù)據(jù)點(diǎn)。因此,本文算法(DKGSK)在數(shù)值實(shí)驗(yàn)中取p=0.1。 其次,為了研究知識(shí)因子kf之不同值對(duì)DKGSK 優(yōu)化性能的影響,本文針對(duì)kf= 0.5,1,1.2,1.5,1.8 分別做實(shí)驗(yàn)。實(shí)驗(yàn)設(shè)置種群規(guī)模為100,最大迭代次數(shù)為150,D=30。從實(shí)驗(yàn)結(jié)果上看:DKGSK求解F1~F5和F7~F12在kf=1.8時(shí)的表現(xiàn)最好、求解F6在kf=1.5時(shí)的表現(xiàn)比較好。因此,本文算法(DKGSK)在實(shí)驗(yàn)中取kf=1.8。 為進(jìn)一步驗(yàn)證本文算法(DKGSK)的尋優(yōu)性能,將DKGSK分別與GSK,DEGH,APGSK,PSO,WOA算法進(jìn)行Wilcoxon秩和檢驗(yàn)。在顯著性水平為0.05的條件下檢驗(yàn)算法之間的顯著差異性,其中p表示檢驗(yàn)的數(shù)值,若p值小于0.05,則表明算法之間的尋優(yōu)結(jié)果存在顯著性差異,否則無(wú)明顯差異。N表示數(shù)據(jù)無(wú)效即檢驗(yàn)的所有樣本數(shù)據(jù)相同,算法不具有顯著差異性。從測(cè)試數(shù)據(jù)可以看出,p值小于0.05的占絕大多數(shù)。因此,DKGSK與其他五種對(duì)比算法具有非常顯著的差異性,并且DKGSK的全局優(yōu)化能力最強(qiáng)。 針對(duì)標(biāo)準(zhǔn)GSK之不足,本文提出采用動(dòng)態(tài)知識(shí)因子的基于知識(shí)共享的優(yōu)化算法(DKGSK)。首先,利用單調(diào)遞減自適應(yīng)權(quán)重函數(shù)來(lái)控制個(gè)體的移動(dòng)步長(zhǎng),使個(gè)體在算法前期能以較大步長(zhǎng)在搜索空間中進(jìn)行全局探索活動(dòng),讓種群個(gè)體盡快遍歷整個(gè)搜索空間,增強(qiáng)了算法的全局探索能力,為算法后期的局部搜索活動(dòng)提供了更多有用的信息;個(gè)體在算法后期以較小步長(zhǎng)開展局部搜索活動(dòng),提升了個(gè)體的局部搜索能力,增強(qiáng)了算法的局部?jī)?yōu)化能力,從而使算法的全局探索和局部開發(fā)能力均得到提升。其次,利用動(dòng)態(tài)知識(shí)因子來(lái)調(diào)控個(gè)體搜索,針對(duì)初級(jí)獲取階段和高級(jí)獲取階段,分別通過(guò)0至1之間的均勻隨機(jī)函數(shù)和列維飛行函數(shù)來(lái)調(diào)控個(gè)體搜索,使個(gè)體搜索步長(zhǎng)更具隨機(jī)性,提升了個(gè)體搜索能力,從而增強(qiáng)了算法的局部開發(fā)能力。此外,當(dāng)個(gè)體搜索陷入局部最優(yōu)時(shí),借助列維飛行可使其跳出當(dāng)前最優(yōu)位置,從而使算法跳出局部最優(yōu)的能力得到提升。通過(guò)與標(biāo)準(zhǔn)GSK和改進(jìn)版本GSK作數(shù)值實(shí)驗(yàn)與仿真結(jié)果比較,驗(yàn)證了本文算法在全局收斂速度、優(yōu)化精度、算法穩(wěn)定性方面均得到了明顯的提高,規(guī)避陷入局部最優(yōu)的能力得到了增強(qiáng)。后續(xù)研究將重點(diǎn)考慮將本文算法應(yīng)用于數(shù)據(jù)分類、工程優(yōu)化設(shè)計(jì)等方面的應(yīng)用中。2 本文算法
2.1 針對(duì)GSK公式(3)之不足,本文對(duì)其作如下改進(jìn)
2.2 針對(duì)GSK的公式(4),作如下改進(jìn)
2.3 算法實(shí)現(xiàn)步驟
2.4 算法時(shí)間復(fù)雜度分析
3 數(shù)值實(shí)驗(yàn)
3.1 測(cè)試函數(shù)
3.2 實(shí)驗(yàn)參數(shù)設(shè)置
3.3 實(shí)驗(yàn)結(jié)果分析
3.4 DKGSK主要參數(shù)確定方法
3.5 Wilcoxon秩和檢驗(yàn)
4 結(jié)論