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,1z2,1zN,1z1,2z2,2zN,2z1,Dimz2,DimzN,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×(UBjLBj)

长距离迁徙

长距离迁徙模型:
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))+(1R )×(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={11if 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×(1Tmaxt)
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×νβ1u×σ
其中, 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(1Tmaxt)×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.mzph.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;则表明该系统设计得比较专…