999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于動態(tài)搜索的自適應貓群算法

2021-07-21 05:03:14陳超泉王悅悅謝曉蘭
計算機工程與設計 2021年7期

陳超泉,王悅悅,謝曉蘭

(桂林理工大學 信息科學與工程學院,廣西 桂林 541006)

0 引 言

近幾年,貓群算法[1]的應用領域越來越廣泛,搜索機制也得到了優(yōu)化。李昂等[2]在貓群算法中加入投食機制,通過加強算法局部搜索的能力進而提高算法搜索速度,但是這種方法也會加大陷入局部極值的概率。黃偉健等[3]用Logistic混沌映射在貓群算法的每次迭代中對位置進行一個擾動,使其避免陷入局部極值。趙東明等[4]提出一種多目標貓群算法,使得每只貓在迭代中都受最優(yōu)貓的牽引,增加算法收斂速度。Pandi等[5]通過在算法尋優(yōu)過程中把貓當作一個和聲,同時進行和聲搜索的方法,增加了貓群多樣性。

以上研究雖然都一定程度上的優(yōu)化了貓群算法,但是對于貓群算法收斂的速度和求解的精度還是沒有得到針對性的改進。本文對于這種情況,提出一種改進方法,對分組率以及慣性權重進行先變速率增大后變速率減小的動態(tài)變化,使算法在不同的進化時刻有著不同的搜索重心,從而可以提高算法收斂的速度;同時針對貓群算法極易陷入局部極值的問題,本文讓算法在不同的適應值情況下擁有自適應的變異率,增加算法跳出局部極值的概率。最后通過5個標準測試函數驗證算法在收斂的速度和尋優(yōu)的精度方面都具有一定的優(yōu)勢。

1 貓群算法

貓群算法模擬正常狀態(tài)中的貓的捕獵行為。貓時刻處于一種警惕狀態(tài),對于身邊的事物具有高度的警覺性。一般情況下,貓?zhí)幱诰锠顟B(tài)并搜索獵物,一旦發(fā)現合適的獵物,則對獵物進行跟蹤。貓群算法中含有兩種不同的活動模式,一種是貓在沒有獵物目標時對周邊進行巡視的一種狀態(tài),此情況下的貓可發(fā)現身邊合適的獵物,這種活動狀態(tài)比擬為搜尋模式;另外一種模式是貓選定一個獵物并對其進行追蹤,這種活動狀態(tài)比擬為跟蹤模式。貓群算法結合了貓捕獵時的兩種活動狀態(tài),用貓的兩種捕獵狀態(tài)進行建模形成的一種群智能優(yōu)化算法。

貓群算法中,貓的位置向量即待優(yōu)化問題的可行解,按照分組率(mixture ratio,MR)即執(zhí)行跟蹤模式部分占種群總體的比例[6],將貓隨機的劃分進搜尋模式與跟蹤模式中,兩種模式的貓進行不同的屬性信息更新直至算法迭代結束。

在搜尋模式中,貓把自己的位置屬性克隆多份到記憶池中,對記憶池中的每個克隆體通過變異改變其位置向量,來產生新的鄰域位置,并將這些變異后的克隆體放入記憶池中作為候選位置點。計算候選位置點的適應值,通過隨機選擇一個候選位置點來代替此位置點完成位置更新。

在跟蹤模式中,每只貓都具有一個速度屬性和一個位置屬性,其屬性更新與粒子群算法相差無幾,通過改變每一維度的屬性信息完成更新,使處于跟蹤模式中的貓持續(xù)靠近最優(yōu)貓。

1.1 搜尋模式

此模式包含了4個基本要素:記憶池(seeking memory pool,SMP)、變化域(seeking range of the selected dimension,SRD)、變化數(counts of dimension to change,CDC)、自身位置判斷(self-position considering,SCP)。具體概念如下:

SMP:用來存放此貓所能記憶的所有位置點;

SRD:指搜尋模式中變異貓每一維發(fā)生變化的范圍,此要素在算法中有著極其重要的作用,其值若取的偏大,則會導致算法偏于隨機搜索,甚至是純粹的隨機搜索,根據經驗,一般取0.2;

CDC:指搜尋模式中貓的位置可以發(fā)生變異的維度個數,變化數不能大于維度D;

