超详细 | 模拟退火-粒子群自适应优化算法及其实现(Matlab)

这篇具有很好参考价值的文章主要介绍了超详细 | 模拟退火-粒子群自适应优化算法及其实现(Matlab)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

模拟退火算法matlab,MATLAB,粒子群算法,算法,matlab,开发语言
模拟退火算法matlab,MATLAB,粒子群算法,算法,matlab,开发语言
模拟退火算法matlab,MATLAB,粒子群算法,算法,matlab,开发语言

作者在前面的文章中介绍了经典的优化算法——粒子群算法(PSO),各种智能优化算法解决问题的方式和角度各不相同,都有各自的适用域和局限性,对智能优化算法自身做的改进在算法性能方面得到了一定程度的提升,但算法缺点的解决并不彻底。

为了克服使用单一智能优化算法在求解复杂问题中表现出的精度不高、易陷入局部最值、不能在全局搜索等一系列不足,算法融合的思想开始被研究和应用。因此本文将SA与PSO这两种经典算法进行融合,并辅以改进,从而利用它们的互补性,取长补短,提高求解复杂问题的能力。

00 文章目录

1 研究背景
2 模拟退火-粒子群自适应优化算法模型
3 代码目录
4 算法性能分析
5 源码获取

01 研究背景

1.1 SA与PSO混合意义

无免费午餐定理,对任何优化问题,任两种优化算法的平均性能是相等的,没有任何一种优化算法在计算效率、通用性、全局搜索能力等性能方面都能表现得很好。

算法的混合也就成了算法优化领域的一个研究热点和趋势,混合有着固有的内在需求,不是简单地将算法组合叠加,要按照一定的策略和模式进行。

模拟退火算法(SA)是基于金属退火的机理而建立起的一种全局最优化方法,模拟退火算法由于它以某种概率接受较差点,从而具有跳出局部最优解的能力,理论上只要计算时间足够长, 模拟退火法就可以保证以概率 1.0 收敛于全局最优点,但在实际算法实现中,由于计算速度和时间限制,其优化效果和计算时间存在矛盾,收敛时间往往过长。
PSO算法原理简单,用速度、位移公式迭代易于实现,需要调节的参数少,在寻优稳定性和全局性收敛性方面具有很大优势,但容易陷入局部最优值出现早熟,种群多样性差,搜索范围小,在高维复杂问题寻优时更为明显。

因此,将模拟退火引入粒子群算法中后,算法能够具有较强的全局搜索能力,在接受新解时既可以接受好解又可以接受差解,从而保证种群多样性,有利于跳出局部最优解,提高其收敛速度和寻优精度。同时,作者在前面的文章中提出的自适应混沌粒子群能够使得初始解更加均匀,自适应变化的权重和学习因子能在一定程度上增加算法在进化后期搜索多样解的概率,因此将此改进引入混合模型中以期能提高算法性能。

1.2 模拟退火算法

模拟退火是80年代初发展起来的一种随机性组合优化方法。它模拟高温金属降温的热力学过程,并广泛应用于组合优化问题。模拟退火在进行优化时先确定初始温度,随机选择一个初始状态并考察该状态的目标函数值;对当前状态附加一小扰动,并计算新状态的目标函数值;以概率 1接受较好点,以某种概率接受较差点作为当前点,直到系统冷却。
模拟退火方法在初始温度足够高、温度下降足够慢的条件下,能以概率1收敛到全局最优值,由于它以某种概率接受较差点,从而具有跳出局部最优解的能力。

模拟退火算法采用 Metropolis 准则,在算法的每一步随机产生一个新的候选解,如果这个新解使目标函数减小那么它是可以接受的;否则要以指数概率的形式来决定它是否接受,接受新解的概率P由下式给出:模拟退火算法matlab,MATLAB,粒子群算法,算法,matlab,开发语言

式中‚Δf 是由随机扰动引起的目标函数的变化;T是温度,从式中不难看出,对于一个给定的 Δf,当 T 相对较大时,接受正能量的概率大于 T 相对较小时的概率。整个过程归结如下:

  1. 初始化退火温度Tk,(令k=0)随机选择初值 x(0);
  2. 在温度Tk下重复执行如下操作,直至达到温度Tk的平衡状态:
    在解x的领域中产生新的可行解x’
    计算x’的目标函数f(x’)和x的目标函数f(x)的差值Δf;
    依照概率min{1,exp(-Δf/Tk)}>random[0,1] 接收x’,其中random[0,1]是区间内的随机数。
  3. 退火操作:Tk+1=CTk,其中C在0-1直接,若满足收敛判据,则退火过程结束,否则转2)
    其中退火温度T控制着求解过程向最优值的优化方向进行,同时它又以概率exp(-Δf/Tk)来接收劣质解,因此算法可以跳出局部极值点,只要初始温度足够高,退火过程足够慢,算法 就能收敛到全局最优解。

