首页 > 编程语言 >智能优化算法:松鼠优化算法 - 附代码

智能优化算法:松鼠优化算法 - 附代码

时间:2023-05-04 13:06:54浏览次数:38  
标签:位置 算法 山核桃树 飞行 松鼠 优化 滑行


智能优化算法:松鼠优化算法


文章目录

  • 智能优化算法:松鼠优化算法
  • 1.算法原理
  • 1.1 种群初始化
  • 1.2 适应度值评价
  • 1.3 生成新位置
  • 1.4 滑翔的空气动力学
  • 1.5 季节变化条件
  • 2.实验结果
  • 3.参考文献
  • 4.Matlab代码



摘要:松鼠优化算法是于2018年提出的一种简单高效的新型优化算法,具有收敛快寻优强的特点。

1.算法原理

飞行松鼠是一类栖息在树上并在夜间进行活动的啮齿动物,它们特别适合滑翔运动。目前,飞行松鼠共有15属44种,其中大部分分布在欧洲和亚洲的落叶林区(特别是东南亚)。在欧亚大陆以外发现的、研究最多的是南部飞行松鼠。飞行松鼠被认为是空气动力学上最复杂的物种,它有一个类似降落伞的膜,可以帮助松鼠改变升力和阻力,在高空中从一棵树滑翔到另一棵树。飞行松鼠不会飞行,而是采用滑翔方式快速和有效地跨越很长的距离。松鼠之所以要滑翔,是为了躲避捕食者、寻找捕食的最佳地点和以较小的代价进行捕食。

飞行松鼠的觅食策略灵活多变,这可以帮助飞行松鼠以最佳的方式应对食物资源。比如,松鼠为了满足秋季的营养需求,它们选择吃掉可以大量获取的橡树籽,将山核桃存储在巢穴里、其他洞穴中或者地底下。由于冬季温度低且营养需求较高,飞行松鼠在觅食时如发现山核桃就立刻慈鲷,如果没有山核桃,飞行松鼠会从储存的备用食物中吃山核桃。因此,飞行松鼠根据营养需求,有选择地吃一些坚果和储存其他坚果。

为了简化数学模型,考虑以下假设。落叶森林中有 n只松鼠,每只松鼠停留在一棵树上。每只松鼠都单独寻找食物,并通过动态觅食行为来优化利用食物资源。在森林中,只有三种类型的树 —普通树、橡树和山核桃树。飞行松鼠的位置在SSA算法中由向量表示,每个向量有多个维度。因此,飞行松鼠可以在一维、二维、三维或超维搜索空间中滑行来改变它们自身的位置。

1.1 种群初始化

森林中有n只飞鼠,第i只松鼠的位置可以通过一个矢量来确定。所有松鼠的位置在边界范围内随机初始化,如下式:
智能优化算法:松鼠优化算法 - 附代码_python
智能优化算法:松鼠优化算法 - 附代码_优化算法_02代表第i只松鼠第j维的值。ub,lb分别为变量的上下边界。rand为[0,1]之间的随机数。

1.2 适应度值评价

每只松鼠位置的适应值描述了食物源的等级,即最佳食物源(山核桃树)、正常食物源(橡树)和无食物来源(普通树)。在存储了每只松鼠的位置的适应值后,数组按升序排序。最小适应值的松鼠停留在山核桃树上,接下来的三只松鼠停留在橡树上,它们可以向山核桃树飞行,其余的松鼠停留在普通树上。通过随机选择方式,选择已经满足每日所需能量的松鼠朝着山核桃树移动,剩余的松鼠将朝着橡树移动以获取每日所需能量。松鼠的觅食行为会受到天敌的影响,松鼠具体采用哪种移动策略也要根据天敌的出现概率(Pdp)而定。

1.3 生成新位置

在飞行松鼠的觅食过程中,可能会出现三种情况。在每种情况下,假设在没有天敌的情况下,松鼠在整个森林中滑行并高效地搜寻它最喜欢的食物,而天敌的存在使它变得谨慎,松鼠被迫在小范围内随机行走,来搜寻附近的躲藏地点。