SCP:表示搜尋模式的貓的位置是否作為候選點,可隨機取0或1。

執(zhí)行搜尋模式的貓通過對記憶池中的候選點的位置變異實現位置的更新:

步驟1 判斷SCP,若此位置點是候選位置點,將自身位置復制M(M=SMP) 份到記憶池中,否則M=SMP-1;

步驟2 根據每個貓的CDC值對副本中每個個體的相應維數進行位置變異,通過式(1)得出新位置,并代替原來的位置

(1)

其中,t表示迭代次數。

步驟3 更新記憶池中每個候選位置點的適應值;

(2)

其中,若適應度函數的目標是求最小值,則f*=fmax, 否則f*=fmin。

步驟5 根據選擇概率的大小使用一個最優(yōu)的候選點替換當前貓。

1.2 跟蹤模式

跟蹤模式是對貓追蹤目標時一系列行為的建模,每只貓根據速度-位移模型對自身屬性的每一維進行相應的更新,同時利用最優(yōu)貓的屬性信息,使得個體貓持續(xù)朝著最優(yōu)貓前進。

步驟1 根據速度更新式(3)完成速度更新

(3)

其中,rand為服從[0,1]的隨機數;c為事先取定的常數。

步驟2 檢查更新后的速度是否超出預先設定的速度區(qū)間 [Vmin,Vmax], 如果超出區(qū)間,則根據式(4)對其進行調整

(4)

步驟3 根據式(5)更新貓的位置

(5)

2 基于動態(tài)搜索的自適應貓群算法

自貓群算法被用在各個不同的領域中后,人們對于貓群算法的改進也逐漸完善,其中就不乏對分組率和慣性權重方面的改進。楊進等[7]在利用貓群算法求解TSP問題時引入交換子和變異子,同時讓分組率隨時間改變,進而達到優(yōu)化算法的目的。馬邦雄等[8]提出了隨時間變化的貓群行為模式選擇方法,在迭代過程中根據迭代次數動態(tài)改變分組率。陶亞男等[9]通過貓群算法迭代次數的更新來改變分組率,同時讓慣性權重隨著適應值進行變化,增加了算法的自適應性。張繼榮等[10]在前人基礎上加以改進,提出將慣性權重的變化速率改為一個動態(tài)變化的值,增強算法的搜索能力。

可是,以上的改進方法都只是單一的對慣性權重或者分組率進行改變,雖然也取得了一定程度的效果,但實際上,分組率和慣性權重是相輔相成的兩個部分,當兩個參數配合得當,算法的收斂速度才會有事半功倍的效果。而且在實驗中發(fā)現,貓群算法雖然有著全局尋優(yōu)的特點,但是作為一個群智能算法,貓群算法也有著很大的概率會陷入局部極值。本文針對此種現象,提出一種同時對分組率和慣性權重進行動態(tài)變化,并且根據算法進化狀態(tài)自適應改變變異率的方法,使得算法能夠很好地平衡搜索重心,加大跳出局部極值的幾率,增強搜索全局最值的能力。

2.1 動態(tài)搜索

分組率MR和慣性權重ω是貓群算法中十分重要的兩個參數,能極大地影響算法的開拓和搜尋能力。分組率表征著有多大數量的貓會去進行全局搜索,而慣性權重的大小表示了貓對當前速度保留了多少。傳統的貓群算法的分組率和慣性權重都是固定值,若選取的過大,則算法偏重于全局搜索,收斂速度較慢,而且不能達到一個期望的尋優(yōu)精度;若選取的過小,則算法偏重于局部搜索,容易陷入局部最優(yōu)值,無法實現全局尋優(yōu)。

本文在激活函數的啟發(fā)下,想到利用激活函數的特點,把迭代次數作為輸入量,同時分組率和慣性權重添加一個閾值,在激活函數的作用下,使算法在不同的進化狀態(tài)下能夠的到一個動態(tài)變化的值,以此來響應算法,提高其收斂速度。根據函數的曲線特點,本文選用的是典型的S形函數:Logistic函數。

傳統的Logistic函數如式(6)所示,其特點是無論自變量取值為多少,函數值永遠局限于一個范圍內

(6)

其中,a可以改變曲線的變化程度。

