導航:首頁 > 源碼編譯 > 鯨魚演算法如何確定最佳值

鯨魚演算法如何確定最佳值

發布時間:2022-09-10 06:03:10

❶ 怎麼知道鯨魚演算法是否適用該問題

運行程序觀察其結果可知是否適用。
鯨魚優化演算法是2016年由澳大利亞格里菲斯大學的Mirjalili 等提出的一種新的群體智能優化演算法,其優點在於操作簡單,調整的參數少以及跳出局部最優的能力強。
鯨魚演算法設計的既精妙又富有特色,它源於對自然界中座頭鯨群體狩獵行為的模擬, 通過鯨魚群體搜索、包圍、追捕和攻擊獵物等過程實現優時化搜索的目的。在原始的WOA中,提供了包圍獵物,螺旋氣泡、尋找獵物的數學模型。

❷ 測量一條鯨魚的體重通常用什麼作為單位比較合適

鯨魚體重較大,用常用的千克,克作單位數值大,難以記錄和換算,建議用噸作單位(1t/ton=1000kg)。

❸ 鯨魚優化演算法為什麼每次都不一樣

排查一下數據是否有失誤。
正常情況下 數據一樣的,演算法的結果也是一樣的。鯨魚演算法提出時間並不長,也是一個新興的優化演算法,只能多琢磨琢磨。

❹ 梅爾維爾鯨和龍王鯨和虎鯨

虎鯨就不用比了。海豚科的,體型重量咬合力都差的很遠。梅和龍都差不多體長,梅更重,龍更修長,應該速度更快,梅的牙齒更長,傷害大,龍的咬合力應該比較大,龍是梅的祖先,兩個差了幾千萬年,真要比也只能說半斤八兩吧

❺ 優化演算法筆記(十三)鯨魚演算法

(以下描述,均不是學術用語,僅供大家快樂的閱讀)
鯨魚演算法(Whale Optimization Algorithm)是根據鯨魚圍捕獵物的行為而提出的演算法。鯨魚是一種群居的哺乳動物,在捕獵時它們也會相互合作對獵物進行驅趕和圍捕。鯨魚演算法提出時間並不長,也是一個新興的優化演算法,研究應用案例不多。
鯨魚演算法中,每個鯨魚的位置代表了一個可行解。在鯨魚群捕獵過程中,每隻鯨魚有兩種行為,一種是包圍獵物,所有的鯨魚都向著其他鯨魚前進;另一種是汽包網,鯨魚環形游動噴出氣泡來驅趕獵物。在每一代的游動中,鯨魚們會隨機選擇這兩種行為來進行捕獵。在鯨魚進行包圍獵物的行為中,鯨魚將會隨機選擇是向著最優位置的鯨魚游去還是隨機選擇一隻鯨魚作為自己的目標,並向其靠近。

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

在D維解空間內每個鯨魚的位置為


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

鯨魚在包圍獵物時會選擇向著最優位置的鯨魚游動或者向著一隻隨機鯨魚游動。

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


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

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


其中 為當前群體中隨機選擇的鯨魚的位置。
那麼鯨魚在什麼時候選擇向最優個體游動,什麼時候選擇隨機個體為目標呢?
這個將由A的值決定
當 時,鯨魚選擇向著最優個體游動。注意A是一個D維的向量,所以是A的模小於1時,鯨魚向著最優個體游動。
當 時,鯨魚選擇向著隨機個體游動。
可以看出在包圍獵物的過程中,鯨魚演算法的搜索模式為在距最優個體較近的周圍搜索或者在距隨機個體較遠的附近搜索。
2.2氣泡網
鯨魚在捕獵時會噴出汽包形成氣泡網來驅趕獵物。


其中b為常數(沒找到定義,默認取1),l為均勻分布在[-1,1]內的隨機數。
每次行動之前,每隻鯨魚都會拋個硬幣,來決定是選擇包圍獵物還是使用氣泡網來驅趕獵物。
從上面的描述可以看出,鯨魚演算法的流程也十分的簡單。

適應度函數

實驗一 :標准鯨魚演算法

從圖上可以看出演算法的收斂性還是很強的,在第35代左右就已經完全收斂。再看最後的結果,已經是非常好的結果了,同樣也說明的演算法的局部搜索能力很強。這樣印證了上一節我的說法,演算法收斂速度快,缺少跳出局部最優的能力。
從演算法的流程我們可以看出,演算法的收斂性大概是由參數a來決定的,由於a從2遞減為0,使演算法的搜索范圍越來越小,從而加速演算法的收斂。這應該是一個優化後的參數,現在我們固定住a,來弱化演算法,減弱其收斂性,看看全局搜索和跳出局部最優能力是否有所加強。

實驗二 :固定參數a

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

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

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

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

參考文獻
Mirjalili S, Lewis A. The Whale Optimization Algorithm[J]. Advances in Engineering Software, 2016, 95:51-67. 提取碼:b13x
目錄
上一篇優化演算法筆記(十二)煙花演算法
下一篇 優化演算法筆記(十四)水波演算法

