目录
一、樽海鞘群优化算法:
二、多目标樽海鞘群优化算法:
三、代码运行结果:
四、代码下载:
一、樽海鞘群优化算法:
澳大利亚学者Seyedali Mirjalili等人于2017年提出了樽海鞘群算法,该算法源于对海底生物樽海鞘群体觅食过程中呈链状移动行为的研究。樽海鞘身形如透明的桶状,运动方式类似水母,以浮游植物为食,通过吸入喷出海水实现移动。由于生活在深海且生物结构脆弱,实验模拟困难,樽海鞘的生物学研究仍处于初期。樽海鞘的成群行为不同于昆虫、蜂群或鸟群等生物的群体智能现象,其链式游动和觅食行为的成因尚不明确,但有研究者认为这是为了提高觅食效率,通过群体协作实现快速移动。
图3-1 樽海鞘个体及樽海鞘链的结构图
SSA算法中樽海鞘以群体形成链状的形式分布,群体由以下两种角色组成:领导者和追随者,领导者是处于群链最前端的生物,剩下的个体则为追随者。领导者负责引领追随者进行协调运动,在搜索空间中找寻更好的食物源作为群体运动目标方向,所有樽海鞘个体通过不断更新自身位置,逐步向最优食物源移动。
在SSA中,定义在d维的搜索空间内樽海鞘链的每个个体的位置矢量为,其中N为种群规模,则由维度为d的N个樽海鞘个体组成,即为一个维矩阵,见式(3-1):
二、多目标樽海鞘群优化算法:
当涉及多目标优化时,常常存在多个冲突的优化目标,而不可能找到一个解同时最大化或最小化所有目标。在这种情况下,帕累托最优解的概念变得很重要。帕累托最优解集指的是在多目标优化问题中,不存在其他解能够在所有目标上至少与之一样好,而在至少一个目标上比它更好的解的集合。换句话说,在帕累托前沿上的每个点都代表了一种解决方案,这些解决方案在一定意义上是最优的,因为它们不能进一步改善一个目标而不损害其他目标。帕累托前沿的产生可以帮助决策者了解在多个目标之间取得的最佳平衡点,以及在不同权衡选择下可能达到的不同解决方案。
MSSA的主要思想是模拟樽海鞘在海洋中的群聚行为,通过合作和信息共享来搜索最优解决方案。与单目标版本相比,MSSA更适用于解决具有多个冲突目标的优化问题。
MSSA算法的主要步骤包括:
-
初始化群体:随机生成一群樽海鞘,每个樽海鞘表示一个解决方案。
-
计算适应度:根据多个目标函数计算每个樽海鞘的适应度值。
-
更新位置:根据一定的规则和策略,更新每个樽海鞘的位置。这通常涉及到樽海鞘个体之间的合作和信息传递,以及对适应度高的解决方案进行更多的关注。
-
重复迭代:重复执行更新位置的步骤,直到满足停止条件,如达到最大迭代次数或收敛到帕累托前沿。
通过这些步骤,MSSA能够在解空间中搜索帕累托最优解集,提供一组平衡的解决方案,以满足多个冲突目标。这使得MSSA成为解决复杂多目标优化问题的有效工具
三、代码运行结果:
1. 单目标优化效果,仅展示部分:
2. 多目标优化效果: