實驗豐富、原創改進!|多策略改進蜣螂優化算法(MATLAB)

本文內容來源于本人公眾號:KAU的云實驗臺,更新內容:智能優化算法及其改進應用。

本文核心內容:

新穎的多策略改進蜣螂優化算法
對比算法包括:高引用/新發布/經典/其他DBO變體(共11種)
實驗設計包括:消融實驗、CEC2017函數測試、收斂行為分析、工程實際問題測試

東華大學沈波教授團隊在2022年提出蜣螂優化算法 (Dung Beetle Optimizer,DBO) [1],該算法與PSO、GWO、WOA、SSA、SCA、MVO、HHO相比均顯示出一定的優越性。

然而,它有其他SI算法存在的問題,如全局探索和局部開發能力不平衡、面對復雜問題的易陷入局部最優等,其收斂速度和精度仍有改進的可能。因此針對DBO存在的問題,KAU將對DBO進行改進。

00 文章目錄

1 多目標蜣螂優化算法原理

2 改進的蜣螂優化算法

3 實驗設計

4 代碼目錄

5 實驗測試結果

6 源碼獲取

01 蜣螂優化算法原理

關于DBO的原理及其代碼實現,可以參考KAU的往期推文,這里不再贅述。

超詳細 | 蜣螂優化算法DBO原理及其實現(Matlab)

02 改進的蜣螂優化算法原理

正如開頭所述,雖然DBO算法整體機制新穎,同時考慮了全局與局部的探索,但其也存在其他SI算法的問題,其收斂速度和精度都有提升的空間。因此本文基于蜣螂優化算法以上問題進行如下改進。

2.1 拉丁超立方采樣與精英種群策略

原始蜣螂種群采用隨機化方式初始化,可能導致初始種群分布不夠均勻,從而降低種群多樣性,這易使算法面臨很高的不確定性。若能改善其分布的均勻性,則能夠有效提升算法的搜索效率。

拉丁超立方抽樣(Latin Hypercube Sampling,LHS)是Mckay等人[3]于1979年提出的一種從多元參數分布中近似隨機抽樣的方法。在抽樣數不多的情況下,隨機抽樣不能很好地將樣本分散到整個區間。與隨機抽樣不同,拉丁超立方抽樣具有均勻分層的特性,以及可以在較少抽樣的情況下得到尾部的樣本值等優點[4]。因此,針對隨機初始化存在的分布不均勻的問題,拉丁超立方抽樣的均勻分層和等概率抽樣的特點可以保證其產生的變量覆蓋整個分布空間,使初始種群分布更加均勻。

在這里插入圖片描述

然后,本文采用精英種群策略,將拉丁超立方抽樣初始化種群與隨機初始化種群相結合,計算每只初始蜣螂的適應性,并對其進行排序,選出前Popsize名精英。

通過采用上述方式,使初始種群分布更加均勻,也使初始種群具有更多的可能性,從而提高算法的全局尋優性能和收斂速度。

2.1 基于改進sigmoid函數的非線性控制因子R

在廣泛的研究中發現,群體智能算法通常由于全局搜索能力和局部搜索能力之間的不平衡而導致收斂精度和優化性能的下降。因此,一個廣義的、廣泛適用的群體智能算法應該具有強大的協調機制,幫助算法平衡全局和局部搜索能力,從而提高算法的收斂精度和速度。

在DBO算法中,R即DBO在育雛球/小蜣螂更新策略中會用到的產卵區/覓食區更新參數,這兩種蜣螂用以表征算法從勘探向開發過渡的階段。
在這里插入圖片描述

在DBO算法中,𝑅 = 1 ?𝑡/𝑇𝑚𝑎𝑥,但在面對復雜的多模態問題時,控制因子R的線性下降并不能準確反映多模態情況發生時的復雜搜索過程,而由[5]可知基于sigmoid函數變化的控制因子能夠獲得更好的搜索能力,因此在其基礎上,本文引入了一個基于改進sigmoid的控制因子。

在這里插入圖片描述

從圖中可以看到,基于改進sigmoid函數校正的變化曲線在迭代開始時逐漸減小,使得R在更長的時間內保持高位,以提高算法的早期全局勘探能力。R在中期快速下降,從而在后期迭代中可以長時間保持低值,這提高了算法的局部開發的準確性,并平衡了其進行全局和局部搜索的能力。

2.2 基于正余弦算法改進的小偷蜣螂

