群优化算法改进策略--佳点集初始化
根据“没有免费的午餐”,,所以很多学者根据自身的专业问题需求,对基础优化算法进行了改进和提升,以期获得更为优秀的性能。等等。多策略就是三三两两改进策略的排列组合。在排列组合的同时,保守估计:95%群体智能优化算法的初始化方式是一个随机初始化形式,即其中,lb为变量下界,ub为上界,D为变量维数。那么,可能是因为实现简单,随机性强。这种初始化方式有没有弊端呢?据文献[1,2]报道,是有的。
引言
根据“没有免费的午餐”,没有一个单一的群体智能优化算法可以解决所有的优化问题,每一个群体智能优化算法都有局限性和限制,所以很多学者根据自身的专业问题需求,对基础优化算法进行了改进和提升,以期获得更为优秀的性能。纵观茫茫文献,改进策略有非常之多,比如:混沌映射(不完全统计有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次。
结果展示
参考文献
-
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.
-
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代码下载
微信搜索并关注-优化算法侠,或扫描下方二维码关注,以算法名字搜索历史文章即可下载。
320多种基础的群智能优化算法-matlab
175种群智能优化算法python库
求解cec测试函数-matlab
解决12工程设计优化问题-matlab
求解11种cec测试函数-python
解决12种工程设计优化问题-python
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)