2025最新智能優化算法:人工旅鼠算法(Artificial Lemming Algorithm, ALA)求解23個經典函數測試集,MATLAB

一、人工旅鼠優化算法

人工旅鼠算法(Artificial Lemming Algorithm, ALA)是2025年提出的一種新型生物啟發式優化算法,受旅鼠的四種典型行為啟發:長距離遷徙、挖洞、覓食和躲避捕食者。該算法通過模擬這些行為來解決復雜的優化問題,具有較強的探索和開發能力。人工旅鼠優化算法(ALA )是2025年發表于SCITop期刊《Artificial Intelligence Review》的一種新型元啟發式算法(智能優化算法) 。其靈感來源于旅鼠在自然界中的四種行為:長途遷徙、挖洞、覓食和躲避捕食者。該算法通過對這四種行為進行數學建模,實現對問題的優化求解,在保持計算效率的同時更好地平衡勘探和開發,能有效應對過早收斂、探索不足以及在高維、非凸搜索空間中缺乏穩健性等挑戰。
在這里插入圖片描述

旅鼠是一種小型嚙齒動物,主要分布在北極地區。當旅鼠數量過多導致食物短缺時,會進行長距離遷徙;它們會在棲息地挖洞,形成隧道用于儲存食物和躲避威脅;在洞穴內,旅鼠會憑借敏銳感官覓食;遇到危險時,旅鼠會逃回洞穴并做出欺騙性動作躲避捕食者。ALA算法分別對這四種行為建模,長距離遷移和挖洞行為用于搜索空間的勘探,覓食和躲避捕食者行為用于開發利用已搜索的空間 。并且采用能量降低機制,動態調整勘探和開發之間的平衡,增強算法逃避局部最優值并收斂到全局解決方案的能力。

算法原理

ALA 主要模擬旅鼠的以下四種行為:

  1. 長距離遷徙 (Exploration):模擬旅鼠在食物短缺時進行的長距離遷徙,用于探索新的搜索空間。
  2. 挖洞 (Exploration):模擬旅鼠挖掘洞穴的行為,用于在當前區域進行局部探索。
  3. 覓食 (Exploitation):模擬旅鼠在洞穴附近覓食的行為,用于開發當前已知的優質區域。
  4. 躲避捕食者 (Exploitation):模擬旅鼠在遇到捕食者時的逃避行為,用于進一步開發當前最優解附近的區域。

算法數學模型

初始化

初始化種群位置:
Z ? = [ z 1 , 1 z 1 , 2 … z 1 , D i m z 2 , 1 z 2 , 2 … z 2 , D i m ? ? ? ? z N , 1 z N , 2 … z N , D i m ] \vec{Z} = \begin{bmatrix} z_{1,1} & z_{1,2} & \dots & z_{1,Dim} \\ z_{2,1} & z_{2,2} & \dots & z_{2,Dim} \\ \vdots & \vdots & \ddots & \vdots \\ z_{N,1} & z_{N,2} & \dots & z_{N,Dim} \end{bmatrix} Z = ?z1,1?z2,1??zN,1??z1,2?z2,2??zN,2????z1,Dim?z2,Dim??zN,Dim?? ?
其中,每個維度的初始位置計算為:
z i , j = L B j + rand × ( U B j ? L B j ) z_{i,j} = LB_j + \text{rand} \times (UB_j - LB_j) zi,j?=LBj?+rand×(UBj??LBj?)

長距離遷徙

