波搜索算法(WSA)-2024年SCI新算法-公式原理詳解與性能測評 Matlab代碼免費獲取

????????聲明:文章是從本人公眾號中復制而來,因此,想最新最快了解各類智能優化算法及其改進的朋友,可關注我的公眾號:強盛機器學習,不定期會有很多免費代碼分享~?

目錄

原理簡介

一、初始化階段

二、全局開發階段

三、局部勘探階段

(1)發射電磁波

(2)反射電磁波

(3)接收電磁波

算法偽代碼

性能測評

參考文獻

完整代碼


????????波搜索算法(Wave Search Algorithm, WSA)是一種新型的元啟發式算法(智能優化算法),靈感來源于雷達技術的啟發,采用了新的初始化方法和邊界約束規則以及各種改進的貪心機制,總體上看性能不錯~作者23個標準測試函數和CEC2017上對WSA進行了測試,證明了WSA算法的優越性。該成果由Haobin Zhang等人于2024年4月發表在SCI期刊The Journal of Supercomputing上!

????????由于發表時間較短,谷歌學術上還沒人引用!你先用,你就是創新!

原理簡介

????????靈感:雷達技術是一種利用電磁波探測目標位置、速度和形狀的無線通信技術。它通過發射無線電波,接收反射回波,并對回波進行處理和分析,實現對目標的檢測、定位、跟蹤和識別。

一、初始化階段

????????首先,我們需要執行一系列初始化準備。我們設粒子數為n,待優化問題維數為d,用矩陣模擬電磁波粒子W的位置:

????????并用f ([Wn1, Wn2,?Wnd])表示第n個個體的適應度值,種群的適應度值可以用以下向量表示:

????????最后,準備n個隨機數k1, k2......Kn從0到1,初始化粒子位置。

????????其中xi是均勻化的ki, xi*是x中的隨機值,lb和ub為搜索空間的上下邊界。

二、全局開發階段

????????式中,Wmin是由W各維上的最小值組成的向量,Wmax是由W各維上的最大值組成的向量,fmean是所有粒子適應度值的平均值,r1是0到1之間的隨機數,t是當前迭代次數,t是總迭代次數。

????????式(5)的好處是可以逐步縮小搜索范圍,新生成的點在縮小的范圍內生成,提高了搜索效率。式(6)是一種改進的貪心機制,控制種群在全局最優位置附近的位置。

三、局部勘探階段

(1)發射電磁波

????????式中σ=?(5t∕T?2)/√(25(5t∕T?2)2) + 0.7,σ為波形大小控制系數,m為元素服從正態分布并按順序排列的列向量,Wbest為當前最優位置,Wl為W按與Wbest的接近程度重新排列后的位置矩陣,fmax為群中最大的適合度值。式(7)的作用是模擬電磁波向外擴散,減少陷入局部最優的可能性,提高搜索效率。式(8)是一種改進的貪心機制,其作用是當群體位置向外波動時,使群體位置不劣于當前群體位置。

(2)反射電磁波

????????式中β= 0.75 + e?i∕nw2,β為反射強度系數,r2為0 ~ 1的隨機值,nw2為模擬反射電磁波的粒子數。Wfi是W按照適應度值從小到大的順序重新排列后的位置矩陣。式(9)模擬了部分粒子(適應度值較低的粒子)遇到障礙物向Wbest反射,而剩余粒子(適應度值較高的粒子)遠離Wbest繼續向外擴散。

(3)接收電磁波

????????式中δ為接收系數,δ= 0.6 +(1.2?0.5)sin (tπ/2T),η為服從正態分布的隨機數,nw3為模擬接收電磁波的粒子數。Wbest*是由通過卷積得到的歷史最優位置,Wbest*= [Wbest1;Wbest2;Wbest3?Wbestt]?([I1;I2;I3?It]),I1=I2= I3?It=1∕t。λ為校正因子,λ= (2t∕T?0.7)∕(0.78+|2t∕T?0.7|)+1。r3、r4、r5、r6是0到1的隨機數。式(11)模擬了雷達通常正常接收電磁波,但有時會受到干擾,需要進行校正和處理。其作用是使粒子群體向當前最優方向搜索。同時,有一定的概率會向W方向偏轉,以減少陷入局部最優的可能性。

