博舍

优化算法笔记(二)优化算法的分类 优化算法和智能算法

优化算法笔记(二)优化算法的分类

1.优化算法的分类

(以下描述,均不是学术用语,仅供大家快乐的阅读)

1.1常见的优化算法

在分类之前,我们先列举一下常见的优化算法(不然我们拿什么分类呢?)。1遗传算法Geneticalgorithm2粒子群优化算法ParticleSwarmOptimization3差分进化算法DifferentialEvolution4人工蜂群算法ArtificialBeeColony5蚁群算法AntColonyOptimization6人工鱼群算法ArtificialFishSwarmAlgorithm7杜鹃搜索算法CuckooSearch8萤火虫算法FireflyAlgorithm9灰狼算法GreyWolfOptimizer10鲸鱼算法WhaleOptimizationAlgorithm11群搜索算法Groupsearchoptimizer12混合蛙跳算法ShuffledFrogLeapingAlgorithm13烟花算法fireworksalgorithm14菌群优化算法BacterialForagingOptimization以上优化算法是我所接触过的算法,没接触过的算法不能随便下结论,知之为知之,不知为不知。其实到目前为止优化算法可能已经有几百种了,我们不可能也不需要全面的了解所有的算法,而且优化算法之间也有较大的共性,深入研究几个之后再看其他优化算法上手速度会灰常的快。优化算法从提出到现在不过50-60年(遗传算法1975年提出),虽种类繁多但大多较为相似,不过这也很正常,比较香蕉和人的基因相似度也有50%-60%。当然算法之间的相似度要比香蕉和人的相似度更大,毕竟人家都是优化算法,有着相同的目标,只是实现方式不同。就像条条大路通罗马,我们可以走去,可以坐汽车去,可以坐火车去,也可以坐飞机去,不管使用何种方式,我们都在去往罗马的路上,也不会说坐飞机去要比走去更好,交通工具只是一个工具,最终的方案还是要看我们的选择。

1.2优化算法的模型

上面列举了一些常见的算法,即使你一个都没见过也没关系,后面会对它们进行详细的介绍,但是对后面的分类可能会有些许影响,不过问题不大,就先当总结看了。再对优化算法分类之前,先介绍一下算法的模型,在笔记(一)中绘制了优化算法的流程,不过那是个较为简单的模型,此处的模型会更加复杂。上面说了优化算法有较大的相似性,这些相似性主要体现在算法的运行流程中。优化算法的求解过程可以看做是一个群体的生存过程。

有一群原始人,他们要在野外中寻找食物,一个原始人是这个群体中的最小单元,他们的最终目标是寻找这个环境中最容易获取食物的位置,即最易存活下来的位置。每个原始人都去独自寻找食物,他们每个人每天获取食物的策略只有采集果实、制作陷阱或者守株待兔,即在一天之中他们不会改变他们的位置。在下一天他们会根据自己的策略变更自己的位置。到了某一天他们又聚在了一起,选择了他们到过的最容易获取食物的位置定居。一群原始人=优化算法中的种群、群体;一个原始人=优化算法中的个体;一个原始人的位置=优化算法中个体的位置、基因等属性;原始人变更位置=优化算法中总群的更新操作;该位置获取食物的难易程度=优化算法中的适应度函数;一天=优化算法中的一个迭代;这群原始人最终的定居位置=优化算法所得的解。优化算法的流程图如下:

算法流程图1.3优化算法的分类

对优化算法分类得有个标准,按照不同的标准分类也会得到不一样的结果。首先说一下我所使用的分类标准(动态更新,有了新的感悟再加):

算法的由来,即算法是模拟了某种动物的觅食、搜索过程,还是模拟了群体交配、繁衍的过程,亦或是模拟了人工、物理过程。算法的更新过程,上面的模型介绍了算法的抽象流程,使用更新过程分类即看算法中的个体按照什么方式来更新自己的位置。1.3.1按照由来分类

按由来分类比较好理解,就是该算法受何种现象启发而发明,本质是对现象分类。

算法由来类别1遗传算法进化论人类理论2粒子群优化算法鸟群觅食生物生存3差分进化算法进化论人类理论4人工蜂群算法蜜蜂觅食生物生存5蚁群算法蚂蚁觅食生物生存6人工鱼群算法鱼群觅食生物生存7杜鹃搜索算法杜鹃产卵生物生存8萤火虫算法萤火虫求偶生物生存9灰狼算法狼群觅食生物生存10鲸鱼算法鲸鱼觅食生物生存11群搜索算法生产消费跟随模型人类理论12混合蛙跳算法青蛙觅食生物生存13烟花算法烟花物理现象14菌群优化算法菌群生长生物生存

可以看出算法根据由来可以大致分为有人类的理论创造而来,向生物学习而来,受物理现象启发。其中向生物学习而来的算法最多,其他类别由于举例有偏差,不是很准确,而且物理现象也经过人类总结,有些与人类现象相交叉,但仍将其独立出来。类别分好了,那么为什么要这么分类呢?

当然是因为要凑字数啦,啊呸,当然是为了更好的理解学习这些算法的原理及特点。向动物生存学习而来的算法一定是一种行之有效的方法,能够保证算法的效率和准确性,因为,如果使用该策略的动物无法存活到我们可以对其进行研究,我们也无法得知其生存策略。(而这也是一种幸存者偏差,我们只能看到行之有效的策略,但并不是我们没看到的策略都是垃圾,毕竟也发生过小行星撞地球这种小概率毁灭性事件。讲个冷笑话开cou心zhi一shu下:一只小恐龙对他的小伙伴说,好开心,我最喜欢的那颗星星越来越亮了(完)。)但是由于生物的局限性,人们所创造出的算法也会有局限性:我们所熟知的生物都生存在三维空间,在这些环境中,影响生物生存的条件比较有限,反应到算法中就是这些算法在解决较低维度的问题时效果很好,当遇到超高维(维度>500)问题时,结果可能不容乐观,没做过实验,我也不敢乱说。

受人类理论得出的算法,与在处理较高维问题时应该会有着较好的结果,因为人类的理论中的维度不受现实束缚,可能会有超高维的情况,比如基因的数量。但是能人类的理论都是在人类的理解范围内,可能有些理论与人类认知不符,或者该理论其实是错误的,只是大家都没有发现。这就尴尬了,从错误的理论上学习而来的东西,有较大的概率其实也是错误的。所有这类优化算法能够处理维度较高的问题,但是很有可能得不出较好的结果。最后实名diss一下由物理现象发展而来的算法。物理现象,没有任何智能,其现象完全取决于观测者,因果不明,为什么敢说能解决问题,我也不清楚,可能只是想套用一下物理现象,其实算法与现象关系不大,其他类别也大多如此(不小心把实话说出来了不会有事吧)。1.3.2按照更新过程分类

按更新过程分类相对复杂一点,主要是根据优化算法流程中更新位置操作的方式来进行分类。更新位置的操作按我的理解可大致分为两类:1.跟随最优解;2.不跟随最优解。还是上面原始人的例子,每天他有一次去往其他位置狩猎的机会,他们采用何种方式来决定今天自己应该去哪里呢?如果他们的策略是“跟随最优解”,那么他们选取位置的方式就是按一定的策略向群体已知的最佳狩猎位置(历史最佳)或者是当前群体中的最佳狩猎位置(今天最佳)靠近,至于是直线跑过去还是蛇皮走位绕过去,这个要看他们群体的策略。当然,他们的目的不是在最佳狩猎位置集合,他们的目的是在过去的途中看是否能发现更加好的狩猎位置,去往已经到过的狩猎地点再次狩猎是没有意义的,因为每个位置获取食物的难易程度是固定的。有了目标,大家都会朝着目标前进,总有一日,大家会在谋个位置附近相聚,相聚虽好但不利于后续的觅食容易陷入局部最优。什么是局部最优呢?假设在当前环境中有一“桃花源”,拥有上帝视角的我们知道这个地方就是最适合原始人们生存的,但是此地入口隐蔽“山有小口,仿佛若有光”、“初极狭,才通人。”,是一个难以发现的地方。如果没有任何一个原始人到达了这里,大家向着已知的最优位置靠近时,也难以发现这个“桃源之地”,而当大家越聚越拢之后,“桃源”被发现的可能性越来越低。虽然原始人们得到了他们的解,但这并不是我们所求的“桃源”,他们聚集之后失去了寻求“桃源”的可能,这群原始人便陷入了局部最优。

如果他们的策略是“不跟随最优解”,那么他们的策略是什么呢?我也不知道,这个应该他们自己决定。毕竟“是什么”比“不是什么”的范围要小的多。总之不跟随最优解时,算法会有自己特定的步骤来更新个体的位置,有可能是随机在自己附近找,也有可能是随机向别人学习。不跟随最优解时,原始人们应该不会快速聚集到某一处,这样一来他们的选择更具多样性。按照更新过程对上面的算法分类结果如下

算法类别1遗传算法不跟随最优解2粒子群优化算法跟随最优解3差分进化算法不跟随最优解4人工蜂群算法跟随最优解5蚁群算法跟随最优解6人工鱼群算法跟随最优解7杜鹃搜索算法跟随最优解8萤火虫算法跟随最优解9灰狼算法跟随最优解10鲸鱼算法跟随最优解11群搜索算法跟随最优解12混合蛙跳算法跟随最优解13烟花算法跟随最优解14菌群优化算法跟随最优解

可以看出上面不跟随最优解的算法只有遗传算法和差分进化算法,他们的更新策略是与进化和基因的重组有关。因此这些不跟随最优解的算法,他们大多依据进化理论更新位置(基因)我把他们叫做进化算法,而那些跟随群体最优解的算法,他们则大多依赖群体的配合协作,我把这些算法叫做群智能算法。

1.4总结

目前我只总结了这两种,分类方法,如果你有更加优秀的分类方法,我们可以交流一下:

进化算法群智能算法人类理论1遗传算法3差分进化算法11群搜索算法生物生存2粒子群优化算法4人工蜂群算法5蚁群算6人工鱼群算法7杜鹃搜索算法8萤火虫算法9灰狼算法10鲸鱼算法12混合蛙跳算法14菌群优化算法物理现象13烟花算法

目录上一篇优化算法笔记(一)优化算法的介绍下一篇优化算法笔记(三)粒子群算法(1)

智能优化算法:向量加权平均算法

智能优化算法:向量加权平均算法文章目录智能优化算法:向量加权平均算法1.算法原理1.1初始化1.2更新规则阶段1.3向量合并阶段1.4局部搜索阶段2.实验结果3.参考文献4.Matlab代码摘要:向量加权平均算法(Weightedmeanofvectorsalgorithm,INFO),是于2022年提出的一种新型智能优化算法。该算法通过向量的不同加权平均规则,来达到寻优目的。具有寻优能力强,收敛速度快等特点。1.算法原理1.1初始化

与其他优化算法一样,种群个体在搜索空间内随机初始化。

1.2更新规则阶段

INFO使用基于均值的规则(MeanRule)更新向量的位置,这是从一组随机向量的加权均值中提取的。此外,为了提高全局搜索能力,在更新规则算子中加入了收敛加速部分(CA)。更新规则的主要公式定义为:z1lg={xlg+σ× MeanRules + randn ×xbs−xa1gf(xbs)−f(xa1g)+1, rand 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