1.3 自适应粒子群算法

自适应混沌粒子群

02 模拟退火-粒子群自适应优化算法模型

粒子群算法在函数优化过程中主要依赖粒子之间的信息不断更新粒子的位置和速度,使其不断向最优解方向靠拢。 PSO 算法存在易早熟,易陷入局部最优,后期收敛速度较慢,搜索精度较差等缺点。模拟退火算法具有很强的全局搜索能力,存在接受较差解的可能,在运算时遇到较差解能够以一定的概率接受,从而可以跳出局部最优解陷阱,收敛于全局最优解区域,拥有较高的搜索精度,但在算法运算时,因其需要非常高的退火温度,故收敛速度十分缓慢。PSO 算法和 SA 算法各具优缺点,因此本文采用融合粒子群和模拟退火的模拟退火粒子群算法,融合的方法是引入模拟退火的概率突跳的思想,以克服 PSO 算法早熟收敛的弊端,改善 SA 算法收敛速度慢的缺点,从而提升了算法的整体性能。
模拟退火-粒子群自适应优化算法流程如图所示.
参考:基于遗传模拟退火粒子群算法的微电网优化运行研究
模拟退火算法matlab,MATLAB,粒子群算法,算法,matlab,开发语言
模拟退火算法matlab,MATLAB,粒子群算法,算法,matlab,开发语言

其中,粒子群算法部分将分别采用作者前面提到的自适应混沌粒子群算法与标准粒子群算法。

03 代码目录

模拟退火算法matlab,MATLAB,粒子群算法,算法,matlab,开发语言

04 算法性能分析

4.1 测试函数

为了能够验证遗传-粒子群自适应算法对比本文提到的粒子群算法、遗传算法、遗传-粒子群算法有更好的效果,本文选用3个CEC的标准测试函数Sphere、Rastrigin、Rosenbrock对算法的寻优精度、跳出局部能力、全局寻优能力进行检验。3个函数的表达式如下:
4.1.1 Sphere函数
模拟退火算法matlab,MATLAB,粒子群算法,算法,matlab,开发语言

Sphere 函数的自变量𝑥𝑖的取值的范围:-100<𝑥𝑖<100;该函数存在唯一的一个全局的最小值,且当𝑥=(0,0,…,0)时,函数取得全局最小值 f1(x) = 0。选择该函数是对算法寻优的精度进行测试。
模拟退火算法matlab,MATLAB,粒子群算法,算法,matlab,开发语言

4.1.2 Rastrigin函数
模拟退火算法matlab,MATLAB,粒子群算法,算法,matlab,开发语言

Rastrigin 函数的自变量𝑥𝑖的取值的范围:-5.12<𝑥𝑖<5.12;在 x = ( 0,0 ,…, 0 ) 处的时候存在全局极小点 0,该函数是一个非线性的多峰值函数,存在大量的局部最小值,寻找全局极小值时有一定的困难,因此用此函数可以,对算法的全局寻优能力检验测试。
模拟退火算法matlab,MATLAB,粒子群算法,算法,matlab,开发语言

4.1.3 Rosenbrock函数
模拟退火算法matlab,MATLAB,粒子群算法,算法,matlab,开发语言

Rosenbrock 函数的自变量𝑥𝑖的取值的范围:-30<𝑥𝑖<30;该函数是一单峰函数, 存在全局极小值,位于一个类似开口向上的抛物线的最低点处,虽然能够比较容易找到,但是很难收敛到最低处,因此可以测试全局寻优的能力。
模拟退火算法matlab,MATLAB,粒子群算法,算法,matlab,开发语言

4.2 测试结果

Sphere函数
模拟退火算法matlab,MATLAB,粒子群算法,算法,matlab,开发语言
模拟退火算法matlab,MATLAB,粒子群算法,算法,matlab,开发语言

模拟退火算法matlab,MATLAB,粒子群算法,算法,matlab,开发语言

可以看到SA-IPSO和SA-PSO的收敛速度以及精度都远好于PSO,而SA达到最优解需迭代超万代,因此改进的算法是十分高效可行的。
Rastrigin函数
模拟退火算法matlab,MATLAB,粒子群算法,算法,matlab,开发语言
模拟退火算法matlab,MATLAB,粒子群算法,算法,matlab,开发语言

Rosenbrock函数
模拟退火算法matlab,MATLAB,粒子群算法,算法,matlab,开发语言
模拟退火算法matlab,MATLAB,粒子群算法,算法,matlab,开发语言

可以看到经模拟退火算法和粒子群算法经混合后能够极大的提升其全局寻优的性能,而经过改进后的粒子群与遗传算法进行混合仍能够在其基础上提升性能,因此此改进有效。