????????最后,引入了一種確定性優化技術:基于中心差分法的擬合梯度下降法。其數學表達式為:

????????式中,W+εi = Wi +ε,W?εi = Wi?ε,ε= 10?6,g為梯度,α為步長系數,將α的初始值設為α0=0.3,通過步長試驗確定最終的步長。步長試驗方法如下:如果初始步長迭代后的適應度值小于等于當前適應度值,則α=α0∕c,否則α=α0*c,其中c為縮放因子。式(14)采用中心差分法擬合待優化問題的解析信息,用于搜索最優解,以提高搜索效率和精度。值得注意的是,該策略是一種確定性優化技術。WSA算法通過引入該策略,結合了確定性和不確定性優化技術。

????????另外,廣義的邊界限制規則是將越過邊界的粒子放在邊界上。我們發現這種方法降低了粒子群的多樣性。因此,我們建議將超出邊界的粒子隨機設置在搜索范圍內。數學表達式為:

????????其中,lb和ub分別為搜索范圍的下邊界和上邊界,r是一個d維隨機化列向量,其元素值范圍為0到1。

算法偽代碼

????????為了使大家更好地理解,這邊給出算法偽代碼,非常清晰!

????????如果實在看不懂,不用擔心,可以看下源代碼,再結合上文公式理解就一目了然了!

性能測評

????????原文作者在經典的23個基準測試函數和30個CEC2017測試函數)對WSA算法進行測試,并將WSA算法應用于六個常見工程問題和移動機器人路徑規劃問題,將其與最先進和高引用算法進行比較。實驗結果表明,WSA算法的優化能力優于其他最先進的優化算法,能夠有效地解決實際工程問題。

????????這邊為了方便大家對比與理解,采用23個標準測試函數,即CEC2005,并與性能較為廣受認可的麻雀優化算法SSA進行對比!這邊展示其中5個測試函數的圖,其余十幾個測試函數大家可以自行切換嘗試!

????????可以看到,WSA在許多高難度的函數上都超過了經典的SSA算法,表明該算法性能是非常優越的,很有說服力,大家應用到各類預測、優化問題中是一個不錯的選擇~

參考文獻

????????[1]Zhang H, San H, Sun H, et al. A novel optimization method: wave search algorithm[J]. The Journal of Supercomputing, 2024: 1-36.

完整代碼

????????如果需要免費獲得圖中的完整測試代碼,只需點擊下方小卡片,后臺回復關鍵字:

WSA

????????也可點擊下方小卡片,后臺回復個人需求(比如WSA-SVM)定制以下青蒿素算法優化模型(看到秒回):

????????1.回歸/時序/分類預測類:SVM、RVM、LSSVM、ELM、KELM、HKELM、DELM、RELM、DHKELM、RF、LSTM、BiLSTM、GRU、BiGRU、PNN、CNN、BP、XGBoost、TCN、BiTCN、ESN等等均可~

????????2.組合預測類:CNN/TCN/BiTCN/DBN/Adaboost結合SVM、RVM、ELM、LSTM、BiLSTM、GRU、BiGRU、Attention機制類等均可(可任意搭配非常新穎)~

????????3.分解類:EMD、EEMD、VMD、REMD、FEEMD、TVFEMD、CEEMDAN、ICEEMDAN、SVMD等分解模型均可~

????????4.其他:機器人路徑規劃、無人機三維路徑規劃、DBSCAN聚類、VRPTW路徑優化、微電網優化、無線傳感器覆蓋優化、故障診斷等等均可~

????????5.原創改進優化算法(適合需要創新的同學):2024年的波搜索算法WSA以及麻雀SSA、蜣螂DBO等任意優化算法均可,保證測試函數效果!

