目录
前言
以下是我个人对群智能优化算法文章一些看法,有不对的地方还请大家多批评指正:
本篇主要是关于我个人对目前关于群智能优化算法的文章分析和部分改进策略的分析。
目前没有任何一种群智能优化算法或其改进算法可以在所有问题中均展现良好性能,不同的问题需要采用不同的优化算法来解决,这样也就出现了很多关于采用群智能优化算法求解工程应用的文章,但是所提算法真的就有效吗?测试函数又能说明什么呢?
基于上述思考,我做了以下分析,希望能帮助到正在用智能优化算法的人。
一、目前群智能算法类文章分析
1.缺少实用性及写作定式问题
首先无论TOP期刊还是其他期刊中所提或所改进算法描述的性能有多优异,但是不得不承认现实企业中用这些算法来解决实际的问题的还是非常少的(没说那么绝对,其实我觉得根本就不会用智能算法来求解实际问题)。
发TOP期刊肯定还是有难度的,我觉得以后群智能优化算法发TOP会越来越难,因为目前的文章几乎已经形成写作定式了,即使是自己提出的算法。无非也就是根据物理定律、自然界生物习性等等,一尘不变的初始化种群,然后全局和局部的函数表达式(表达式里会有一些随迭代次数而变化的参数或者其他的一些固定参数),加上边界条件限制也就构成了一个新算法了(有兴趣的可以去比较一下鹈鹕优化算法和北方苍鹰优化算法、灰狼优化算法和黑猩猩优化算法)。然后在写文章上开始大量堆工作量,CEC2005、CEC2017、CEC2022什么的全来一遍,给出收敛曲线图,给出最优值,最差值,平均值等等的对比表,也可以加上Fridman测试,最后应用在加上各种算法在压力容器等工程应用问题上的求解结果,就构成了这样一篇文章。
当然也要承认确实有优秀的群智能优化算法被提出来了,往后想靠这些算法发文章应该会越来越难,要求的创新性可能会越来越高,固定的格式也许会导致审稿人的疲劳。
2.改进算法的分析
我觉得目前部分文章中的改进算法,都是从结果反推策略有效,就是测试函数上效果好了,就反推这个改进策略是如何合理,如何有效的,毕竟存在即合理。(举个例子就是,你的女朋友想找个理由生气,你即使什么都没做错,但她总会找到生气的理由)
也不能说这样就是错的,有时候误打误撞确实用上这个策略,效果就是好了。其实我是觉得应该从算法结构上进行一点一点的改进,在不增加原算法的复杂度的前提下,切实针对容易陷入局部最优的部分,增加对应的改进策略。
但是就像我上一篇文章中写到的那样,群智能优化算法从找工作的实用性上考虑,不值得深入研究。如同现在快餐时代的爱情,能快速出一篇论文即可,没必要太在意背后的深层次原理,效果有了一定提升就可以动手写论文了。
二、测试函数中快速收敛的问题
1.在改进算法时的快速收敛
那么在改进测试函数时出现快速收敛的情况是好还是坏呢?多数情况下这是一个好的情况,也是我们最想得到的结果,如下图所示即在测试函数下快速收敛。
如上面收敛曲线图所示,红色算法快速收敛,我们假设该算法的搜索表达式如下:
大家觉得目前有没有什么问题呢?我觉得是有的,问题在哪,还往下一节看。
2.测试函数分类
测试函数,大体分为三类;1)单峰测试函数;2)多峰测试函数;3)固定多峰测试函数
以经典单峰测试函数Sphere为例,
大多数单数、多峰测试函数的之都是0,而固定多峰的测试函数不是0.
所以上一小节中的问题相信大家看出来了把,关键在于w因子,w是一个非常接近于0的数,这也导致了位置更新公式中的X无限接近于0,即使该算法不进行迭代寻优,其值也是无线接近于0的。
这也就是算法在单峰多峰测试函数上效果好,而在多峰效果上就差一些的原因。
当然值得一说的是,改进算法并不是在测试函数集上都好才算成功,比如CEC2005,23个测试函数中,除了单峰多峰外,固定多峰能有2-3个效果是好的,那就算成功了(同理在CEC2017和CEC2022等测试函数中也不用全是最优值才算改进成功)。
3.本章小结
上诉的问题只是我自己的一些想法,审稿人也许根本不会关注,我们在做改进时,稍微注意一下就好,自己写文章还是以有效果为主,只要能提升效果的方法,那就是好方法。
总结
所提算法是不是真的有效,这个其实很难考证。算法在测试函数上效果好,也无法保证其在实际工程应用上效果就好,在一种应用上效果好,无法保证在其他应用上效果还好,但是具体效果是好是坏,谁又会去复现考证呢?
后续我会接着分享相关想法,有需要的可关注我。
同时主页其他作品有一些代码的获取方式,有需要的可自行下单(入门学习还是有一定帮助的)。