偷竊階段的小偷蜣螂主要圍繞食物競爭的最佳位置(即最優個體)運動,這種搜索策略過于單一,在接近當前最佳個體的過程中對其鄰域范圍的搜索不夠充分,容易降低群體多樣性,從而停滯在局部最優。

正弦余弦算法SCA(Sine-Cosine Algorithm,SCA)是2016年Mirjalili[6]基于正弦余弦函數性質提出的一種元啟發式算法,主要利用了正弦余弦函數的震蕩性不斷逼近全局最優。

在這里插入圖片描述

SCA的核心目的是利用正弦-余弦模型的振蕩調整來實現全局和局部優化,以獲得全局最優值。因此本文將SCA算法引入DBO中,利用正余弦函數的震蕩性維持算法后期種群的多樣性,加強算法的局部開發能力。同時,在SCA的基礎上,本文調整r1,使其具有非線性遞減特性,從而平衡SCA的勘探與開發。從初始階段的高權值開始,然后緩慢遞減,從而取得更好的全局性。隨著迭代的進行,后期在低權值緩慢遞減,增強了算法的局部收斂能力。綜上,小偷蜣螂的更新公式如下…

2.3 融合多種差分進化方式的多種群變異策略

DBO算法的滾球、跳舞、育雛球、小蜣螂、小偷蜣螂的更新策略能夠提高搜索效率,但并不能幫助算法擺脫局部最優。因此,本文設計了融合多種差分進化方式的多種群變異對蜣螂群體進行變異操作,以幫助算法逃離局部最優解。

目前,差分進化的方式有多種(部分如下表),但其并不能根據適應度自適應地選擇對應的變異方式,換而言之,其進化的群體是靜態的。

在這里插入圖片描述

然而,單一的變異方式并不能滿足所有個體的進化需求。例如:適應能力好的個體通常聚集在當前最優的個體附近,其更強調局部開發能力,而適應能力差的個體通常遠離最佳個體,從而需要全局勘探能力。基于此,本文采取一種多種群的策略,每類種群的個體執行不同的差分進化算子,從而提升DBO的搜索能力,幫助其跳出局部最優,具體策略…

2.4算法流程

本文所提的多策略改進的蜣螂優化算法流程如下:

在這里插入圖片描述

03 實驗設計

3.1 對比算法

為驗證本文所提MSIDBO的實用性與優越性,選用的對比優化算法包括

高引用算法,如:GWO[8]、WOA[9]、HHO[10];

最新發布的優化算法,如:KOA[11] 、NOA[12]、HOA[13];

經典優化算法,如: DE[14]、PSO[15];

2種DBO變體,如:GODBO[16]、QHDBO[17];

所選用的優化算法羅列如下:

在這里插入圖片描述

3.2 測試函數

選用CEC2017檢驗算法性能的優越性,其函數具體內容如下:
在這里插入圖片描述

3.3 實驗內容

實驗A:消融實驗

該實驗通過在測試函數中運行各改進策略,以驗證改進策略的有效性。使用CEC2017中的單峰以及一些簡單多模態函數進行測試。

實驗B:收斂行為分析

為演示所提出的MSI-DBO的收斂行為,本節將算法迭代過程中種群的變化以圖示展示出來,即最優解位置與種群位置在參數空間的分布圖;種群平均適應度變化圖;最優解在第一維度迭代軌跡;最優解適應度收斂曲線。

實驗C:CEC測試函數對比

選用CEC2017測試函數與上述算法對比,驗證算法的優越性。

實驗D:實際工程問題對比

選用2個實際工程問題與上述優化算法進行對比,驗證算法的實用性。

04 代碼目錄

本次改進算法為本人原創,未發表。

代碼共5部分,即4個實驗以及一個僅運行MSDBO的代碼。除了這些以外,還包含本次改進所用的參考文獻、實驗分析可借鑒的文獻以及改進算法原理PDF。所有文件目錄如下:
在這里插入圖片描述

算法實現為MATLAB,每個文件夾都只需運行主程序Main_xx程序即可。

05 實驗結果

5.1 實驗A:消融實驗

其中,DBO為原DBO算法;LEDBO為引入初始化策略的DBO算法;IsigDBO為采用非線性R的DBO算法;sincDBO為引入正余弦震蕩的DBO算法;MGDBO為融合多種差分進化方式的多種群變異策略的DBO算法。可以看到在性能上,不同改進策略均有不同程度的提升。
在這里插入圖片描述