①第一种情况,在橡树上的松鼠会向山核桃树移动
智能优化算法:松鼠优化算法 - 附代码_python_03
其中 智能优化算法:松鼠优化算法 - 附代码_人工智能_04 是随机滑行距离,智能优化算法:松鼠优化算法 - 附代码_机器学习_05是[0,1]范围内的随机数, 智能优化算法:松鼠优化算法 - 附代码_人工智能_06是山核桃树的位置,智能优化算法:松鼠优化算法 - 附代码_人工智能_07表示当前迭代。滑动常数智能优化算法:松鼠优化算法 - 附代码_python_08 实现全局与局部搜索之间的平衡,经过大量分析论证,智能优化算法:松鼠优化算法 - 附代码_python_08

②第二种情况,在普通树上的松鼠会向橡树移动
智能优化算法:松鼠优化算法 - 附代码_算法_10
智能优化算法:松鼠优化算法 - 附代码_机器学习_11是[0,1]范围内的随机数。

③第三种情况,一些在普通树上的松鼠已经吃了橡果,它们可能会向山核桃树移动以便储存山核桃来应对食物短缺。
智能优化算法:松鼠优化算法 - 附代码_人工智能_12
智能优化算法:松鼠优化算法 - 附代码_算法_13是[0,1]范围内的随机数。

所有情况下,天敌出现的概率都为0.1。

1.4 滑翔的空气动力学

松鼠的滑行机制是通过平衡滑行来描述的,升力(L)和阻力(D)之和产生一个合力®,该合力与飞鼠的重力大小相等且方向相反。因此,R以恒定速度(V)保证松鼠能够在直线上与水平面成一定角度 智能优化算法:松鼠优化算法 - 附代码_机器学习_14下降滑行。升阻比或滑行比定义如下:
智能优化算法:松鼠优化算法 - 附代码_机器学习_15
松鼠可以通过减小下滑角来增加滑行路径长度,从而提高升阻比。升力是空气撞击膜产生了向下的偏转而产生的反推力的结果,定义为:
智能优化算法:松鼠优化算法 - 附代码_python_16
其中( 智能优化算法:松鼠优化算法 - 附代码_人工智能_17 )为空气密度,智能优化算法:松鼠优化算法 - 附代码_优化算法_18 称为升力系数,智能优化算法:松鼠优化算法 - 附代码_python_19为速度,智能优化算法:松鼠优化算法 - 附代码_人工智能_20 )为松鼠膜表面积。
智能优化算法:松鼠优化算法 - 附代码_机器学习_21
智能优化算法:松鼠优化算法 - 附代码_python_22 是摩擦阻力系数,低速移动时松鼠增加阻力,高速移动时松鼠减小阻力。
智能优化算法:松鼠优化算法 - 附代码_人工智能_23

智能优化算法:松鼠优化算法 - 附代码_人工智能_24

其中智能优化算法:松鼠优化算法 - 附代码_机器学习_25是滑行后发生的高度减少量,计算智能优化算法:松鼠优化算法 - 附代码_人工智能_04 所需的所有参数值,包括智能优化算法:松鼠优化算法 - 附代码_优化算法_18智能优化算法:松鼠优化算法 - 附代码_python_22 ,都是来自于自然界的真实测量值。因此,松鼠可以根据着陆位置,简单地改变升阻比来改变其滑行路径长度或智能优化算法:松鼠优化算法 - 附代码_人工智能_04智能优化算法:松鼠优化算法 - 附代码_优化算法_18的取值为[0.675,1.5]之间的某个值,智能优化算法:松鼠优化算法 - 附代码_python_22的值为0.6。飞行松鼠通常在一次滑行中行进5到25米的水平距离,在SSA算法模型中,滑行距离在9~20米的范围内。智能优化算法:松鼠优化算法 - 附代码_人工智能_04 的值过大会引起大的扰动,可能导致算法的性能不能令人满意。因此将d g 除以一个称为比例因子(智能优化算法:松鼠优化算法 - 附代码_python_33)的非零值,智能优化算法:松鼠优化算法 - 附代码_python_33 = 18使得智能优化算法:松鼠优化算法 - 附代码_人工智能_04 在[0.5,1.11]区间内浮动。因此,智能优化算法:松鼠优化算法 - 附代码_python_33有助于实现全局搜索和局部寻优之间的均衡状态。

1.5 季节变化条件

