免费建站系统有哪些,学院网站建设的作用,代刷网站推广链接0元价格,企业sns网站需求先做一个声明#xff1a;文章是由我的个人公众号中的推送直接复制粘贴而来#xff0c;因此对智能优化算法感兴趣的朋友#xff0c;可关注我的个人公众号#xff1a;启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法#xff0c;经典的#xff0c;或者是近几年…先做一个声明文章是由我的个人公众号中的推送直接复制粘贴而来因此对智能优化算法感兴趣的朋友可关注我的个人公众号启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法经典的或者是近几年提出的新型智能优化算法并附MATLAB代码。 “今天给大家推送的也是2023年提出的一种新算法发表在AIRE上这个期刊目前影响因子12还是很有含金量。就这个算法效果而言我觉得还可以并且它框架也简单~
另外这个算法基于指数分布理论没有什么好看的图更多的是数学公式学起来可能有点枯燥~” 该研究提出了一种新的基于种群的元启发式算法称为指数分布优化器(Exponential Distribution Optimizer, EDO)。EDO的主要灵感来自于数学中的指数概率分布模型。EDO算法包括了开发策略和勘探策略。利用CEC2014、CEC2017、CEC2020和CEC2022等测试套件以及6个工程设计问题将EDO算法与L-SHADE、LSHADE-cnEpSin和AGSK进行了比较。EDO得到了更理想的结果并且统计分析在95%的置信区间上证明了EDO的优越性。它的原始参考文献如下
“Abdel-Basset M, El-Shahat D, Jameel M, et al. Exponential distribution optimizer (EDO): a novel math-inspired algorithm for global optimization and engineering problems[J]. Artificial Intelligence Review, 2023: 1-72.” 01 预备知识 指数分布理论是EDO算法的灵感来源。
指数分布是一种连续分布常用于描述各种自然现象。例如从现在到地震袭击的等待时间呈指数分布。此外车辆到达收费站的概率随时间呈指数分布。假设有一个指数随机变量x参数为λ可以写成x∼EXP(λ)。该随机变量的概率密度函数(Probability Density Function, PDF)可表示为 其中x表示在事件发生前的等待时间。时间是连续的不能是一个负值即x≥0。此外参数λ0是指数分布的速率。利用该公式可计算得到指数累积分布函数(Cumulative Distribution Function, CDF) 图1显示了衰减参数λ对指数PDF的影响使用相同的x值和四个不同的λ值(0.25、0.5、0.75和1)。曲线从λ值开始并逐渐下降。因此指数分布总是一个关于PDF的递减函数。指数率的值越大相关的指数随机变量的PDF值就越小。图2展现了使用不同的λ值的CDF曲线的情况。它是一个递增函数从指数速率开始CDF随指数随机变量的增加而增加。 图1 不同λ值对应的PDF 图2 不同λ值对应的指数CDF 指数分布随机变量的均值(μ)和方差(σ^2)可以表示为 从前面的方程中可以认为参数λ的值与均值和方差值成反比反之亦然。换句话说λ值越大均值和方差值就越小。那么标准差(σ)与均值相等可计算如下 如果只想了解算法的计算流程可以不看这一节的。这一节就是介绍一下指数分布模型知不知道都不怎么影响。不是数学专业的同学可以了解一下。
02 算法设计 为了便于大家理解介绍算法时就直接抬出公式和流程就不过多讨论作者的设计思路和出发点了(哎呀动机、思路、出发点这些都是写给审稿人看的能自圆其说就行的了解来也没啥用知道算法怎么计算的就行了)。与往期推送一样这部分内容在Word文档里先写好然后做成图片最后导入。 03 计算流程 EDO算法的计算流程伪代码如下(公式序号对应上文) 04 实验仿真 这里对EDO算法的性能进行简单的测试。首先将EDO用于函数寻优算法的MATLAB程序是严格按照它的原始参考文献进行编码的。此外种群规模取N等于50Benchmark函数分别采用了CEC2005测试集、CEC2013测试集、CEC2014测试集、CEC2017测试集、CEC2020优化函数测试集和CEC2022优化函数测试集。仅对仿真结果进行简要展示不再进一步分析。 首先检验一下EDO对全局勘探和局部开发的平衡能力。不知道我在说啥的看一下之前的这一期推送种群的勘探(Exploration)与开发(Exploitation)(含MATLAB代码)
如图3所示是EDO在CEC2005测试函数f7上的勘探和开发占比曲线。 图3 EDO在CEC2005 f7上的勘探和开发百分占比变化曲线
其次利用CEC2005测试集验证EDO的性能这里选择今年很火热的蜣螂优化(DBO)算法进行对比(为了对比的公平两种算法的种群大小设置为30最大迭代次数为200)。对比结果如下所示 EDO Vs DBO 可以看到EDO的竞争力还是很可观的在一些函数上收敛曲线突然不见了是因为已经收敛到理论最优值0了。我使用的是semilogy来绘制的收敛曲线而semilogy画的是y轴的对数因此若曲线收敛到0semilogy是画不出来的。那么EDO在绝大部分的函数上用了不到两百次迭代就收敛到了最优值。在CEC2005的大部分函数上相比于DBOEDO算法更简单收敛速度更快且收敛精度更高。对EDO算法我本人还是比较推荐的简单易实现并且没有调参不涉及需要用户改动的参数。
再次以CEC2013测试集中的单峰函数F1为例展示EDO在30维环境下的收敛效果如图4所示。(注意是画的误差曲线) 图4 EDO在CEC2013 F1上的误差收敛曲线
接着以CEC2014测试集中的多模态函数F14为例展示EDO在30维环境下的收敛效果如图5所示。(注意是画的误差曲线) 图5 EDO在CEC2014 F14上的误差收敛曲线
再然后以CEC2017测试集中的多模态函数F4为例展示EDO在30维环境下的收敛效果如图6所示。(注意是画的误差曲线) 图6 EDO在CEC2017 F4上的误差收敛曲线
在此之后以CEC2020优化函数测试集中的单峰函数F2为例展示EDO在10维环境下的收敛效果如图7所示。(注意是画的误差曲线) 图7 EDO在CEC2020优化函数F2上的误差收敛曲线
最后以CEC2022优化函数测试集中的单峰函数F1为例展示EDO在10维环境下的收敛效果如图8所示。(注意是画的误差曲线) 图8 EDO在CEC2022优化函数F1上的误差收敛曲线
进一步可将EDO应用于复杂工程约束优化问题例如之前推送的两期算法应用内容
算法应用基于DBO算法的工程优化设计(第1期)(含MATLAB代码)
算法应用工程优化设计(第2期)(含MATLAB代码)
这里以行星轮系设计优化问题(Planetary gear train design optimization problem)为例展示EDO求解效果。该问题的主要目标是使汽车齿轮传动比的最大误差最小化如图9所示。为了使最大误差最小化计算了自动行星传动系统的总齿数。 图9 行星轮系设计优化问题(Planetary gear train design)
该问题包含6个整数变量和11个不同的几何约束和装配约束(10个不等式约束1个等式约束)。这个问题可以定义如下 采用罚函数处理约束条件然后利用EDO算法进行求解最优值和最优解如下所示。目标函数的收敛曲线如图10所示。 图10 EDO在行星轮系设计问题上的目标函数收敛曲线
05 MATLAB代码 EDO算法对应的MATLAB代码链接如下
EDO跑CEC2005测试集公众号里有链接EDO跑CEC2013测试集公众号里有链接EDO跑CEC2014测试集公众号里有链接EDO跑CEC2017测试集公众号里有链接EDO跑CEC2020优化函数测试集公众号里有链接EDO跑CEC2022优化函数测试集公众号里有链接EDO的勘探(Exploration)和开发(Exploitation)占比分析公众号里有链接EDO的工程应用(第1期)压力容器设计、滚动轴承设计、拉伸/压缩弹簧设计、悬臂梁设计、轮系设计、三杆桁架设计公众号里有链接EDO的工程应用(第2期)焊接梁设计、多盘离合器制动器设计问题、步进圆锥滑轮问题、减速机设计问题、行星轮系设计优化问题、机器人夹持器问题公众号里有链接
可通过下方链接下载代码清单在里面寻找需要的算法代码然后去对应的链接获取。清单会同步更新一旦有新的代码就可以在清单里找到。清单里面有部分代码是开源获取的。可随时免费下载。
链接https://pan.baidu.com/s/1n2vpbwuhpA8oyXSJGsAsmA
提取码8023