為了讓函數對算法產生更多積極的影響,本文在傳統的Logistic函數的基礎上進一步改變其曲線特點。改進的分組率和慣性權重需要在搜索前期表現出全局搜索的特點,增大發(fā)現更優(yōu)的極值的概率,因此在迭代前期,需要較大的分組率和較大慣性權重,這樣可以使得在全局搜索的時候,有更多的貓進入跟蹤模式,同時以較大的步長對全局范圍內進行搜索;在搜索后期的時候,算法應該具備局部搜索的能力,這時候應該減少跟蹤模式的貓,增大搜尋模式的貓,同時減少慣性權重的值,使得跟蹤模式的貓能夠更好地向全局最優(yōu)貓靠近。根據需要,本文算法使用式(7) 代替式(6)

(7)

因為迭代次數也是有一個范圍存在的,故本文算法使用式(8)將迭代次數映射到Logistic函數的自變量域內

(8)

其中,G表示最大迭代次數。

利用迭代次數在算法中動態(tài)變化,將分組率和慣性權重根據Logistic函數的曲線特點也進行一個動態(tài)變化,從而使得本文算法具有一個動態(tài)搜索的能力。分組率和慣性權重可通過式(9)和式(10)求得

(9)

(10)

為了更直觀體現Logistic函數改變分組率和慣性權重的特點,本文選擇與傳統的線性改變分組率和慣性權重方法進行畫圖對比,如圖1和圖2所示。

圖1 分組率變化對比

圖2 慣性權重變化對比

2.2 自適應變異率

群智能算法發(fā)展至今,其陷入局部極值的特點也還是無法得到完全解決,但是不少學者也針對此問題對算法做出很多改進去進行優(yōu)化,增加算法跳出局部極值的概率。可是,對于貓群算法,關于變異率的改進卻是少之又少。傳統的貓群算法采用固定的變異率,這就導致算法在前期因變異率太大而影響全局搜索的進行,再后因變異率太小而無法跳出局部極值。

對于這種現象,本文提出采用自適應變異率,對于搜尋模式的貓,根據算法的進化狀態(tài)來自適應改變變異率,使其能夠以一定的概率跳出局部解。為了增強算法的自適應性,本文算法不選用根據迭代次數進行變異率的改變,而是引入適應度的平均值和最差值來進行判斷。對于搜索過程中的貓群,其適應度總是處于一個不斷更新的過程,本文算法不采用即時更新即時判斷的方法,而是在每一代更新一次變異率。在算法搜索前期,算法主要進行全局搜索行為,此時的貓群位置較為松散,而貓群整體的適應平均值也基本處于最優(yōu)貓與最差貓的中點附近,對于這種情況,應讓搜尋模式的貓?zhí)幱诘妥儺惵实臓顟B(tài),盡量減少影響全局搜索的行為;隨著迭代的持續(xù),算法頁相應地由全局搜索逐漸向局部搜索靠近,而這種情況下的貓群比較密集,雖也有少許貓?zhí)幱诘瓦m應度的位置,但是較優(yōu)的貓占多大部分,這時貓群的適應度平均值比較靠近最優(yōu)值,對于這種情況,可適當加大搜尋模式的貓的變異率,使其能夠較大概率的對領域范圍甚至更遠一點的位置進行搜索,減少其陷入局部最優(yōu)的可能。

算法對于變異率的求解可由式(11)實現

(11)

其中,favg是貓群適應度平均值;fgbest是貓群最優(yōu)值;fgworst是貓群最差值。

2.3 ADSCSO算法流程

步驟1 初始化貓群及控制參數;

步驟2 計算貓群中個體的適應度,同時更新此時的全局最優(yōu)解;

步驟3 計算適應值的平均值以及最差值;

步驟4 根據式(8)將迭代次數映射到Logistic函數的自變量域;

步驟5 利用x的取值根據式(9)求得分組率,人后按照分組率大小將貓群隨機分為兩部分:一部分展開搜尋,其它進行跟蹤;

步驟6 執(zhí)行搜尋模式:對于執(zhí)行搜尋模式的貓群,先根據式(11)求出這一代的變異率,然后將貓的位置復制M=SMP份進記憶池(若SPC為假,則M=SMP-1),按照式(1)對每個副本進行位置更新,計算每個副本的適應度值,選擇適應度值最高的候選位置點代替此位置點;

