-
當前位置:首頁 > 創(chuàng)意學院 > 技術 > 專題列表 > 正文
鯨魚優(yōu)化算法什么時候提出的(鯨魚優(yōu)化算法原理)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于鯨魚優(yōu)化算法什么時候提出的的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關鍵詞,就能返回你想要的內容,越精準,寫出的就越詳細,有微信小程序端、在線網頁版、PC客戶端
創(chuàng)意嶺作為行業(yè)內優(yōu)秀的企業(yè),服務客戶遍布全球各地,如需了解SEO相關業(yè)務請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、優(yōu)化算法筆記(二十五)飛蛾撲火算法
(以下描述,均不是學術用語,僅供大家快樂的閱讀)
飛蛾撲火算法(Moth-Flame Optimization)是受飛蛾圍繞火焰飛行啟發(fā)而提出的算法。算法提出于2015年5月(投稿日期),雖可算作一個新算法,不過無數研究者就像飛蛾見了火一樣,發(fā)表了如此之多的論文,驚了。
飛蛾撲火算法中有兩種個體,飛蛾和火焰,飛蛾選擇并圍繞火焰以螺線方式飛行搜索,搜索完后,火焰將移動位置,以保持火焰是飛蛾和火焰群體中最優(yōu)的位置。
算法的流程簡單,螺線搜索在之前的鯨魚算法中也出現(xiàn)過,這里會較為詳細的記錄記錄螺線搜索的具體情況。
顯然,飛蛾撲火算法中有兩種角色,飛蛾與火焰。初始時飛蛾與火焰的數量均為N。為了方便查看,將飛蛾的位置表示為XM ,火焰的位置為 XF。
初始化時,會在解空間內初始化N個飛蛾與M(M=N)個火焰。在算法過程中,飛蛾將會圍繞它所選擇的火焰飛行,之后將這N個飛蛾與M個火焰按優(yōu)劣排序,并將M個火焰移動到較優(yōu)的前M個個體的位置。其中火焰的數量M會隨著迭代次數的改變而不斷變化,論文中階梯遞減至1。
算法的主要步驟如下:
1. 飛蛾選擇火焰(將火焰分配給飛蛾)。
2. 飛蛾圍繞火焰飛行。
3. 移動火焰到相應位置。
從步驟可以看出,算法中飛蛾的飛行是一種無貪心算法的操作,而火焰的移動則是一種變相的貪心操作。
初始化時,會有N個飛蛾和N個火焰(M=N),故每只飛蛾都可以選擇互不相同的火焰。隨著迭代次數的遞增,火焰的數量會遞減。其數量根據以下公式計算得出:
其圖像如下圖所示:
其實就是將火焰數量M線性遞減到1,由于火焰數量是正數,故圖像呈階梯狀。
隨著迭代次數增加,火焰數量遞減,每只飛蛾無法選擇互不相同的火焰,此時可以隨機選擇火焰或者飛蛾群體按順序依次往后選取,類似于取模。兩種方式的差別不大。
該步驟是算法的核心計算步驟。
對于飛蛾 ,它圍繞火焰 飛行后到達的新位置XM_new根據以下公式計算得出:
其圖像如下
而算法中的飛行軌跡應該是這樣的:
取出一維看看
其中i為計算次數。
圖像就是cos函數圖像的變形??紤]到飛蛾與火焰之間的距離會越來越短,其飛行圖像應該與上圖相反,即振幅越來越小,局部搜索能力越來越強。
N只飛蛾圍繞M個火焰飛行后,會到N個新位置,計算這N個新位置的適應度值,將這N個新位置與M個火焰這(N+M)個位置按優(yōu)劣排序,并將其中較優(yōu)的M個位置作為下一輪中火焰的位置。
其飛蛾撲火算法流程圖如下:
由于飛蛾撲火算法可以說是對蟻獅算法和鯨魚算法的結合,這里就看看算法的圖像,不再做其他處理了。
適應度函數 。
實驗一:
從結果看來,飛蛾撲火算法的性能穩(wěn)定也優(yōu)于蟻獅算法,從圖像看算法收斂性不如蟻獅算法但局部搜索性能要強于蟻獅算法。
可見螺線的局部搜索能力還是強于隨機游走的,不過其全局搜索要弱于隨機游走。相比蟻獅算法,飛蛾撲火算法更容易陷入局部最優(yōu)(其實與蟻獅差不多,只要火焰/蟻獅陷入局部最優(yōu)基本完蛋,不過蟻獅數量恒定,火焰數量遞減,所有火焰更容易局部最優(yōu))。
飛蛾撲火算法是根據飛蛾圍繞火焰飛行的行為而提出的算法。算法的結構比較簡單,與蟻獅算法類似,只是搜索步驟將隨機游走替換成了螺線搜索(當然還有跟多細節(jié)上的不同,可以看看原文)。算法的局部搜索能力非常強,依靠螺線就提供了全局搜索和局部搜索能力,其全局搜索和局部搜索能力強弱由其極半徑決定,算法中由b決定。不過算法缺少跳出局部最優(yōu)的能力,在平滑函數中的效果非常好,在局部最優(yōu)較多的函數中效果中規(guī)中矩。
參考文獻
Mirjalili S . Moth-flame optimization algorithm: A novel nature-inspired heuristic paradigm[J]. Knowledge-Based Systems, 2015, 89(NOV.):228-249.. 提取碼:koy9
以下指標純屬個人yy,僅供參考
目錄
上一篇 優(yōu)化算法筆記(二十四)帝王蝶算法
下一篇 優(yōu)化算法筆記(二十六)和聲搜索算法
二、人工魚群算法有哪些?
具體算法如下:
1、起源人工魚群算法是李曉磊等人于2002年在動物群體智能行為研究的基礎上提出的一種新型方盛優(yōu)化算法,該算法根據水域中魚生存數目最多的地方就是本水域中富含營養(yǎng)物質最多的地方這一特點來模擬魚群的覓食行為而實現(xiàn)尋優(yōu)。
2、算法主要利用魚的三大基本行為:覓食、聚群和追尾行為,采用自上而下的尋優(yōu)模式從構造個體的底層行為開始,通過魚群中各個體的局部尋優(yōu),達到全局最優(yōu)值在群體中凸顯出來的目的。
3該方法采用自下而上的尋優(yōu)思路,首先設計單個個體的感知、行為機制,然后將一個或一群實體放置在環(huán)境中,讓他們在環(huán)境的交互作用中解決問題。
4、生態(tài)學基礎在一片水域中,魚存在的數目最多的地方就是本水域富含營養(yǎng)物質最多的地方,依據這一特點來模仿魚群的覓食、聚群、追尾等行為,從而實現(xiàn)全局最優(yōu),這就是魚群算法的基本思想。魚類活動中,覓食行為、群聚行為、追尾行為和隨機行為與尋優(yōu)命題的解決有較為密切的關系,如何利用簡單有效的方式來構造和實現(xiàn)這些行為將是算法實現(xiàn)的主要為題。
5、人工魚的結構模型人工魚是真實魚抽象化、虛擬化的一個實體,其中封裝了自身數據和一系列行為,可以接受環(huán)境的刺激信息,做出相應的活動。其所在的環(huán)境由問題的解空間和其他人工魚的狀態(tài),它在下一時刻的行為取決于自身的狀態(tài)和環(huán)境的狀態(tài),并且它還通過自身的活動來影響環(huán)境,進而影響其他人工魚的活動。
三、智能優(yōu)化算法:生物地理學優(yōu)化算法
@[toc]
摘要:Alfred Wallace和Charles Darwin在19世紀提出了生物地理學理論,研究生物物種棲息地的分布、遷移和滅絕規(guī)律。Simon受到生物地理學理論的啟發(fā),在對生物物種遷移數學模型的研究基礎上,于 2008年提出了一種新的智能優(yōu)化算法 — 生物地理學優(yōu)化算法(Biogeography-Based Optimization,BBO)。BBO算法是一種基于生物地理學理論的新型算法,具有良好的收斂性和穩(wěn)定性,受到越來越多學者的關注。
BO算法的基本思想來源于生物地理學理論。如圖1所示,生物物種生活在多個棲息地(Habitat)上,每個棲息地用棲息適宜指數(Habitat Suitability Index,HSI)表示,與HSI相關的因素有降雨量、植被多樣性、地貌特征、土地面積、溫度和濕度等,將其稱為適宜指數變量(Suitability Index Variables,SIV)。
HSI是影響棲息地上物種分布和遷移的重要因素之一。較高 HSI的棲息地物種種類多;反之,較低 HSI的棲息地物種種類少。可見,棲息地的HSI與生物多樣性成正比。高 HSI的棲息地由于生存空間趨于飽和等
問題會有大量物種遷出到相鄰棲息地,并伴有少量物種遷入;而低 HSI的棲息地其物種數量較少,會有較多物種的遷入和較少物種的遷出。但是,當某一棲息地HSI一直保持較低水平時,則該棲息地上的物種會趨于滅絕,或尋找另外的棲息地,也就是突變。遷移和突變是BBO算法的兩個重要操作。棲息地之間通過遷移和突變操作,增強物種間信息的交換與共享,提高物種的多樣性。
BBO算法具有一般進化算法簡單有效的特性,與其他進化算法具有類似特點。
(1)棲息適宜指數HSI表示優(yōu)化問題的適應度函數值,類似于遺傳算法中的適應度函數。HSI是評價解集好壞的標準。
(2)棲息地表示候選解,適宜指數變量 SIV 表示解的特征,類似于遺傳算法中的“基因”。
(3)棲息地的遷入和遷出機制提供了解集中信息交換機制。高 HSI的解以一定的遷出率將信息共享給低HSI的解。
(4)棲息地會根據物種數量進行突變操作,提高種群多樣性,使得算法具有較強的自適應能力。
BBO算法的具體流程為:
步驟1 初始化BBO算法參數,包括棲息地數量 、遷入率最大值 和遷出率最大值 、最大突變率 等參數。
步驟2 初始化棲息地,對每個棲息地及物種進行隨機或者啟發(fā)式初始化。
步驟3 計算每個棲息地的適宜指數HSI;判斷是否滿足停止準則,如果滿足就停止,輸出最優(yōu)解;否則轉步驟4。
步驟4 執(zhí)行遷移操作,對每個棲息地計算其遷入率和遷出率,對SIV進行修改,重新計算適宜指數HSI。
步驟5 執(zhí)行突變操作,根據突變算子更新棲息地物種,重新計算適宜指數HSI。
步驟6 轉到步驟3進行下一次迭代。
1.1 遷移操作
如圖2所示,該模型為單個棲息地的物種遷移模型。
橫坐標為棲息地種群數量 S ,縱坐標為遷移比率 η,λ(s) 和 μ(s) 分別為種群數量的遷入率和遷出率。當種群數量為 0 時,種群的遷出率 μ(s) 為 0,種群的遷入率λ(s) 最大;當種群數量達到 S max 時,種群的遷入率 λ(s)為0,種群遷出率 u(s) 達到最大。當種群數量為 S 0 時,遷出率和遷入率相等,此時達到動態(tài)平衡狀態(tài)。根據圖2,得出遷入率和遷出率為:
遷移操作的步驟可以描述為:
Step1:for i= 1 to N do
Step2: 用遷入率 選取
Step3: if (0,1)之間的均勻隨機數小于 then
Step4: for j= 1 to N do
Step5: 用遷出率 選取
Step6: if (0,1)之間的均勻隨機數小于 then
Step7: 從 中隨機選取一個變量SIV
Step8: 用SIV替換 中的一個隨機SIV
Step9: end if
Step10: end for
Step11: end if
Step12:end for
1.2 突變(Mutation)操作
突變操作是模擬棲息地生態(tài)環(huán)境的突變,改變棲息地物種的數量,為棲息地提供物種的多樣性,為算法提供更多的搜索目標。棲息地的突變概率與其物種數量概率成反比。即
其中: 為最大突變率; 為棲息地中物種數量為 對應的概率; 為 的最大值; 是棲息地中物種數量為 對應的突變概率。
突變操作的步驟可以描述為:
Step1:for i= 1 to N do
Step2: 計算突變概率
Step3: 用突變概率 選取一個變量
Step4: if (0,1)之間的均勻隨機數小于 then
Step5: 隨機一個變量代替 中的SIV
Step6: end if
Step7:end for
[1] Simon D.Biogeography-based optimization[J].IEEE Trans-
actions on Evolutionary Computation,2008(6):702-713.
[2]張國輝,聶黎,張利平.生物地理學優(yōu)化算法理論及其應用研究綜述[J].計算機工程與應用,2015,51(03):12-17.
https://mianbaoduo.com/o/bread/aJqZmZ8=
https://mianbaoduo.com/o/bread/YZaXmJpq
四、優(yōu)化算法筆記(十六)混合蛙跳算法
(以下描述,均不是學術用語,僅供大家快樂的閱讀)
混合蛙跳算法(Shuffled Frog Leaping Algorithm)是根據青蛙在石塊上覓食時的種群分布變化而提出的算法。算法提出于2003年,時間有點久遠,但相關的論文并不是特別多,仍有較大的研究和改進空間。
混合蛙跳算法中,每個青蛙的位置代表了一個可行解。青蛙所在的池塘中有數塊石塊,每一代,青蛙們會被分配到石塊上。在這一代中,只有石塊上位置最差的青蛙會跳動。該青蛙首先會向著同一個石塊上的最優(yōu)位置的青蛙跳動,如果新的位置比原位置差則向則全局最優(yōu)位置跳動,若該位置仍舊比原位置差則在解空間內隨機跳動一次??梢钥闯雒恐惶鴦忧嗤茉诿看兄辽偬鴦右淮?,至多跳動三次,但由于每次跳動的青蛙數量等于石塊數,故當石塊數<青蛙數/3時,每代總跳動次數小于青蛙總數。
(查找文獻追根溯源的時候看到了一個有趣的現(xiàn)象,原始的提出論文提出于2000年(Shuffled frog leaping algorithm:a memetic meta-heuristic for combinatorial optimization.)但是到2006年才出版,而2003年的論文(Optimization of Water Distribution Network Design Using the Shuffled Frog Leaping Algorithm)引用了2000年的原始論文,并標注為出版中。到了2006年出版時,原始論文引用了2003年發(fā)表的那篇論文,即這兩篇論文相互引用,真是奇妙。估計是原始論文被拒了后又修改了結果到2006年才發(fā)表。)
這次的主角就是青蛙了。(沒有石塊就用荷葉代替吧)。
每一只青蛙只有兩個屬性:位置,當前位置的適應度值。
池塘中一共有m片荷葉,青蛙總數為n。
每一代中,將所有的青蛙按位置從優(yōu)到劣排列,并依此放置在m個荷葉上。舉個栗子,有5片荷葉(m1-m5)和21只青蛙(f1-f21,按適應度值從優(yōu)到劣排列)。
即m1荷葉上的青蛙有{f1,f6,f11,f16,f21},m2荷葉上的青蛙有{f2,f7,f12,f17},依此類推。
每代中最差的青蛙會首先向著當前荷葉上最優(yōu)位置的青蛙跳動,即該代中f21會向著f1跳動,f17向著f2跳動,f18向著f3跳動,f19向著f4跳動,f20向著f5跳動。
如果f21、f17、f18、f19、f20這五只青蛙沒有找到優(yōu)于自己當前位置的位置,則它們會向著全局最優(yōu)位置的青蛙f1跳動,如果新的位置仍然差于自己的原位置,則該青蛙跳到一個隨機的位置。
在D維空間內青蛙f1的位置 ,其適應度值為 。
(1)青蛙f17向f2跳動后的新位置為 :
若 優(yōu)于 則青蛙f17跳到 ,否則跳到(2)。
(2)由于f1在全局最優(yōu)位置,故在這一步,f17會向f1跳動:
優(yōu)于 則青蛙f17跳到 ,否則跳到(3)。
(3)f17會跳到解空間內的隨機位置:
若 優(yōu)于 則青蛙f17跳到 。
可以看出混合蛙跳算法的流程灰常的簡單,跳動的算子也非常的簡單,而且每次跳動的青蛙的數量等于荷葉的數量,所有其迭代次數會快于多數其他的優(yōu)化算法。
我自己特別喜歡這個優(yōu)化算法,總能從中體會出分治的思想。下面我們來看看實驗,看看其效果如何。
適應度函數 。
實驗一:
荷葉數為1的圖像及結果如下:
荷葉數為2的圖像及結果如下:
荷葉數為3的圖像及結果如下:
荷葉數為4的圖像及結果如下:
從上述的四個實驗可以看出,隨著荷葉數的增加,算法的收斂速度在不斷的加快。同時,隨著荷葉數的增加,每代青蛙跳動的次數也在不斷的增加。荷葉數為1時,每代青蛙總共會跳動1-3次,荷葉數為2時每代青蛙總共跳動2-6次,當荷葉數為10時,每代青蛙會跳動10-30次。由于每片荷葉上至少得有2只青蛙,所以荷葉數最多為總群數的一半。
算法的效果比較穩(wěn)定,但好像沒有體現(xiàn)出其跳出局部最優(yōu)能力,在種群收斂后其全搜索能力較弱,大多在進行局部搜索。
看了看算法的結構,其跳出局部最優(yōu)操作為第三段跳動,而這次跳動仍舊按照貪心算法跳到優(yōu)于當前位置的隨機位置?,F(xiàn)在我將其增強為:如果進行了第三段跳動(隨機跳動),則無論該位置的好壞,青蛙都將跳到該隨機位置。
實驗二: 永遠接受公式(3)得到的隨機位置
可以看出在種群收斂后,仍然會有一些個體隨機出現(xiàn)在解空間內,并繼續(xù)收斂。比較結果可以看出實驗二的結果中的最優(yōu)值不如實驗一,但是其均值和最差值均優(yōu)于實驗一,說明對原算法進行修改后算法更加穩(wěn)定,且算法的性能和全局搜索能力有一定的提升,算法跳出局部最優(yōu)能力更強。
混合蛙跳算法是提出近20年,其實現(xiàn)的方式與分治的思想有異曲同工之處。由于每次都更新的是每片荷葉上的最差位置的青蛙,故群體不容易集中于較小的范圍。同時由于“三段跳”的操作,讓混合蛙跳算法有了一定的跳出局部最優(yōu)能力。其全局搜索能力和局部搜索能力應該差不多,當最差的部分青蛙跳走后,次差的部分青蛙則會變成了最差的青蛙,此時群體不會過分集中。當群體相對分散時,為搜索范圍較大的全局搜索,反之為搜索范圍較小的局部搜索,由于收斂速度不算很快,所以進行全局搜索和局部搜索的時間相對均衡。
混合蛙跳算法的流程非常簡單,幾乎可以說是流程最簡單的優(yōu)化算法。其中的算子也很簡單,優(yōu)化的能力由種群的結構提供。算法的文章中比較了 “模因” 與 “基因” ,模因類似與思想,其傳播可以在同代中快速傳播,比如音樂,幾分鐘就可以傳播給其他人,而基因則只能有父母輩傳遞給子女背,傳遞的時間比較久。這也決定了混合優(yōu)化算法的最重要的部分在于其群體的結構而不是其中的優(yōu)化算子,實驗說明這樣的效果也不錯,簡單明了的算法也能有不錯的效果。
參考文獻
Eusuff M , Lansey K , Pasha F . Shuffled frog-leaping algorithm: a memetic meta-heuristic for discrete optimization[J]. Engineering Optimization, 2006, 38(2):129-154. 提取碼:ttgx
Eusuff, M.M. and Lansey, K.E., Optimization of water distribution network design using the shuffled frog leaping algorithm (SFLA). J.Water Resources Planning Mgmt,Am. Soc. Civ. Engrs, 2003, 129(3), 210–225. 提取碼:cyu8
以下指標純屬個人yy,僅供參考
目錄
上一篇 優(yōu)化算法筆記(十五)蝙蝠算法
下一篇 優(yōu)化算法筆記(十七)萬有引力算法
優(yōu)化算法matlab實現(xiàn)(十六)混合蛙跳算法matlab實現(xiàn)
以上就是關于鯨魚優(yōu)化算法什么時候提出的相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內容。
推薦閱讀:
改進鯨魚算法路徑規(guī)劃(鯨魚算法的優(yōu)缺點)