季节变化会显著影响飞行松鼠的觅食活动,松鼠在低温条件下会损失大量热量。因为它们的体温高、体型小,导致觅食过程的代价很大,并且由于天敌的存在而具有风险。与秋天相比,气候条件迫使它们在冬天不太活跃。在SSA算法中通过检查季节变化条件,防止算法陷入局部最优。

①计算季节常量智能优化算法:松鼠优化算法 - 附代码_python_37
智能优化算法:松鼠优化算法 - 附代码_python_38
②计算季节变化条件智能优化算法:松鼠优化算法 - 附代码_算法_39
智能优化算法:松鼠优化算法 - 附代码_机器学习_40
其中智能优化算法:松鼠优化算法 - 附代码_人工智能_07智能优化算法:松鼠优化算法 - 附代码_python_42分别是当前和最大迭代值,智能优化算法:松鼠优化算法 - 附代码_优化算法_43 值影响算法的全局和局部搜索能力。智能优化算法:松鼠优化算法 - 附代码_优化算法_43 的值较大会有利于全局搜索,而智能优化算法:松鼠优化算法 - 附代码_优化算法_43 的较小值有利于算法的局部搜索。对于任何启发式算法,全局和局部搜索过程需要进行有效的平衡。这种平衡可以通过滑动常数智能优化算法:松鼠优化算法 - 附代码_python_08 来维持也可以通过在迭代过程中自适应地
改变智能优化算法:松鼠优化算法 - 附代码_人工智能_47

③如果季节变化条件得到满足(冬天结束),则随机改变普通树上松鼠的位置。
智能优化算法:松鼠优化算法 - 附代码_机器学习_48
列维分布(Levy distribution)能够帮助算法以更好和更有效的方式进行全局搜索,列维飞行(Levy flight)帮助算法寻找远离当前最佳位置的新位置。列维飞行是一种随机改变步长的方法,其中步长是从列维分布中得出的。
智能优化算法:松鼠优化算法 - 附代码_人工智能_49
其中智能优化算法:松鼠优化算法 - 附代码_算法_50智能优化算法:松鼠优化算法 - 附代码_python_51是[0,1]区间上的两个正态分布随机数, β =1.5,σ 计算如下:
智能优化算法:松鼠优化算法 - 附代码_机器学习_52
算法步骤

1)定义输入参数
2)为n只松鼠生成随机位置
3)评估每只松鼠位置的适应值
4)根据飞行松鼠的适应值,按升序排列它们的位置
5)将飞行松鼠分配到山核桃树、橡子树和普通树
6)While(不满足停止准则)
8)for z=1 to n1(橡树上向山核桃树移动的松鼠数量)
9)利用公式(2)更新松鼠位置
10)for u=1 to n2(普通树上向橡树移动的松鼠数量)
11)利用公式(3)更新松鼠位置
12)for e=1 to n3(普通树上向山核桃树移动的松鼠数量)
13)利用公式(4)更新松鼠位置
14)计算松鼠适应值,升序排列位置,将飞行松鼠分配到
山核桃树、橡子树和普通树
15)判断季节变化条件是否满足,满足则根据公式(14-
16)更新普通树上松鼠位置
16)根据公式(13)更新智能优化算法:松鼠优化算法 - 附代码_优化算法_43 的值
17)计算松鼠适应值,升序排列位置,将飞行松鼠分配到
山核桃树、橡子树和普通树
18)程序While循环结束,输出山核桃树上松鼠的位置和
适应值。

2.实验结果

智能优化算法:松鼠优化算法 - 附代码_优化算法_54

3.参考文献

[1]韩毅,徐梓斌,张亮.国外新型智能优化算法——松鼠觅食算法[J].现代营销(信息版),2019(09):44-45.

4.Matlab代码

个人资料介绍


标签:位置,算法,山核桃树,飞行,松鼠,优化,滑行
From: https://blog.51cto.com/u_16095618/6242618