長距離遷徙模型:
Z ? i ( t + 1 ) = Z ? best ( t ) + F × B M → × ( R ? × ( Z ? best ( t ) ? Z ? i ( t ) ) + ( 1 ? R ? ) × ( Z ? i ( t ) ? Z ? a ( t ) ) ) \vec{Z}_i(t+1) = \vec{Z}_{\text{best}}(t) + F \times \overrightarrow{BM} \times \left( \vec{R} \times (\vec{Z}_{\text{best}}(t) - \vec{Z}_i(t)) + (1 - \vec{R}) \times (\vec{Z}_i(t) - \vec{Z}_a(t)) \right) Z i?(t+1)=Z best?(t)+F×BM ×(R ×(Z best?(t)?Z i?(t))+(1?R )×(Z i?(t)?Z a?(t)))
其中:

  • F F F 是方向標志,計算為:
    F = { 1 if? ? 2 × rand + 1 ? = 1 ? 1 if? ? 2 × rand + 1 ? = 2 F = \begin{cases} 1 & \text{if } \lfloor 2 \times \text{rand} + 1 \rfloor = 1 \\ -1 & \text{if } \lfloor 2 \times \text{rand} + 1 \rfloor = 2 \end{cases} F={1?1?if??2×rand+1?=1if??2×rand+1?=2?
  • B M → \overrightarrow{BM} BM 是布朗運動向量,服從標準正態分布:
    f B M ( x ; 0 , 1 ) = 1 2 π × exp ? ( ? x 2 2 ) f_{BM}(x; 0, 1) = \frac{1}{\sqrt{2\pi}} \times \exp\left(-\frac{x^2}{2}\right) fBM?(x;0,1)=2π ?1?×exp(?2x2?)
  • R ? \vec{R} R 是一個隨機向量,計算為:
    R ? = 2 × rand ( 1 , Dim ) ? 1 \vec{R} = 2 \times \text{rand}(1, \text{Dim}) - 1 R =2×rand(1,Dim)?1
    在這里插入圖片描述
挖洞

挖洞模型:
Z ? i ( t + 1 ) = Z ? i ( t ) + F × L × ( Z ? best ( t ) ? Z ? b ( t ) ) \vec{Z}_i(t+1) = \vec{Z}_i(t) + F \times L \times (\vec{Z}_{\text{best}}(t) - \vec{Z}_b(t)) Z i?(t+1)=Z i?(t)+F×L×(Z best?(t)?Z b?(t))
其中, L L L 是一個與當前迭代次數相關的隨機數,計算為:
L = rand × ( 1 + sin ? ( t 2 ) ) L = \text{rand} \times \left(1 + \sin\left(\frac{t}{2}\right)\right) L=rand×(1+sin(2t?))
在這里插入圖片描述

覓食

覓食模型:
Z ? i ( t + 1 ) = Z ? best ( t ) + F × spiral × rand × Z ? i ( t ) \vec{Z}_i(t+1) = \vec{Z}_{\text{best}}(t) + F \times \text{spiral} \times \text{rand} \times \vec{Z}_i(t) Z i?(t+1)=Z best?(t)+F×spiral×rand×Z i?(t)
其中, spiral \text{spiral} spiral 是螺旋形狀因子,計算為:
spiral = radius × ( sin ? ( 2 π × rand ) + cos ? ( 2 π × rand ) ) \text{spiral} = \text{radius} \times \left(\sin(2\pi \times \text{rand}) + \cos(2\pi \times \text{rand})\right) spiral=radius×(sin(2π×rand)+cos(2π×rand))
radius \text{radius} radius 是覓食范圍的半徑,計算為:
radius = ∑ j = 1 Dim ( z best , j ( t ) ? z i , j ( t ) ) 2 \text{radius} = \sqrt{\sum_{j=1}^{\text{Dim}} \left(z_{\text{best},j}(t) - z_{i,j}(t)\right)^2} radius=j=1Dim?(zbest,j?(t)?zi,j?(t))2 ?
在這里插入圖片描述

躲避捕食者

躲避捕食者模型:
Z ? i ( t + 1 ) = Z ? best ( t ) + F × G × Levy ( Dim ) × ( Z ? best ( t ) ? Z ? i ( t ) ) \vec{Z}_i(t+1) = \vec{Z}_{\text{best}}(t) + F \times G \times \text{Levy}(\text{Dim}) \times (\vec{Z}_{\text{best}}(t) - \vec{Z}_i(t)) Z i?(t+1)=Z best?(t)+F×G×Levy(Dim)×(Z best?(t)?Z i?(t))
其中, G G G 是逃避系數,計算為:
G = 2 × ( 1 ? t T max ) G = 2 \times \left(1 - \frac{t}{T_{\text{max}}}\right) G=2×(1?Tmax?t?)
Levy ( ? ) \text{Levy}(\cdot) Levy(?) 是萊維飛行函數,計算為:
Levy ( x ) = 0.01 × u × σ ∥ ν ∥ 1 β \text{Levy}(x) = 0.01 \times \frac{u \times \sigma}{\|\nu\|^{\frac{1}{\beta}}} Levy(x)=0.01×νβ1?u×σ?
其中, u u u ν \nu ν 是隨機數, β = 1.5 \beta = 1.5 β=1.5
在這里插入圖片描述

能量因子

能量因子 E ( t ) E(t) E(t) 用于平衡探索和開發:
E ( t ) = 4 × arctan ? ( 1 ? t T max ) × ln ? ( 1 rand ) E(t) = 4 \times \arctan\left(1 - \frac{t}{T_{\text{max}}}\right) \times \ln\left(\frac{1}{\text{rand}}\right) E(t)=4×arctan(1?Tmax?t?)×ln(rand1?)

算法流程

在這里插入圖片描述

  1. 初始化:設置種群大小 N N N,最大迭代次數 T max T_{\text{max}} Tmax?,問題維度 Dim \text{Dim} Dim,并隨機初始化種群位置。
  2. 迭代:在每次迭代中,根據能量因子 E ( t ) E(t) E(t) 判斷當前是探索階段還是開發階段。
    • 如果 E ( t ) > 1 E(t) > 1 E(t)>1,執行長距離遷徙或挖洞行為。
    • 如果 E ( t ) ≤ 1 E(t) \leq 1 E(t)1,執行覓食或躲避捕食者行為。
  3. 更新位置:根據上述模型更新每個搜索代理的位置。
  4. 評估適應度:計算每個搜索代理的適應度值,并更新當前最優解。
  5. 終止條件:如果達到最大迭代次數或滿足其他終止條件,輸出最優解。
    在這里插入圖片描述

算法優缺點

  • 優點:ALA 具有較強的探索和開發能力,能夠有效避免局部最優,適用于高維和復雜的優化問題。
  • 缺點:對參數設置較為敏感,理論保證不足,處理某些復雜函數時仍有提升空間。

參考文獻:
[1]Xiao, Y., Cui, H., Khurma, R.A. et al. Artificial lemming algorithm: a novel bionic meta-heuristic technique for solving real-world engineering optimization problems. Artif Intell Rev 58, 84 (2025). https://doi.org/10.1007/s10462-024-11023-7

二、23個函數介紹

在這里插入圖片描述
參考文獻:

[1] Yao X, Liu Y, Lin G M. Evolutionary programming made faster[J]. IEEE transactions on evolutionary computation, 1999, 3(2):82-102.

三、部分代碼及結果

clear;
clc;
close all;
warning off all;SearchAgents_no=50;    %Number of search solutions
Max_iteration=500;    %Maximum number of iterationsFunc_name='F1'; % Name of the test function% Load details of the selected benchmark function
[lb,ub,dim,fobj]=Get_F(Func_name); tic;
[Best_score,Best_pos,cg_curve]=SGA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj); 
tend=toc;% figure('Position',[500 500 901 345])
%Draw search space
subplot(1,2,1);
func_plot(Func_name);
title('Parameter space')
xlabel('x_1');
ylabel('x_2');
zlabel([Func_name,'( x_1 , x_2 )'])%Draw objective space
subplot(1,2,2);
semilogy(cg_curve,'Color','m',LineWidth=2.5)
title(Func_name)% title('Objective space')
xlabel('Iteration');
ylabel('Best score obtained so far');axis tight
grid on
box on
legend('SGA')display(['The running time is:', num2str(tend)]);
display(['The best fitness is:', num2str(Best_score)]);
display(['The best position is: ', num2str(Best_pos)]);

在這里插入圖片描述

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

四、完整MATLAB代碼見下方名片

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

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

相關文章

Python游戲編程之賽車游戲6-2

3.2 move()方法的定義 Player類的move()方法用于玩家控制汽車左右移動,當玩家點擊鍵盤上的左右按鍵時,汽車會相應地進行左右移動。 move()方法的代碼如圖7所示。 圖7 move()方法的代碼 其中,第20行代碼通過pygame.key.get_pressed()函數獲…

日語學習-日語知識點小記-構建基礎-JLPT-N4N5階段(12):普通(ふつう)形 :變化方式 :日常朋友家人之間對話

日語學習-日語知識點小記-構建基礎-JLPT-N4&N5階段(12):普通(ふつう)形 :變化方式 :日常朋友&家人之間對話  1、前言(1)情況說明(2)工程師的信仰2、知識點(1)普通(ふつう)形:Plain style:簡體3、單詞(1)日語單詞(2)日語片假名單詞4、相近詞辨…

華為hcia——Datacom實驗指南——二層交換原理

實驗配置 eNSP 什么是二層交換 二層交換是指在同一個ip網段內,數據通過二層交換機進行轉發。 什么是mac地址 mac地址也叫做硬件地址,是以太網協議的鏈路層地址。簡單的來說,mac地址就是我們硬件的身份證,獨一無二。它是由48個bi…

粘貼到Word里的圖片顯示不全

粘貼到Word里的圖片顯示不全,可從Word設置、圖片本身、軟件與系統等方面著手解決,具體方法如下: Word軟件設置 經實踐發現,圖片在word行距的行距出現問題,可以按照如下調整行距進行處理 修改段落行距: 選…

HTML轉義和反轉義工具類

HTML轉義和反轉義工具類 package com.common.utils;import cn.hutool.http.HTMLFilter; import org.apache.commons.lang3.StringUtils;/*** 轉義和反轉義工具類** author lxx*/ public class EscapeUtil {public static final String RE_HTML_MARK "(<[^<]*?>…

Android之圖片保存相冊及分享圖片

文章目錄 前言一、效果圖二、實現步驟1.引入依賴庫2.二維碼生成3.布局轉圖片保存或者分享 總結 前言 其實現在很多分享都是我們自定義的&#xff0c;更多的是在界面加了很多東西&#xff0c;然后把整個界面轉成圖片保存相冊和分享&#xff0c;而且現在分享都不需要第三方&…

以繪圖(繪制點、直線、圓、橢圓、多段線)為例子 通過設計模式中的命令模式實現

為了在命令模式的基礎上實現撤銷&#xff08;Undo&#xff09;和回退&#xff08;Redo&#xff09;功能&#xff0c;我們可以在每個命令類中記錄一些必要的狀態&#xff0c;允許我們撤銷之前的操作&#xff0c;并在需要時回退操作。常見的做法是使用一個命令堆棧來存儲歷史命令…

git從本地其他設備上fetch分支

在 Git 中&#xff0c;如果你想從本地其他設備上獲取分支&#xff0c;可以通過以下幾種方式實現。不過&#xff0c;需要注意的是&#xff0c;Git 本身是分布式版本控制系統&#xff0c;通常我們是從遠程倉庫&#xff08;如 GitHub、GitLab 等&#xff09;拉取分支&#xff0c;而…

故障診斷 | Matlab實現基于DBO-BP-Bagging多特征分類預測/故障診斷

故障診斷 | Matlab實現基于DBO-BP-Bagging多特征分類預測/故障診斷 目錄 故障診斷 | Matlab實現基于DBO-BP-Bagging多特征分類預測/故障診斷分類效果基本介紹模型描述DBO-BP-Bagging蜣螂算法優化多特征分類預測一、引言1.1、研究背景和意義1.2、研究現狀1.3、研究目的與方法 二…

CentOS停服后的替代選擇:openEuler、Rocky Linux及其他系統的未來展望

CentOS停服后的替代選擇&#xff1a;openEuler、Rocky Linux及其他系統的未來展望 引言CentOS停服的背景華為openEuler&#xff1a;面向未來的開源操作系統1. 簡介2. 特點3. 發展趨勢 Rocky Linux&#xff1a;CentOS的精神繼承者1. 簡介2. 特點3. 發展趨勢 其他可選的替代系統1…

docker部署go簡單web項目(無mysql等附加功能)

首先準備好go語言代碼 代碼表示當訪問主機上8080端口下的/hello路徑時&#xff0c;會返回hello&#xff0c;world。 package mainimport ("fmt""github.com/gin-gonic/gin" )type hh struct {S string }func main() {router : gin.Default()router.GET(&…

OceanBase數據庫實戰:Windows Docker部署與DBeaver無縫對接

一、前言 OceanBase 是一款高性能、高可擴展的分布式數據庫&#xff0c;適用于大規模數據處理和企業級應用。 隨著大數據和云計算的普及&#xff0c;OceanBase 在企業數字化轉型中扮演著重要角色。學習 OceanBase 可以幫助開發者掌握先進的分布式數據庫技術&#xff0c;提升數…

在 HuggingFace 中使用 SSH 進行下載數據集和模型

SSH 是一種 安全通訊的協議&#xff0c;我們通過配置 SSH 的密鑰 來在 Git 上實現 Huggingface 模型的命令行下載。 參考網址&#xff1a;https://huggingface.co/docs/hub/security-git-ssh 點擊自己的頭像&#xff0c;點擊 Add SSH key 在 Windows 上&#xff0c;我們實現已…

.NET Core MVC IHttpActionResult 設置Headers

最近碰到調用我的方法要求返回一個代碼值&#xff0c;但是要求是不放在返回實體里&#xff0c;而是放在返回的Headers上 本來返回我是直接用 return Json(res) 這種封裝的方法特別簡單&#xff0c;但是沒有發現設置headers的地方 查詢過之后不得已換了個返回 //原來方式 //…

Linux-----進程間通信

一、按通信范圍分類 同一主機進程通信 傳統IPC方式&#xff1a; 管道&#xff08;無名管道、有名管道&#xff09;信號&#xff08;Signal&#xff09; System V IPC&#xff1a; 共享內存&#xff08;效率最高&#xff09;消息隊列信號量 POSIX IPC&#xff08;較新標準&#…

Ant Design按鈕樣式深度適配:實現<Button>與<a>標簽顏色完美同步

Ant Design按鈕樣式深度適配&#xff1a;實現與標簽顏色完美同步 問題現象診斷 組件結構原型 <Button type"link" disabled{disabled}><a href"...">下載</a> </Button>樣式沖突表現 狀態按鈕顏色鏈接顏色視覺問題啟用態Ant藍…

使用Python爬蟲獲取淘寶商品詳情:API返回值說明與案例指南

在電商數據分析和運營中&#xff0c;獲取淘寶商品詳情是常見的需求。淘寶開放平臺提供了豐富的API接口&#xff0c;允許開發者通過合法的方式獲取商品信息。本文將詳細介紹如何使用Python編寫爬蟲&#xff0c;通過淘寶API獲取商品詳情&#xff0c;并解析API返回值的含義和結構。…

并發 -- 無鎖算法與結構

文章目錄 什么是無鎖算法什么是原子變量什么是CAS操作Compare-And-Swap Weak在哪些情況下會失敗舉例說明無鎖結構無鎖結構的問題 什么是無鎖算法 無鎖算法&#xff08;Lock-Free Algorithm&#xff09;是一種并發編程技術&#xff0c;旨在實現多線程環境下的高效數據共享&…

考研/保研復試英語問答題庫(華工建院)

華南理工大學建筑學院保研/考研 英語復試題庫&#xff0c;由華工保研er和學碩筆試第一同學一起整理&#xff0c;覆蓋面廣&#xff0c;助力考研/保研上岸&#xff01;需要&#x1f447;載可到文章末尾見小&#x1f360;。 以下是主要內容&#xff1a; Part0 復試英語的方法論 Pa…

岳陽市美術館預約平臺(小程序論文源碼調試講解)

第4章 系統設計 一個成功設計的系統在內容上必定是豐富的&#xff0c;在系統外觀或系統功能上必定是對用戶友好的。所以為了提升系統的價值&#xff0c;吸引更多的訪問者訪問系統&#xff0c;以及讓來訪用戶可以花費更多時間停留在系統上&#xff0c;則表明該系統設計得比較專…