05 源码获取

面包多:KAU的云实验台

如果有伙伴有待解决的优化问题(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。

如果这篇文章对你有帮助或启发,可以点击右下角的赞 (ง •̀_•́)ง(不点也行),若有定制需求,可私信作者。文章来源地址https://www.toymoban.com/news/detail-744375.html

到了这里,关于超详细 | 模拟退火-粒子群自适应优化算法及其实现(Matlab)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 模拟退火算法与遗传算法求解多目标优化问题的算法实现(数学建模)

    模拟退火算法是一种全局优化算法,解决的问题通常是找到一个最小化(或最大化)某个函数的全局最优解。它通过模拟物理退火的过程来搜索解空间,在开始时以一定的温度随机生成初始解,然后一步步降低温度,同时在当前解的周围随机搜索新的解,并根据一定概率接受

    2024年02月02日
    浏览(56)
  • 25.6 matlab里面的10中优化方法介绍——模拟退火算法(matlab程序)

    1. 简述        相信没有相关物理知识背景的小伙伴看到“退火”二字是一脸懵逼的...固体的退火过程指的是将固体加热至足够高的温度,再使其慢慢冷却的过程。在加热过程中,原本有序排列的内部粒子开始无序运动,此时固体的内能不断增大;而在降温过程中,粒子的排

    2024年02月15日
    浏览(45)
  • 模拟退火-粒子群全局路径规划+DWA局部路径规划

    整理了一个路径规划demo,当然图是改进的效果 demo分别有对应的开源 可以在网上搜到,我觉得已经介绍的很详细了,所以不做过多的解释,传送门在下面 ( 写的不好 轻喷 ) 粒子群本质是参数寻优问题,也就是说在运用到路径规划这块需要对规划的路径进行模型建立,这块

    2024年02月06日
    浏览(42)
  • Matlab【旅行商问题】—— 基于模拟退火算法的无人机药品配送路线最优化

    某市引进一架专业大型无人机用于紧急状态下的药品投递,每个站点只能投放一次,可选择指派任意站点的无人机起飞出发完成投递任务,但必须在配送完毕后返回原来的站点。站点地理位置坐标(单位为公理)如下图所示。每个站点及容纳的病人数量见附件.mat数据,现要求

    2024年02月12日
    浏览(56)
  • 回归预测 | MATLAB实现SA-SVM模拟退火算法优化支持向量机多输入单输出回归预测(多指标,多图)

    效果一览 基本介绍 回归预测 | MATLAB实现SA-SVM模拟退火算法优化支持向量机多输入单输出回归预测(多指标,多图),输入多个特征,输出单个变量,多输入单输出回归预测; 多指标评价,代码质量极高;excel数据,方便替换,运行环境2018及以上。 程序设计 完整源码和数据

    2024年02月12日
    浏览(39)
  • 回归预测 | MATLAB实现SA-ELM模拟退火算法优化极限学习机多输入单输出回归预测(多指标,多图)

    效果一览 基本介绍 回归预测 | MATLAB实现SA-ELM模拟退火算法优化极限学习机多输入单输出回归预测(多指标,多图),输入多个特征,输出单个变量,多输入单输出回归预测; 多指标评价,代码质量极高;excel数据,方便替换,运行环境2018及以上。 程序设计 完整源码和数据

    2024年02月11日
    浏览(61)
  • 回归预测 | MATLAB实现SA-BP模拟退火算法优化BP神经网络多输入单输出回归预测(多指标,多图)

    效果一览 基本介绍 回归预测 | MATLAB实现SA-BP模拟退火算法优化BP神经网络多输入单输出回归预测(多指标,多图),输入多个特征,输出单个变量,多输入单输出回归预测; 多指标评价,代码质量极高;excel数据,方便替换,运行环境2018及以上。 程序设计 完整源码和数据获

    2024年02月12日
    浏览(54)
  • 数学建模——模拟退火优化投影寻踪

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档   在考虑综合评价的时候,我们使用了各自主观、客观的方法去求解权重,客观权重的计算依靠着数据本身的分布来决定,有时候会出现各种各样不可抗拒的意外情况,其中在熵权法的解释在就有提到

    2024年02月11日
    浏览(50)
  • 自适应粒子群优化(Adaptive Particle Swarm Optimization,APSO

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 提示:这里可以添加本文要记录的大概内容: 下面是一个关于自适应粒子群优化(Adaptive Particle Swarm Optimization,APSO)的博客,希望可以帮助您。 提示:以下是本篇文章正文内容,下面案例可供参考 自

    2024年02月03日
    浏览(41)
  • matlab智能算法之模拟退火算法

    2023年04月29日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包