步驟7 執(zhí)行跟蹤模式:對于執(zhí)行跟蹤模式的貓群,先利用x的取值根據式(10)求出慣性權重的值,然后根據式(3)、式(4)和式(5)分別對貓執(zhí)行速度更新、速度邊界處理和位置更新;

步驟8 重新計算貓群的適應度值,同時更新全局最優(yōu)解;

步驟9 判斷迭代次數是否符合結束條件,若是,則立刻結束算法的進行。否則轉向步驟3繼續(xù)進行迭代。

ADSCSO算法流程如圖3所示。

3 實驗結果分析

本次實驗使用Windows10操作系統,Intel(R)Core(TM)i7-9750H CPU @2.60 GHz 2.59 GHz,8 GB內存,Matlab 2018仿真軟件。為了比較充分比較CSO、DSCSO與ADSCSO求解精度和收斂速度方面的情況,本文使用5個標準測試函數進行驗證,測試函數范圍限制和算法參數設置于表1和表2分別確定。

表1 5個測試函數范圍限制

表2 CSO與ADSCSO參數設置

其中,f1是一個具有代表性的單峰函數,全局最小值處于一個非常窄小的拋物線谷中,雖然進入這個山谷很簡單,但要搜尋到最小值是很難的;f2是一個有許多局部極值的函數,其外部區(qū)域幾乎平坦,中心有一個大洞,優(yōu)化算法極容易陷入其局部值內,導致算法尋優(yōu)極難。f3是低維多峰函數,其函數維度較低,但是其中包含多個極小值。f4是一個高維多峰函數,此函數本身就包含了眾多局部極值,維度的增加也使得局部極值增多,尋優(yōu)難度增大。f5是一個搜索范圍比較大的多峰函數,其中還包含了多個極小值。

3.1 求解精度分析

表3列出了CSO、DSCSO和ADSCSO算法在5個測試函數上進行實驗的結果。實驗對每個算法獨立運行20次,每次迭代2000次,每100次采集一次數據,分別記錄算法運行結果,根據算法仿真數據,計算運行20次所得到的最優(yōu)解的平均值來進行比較求解精度,同時對運行20次所得到的最優(yōu)解進行求方差運算,方差越小,說明尋到的最優(yōu)貓變化不大,算法也就越穩(wěn)定。

表3 CSO與ADSCSO算法實驗數據對比情況

如表3所示,無論低維多峰函數還是高維多峰函數,ADSCSO算法在最優(yōu)值的精度上都要高于DSCSO算法和CSO算法,在單峰函數上表現的更為明顯,而且同樣的情況下,DSCSO算法又比CSO算法有優(yōu)勢。

對于f1,加入動態(tài)搜索的DSCSO算法和加入動態(tài)搜索以及自適應變異率的ADSCSO算法都要優(yōu)于CSO算法。對于多峰函數,無論是低維還是多維,甚至是搜索域的擴大,ADSCSO算法都能夠很好地尋到更優(yōu)的解,同時,ADSCSO算法在精度上也都高于DSCSO算法,這說明自適應變異率增強跳出局部極值的可行性。

3.2 收斂速度分析

圖4至圖8分別展示了CSO算法、DSCSO算法和ADSCSO 算法在5個不同的函數測試下的適應值進化曲線情況。本文選取迭代次數為橫坐標軸,函數值即適應值為縱坐標軸,且適應值使用的是獨立運行20次得到的結果的平均值。為了能清晰展現出3個算法的比較情況,本文使用函數值的對數作為表示,并于圖像中展示出來。

如圖4所示,3個算法的初始搜索值類似,但是ADSCSO 算法全程以較穩(wěn)定的收斂速度持續(xù)探索最優(yōu)解,收斂速度要高于DSCSO算法和CSO算法,而同樣的情況下,DSCSO算法又優(yōu)于CSO算法。對于多個局部極小值的函數,如圖5和圖8所示,ADSCSO算法也展現了其在收斂速度方面的優(yōu)勢。對于f2這種特殊形狀的函數,進化曲線如圖4所示,前期低變異率能夠讓算法進行全面的全局搜索,雖然稍微降低了前期的收斂速度,但是后期隨著變異率的增強,局部搜索能力的增加,ADSCSO算法以較快的收斂速度收斂至比DSCSO算法還要優(yōu)的解。對于常規(guī)的多維函數的進化曲線,如圖6至圖8所示,無論低維還是高維,DSCSO算法雖然收斂速度上超過CSO算法,但在搜索后期,還是極容易陷入局部極值。而ADSCSO算法都能在全局搜索過后,以較快的收斂速度尋到較優(yōu)解,整體形勢都要優(yōu)于DSCSO算法和CSO算法,這也驗證了ADSCSO 算法在收斂速度方面的有效性。

