引言

根据“没有免费的午餐”,没有一个单一的群体智能优化算法可以解决所有的优化问题,每一个群体智能优化算法都有局限性和限制,所以很多学者根据自身的专业问题需求,对基础优化算法进行了改进和提升,以期获得更为优秀的性能。纵观茫茫文献,改进策略有非常之多,比如:混沌映射(不完全统计有10个)、柯西变异、高斯变异、差分变异、t分布扰动变异、随机游走、反向学习、莱维(levy)飞行等等。多策略就是三三两两改进策略的排列组合。在排列组合的同时,哪些改进策略是起主导作用?哪些又是氛围组?

本期介绍 改进策略--佳点集初始化

纷传

保守估计:95%群体智能优化算法的初始化方式是一个随机初始化形式,即

图片

其中,lb为变量下界,ub为上界,D为变量维数。那么,为什么这么多优化算法要选择这种初始化方式呢?可能是因为实现简单,随机性强。

这种初始化方式有没有弊端呢?据文献[1,2]报道,是有的。随机生成的种群在整个解空间分布不均匀,在某些区域很聚集,又在某些区域很分散,导致算法对整个搜索空间的利用率不高,种群多样性不强。

针对随机初始化方式的问题,诸多学者提出并使用了佳点集初始化。佳点集理论源自我国著名数学家华罗庚。假设Hs是s维欧氏空间的单位立方体,其中存在点集:

它的偏差满足:

其中C(r,ε)是常数,只与r,ε(ε>0)有关。那么Pn(k)称为佳点集,r称为佳点集。佳点集r的值为:

其中,p是满足(p-3)/2≥s 的最小素数。(关于佳点集更多内容,互联网、中国知网上有很多,这里不在赘述)

因此,基于佳点集理论,新的初始化策略为:

其中upper为上界,low为下界。

佳点集初始化和随机初始化简单对比

首先将佳点集初始化和随机初始化进行简单的对比。在二维空间和三维空间中生成500个点。很容易发现,随机初始化方式在某些区域很聚集,又在某些区域很分散。而佳点集初始化比随机节点分布得更均匀。这让算法有更好的遍历性,利于算法获得最好的全局寻优效果。

怎么理解呢?随机初始化的随机性过高, 有可能存在第一代解与最优值距离非常远的现象。若第一代解的值与最优值很接近,不仅可以提高收敛速度,在一定迭代次数的前提下,良好的初始解还可以提高寻优精度。在优化前并不知道最优解的具体位置,因此可采用均匀分布的思想,将种群初始值均匀的分布在允许范围内,可以使第一代解最大限度的接近最优值。也就是说:虽然没有站在巨人的肩膀上,但也站在了巨人的脚背上

算法对比

本期以鲸鱼优化算法(WOA)源码和2024年发表在1区sci期刊上的冠豪猪优化算法(CPO)(源码)作为例子。为了方便对比,改进后的算法暂取名为g-WOA和g-CPO。各位可大开脑洞,为你的算法起个时髦的名字。

最后,在常用的测试函数中进行对比,最大迭代次数:500次,运行10次

结果展示

参考文献

  1. Fang Zhu, Guoshuai Li, Hao Tang, Yingbo Li, Xvmeng Lv, Xi Wang,Dung beetle optimization algorithm based on quantum computing and multi-strategy fusion for solving engineering problems,Expert Systems with Applications,Volume 236,2024,121219,https://doi.org/10.1016/j.eswa.2023.121219.

  2. Chixin Xiao, Zixing Cai and Yong Wang, "A good nodes set evolution strategy for constrained optimization," 2007 IEEE Congress on Evolutionary Computation, Singapore, 2007, pp. 943-950, doi: 10.1109/CEC.2007.4424571.

Matlab代码下载

微信搜索并关注-优化算法侠,或扫描下方二维码关注,以算法名字搜索历史文章即可下载。

有用 or 没用?这是一个问题

320多种基础的群智能优化算法-matlab

速来下载!超320种基础优化算法!-Matlab版(截至2023.12.02)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247485602&idx=1&sn=806af7a9a7169b058e179ca2a089c287&chksm=c12be4a7f65c6db15c5969dd0223d2e42759a8e24a263fb71abac3b5015c0cabe2c5bdbbf285&token=649838004&lang=zh_CN#rd

175种群智能优化算法python库

超175+种群智能优化算法Python库!!!icon-default.png?t=N7T8http://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247484577&idx=1&sn=ed0b2e27b73e738c094c7534a63a2cda&chksm=c12be8a4f65c61b2f3d90e2b4d1f480f8d0bb038b6598828ebf2434006e07925f8102af9795f&scene=21#wechat_redirect

求解cec测试函数-matlab

最新最火!cec2022测试函数来了(附Matlab代码)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247484693&idx=1&sn=ce311acb26bee2894db6fe90776288bd&chksm=c12be910f65c6006af080b1e97ad5514eee06b64d2caeeac2008b8c06fdc3ba379455e9ca709&scene=21#wechat_redirect

解决12工程设计优化问题-matlab

略微出手,工程设计问题(12)(附Matlab代码)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247485052&idx=1&sn=80e5573c1c005ee5640e44935044ee35&chksm=c12bea79f65c636fc73758b4f4893502bd89cbd1c5d15d7db15e8b5c94eeae40450439d44944&token=681266555&lang=zh_CN#rd

求解11种cec测试函数-python

一网打尽!170+种优化算法求解11种cec测试函数(附Python代码)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247484745&idx=1&sn=1957f7c9b44c47f171c1cd46054d1679&chksm=c12be94cf65c605a5e0f8404e6c90964ce0743b7c25ff5f98a03dedc77e5eec5b48bf0c0e782&token=681266555&lang=zh_CN#rd

解决12种工程设计优化问题-python

大放送!170+种优化算法解决12种工程设计问题(附python代码)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247485068&idx=1&sn=c913be0f2445f8b4d3e944569f5e599f&chksm=c12bea89f65c639f1df0f8e6cacffc1fdffa96683d10743094435ee6b0b55573a5bc8eec7eb3&token=681266555&lang=zh_CN#rd

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