HOME 首頁
SERVICE 服務產(chǎn)品
XINMEITI 新媒體代運營
CASE 服務案例
NEWS 熱點資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    灰狼優(yōu)化算法改進(灰狼優(yōu)化算法改進方法)

    發(fā)布時間:2023-04-14 02:14:59     稿源: 創(chuàng)意嶺    閱讀: 81        

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于灰狼優(yōu)化算法改進的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com。

    創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務請撥打電話175-8598-2043,或添加微信:1454722008

    本文目錄:

    灰狼優(yōu)化算法改進(灰狼優(yōu)化算法改進方法)

    一、pb實驗和算法優(yōu)化區(qū)別

    PB實驗和算法優(yōu)化有很大的區(qū)別。PB實驗是一種實驗性的方法,它通過實驗來改進系統(tǒng)的性能,而算法優(yōu)化則是一種理論性的方法,它通過分析和設(shè)計算法來改進系統(tǒng)的性能。

    二、優(yōu)化算法筆記(十三)鯨魚算法

    (以下描述,均不是學術(shù)用語,僅供大家快樂的閱讀)

    鯨魚算法(Whale Optimization Algorithm)是根據(jù)鯨魚圍捕獵物的行為而提出的算法。鯨魚是一種群居的哺乳動物,在捕獵時它們也會相互合作對獵物進行驅(qū)趕和圍捕。鯨魚算法提出時間并不長,也是一個新興的優(yōu)化算法,研究應用案例不多。

    鯨魚算法中,每個鯨魚的位置代表了一個可行解。在鯨魚群捕獵過程中,每只鯨魚有兩種行為,一種是包圍獵物,所有的鯨魚都向著其他鯨魚前進;另一種是汽包網(wǎng),鯨魚環(huán)形游動噴出氣泡來驅(qū)趕獵物。在每一代的游動中,鯨魚們會隨機選擇這兩種行為來進行捕獵。在鯨魚進行包圍獵物的行為中,鯨魚將會隨機選擇是向著最優(yōu)位置的鯨魚游去還是隨機選擇一只鯨魚作為自己的目標,并向其靠近。

    鯨魚算法,顯而易見,主角就是鯨魚了。

    在D維解空間內(nèi)每個鯨魚的位置為

    每只鯨魚隨機選擇進行包圍獵物或者是使用汽泡網(wǎng)驅(qū)趕獵物,每只鯨魚選擇這兩種行為的該率是等的,即P(包圍)=P(汽泡網(wǎng))=0.5。

    鯨魚在包圍獵物時會選擇向著最優(yōu)位置的鯨魚游動或者向著一只隨機鯨魚游動。

    該鯨魚的位置更新公式入下:

    其中 為當前最優(yōu)的鯨魚的位置,A的每一維為均勻分布在(-a,a)內(nèi)的隨機數(shù),a的初始值為2,隨著迭代次數(shù)線性遞減至0;C為均勻分布在(0,2)內(nèi)的隨機數(shù)。||表示數(shù)的絕對值,即 每一維的值都是非負數(shù)。

    該鯨魚的位置更新公式入下:

    其中 為當前群體中隨機選擇的鯨魚的位置。

    那么鯨魚在什么時候選擇向最優(yōu)個體游動,什么時候選擇隨機個體為目標呢?

    這個將由A的值決定

    當 時,鯨魚選擇向著最優(yōu)個體游動。注意A是一個D維的向量,所以是A的模小于1時,鯨魚向著最優(yōu)個體游動。

    當 時,鯨魚選擇向著隨機個體游動。

    可以看出在包圍獵物的過程中,鯨魚算法的搜索模式為在距最優(yōu)個體較近的周圍搜索或者在距隨機個體較遠的附近搜索。

    2.2氣泡網(wǎng)

    鯨魚在捕獵時會噴出汽包形成氣泡網(wǎng)來驅(qū)趕獵物。

    其中b為常數(shù)(沒找到定義,默認取1),l為均勻分布在[-1,1]內(nèi)的隨機數(shù)。

    每次行動之前,每只鯨魚都會拋個硬幣,來決定是選擇包圍獵物還是使用氣泡網(wǎng)來驅(qū)趕獵物。

    從上面的描述可以看出,鯨魚算法的流程也十分的簡單。

    適應度函數(shù)

    實驗一 :標準鯨魚算法

    從圖上可以看出算法的收斂性還是很強的,在第35代左右就已經(jīng)完全收斂。再看最后的結(jié)果,已經(jīng)是非常好的結(jié)果了,同樣也說明的算法的局部搜索能力很強。這樣印證了上一節(jié)我的說法,算法收斂速度快,缺少跳出局部最優(yōu)的能力。

    從算法的流程我們可以看出,算法的收斂性大概是由參數(shù)a來決定的,由于a從2遞減為0,使算法的搜索范圍越來越小,從而加速算法的收斂。這應該是一個優(yōu)化后的參數(shù),現(xiàn)在我們固定住a,來弱化算法,減弱其收斂性,看看全局搜索和跳出局部最優(yōu)能力是否有所加強。

    實驗二 :固定參數(shù)a

    從圖像可以看出,算法幾乎沒有收斂的了,算法的收斂速度依舊很快。

    看看實驗結(jié)果。

    結(jié)果比標準鯨魚算法差,能說明參數(shù)a影響了算法的搜索精度,參數(shù)a對算法收斂性的影響在于a對向量A的影響。固定a=1.5時使A的模較之前相比有更大的概率大于1,此時鯨魚們在包圍獵物的行為中選擇游向最優(yōu)個體的概率更小,從而使算法的收斂速度更慢,同時算法的全局搜索能力有一定的提升。

    鯨魚算法作為一個新興算法,我對它的研究也不是太多。縱觀算法的流程,可以看出標準的鯨魚算法和螢火蟲算法有相似之處,它們都是在算法前期進行全局搜索,而在算法的后期進行局部搜索,也都沒有跳出局部最優(yōu)的操作。在面對簡單問題上表現(xiàn)出的優(yōu)秀性能到了復雜問題上可能會有所下降,但是由于算法流程、結(jié)構(gòu)相對簡單,算法的改進點感覺也不是太多。

    以下指標純屬個人yy,僅供參考

    參考文獻

    Mirjalili S, Lewis A. The Whale Optimization Algorithm[J]. Advances in Engineering Software, 2016, 95:51-67. 提取碼:b13x

    目錄

    上一篇 優(yōu)化算法筆記(十二)煙花算法

    下一篇 優(yōu)化算法筆記(十四)水波算法

    優(yōu)化算法matlab實現(xiàn)(十三)鯨魚算法matlab實現(xiàn)

    三、優(yōu)化算法筆記(十二)煙花算法

    (以下描述,均不是學術(shù)用語,僅供大家快樂的閱讀)

    煙花算法(Firework Algorithm,FWA)是一種受煙花爆炸產(chǎn)生火星,并繼續(xù)分裂爆炸這一過程啟發(fā)而得出的算法。算法的思想簡單,但具體實現(xiàn)復雜。算法提出時間并不長,但是已經(jīng)有了不少的改進研究和較為全面的應用。

    煙花算法中,每一個煙花的位置都代表了一個可行解。煙花的爆炸產(chǎn)生的火星有兩種,正常的火星與特別的火星。每個火星都會爆炸產(chǎn)生數(shù)個正?;鹦?,某些火星有一定的概率產(chǎn)生一個特別的火星。正常的火星根據(jù)當前火星的振幅隨機均勻分布在該火星的周圍,而特別的火星將在當前火星附近以正態(tài)分布方式產(chǎn)生。每次迭代產(chǎn)生的火星數(shù)量多于每一代應有的火星數(shù),算法將參照火星位置的優(yōu)劣,隨機留下指定數(shù)量的火星,已保持火星數(shù)目的穩(wěn)定。

    煙花算法的主角毫無疑問就是煙花了。

    式(1)為適應度值越小越優(yōu)的情況,而式(2)則是適應度值越大越優(yōu)的情況。 為一個極小的值,以保證分母不為0。

    每個火星產(chǎn)生的正常火星數(shù)量也由其適應度值來決定。

    其中 表示第i個火星將要產(chǎn)生的正常火星數(shù), 是產(chǎn)生正常火星的總數(shù)為一個常數(shù),從式(3),(4)可以看出適應度值越好的火星能夠產(chǎn)生更多的正?;鹦?,反之,火星適應度越差,能夠產(chǎn)生的火星數(shù)越少。

    由于式(3),(4)計算出的值為小數(shù),煙花算法中使用式(5)將其轉(zhuǎn)化為整數(shù)。

    從式(3)和式(4)中可以看出,在每一代中將會產(chǎn)生出 個正?;鹦恰.a(chǎn)生的正?;鹦堑奈恢门c當前火星的振幅有關(guān),可以從式(1),(2)看出,適應度越優(yōu)的火星的振幅越小,那么它產(chǎn)生的正常火星將在它自己周圍,而適應度越差的火星的振幅越大,它產(chǎn)生的正?;鹦菍霈F(xiàn)在離自己較遠的位置。

    當前火星每次爆炸會從D維搜索空間內(nèi)隨機選擇z維進行更新從而產(chǎn)生新的火星。正?;鹦堑奈恢糜扇缦鹿疆a(chǎn)生。

    其中z為取值1-D的均勻隨機正整數(shù),rand(-1,1)表示-1到1內(nèi)的均勻隨機數(shù)。從式(6)中可以看出,正?;鹦堑奈恢门c其振幅有直接關(guān)系,振幅越大產(chǎn)生的新火星距當前火星的距離約遠。

    每次迭代過程中,會產(chǎn)生m個特別的火星,即在這N個火星中隨機選擇m個火星,每個火星產(chǎn)生一個特別的火星。特別的火星的由下面的公式產(chǎn)生:

    由上面的過程可知,在每一代中,有N個火星,將會產(chǎn)生出 個正?;鹦且约癿個特別的火星。但是每一代中只能從這 個火星中選擇N個火星保留至下一代。

    每次會先從 個火星中選擇最優(yōu)的火星保留至下一代,然后再從中選擇N-1個火星。選擇某個火星的概率如下:

    其中R(X)表示該火星距其他所有火星的距離之和,即距其它火星越遠的火星,被選擇保留至下一代的概率較大。

    個火星,而且

    ,所有煙花算法每次迭代的計算復雜度要大于其他算法,這簡直就是一個作弊行為。別的算法每次只搜索了N個位置,而煙花算法卻搜索了 個位置。與其他優(yōu)化算法對比時,其他算法的種群數(shù)量應該取 ,否則這將是一場不公正的對決。

    適應度函數(shù)還是這個簡單的小白鼠

    實驗一 :標準煙花算法

    以上數(shù)據(jù)來自原論文,現(xiàn)在看一看實驗的圖像以及實驗結(jié)果。

    從圖像可以看出每次只選擇保留了5個火星,它們的收斂速度很慢,實驗結(jié)束時距離目標點還有一段距離。

    看看實驗結(jié)果

    從實驗結(jié)果可以看出,算法的性能很不穩(wěn)定,而造成這一點的原因很可能是其收斂速度較慢,算法仍在收斂過程中,所以結(jié)果看上去很差。將最大迭代次數(shù)修改為100代,重新試驗,其結(jié)果如下:

    結(jié)果好了一些但還是難以接受,為什么煙花算法的結(jié)果不理想呢?

    原因可能是保留機制(2.3節(jié))的問題,煙花算法中保留火星的概率是根據(jù)該火星與其他火星的距離和,距離群體越大的個體被保留下的概率越大。這樣做有什么好處呢?好處是火星相對分散,這是一個對抗局部最優(yōu)的策略,但是,距離群體較遠的個體是一個較差的個體的概率非常大,壞處就是,集中于當前最優(yōu)位置的火星被保留的概率較小,算法的局部搜索能力將較弱。

    實驗二 . 隨機選擇的方式保留火星

    為了加快煙花算法的收斂速度,增強局部搜索能力,我移除了標準煙花算法的選擇過程,使用隨機選擇的方式保留火星,當然,最優(yōu)個體依然會被保留至下一代。其他參數(shù)保持不變。

    可以看出這次的圖像相比實驗一收斂速度快了不少,在迭代結(jié)束時已經(jīng)相對在一個較小的區(qū)域。這次的結(jié)果也明顯優(yōu)于實驗一。將選擇過程改為隨機選擇后,由于較優(yōu)的火星產(chǎn)生的較多且分布在自己周圍,因此選擇到這些較優(yōu)的火星的概率也相對較大,算法的收斂速度相對較快。與此同時,算法跳出局部最優(yōu)的能力比修改前要弱。

    對于較簡單的問題來說當然是隨機選擇收斂較快結(jié)果較好,而復雜的問題則需要更強的跳出局部最優(yōu)能力。問題的關(guān)鍵仍然是,我們無法在一開始就知道問題的復雜程度。

    實驗三 .增加火星的種群數(shù)量,減少每代產(chǎn)生的正?;鹦强倲?shù)

    為什么要減少產(chǎn)生的正常火星數(shù),這樣算法搜索的次數(shù)減少了,效果不會更差嗎?其實與直覺相反,減少正常火星總數(shù),增加火星總?cè)簲?shù),實際上是讓較優(yōu)的火星產(chǎn)生的正?;鹦潜槐A粝聛淼母怕首兇罅?,這樣也可以解決實驗一中的問題,加快算法的收斂速度。

    從圖像中可以看出,算法在50代之前已經(jīng)收斂,但是之后只在小范圍內(nèi)進行搜索。實驗圖像與之前的描述相符,收斂速度加快但是跳出局部最優(yōu)能力減弱??纯磳嶒灲Y(jié)果,實驗結(jié)果好了不少且結(jié)果更加穩(wěn)定。

    其實實驗二與實驗三,使用了不同的策略,但都達到了同樣的目的——保留更多的優(yōu)質(zhì)火星到下一代,它們促進了局部搜索但是擠占了較劣火星的位置,削弱了種群的多樣性。

    每代留下的火星多了,圖像看上去是不是更像煙花?

    煙花算法的探究遠不止如此,幾年前作為一個較新的算法來學習時卻已經(jīng)有了大量的論文和書籍,可見大家對煙花算法已經(jīng)有了較為深入的研究,而我能做的只是應用算法解決問題以及稍作改進讓算法與問題的適應性更高。

    煙花算法產(chǎn)生正?;鹦堑倪^程為算法提供了搜索能力,產(chǎn)生特殊火星的過程和選擇過程為算法提供了跳出局部最優(yōu)的能力。但是個人認為選擇過程與其他過程的適應性不是很好。標準的選擇過程會丟失掉許多較優(yōu)的個體,使之前產(chǎn)生的正常火星得到的成果沒有保留。

    煙花算法其實還有比較多的改進點,對算法產(chǎn)生最大的參數(shù)應該就是正?;鹦堑目倲?shù)以及振幅了。簡單粗暴的改進:在每一代可以對這兩個參數(shù)進行變化或者隨機化,讓算法的搜索能力與跳出局部最優(yōu)能力在整個流程中動態(tài)變化,以均衡兩種能力。

    以下指標純屬個人yy,僅供參考

    參考文獻

    Tan Y , Zhu Y . Fireworks Algorithm for Optimization[C]// Advances in Swarm Intelligence, First International Conference, ICSI 2010, Beijing, China, June 12-15, 2010, Proceedings, Part I. Springer-Verlag, 2010. 提取碼:yaj0

    目錄

    上一篇 優(yōu)化算法筆記(十一)群搜索算法

    下一篇 優(yōu)化算法筆記(十三)鯨魚算法

    優(yōu)化算法matlab實現(xiàn)(十二)煙花算法matlab實現(xiàn)

    四、如何算改進了一個算法,怎么改才叫改進了呢?

    我認為,所謂“改進”就是使發(fā)現(xiàn)原算法的不足之處,并優(yōu)化之,結(jié)果是使該算法效率大大提高高,或者適用度更廣泛,如果“改進”后的算法不比之前的更優(yōu),就不能算改進。反之,只要能夠大大提高改算法的效率,或者使該算法適用度更廣,就算是改進。至于改進一個細節(jié),如果是一個重要的細節(jié),當然也算是改進。

    不過,算法都是高手發(fā)明的,他們在公布之前一定將這種算法優(yōu)化過了,如果要再改進,那一定要非常細心或者比他更高才行。

    以上就是關(guān)于灰狼優(yōu)化算法改進相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。


    推薦閱讀:

    多目標灰狼算法流程圖(多目標規(guī)劃圖解法)

    灰狼算法為什么編碼簡單(灰狼算法為什么編碼簡單一些)

    灰狼算法和麻雀算法區(qū)別(灰狼算法和麻雀算法區(qū)別是什么)

    手機平板電腦排行榜(手機平板電腦排行榜前十)

    20元左右的煙排行榜