????????更多免費代碼鏈接:更多免費代碼鏈接

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/12967.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/12967.shtml
英文地址,請注明出處:http://en.pswp.cn/web/12967.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

我與C++的愛戀:string類的常見接口函數

? ? 🔥個人主頁:guoguoqiang. 🔥專欄:我與C的愛戀 朋友們大家好啊,本節我們來到STL內容的第一部分:string類接口函數的介紹 ? ? 1.string類的認識 給大家分享一個c文檔 https://legacy.cplusplus.…

Weblogic 管理控制臺未授權遠程命令執行漏洞(CVE-2020-14882,CVE-2020-14883)

1 漏洞概述 Weblogic Pre-Auth Remote Command Execution 漏洞(CVE-2020-14882, CVE-2020-14883)是針對 Oracle WebLogic Server 的兩個安全漏洞。CVE-2020-14882 允許遠程用戶繞過管理員控制臺組件中的身份驗證,而 CVE-2020-14883 則允許經…

Python3 筆記:Python的函數

函數是編寫好的,可重復調用的,用來實現某一功能的一段代碼。 也可以理解為做某事的方法和步驟。第一次做的時候寫好了方法,下次同類型的事直接拿來就用。 Python 內部有很多功能強大的內置函數供我們使用,除此之外,你…

Nagle算法

Nagle算法簡介 Nagle算法主要是避免發送小的數據包,要求TCP連接上最多只能有一個未被確認的小分組,在該分組的確認到達之前不能發送其他的小分組。 在默認的情況下,Nagle算法是默認開啟的,Nagle算法比較適用于發送方發送大批量的小數據&…

Sam Blackshear談Move語言的起源

Move編程語言作為Sui生態系統的關鍵組成部分,通過可編程交易區塊等機制支持其獨特的對象數據模型,并支持高效的代碼。五年前,Mysten Labs的聯合創始人兼首席技術官Sam Blackshear創建了Move。他專門設計了Move,用于編寫智能合約&a…

數據庫SQL查詢語句匯總詳解

SQL是一種強大的編程語句,可用于操作和提取數據庫中的數據。如果你對編程語句有所讓步,那么你可能對SQL的力量感到難以置信。本文將帶你深入探索SQL查詢的世界,讓你了解SQL語句的各種查詢方式,并以實例進行詳解。 1. SELECT基礎查…

Iterator底層源碼分析

/** * Iterator用于遍歷Collection下的集合&#xff0c;Collection下的每個集合底層實現不一樣&#xff0c;意味著遍歷邏輯也不一樣&#xff0c; * 所以Java的設計者將Iterator設計成了接口&#xff0c;讓Collection下的每個集合實現Iterator */ public interface Iterator<…

英偉達的GPU(1)

又好久沒更新了,一方面是最近事情有點多,另一方面最近也確實有點懶。 之前我說要把硬件部分補完,要寫Nvidia的GPU,我估計一篇寫不完,所以先寫點。 早先的硬件文章可以參考: 上一篇:解讀神秘的華為昇騰910 (qq.com) 上上一篇Microsoft Maia (qq.com) 上上上篇Google的…

sqli-labs靶場第十四關

目錄 1&#xff1a;分析 找閉合符&#xff1a; 2&#xff1a;開始注入 報錯注入&#xff1a; 注入數據庫名&#xff1a; 注入表名&#xff1a; 注入列名&#xff1a; 注入具體值&#xff1a; 1&#xff1a;分析 經過我們的實驗發現當我們輸入的密碼后面存在雙引號時會報…

【C++】學習筆記——多態_1

文章目錄 十二、繼承8. 繼承和組合 十三、多態1. 多態的概念2. 多態的定義和實現虛函數重寫的兩個特殊情況override 和 ?nal 3. 多態的原理1. 虛函數表 未完待續 十二、繼承 8. 繼承和組合 我們已經知道了什么是繼承&#xff0c;那組合又是什么&#xff1f;下面這種情況就是…

英語學習筆記13——A new dress