5.2實驗B:收斂行為分析

算法在基準測試函數中的表現如下:
在這里插入圖片描述

具體來說,第二張圖中,本文將用最優解位置與種群位置在參數空間上的分布關系判斷算法的搜索性能;第三張圖中,本文將給出種群在迭代過程中的平均適應度變化,判斷算法的收斂速度;第四張圖將給出算法的最優解在第一個維度中的迭代軌跡,以判斷算法的收斂速度;第五張圖給出算法最優適應度迭代曲線,以判斷算法的收斂能力。

關于這部分的分析,也可以在參考文獻中的實驗參考文獻里詳細查看。

5.3實驗C:CEC測試函數對比

CEC2017得到的評價指標結果:(注源代碼是將各個指標分開保存為excel,需自己整合為下面的表格)

在這里插入圖片描述
在這里插入圖片描述

對應的收斂曲線如下:

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

5.4 實驗D:實際工程問題對比

5.4.1 壓力容器優化問題

壓力容器模型如圖所示,圓柱形容器的兩端均由半球形封頭封蓋。壓力容器優化問題的目標是最小化總成本,包括材料、成形和焊接的成本。該優化問題有四個決策變量,包括殼體的厚度 Ts(x1)、封頭的厚度 Th(x2)、內半徑 R(x3)和不包括封頭的容器圓柱段的長度 L(x4)。優化的數學模型如式所示。

在這里插入圖片描述
在這里插入圖片描述

用本文改進算法以及對比算法進行優化求解,結果如下:

在這里插入圖片描述

收斂曲線如下:
在這里插入圖片描述

5.4.2 減速器優化問題

該問題是優化機械系統中的減速器,使其重量達到最小。減速器優化問題包括 7 個決策變量。其分別為:端面寬度 x1、齒模 x2、小齒輪齒數 x3、第一軸長度 x4、第二軸長度x5、第一軸的直徑 x6、第二軸的直徑 x7。減速器模型如圖所示。優化的數學模型如式所示。
在這里插入圖片描述

在這里插入圖片描述

用本文改進算法以及對比算法進行優化求解,結果如下:

在這里插入圖片描述

收斂曲線如下:
在這里插入圖片描述

兩個工程實際問題中,改進算法都取得了最佳的結果。

06 代碼獲取

在公眾號后臺輸入:MSIDBO2
或私信我

參考文獻

[1] XUE J K, SHEN B. Dung beetle optimizer: A new metaheuristic algorithm for global optimization [ J ]. The Journal of Supercomputing, 2023, 79(7): 7305-7336.

[2] Zhu, X.; Ni, C.; Chen, G.; Guo, J. Optimization of Tungsten Heavy Alloy Cutting Parameters Based on RSM and Reinforcement Dung Beetle Algorithm. Sensors 2023, 23, 5616. https://doi.org/10.3390/s23125616

[3] McKay M D, Beckman R J , Conover W J ,et al.Comparison the three methods for selecting values of input variable in the analysis of output from a computer code [J].Technometrics,1979,21(2): 239-245.

[4] Wei Fengtao , Zhang Yangyang, Li Junyu , et al. Improved sine cosine algorithm based on dynamic classification strategy [ J ].Systems Engineering and Electronics , 2021 , 43 ( 6 ):1596-1605.