優化演算法matlab實現(十三)鯨魚演算法matlab實現

❻ 鯨魚用犀牛怎麼建模

鯨魚用犀牛建模技巧:

犀牛軟體點物體的繪制點在 Rhino 中表現為一個小方格,大小不變,點不屬於任何其他物體的一部分。滑鼠取值1:滑鼠直接在屏幕上取值,得到的點將在工作平面上。按住 CTRL 可以進行兩次取值,第一次取值 XY 坐標,第二次取值 Z 坐標。

鍵盤取值:格式為:x,y,zCTRL 鍵有許多的用法,很多命令配合 CTRL 都可以在垂直於工作平面上的坐標取值。最近點:其實質是 0 距離點,即在所選物體上創建一個據滑鼠點擊位置最近的點。

犀牛建模Rhino倒角破面

在運用Rhino時,倒圓角和破面的問題是隨時都能遇上的一件事。在啟動Rhino軟體將要繪制一個模型時,應該把網格的渲染品質設置為「平滑、較慢」,當然也可以自定義設置,目的就是讓曲面更加順滑,這樣可以避免繪制一些細節時發現破面。

破面並不完全是因為「渲染網格品質」,這只是一種簡單的解決方式,破面多半是因為倒圓角不佳,導致曲面擠壓所生成的一種破裂,或者炸面。

加密鯨魚是什麼意思

加密鯨魚是指擁有大量加密貨幣的用戶。

加密貨幣是一種使用密碼學原理來確保交易安全及控制交易單位創造的交易媒介。 加密貨幣是數字貨幣(或稱虛擬貨幣)的一種 。

比特幣在2009年成為第一個去中心化的加密貨幣,這之後加密貨幣一詞多指此類設計。 自此之後數種類似的加密貨幣被創造,它們通常被稱作altcoins。

加密貨幣基於去中心化的共識機制 ,與依賴中心化監管體系的銀行金融系統相對。


比特幣以外的加密貨幣:

比特幣以外的密碼貨幣,又稱為山寨幣、競爭幣,部分是參考比特幣思想、原理、源代碼產生的,與比特幣相似的虛擬貨幣,目前有800種以上的密碼貨幣在流通。

2017年2月到4月期間,山寨幣總和占密碼貨幣市場總值比例,由15%提高到接近40%。

由於比特幣本身並沒有權威的發行機構和國家政權來維持其權威性、唯一性,比特幣與其模仿者之間只能平等地相處,雖然其是最早的虛擬貨幣,也是最知名、人們最熟悉的。

也具有最大的用戶網路社區,具有很強的網路效應,大部分時間也是市值最高的密碼貨幣,但是並不具有絕對排它的地位。

❽ 優化演算法筆記(十二)煙花演算法

(以下描述,均不是學術用語,僅供大家快樂的閱讀)
煙花演算法(Firework Algorithm,FWA)是一種受煙花爆炸產生火星,並繼續分裂爆炸這一過程啟發而得出的演算法。演算法的思想簡單,但具體實現復雜。演算法提出時間並不長,但是已經有了不少的改進研究和較為全面的應用。
煙花演算法中,每一個煙花的位置都代表了一個可行解。煙花的爆炸產生的火星有兩種,正常的火星與特別的火星。每個火星都會爆炸產生數個正常火星,某些火星有一定的概率產生一個特別的火星。正常的火星根據當前火星的振幅隨機均勻分布在該火星的周圍,而特別的火星將在當前火星附近以正態分布方式產生。每次迭代產生的火星數量多於每一代應有的火星數,演算法將參照火星位置的優劣,隨機留下指定數量的火星,已保持火星數目的穩定。

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

式(1)為適應度值越小越優的情況,而式(2)則是適應度值越大越優的情況。 為一個極小的值,以保證分母不為0。
每個火星產生的正常火星數量也由其適應度值來決定。



其中 表示第i個火星將要產生的正常火星數, 是產生正常火星的總數為一個常數,從式(3),(4)可以看出適應度值越好的火星能夠產生更多的正常火星,反之,火星適應度越差,能夠產生的火星數越少。
由於式(3),(4)計算出的值為小數,煙花演算法中使用式(5)將其轉化為整數。

從式(3)和式(4)中可以看出,在每一代中將會產生出 個正常火星。產生的正常火星的位置與當前火星的振幅有關,可以從式(1),(2)看出,適應度越優的火星的振幅越小,那麼它產生的正常火星將在它自己周圍,而適應度越差的火星的振幅越大,它產生的正常火星將會出現在離自己較遠的位置。
當前火星每次爆炸會從D維搜索空間內隨機選擇z維進行更新從而產生新的火星。正常火星的位置由如下公式產生。

其中z為取值1-D的均勻隨機正整數,rand(-1,1)表示-1到1內的均勻隨機數。從式(6)中可以看出,正常火星的位置與其振幅有直接關系,振幅越大產生的新火星距當前火星的距離約遠。

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