圖4 Zakharov函數的適應值進化曲線

圖5 Ackley函數的適應值進化曲線

圖6 Schaffer N.2函數的適應值進化曲線

圖7 Rastrigin函數的適應值進化曲線

圖8 Griewank函數的適應值進化曲線

4 結束語

本文針對貓群算法在搜索過程中極易陷入局部最優(yōu)和收斂速度較慢的問題,提出一種基于動態(tài)搜索的自適應貓群算法。該算法利用Logistic函數曲線呈“S”形的特點,使其來根據迭代次數對分組率和慣性權重進行動態(tài)變化,讓算法在不同的時期有著不同的搜索重心,加快算法的收斂速度;同時根據算法進化狀態(tài),對變異率進行一個自適應的調整,增強算法跳出局部極值的能力。

本文使用5個經典測試函數對ADSCSO算法、DSCSO算法和CSO算法進行一個對比實驗,實驗結果表明ADSCSO算法無論是在求解精度還是收斂速度都優(yōu)于其它兩種算法,從而驗證了ADSCSO算法在全局優(yōu)化問題方面的可行性。

主站蜘蛛池模板: 国产成a人片在线播放| 国产精品无码制服丝袜| 在线精品欧美日韩| 激情乱人伦| 91蜜芽尤物福利在线观看| 国产自无码视频在线观看| 成人亚洲国产| 国产在线拍偷自揄拍精品| 久久77777| 亚洲啪啪网| 午夜人性色福利无码视频在线观看| 亚洲人成人无码www| 在线网站18禁| 波多野结衣久久高清免费| 91成人在线免费观看| 婷婷99视频精品全部在线观看| 色成人亚洲| 免费人成黄页在线观看国产| 国产成人麻豆精品| 日韩av高清无码一区二区三区| 国产在线一二三区| 久久黄色小视频| 永久免费无码日韩视频| 国产亚洲精品在天天在线麻豆 | 国产欧美专区在线观看| 啪啪国产视频| 久久中文无码精品| 亚洲精品成人7777在线观看| 在线看片中文字幕| 欧美亚洲中文精品三区| 久久天天躁夜夜躁狠狠| 亚洲欧美日韩动漫| 中国黄色一级视频| 91激情视频| 亚洲精品黄| 99在线视频网站| 欧美激情一区二区三区成人| 国产精品视频猛进猛出| 亚洲综合第一页| 欧美视频在线第一页| 尤物亚洲最大AV无码网站| 日韩无码一二三区| 欧美国产日产一区二区| 人妻少妇乱子伦精品无码专区毛片| 97视频在线观看免费视频| 日韩欧美一区在线观看| 试看120秒男女啪啪免费| 亚洲第一天堂无码专区| 四虎成人在线视频| 国产午夜不卡| 免费a在线观看播放| 中文字幕乱码二三区免费| 日韩无码黄色| 免费毛片在线| 免费观看国产小粉嫩喷水 | 国产黑丝一区| 日韩高清欧美| 日本午夜在线视频| 国产91av在线| 亚洲有码在线播放| 麻豆国产精品一二三在线观看| 久久婷婷五月综合97色| 国产成人精彩在线视频50| 亚洲国产看片基地久久1024| 亚洲免费三区| 成人免费黄色小视频| 亚洲一级毛片免费观看| 久久99精品国产麻豆宅宅| 亚洲色图欧美在线| 亚洲国产精品无码久久一线| 国产美女精品一区二区| 国产在线观看第二页| 欧洲成人在线观看| 91探花国产综合在线精品| 亚洲青涩在线| 色悠久久久久久久综合网伊人| 老司机精品久久| 夜夜高潮夜夜爽国产伦精品| 免费观看无遮挡www的小视频| 亚洲国产成人精品一二区| 真人免费一级毛片一区二区| www.亚洲天堂|