改进强度Pareto进化算法SPEA2,一种经典的多目标优化算法(Matlab)

文章来源于我的个人公众号:KAU的云实验台,主要更新智能优化算法的原理、应用、改进

在这里插入图片描述

进化算法(EA)是模拟生物在自然环境中的进化过程而形成的一类自适应全局优化概率搜索算法。进化算法同时对整个群体进行操作,单次运行可以搜索到多个解,可以处理传统优化方法难以解决的复杂优化问题,因此进化算法非常适用于求解多目标优化问题。

在多目标进化算法的发展中,SPEA是经典的第二代多目标优化算法。经典的第二代多目标优化算法还有:PAES、PESA、PESA-II、SPEA2等。相较于第一代多目标优化算法(以NSGA为代表,非支配排序和适应度共享机制为特征),第二代多目标优化算法最大的特点是在搜索过程中,维持一个外部存档,用来保存Pareto最优解。

而本文要介绍的SPEA2,最早是由Zitzle和Thiele于1999年提出了SPEA(Strength Pareto Evolutionary Algorithm)[1],并在2001年针对其存在的不足做出了改进,提出了SPEA2[2]。SPEA2 也是基于遗传算法,其通过裁减操作控制外部种群数量,能够获得分布均匀的Pareto前沿,在性能上比NSGA-II和SPEA有较大提升,是较为成熟的多目标遗传算法,下面KAU将详细介绍其原理及其代码实现,一起来学习这个经典的多目标算法吧。

00 文章目录

1 SPEA2原理

2 代码目录

3 算法性能

4 源码获取

01 SPEA2原理[3]

SPEA2基于Pareto支配的概念进行适应值分配和选择操作,并采用小生境法和外部存档精英保留机制,具有很强的收敛能力,并且所得解集也具有良好的分布性。

SPEA2通过适应值来选择精英种群,从精英种群和进化种群中的非支配解中选择下一代精英种群;下一代进化种群是精英种群通过锦标赛选择策略选择一定的个体放入交配池并对它们进行交叉、变异形成的。通过两个种群的更新方式对两个种群进行迭代更新,最后的外部(精英)种群即为待求问题的优化解集。

SPEA2算法的核心在于适应度函数的构造以及进化种群和外部种群的更新方式,下面将介绍这两个部分:

1.1 适应度赋值

在SPEA2 算法中,个体适应值不仅需要同时考虑其支配信息和被支配信息,而且还加入了个体密度信息对非支配个体进行分布性评价来得到分布优秀的解集。

SPEA2 算法适应度函数:
在这里插入图片描述

其中,R(i)代表第i个个体的粗适应度值,表示所有支配个体i的个体j在进化种群和外部种群中支配其他个体的数量的总和:
在这里插入图片描述

其中S(i)代表第i个个体的强度值,定义如下:
在这里插入图片描述

其中Pt是进化种群,P*t是外部种群。由上式可知,S(i)表示个体i在进化种群和外部种群中所支配的个体数量总和。

由上式可知,R(i)越大则支配i的个体支配其他个体的数量越多,意味着支配i的个体越多,也即i是支配个体,而若R(i)越小,则趋近于非支配个体,R(i)=0即为非支配个体。

另一方面,D(i)为第 i 个个体对应的密度函数,表达式如下:

在这里插入图片描述

其中,分式中的变量为为个体i到第k个个体的欧式距离,k等于根号下(M+N),其中M为进化种群的大小,N为外部种群的大小。

由此,当个体间的欧氏距离越小,则D(i)越大,个体越密集,因此其能够描述个体i的分布情况,有助于SPEA2找到分布性好的解集。

以上就是SPEA2的适应度策略,既包含支配关系的信息,也包含了个体的密度信息,有利于算法找到优异、分布性好的Pareto近似解,也是其相对于SPEA改进的一个地方。

1.2外部档案维护

在外部精英种群更新时,先将两个种群中适应度小于1的个体放入下一代精英种群中,因为适应值小于1说明该个体为非支配个体:
在这里插入图片描述

此时有三种情况:

①若非支配个体数目刚好等于外部档案集大小,则外部种群更新完成;

②若非支配个体的数目小于外部档案集大小,则需选择若干支配个体放进下一代外部精英种群中,使得外部种群的数目达到外部档案集大小;

③若非支配个体数量超过外部档案集大小,则需对其中的个体进行剔除,使非支配个体的数目等于外部档案集大小。

而其中的剔除方法:

对外部档案中的个体i,如果对所有的档案中的其他个体j,均有i≤j,则将个体i剔除,i≤j的数学表达式:
在这里插入图片描述

也就是拥有最小欧氏距离的个体会被剔除,此策略较之SPEA基于聚集的删减方法,能够获得更好的分布性。

1.3 SPEA2算法流程
在这里插入图片描述

来源:文献 [3]

1.3 改进

SPEA2的适应度策略以及外部种群的更新策略能够充分考虑个体支配以及密度信息,所获得的Pareto解集分布性好。然而,当非支配解集数量小于外部精英档案数量时,会加入支配个体,其精英性将丧失;其次,其种群搜索策略上,采用了交叉变异,这些策略使得算法在局部搜索性能上有所欠缺。

这两点都是可以进行改进的方向,但本文着重于SPEA2的原理讲解,因此后续将更新其改进算法。

02 代码目录

在这里插入图片描述

源码来源于 公茂果和焦李教授
所编写的版本,KAU这里根据前面介绍得到SPEA2的流程对其进行 重注释
,以便于各位对算法流程的理解。
在这里插入图片描述

03 算法性能

可选择的测试函数有22种,MISA、Binh、Fonseca等等,KAU这里选择一个三目标函数Viennet,其优化结果如下:

在这里插入图片描述

04 源码获取

在公众号(KAU的云实验台)后台回复 SPEA2 即可

参考文献

[1]ZITZLER E,THIELE L.Multiobjective evolutionary algorithms:A comparative case study and the strength pareto approach[J].IEEE Transactions on Evolutionary Computation,1999, 3(4): 257-271.

[2] ZITZLER E, LAUMANNS M, THIELE L. SPEA2: improving the strength Pareto evolutionary algorithm[R/OL]. TIK-report,2001, 103: (2001-05).https://doi.org/10.3929/ethz-a-004284029.

[3] 王澎涛.基于进化算法和气象信息的三峡—葛洲坝通航调度研究[D].华中科技大学,2016.

另:如果有伙伴有 待解决的优化问题
(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。

如果这篇文章对你有帮助或启发,可以点击右下角的 赞/在看
(ง •̀_•́)ง(不点也行)

  • 16
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值