[5]王寧, 何慶. 融合黃金正弦與sigmoid連續化的海鷗優化算法 [J]. 計算機應用研究, 2022, 39 (1): 157-162,169. (Wang Ning, He Qing. Seagull optimization algorithm combining golden sine and sigmoid continuity [J]. Application Research of Computers, 2022, 39 (1): 157-162,169.

[6]Mirjalili S.SCA:A sine cosine algorithm for solving optimization problems[J].Knowledge-Based Systems,2016,96:120-133.

[7] Layeb, A. Differential evolution algorithms with novel mutations, adaptive parameters, and Weibull flight operator. Soft Comput (2024). https://doi.org/10.1007/s00500-023-09561-3

[8] MIRJALILI S,MIRJALILI S M,LEWIS A.Grey Wolf Optimi-zer[J].Advances in Engineering Software,2014,69(3):46-61.

[9] MIRJALILI S,LEWIS A. The whale optimization algorithm[J].Advances in Engineering Software,2016,95:51一 67.

[10] Heidari A A, Mirjalili S, Faris H, et al. Harris Hawks Optimization Algorithm and Applications[J]. Future Generation Computer Systems,2019,97(8):849-872.

[11] Abdel-Basset, M. et al. Kepler optimization algorithm: A new metaheuristic algorithm inspired by Kepler’s laws of planetary motion. Knowl. Based Syst. 268, 110454 (2023).

[12] Abdel-Basset M , Mohamed R , Jameel M ,et al.Nutcracker optimizer: A novel nature-inspired metaheuristic algorithm for global optimization and engineering design problems[J].Knowledge-Based Systems, 2023, 262:110248-.

[13] Oladejo, Sunday Oladayo et al. “The Hiking Optimization Algorithm: A novel human-based metaheuristic approach.” Knowledge-Based Systems (2024): n. pag.

[14] Storn R , Price K .Differential Evolution – A Simple and Efficient Heuristic for global Optimization over Continuous Spaces[J].Journal of Global Optimization, 1997, 11(4):341-359.DOI:10.1023/A:1008202821328.

[15] Kennedy J , Eberhart R .Particle Swarm Optimization[C]//Icnn95-international Conference on Neural Networks.IEEE, 1995.DOI:10.1109/ICNN.1995.488968.

[16] Zilong W, Peng S. A multi-strategy dung beetle optimization algorithm for optimizing constrained engineering problems. IEEE Access, 2023.

[17] Zhu F, Li G, Tang H, et al. Dung beetle optimization algorithm based on quantum computing and multi-strategy fusion for solving engineering problems. Expert Systems with Applications, 2024, 236: 121219.

如果這篇文章對你有幫助或啟發,可以點擊右下角的贊/在看(? ??_??)?(不點也行),你們的鼓勵就是我堅持的動力!若有定制需求,可私信作者。

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

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

相關文章

用c語言寫一個貪吃蛇游戲

貪吃蛇游戲通常涉及到終端圖形編程和簡單的游戲邏輯。以下是一個基本的實現示例,包括貪吃蛇的移動、食物生成、碰撞檢測等功能。 1. 貪吃蛇游戲的基本結構 貪吃蛇游戲可以分為以下幾個部分: 游戲地圖和終端繪制:使用二維數組表示游戲地圖&am…

SpringBoot結合ip2region實現博客評論顯示IP屬地

你好呀,我是小鄒。 在現代的Web應用中,特別是博客和論壇類網站,為用戶提供地理定位服務(如顯示用戶所在地理位置)可以極大地增強用戶體驗。本文將詳細探討如何使用Java和相關技術棧來實現在博客評論中顯示用戶的地址信…

Java實驗3

實驗內容 學生信息管理系統 學生成績表Student(Sno 字符串,長度9, Sname 字符串,長度10, Class 字符串,長度10, Age 整型, Sex 字符串,長度2) 實現如下功能: A.輸入若干個學生的信息到Student表&#x…

初學Python必須知道的14個強大單行代碼

引言:Python的魅力與單行代碼的重要性 Python以其簡潔明了的語法、豐富的內置函數和強大的第三方庫深受廣大開發者喜愛。尤其對于編程小白來說,學習Python就像打開了一扇通向編程世界的大門。而單行代碼,作為Python魅力的一部分,…

【NetTopologySuite類庫】合并所有幾何的包圍盒AABB

流程示意圖 示例代碼 using GeoAPI.Geometries; using Microsoft.VisualStudio.TestTools.UnitTesting; using NetTopologySuite.Geometries; using NetTopologySuite.IO; using System.Collections.Generic; using System.Linq;namespace Test472 {[TestClass]public class T…

深度解析:電商訂單API及其技術實現

隨著電子商務的發展,實體企業開拓電商渠道的越來越多,原有的管理系統都需要增加電商業務管理功能,其中,對電商訂單的管理是每一個電商商家都需要的功能,所以對于開發者來說,了解電商API是什么是非常重要的&…

第100+16步 ChatGPT學習:R實現Xgboost分類

基于R 4.2.2版本演示 一、寫在前面 有不少大佬問做機器學習分類能不能用R語言,不想學Python咯。 答曰:可!用GPT或者Kimi轉一下就得了唄。 加上最近也沒啥內容寫了,就幫各位搬運一下吧。 二、R代碼實現Xgboost分類 &#xff08…

LeetCode題練習與總結:比較版本號--165

一、題目描述 給你兩個 版本號字符串 version1 和 version2 ,請你比較它們。版本號由被點 . 分開的修訂號組成。修訂號的值 是它 轉換為整數 并忽略前導零。 比較版本號時,請按 從左到右的順序 依次比較它們的修訂號。如果其中一個版本字符串的修訂號較…

C++動態內存的管理

今天來分享C動態內存管理相關知識,閑言勿談,直接上干貨。 1. 動態內存的開辟和銷毀(new和delete) (1)前置知識:我們知道c語言有malloc和calloc和realloc三個函數可以進行動態的開辟內存,那么它們有什么區別呢?首先是…

MPS 后端

本文來自: https://pytorch.org/docs/stable/notes/mps.html https://pytorch.ac.cn/docs/stable/notes/mps.html MPS 后端 mps 設備支持 在使用 Metal 編程框架的 MacOS 設備上,進行高性能 GPU 訓練。 它引入了新的設備,將機器學習計算圖和…

【C語言】條件運算符詳解 - 《 A ? B : C 》

目錄 C語言條件運算符詳解1. 條件運算符的語法和使用示例 1:基本用法輸出 2. 嵌套條件運算符示例 2:嵌套條件運算符輸出 3. 條件運算符與 if-else 語句的比較示例 3:使用 if-else 語句示例 4:使用條件運算符 4. 條件運算符的實際應…

PLC_博圖系列?基本指令”TONR:時間累加器“

PLC_博圖系列?基本指令”TONR:時間累加器“ 文章目錄 PLC_博圖系列?基本指令”TONR:時間累加器“背景介紹TONR: 時間累加器說明參數脈沖時序圖示例 關鍵字: PLC、 西門子、 博圖、 Siemens 、 TONR 背景介紹 這是一篇關于P…

ElasticSearch學習之路

前言 為什么學ElasticSearch? 數據一般有如下三種類型: 結構化數據,如:MySQL的表,一般通過索引提高查詢效率非結構化數據,如:圖片、音頻等不能用表結構表示的數據,一般保存到mong…

Linux C++ 054-設計模式之外觀模式

Linux C 054-設計模式之外觀模式 本節關鍵字:Linux、C、設計模式、外觀模式 相關庫函數: 概念 外觀模式(Facade),亦稱“過程模式”。主張按照描述和判斷資料來評價課程,關鍵的活動是在課程實施的全過程中…

昇思25天學習打卡營第24天|基于MindSpore的Diffusion擴散模型

Diffusion擴散模型 本文基于Hugging Face:The Annotated Diffusion Model一文翻譯遷移而來,同時參考了由淺入深了解Diffusion Model一文。 關于擴散模型(Diffusion Models)有很多種理解,本文的介紹是基于denoising di…

基礎動態規劃題目基礎動態規劃題目

目錄 題目1: P1216 [USACO1.5] [IOI1994]數字三角形 Number Triangles 代碼示例: 題目2: Common Subsequence 代碼示例 題目3 :最長上升子序列 最長不下降子序列 最長上升子序列oj答案 題目1: P1216 [USACO1.5]…

SQL面試題練習 —— 查詢每個用戶最大連續登錄天數

目錄 1 題目2 建表語句3 題解 1 題目 查詢每個用戶最大連續登錄天數 樣例數據如下 login_log: 2 建表語句 --建表語句 create table if not exists login_log (user_id int comment 用戶id,login_time date comment 登錄時間 ); --數據插入 INSERT overwrit…

Matlab進階繪圖第63期—帶標記線的三維填充折線圖

三維填充折線圖是在三維折線圖的基礎上,對其與XOY平面之間的部分進行顏色填充,從而能夠更好地刻畫細節變化。 而帶標記線的三維填充折線圖是在其基礎上,添加X相同的一條或多條標記線,以用于進一步討論分析。 由于Matlab中未收錄…

飛睿智能UWB Tag藍牙防丟器標簽,寵物安全新升級,5cm精準定位測距不迷路

寵物早已成為許多家庭不可或缺的一員,它們用無條件的愛溫暖著我們的心房,陪伴我們度過每一個平凡而溫馨的日子。然而,隨著寵物活動范圍的擴大和外界環境的復雜多變,寵物走失的風險也隨之增加。每一次出門遛彎,都像是心…

【學術會議征稿】第六屆光電材料與器件國際學術會議(ICOMD 2024)

第六屆光電材料與器件國際學術會議(ICOMD 2024) 2024 6th International Conference on Optoelectronic Materials and Devices 第六屆光電材料與器件國際學術會議(ICOMD 2024)將于2024年11月1-3日在中國重慶召開。 大會面向基…