由上面的過程可知,在每一代中,有N個火星,將會產生出 個正常火星以及m個特別的火星。但是每一代中只能從這 個火星中選擇N個火星保留至下一代。
每次會先從 個火星中選擇最優的火星保留至下一代,然後再從中選擇N-1個火星。選擇某個火星的概率如下:


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

個火星,而且


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

適應度函數還是這個簡單的小白鼠
實驗一 :標准煙花演算法

以上數據來自原論文,現在看一看實驗的圖像以及實驗結果。

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

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

結果好了一些但還是難以接受,為什麼煙花演算法的結果不理想呢?
原因可能是保留機制(2.3節)的問題,煙花演算法中保留火星的概率是根據該火星與其他火星的距離和,距離群體越大的個體被保留下的概率越大。這樣做有什麼好處呢?好處是火星相對分散,這是一個對抗局部最優的策略,但是,距離群體較遠的個體是一個較差的個體的概率非常大,壞處就是,集中於當前最優位置的火星被保留的概率較小,演算法的局部搜索能力將較弱。
實驗二 . 隨機選擇的方式保留火星
為了加快煙花演算法的收斂速度,增強局部搜索能力,我移除了標准煙花演算法的選擇過程,使用隨機選擇的方式保留火星,當然,最優個體依然會被保留至下一代。其他參數保持不變。

可以看出這次的圖像相比實驗一收斂速度快了不少,在迭代結束時已經相對在一個較小的區域。這次的結果也明顯優於實驗一。將選擇過程改為隨機選擇後,由於較優的火星產生的較多且分布在自己周圍,因此選擇到這些較優的火星的概率也相對較大,演算法的收斂速度相對較快。與此同時,演算法跳出局部最優的能力比修改前要弱。
對於較簡單的問題來說當然是隨機選擇收斂較快結果較好,而復雜的問題則需要更強的跳出局部最優能力。問題的關鍵仍然是,我們無法在一開始就知道問題的復雜程度。
實驗三 .增加火星的種群數量,減少每代產生的正常火星總數
為什麼要減少產生的正常火星數,這樣演算法搜索的次數減少了,效果不會更差嗎?其實與直覺相反,減少正常火星總數,增加火星總群數,實際上是讓較優的火星產生的正常火星被保留下來的概率變大了,這樣也可以解決實驗一中的問題,加快演算法的收斂速度。

從圖像中可以看出,演算法在50代之前已經收斂,但是之後只在小范圍內進行搜索。實驗圖像與之前的描述相符,收斂速度加快但是跳出局部最優能力減弱。看看實驗結果,實驗結果好了不少且結果更加穩定。
其實實驗二與實驗三,使用了不同的策略,但都達到了同樣的目的——保留更多的優質火星到下一代,它們促進了局部搜索但是擠佔了較劣火星的位置,削弱了種群的多樣性。
每代留下的火星多了,圖像看上去是不是更像煙花?

煙花演算法的探究遠不止如此,幾年前作為一個較新的演算法來學習時卻已經有了大量的論文和書籍,可見大家對煙花演算法已經有了較為深入的研究,而我能做的只是應用演算法解決問題以及稍作改進讓演算法與問題的適應性更高。
煙花演算法產生正常火星的過程為演算法提供了搜索能力,產生特殊火星的過程和選擇過程為演算法提供了跳出局部最優的能力。但是個人認為選擇過程與其他過程的適應性不是很好。標準的選擇過程會丟失掉許多較優的個體,使之前產生的正常火星得到的成果沒有保留。
煙花演算法其實還有比較多的改進點,對演算法產生最大的參數應該就是正常火星的總數以及振幅了。簡單粗暴的改進:在每一代可以對這兩個參數進行變化或者隨機化,讓演算法的搜索能力與跳出局部最優能力在整個流程中動態變化,以均衡兩種能力。
以下指標純屬個人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
目錄
上一篇 優化演算法筆記(十一)群搜索演算法
下一篇 優化演算法筆記(十三)鯨魚演算法

優化演算法matlab實現(十二)煙花演算法matlab實現

閱讀全文

與鯨魚演算法如何確定最佳值相關的資料

熱點內容
卡爾曼濾波演算法書籍 瀏覽:766
安卓手機怎麼用愛思助手傳文件進蘋果手機上 瀏覽:841
安卓怎麼下載60秒生存 瀏覽:800
外向式文件夾 瀏覽:233
dospdf 瀏覽:428
怎麼修改騰訊雲伺服器ip 瀏覽:385
pdftoeps 瀏覽:490
為什麼鴻蒙那麼像安卓 瀏覽:733
安卓手機怎麼拍自媒體視頻 瀏覽:183
單片機各個中斷的初始化 瀏覽:721
python怎麼集合元素 瀏覽:478
python逐條解讀 瀏覽:830
基於單片機的濕度控制 瀏覽:496
ios如何使用安卓的帳號 瀏覽:880
程序員公園采訪 瀏覽:809
程序員實戰教程要多長時間 瀏覽:972
企業數據加密技巧 瀏覽:132
租雲伺服器開發 瀏覽:811
程序員告白媽媽不同意 瀏覽:333
攻城掠地怎麼查看伺服器 瀏覽:600