相关文章

  • 一种基于Tent 映射的混合灰狼优化的改进算法-附代码
    一种基于Tent映射的混合灰狼优化的改进算法文章目录一种基于Tent映射的混合灰狼优化的改进算法1.灰狼优化算法2.改进灰狼优化算法(PSO_GWO)2.1Tent混沌映射2.2非线性控制参数策略2.3PSO思想3.实验结果4.参考文献5.Matlab代码6.Python代码摘要:针对基本灰狼算法易陷入局部最......
  • 智能优化算法应用:基于麻雀搜索算法3D无线传感器网络(WSN)覆盖优化
    智能优化算法应用:基于麻雀搜索算法3D无线传感器网络(WSN)覆盖优化-附代码文章目录智能优化算法应用:基于麻雀搜索算法3D无线传感器网络(WSN)覆盖优化-附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.麻雀搜索算法4.实验参数设定5.算法结果6.参考文献7.MATLAB代码摘要:本......
  • 一种基于混合策略的灰狼优化算法-附代码
    一种基于混合策略的灰狼优化算法文章目录一种基于混合策略的灰狼优化算法1.灰狼优化算法2.改进灰狼优化算法3.实验结果4.参考文献5.Matlab代码6.Python代码摘要:灰狼优化算法作为一种群体智能算法,不可避免地会产生陷入局部寻优和收敛速度慢的问题。本文提出一种混合的改进策略,把......
  • 具有自适应调整策略的混沌灰狼优化算法-附代码
    具有自适应调整策略的混沌灰狼优化算法文章目录具有自适应调整策略的混沌灰狼优化算法1.灰狼优化算法2.改进灰狼优化算法2.1自适应调整策略2.2混沌局部搜索策略3.实验结果4.参考文献5.Matlab代码6.Python代码摘要:灰狼优化算法(GWO)是新型启元优化算法,相比于其他群体智能优化......
  • 智能优化算法应用:麻雀算法优化脉冲耦合神经网络的图像自动分割 -附代码
    智能优化算法应用:麻雀算法优化脉冲耦合神经网络的图像自动分割文章目录智能优化算法应用:麻雀算法优化脉冲耦合神经网络的图像自动分割1.麻雀搜索算法2.PCNN网络3.实验结果4.参考文献5.Matlab代码摘要:本文利用麻雀搜索算法对脉冲耦合神经网络的参数进行优化,以信息熵作为适应度函......
  • 智能优化算法:海洋捕食者算法
    智能优化算法:海洋捕食者算法文章目录智能优化算法:海洋捕食者算法1.算法原理2.实验结果3.参考文献4.Matlab代码摘要:海洋捕食者算法(MarinePredatorsAlgorithm,MPA)是AfshinFaramarzi等人于2020年提出的一种新型元启发式优化算法,其灵感来源于海洋适者生存理论,即海洋捕食者......
  • 基于反向策略的麻雀搜索算法 -附代码
    基于反向学习策略的麻雀搜索算法文章目录基于反向学习策略的麻雀搜索算法1.反向学习策略2.基于反向学习策略的麻雀搜索算法3.算法结果:4.Matlab代码5.python代码1.反向学习策略反向学习策略是由Tizhoosh于2005年提出的,目前已在GA、DE、ACO和BBO等群体智能优化算法中得到了......
  • 基于麻雀算法改进的DELM预测-附代码
    麻雀算法改进的深度极限学习机DELM的回归预测文章目录麻雀算法改进的深度极限学习机DELM的回归预测1.ELM原理2.深度极限学习机(DELM)原理3.麻雀算法4.麻雀算法改进DELM5.实验结果6.参考文献7.Matlab代码1.ELM原理自动编码器AE(AutoEncoder)经过训练可以将输入复制到输出。因为不需......
  • 智能优化算法:龙格-库塔优化算法 - 附代码
    智能优化算法:龙格-库塔优化算法文章目录智能优化算法:龙格-库塔优化算法1.算法原理1.1搜索机制1.2位置更新1.3解质量增强(ESQ)2.实验结果3.参考文献4.Matlab代码摘要:龙格-库塔优化算法(RungeKuttaoptimizer,RUN)是于2021年提出的一种新型智能优化算法,该算法基于龙格-库塔方法中提......
  • 基于麻雀算法优化的相关向量机RVM回归预测算法
    基于麻雀算法优化的相关向量机RVM回归预测算法文章目录基于麻雀算法优化的相关向量机RVM回归预测算法1.RVM原理2.基于麻雀算法优化的相关向量机RVM3.算法实验与结果3.参考文献:4.MATLAB代码摘要:本文主要介绍相关向量机RVM的基本原理,以及在预测问题中的应用。1.RVM原理RVM算法是......