A new dress 一件新連衣裙 詞匯 Vocabulary colour / color n. 顏色 v. 上色&#xff0c;涂色  英  美 顏色短語&#xff1a;green hand 新手      black tea 紅茶      white house 白宮      black sheep 害群之馬 英文顏色類詞匯&#xff1a; red 紅色…

鴻蒙開發接口Ability框架:【ApplicationContext】

ApplicationContext ApplicationContext模塊提供開發者應用級別的的上下文的能力&#xff0c;包括提供注冊及取消注冊應用內組件生命周期的監聽接口。 說明&#xff1a; 開發前請熟悉鴻蒙開發指導文檔&#xff1a; gitee.com/li-shizhen-skin/harmony-os/blob/master/README.m…

靜態IP代理:網絡世界的隱秘通道

在數字化時代&#xff0c;網絡安全和隱私保護日益受到重視。靜態IP代理作為一種網絡服務&#xff0c;為用戶提供了一個穩定且可預測的網絡連接方式&#xff0c;同時保護了用戶的在線身份。本文將從五個方面深入探討靜態IP代理的概念、優勢、應用場景、技術實現以及選擇時的考量…

C語言學習【printf函數和scanf函數】

C語言學習【printf函數和scanf函數】 printf()函數和scanf()函數可以讓用戶與程序交流&#xff0c;是輸入/輸出函數 printf()函數 請求printf()函數打印數據的指令要與待打印數據的類型相匹配。例如&#xff0c;打印整數時使用%d&#xff0c;打印字符時使用%c。這些符號被稱…

實戰項目技術點(1)

1、什么是REST&#xff1f; REST&#xff08;Representational State Transfer&#xff09;&#xff0c;表述性狀態轉換&#xff0c;它是一種軟件架構風格。傳統URL風格如下&#xff1a; http://localhost:8080/user/getById?id1 GET&#xff1a;查詢id為1的用戶 http://loc…

網絡常識一:常用工具

作為后端開發&#xff0c;特別是網絡游戲后端開發&#xff0c;經常需要處理各種現網問題&#xff0c;其中有不少是網絡相關的。 下面列舉的工具主要是在 linux 下的&#xff0c;診斷線上服務器問題的時候&#xff0c;往往是分秒必爭&#xff0c;所以這些工具都要用得很熟練&am…

程序在銀河麒麟系統下實現開機自啟及創建桌面快捷方式

目錄 1. 機器環境說明 2. 程序開機自啟動設置 2.桌面快捷方式設置 3. 附加說明 1. 機器環境說明 機器安裝的銀河麒麟操作系統屬性如下&#xff1a; 2. 程序開機自啟動設置 第1步&#xff1a;編寫一個腳本,用于自動化啟動&#xff0c;為便于后文描述&#xff0c;該腳本名稱…

干貨教程【軟件篇】| 免費實現游戲加速自由

需要這個游戲加速軟件的小伙伴可以關注一下文章底部公眾號&#xff0c;回復關鍵詞【zdjs】即可獲取。 該軟件可以實現免費的游戲加速&#xff0c;實測延遲低體驗好&#xff01; 建議看到后趕緊保存下來防止丟失&#xff01; 下面講一下該軟件安裝流程~ 通過鏈接可以得到下面…

2.go語言初始(二)

本篇博客涉及到go 的基礎數據類型、 go 語言中的運算符、轉義字符、格式化輸出、字符串操作 go 語言中的運算符 在 go 語言中&#xff0c;基本數據類型主要包括以下幾類&#xff1a;整數類型、浮點數類型、復數類型、布爾類型、字符串類型、字節類型&#xff08;byte&#xf…

Linux進程控制——Linux進程程序替換

前言&#xff1a;Linux進程控制包含了進程終止&#xff0c;進程等待&#xff0c;進程程序替換。走到現在我們也只剩下進程程序替換沒介紹了&#xff0c;那么讓我們來看看進程程序替換到底是什么&#xff01; 本篇主要內容&#xff1a; 替換原理 替換函數 實現簡易shell 我們所創…