多目标优化算法之SPEA2

本文详细介绍了SPEA(Strength Pareto Evolutionary Algorithm)算法及其升级版SPEA2的工作原理。SPEA通过适应度分配和聚类方法处理非支配解集,而SPEA2引入了邻近估计和新的存档截断策略,以提高搜索效率和避免退化。适应度计算中,SPEA2采用密度估计来增强选择压力,确保边界解的保留。环境选择策略在种群和存档之间进行平衡,优化了保留解的质量。这些改进旨在解决SPEA在种群多样性保持和搜索效率上的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Strength Pareto Evolutionary Algorithm (SPEA)
算法步骤:
Step1:初始化种群P(大小为N)和空的外部储备集P‘(大小为N’)
Step2:将P中的非支配解复制到P’
Sep3:如果P’大小超过N’,通过聚类的方法移除
Step4:计算P和P’中的所有个体适应值
Step5:从P+P’中进行选择操作,直到交配池填满
Step6:交配池中个体进行变异和交叉操作
Step7:是否达到最大迭代次数,if 停止, else Step2.


关于适应值分配
对于P’来说,fi=si=nN+1f_i=s_i=\frac{n}{N+1}fi=si=N+1n 其中si∈[0,1)s_i\in[0,1)si[0,1),n是P’中每个个体i支配P中的解的个数,加1保证取值在0到1区间内
对于P来说,fjf_jfj=1+∑i,j≺‾isi\sum_{i,j\underline{\prec}{i}}s_ii,jisi   wherefj∈[1,N)where f_j\in[1,N)wherefj[1,N),sis_isi表示中种群P中的个体j被非支配解集P’中个体i支配。即P中所有支配j的个体。加1保证P’中的适应度均比P好(适应度值越小,具体有更高的保留到下一代的概率)。如下图所示,
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210112201747770.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dzal9qZXJyeTUyMQ==,size_16,color_
文献中提到的聚类方法
当非支配解集增加导致选择压力减小,减慢搜索速度。
聚类步骤:
Step1:初始化聚类集合C,P’中的每个个体构成一个聚类。C=∪i{{i}}C=\cup_i\{\{i\}\}C=i{{i}}
Step2:if |C|≤\leqN’ (即簇的所有个体小于给定的最大值), go step5, else Step3.
Step3:计算不同簇间两个个体的距离
d=1∣c1∣⋅∣c2∣⋅∑i1∈c1,i2∈c2∣∣i1−i2∣∣d=\frac{1}{|c_1|\cdot|c_2|}\cdot\sum_{i_1\in{c_1},i_2\in{c_2}}\lvert\vert{i_1-i_2}\vert\vertd=c1c21i1c1,i2c2i1i2
Step4:将存在最小距离d的两个簇合并,go to Step2。
Step5:从每个簇中选择一个具有代表个体。(簇内某个个体到其他个体的平均距离最小的个体)作为代表解。
参考文献:Multiobjective Evolutionary Algorithms:A Comparative Case Study and the Strength Pareto Approach


算法升级SPEA2-----Improving the Strength Pareto Evolutionary Algorithm
SPEA缺点:
1.当archive中只有一个,多个个体具有相同适应值。选择压力减小,退化成随机搜索算法
2.聚类只用在储备集archive而为用在中种群所有个体中,丢失外部解集。
3.
与SPEA不同之处:

  • 适应度计算
  • 邻近估计,更加精准搜索
  • 新的存档截断方法,保证边界值的保留
  • archive大小固定
    算法步骤
    NNN(种群大小),N‾(archive大小)\overline{N}(archive大小)N(archive)T(最大迭代次数)T(最大迭代次数)T()
    Step1:初始化,种群P0P_0P0,空的archiveP‾0\overline{P}_0P0,t=0t=0t=0
    Step2:计算适应度
    Step3:环境选择:将PtP_tPtP‾t\overline{P}_tPt中的所有非支配解集复制到P‾t+1\overline{P}_{t+1}Pt+1
    如果P‾t+1\overline{P}_{t+1}Pt+1个数>N‾\overline{N}N,进行剪枝操作
    否则,选择PtP_tPtP‾t\overline{P}_tPt中的支配解集添加到P‾t+1\overline{P}_{t+1}Pt+1中,具体下方的环境选择
    Step4:t>T的或者满足其他的终止条件,将A作为PT+1中非支配解所代表的决策变量集合输出
    Step5:选择操作,对P‾t+1\overline{P}_{t+1}Pt+1进行锦标赛选择放入交配池
    Step6:交配池中的个体进行重组和变异,,将结果存入集合P‾t+1\overline{P}_{t+1}Pt+1,迭代次数+1回到Step2.
    适应度计算:
    S(i)=∣{j∣j∈Pt+P‾t∧j≺i}∣S(i)=|\{j|j\in{P_t+\overline{P}_t}\land{}j\prec{i}\}|S(i)={jjPt+Ptji}
    R(i)=∑j∈Pt+P‾t,i≺jS(j)R(i)=\sum_{j\in{}P_t+\overline{P}_t,i\prec{j}}{S(j)}R(i)=jPt+Pt,ijS(j)
    其中s(i)s(i)s(i)表示个体i支配的个体数。R(i)表示原始适应值,表示个体i,支配i的每个个体j支配的所有个体数之和
    在这里插入图片描述
    当多个个体不相互支配时,R(i)难以实现其作用,因此,在SPEA2中。选k邻近估算密度。计算每个个体到储备集和种群中所有个体的距离,按照递增排序,选第k个作为σik\sigma^k_iσik
    D(i)=1σik+2D(i)=\frac{1}{\sigma^k_i+2}D(i)=σik+21其中k=N+N‾k=\sqrt{N+\overline{N}}k=N+N,分母加2保证值(0,1)
    F(i)=R(i)+D(i)F(i)=R(i)+D(i)F(i)=R(i)+D(i)
    环境选择
    (1)∣p‾t+1∣<∣N‾∣|\overline{p}_{t+1}|<|\overline{N}|pt+1<N,Pt+P‾tP_t+\overline{P}_tPt+Pt中所有个体根据适应度排序选择前N‾−∣p‾t+1∣\overline{N}-|\overline{p}_{t+1}|Npt+1
    (2)∣p‾t+1∣>∣N‾∣|\overline{p}_{t+1}|>|\overline{N}|pt+1>N,其中j∈P‾t+1j\in\overline{P}_{t+1}jPt+1.每次迭代中淘汰个体i,其中i满足
    i≤dj:  ⟺  ∀0<k<∣P‾t+1∣:σik=σjk∨∃0<k<∣P‾t+1∣:[(∀0<l<k:σil=σjl)∧σik<σjk]i\leq_dj:\iff \forall0<k<|\overline{P}_{t+1}|:\sigma_i^k=\sigma_j^k\lor\exist 0<k<|\overline{P}_{t+1}|:[(\forall 0<l<k:\sigma_i^l=\sigma_j^l)\land\sigma_i^k<\sigma_j^k]idj:0<k<Pt+1σik=σjk0<k<Pt+1:[(0<l<k:σil=σjl)σik<σjk]其中σik\sigma_i^kσik
    代表个体i与第k个邻居的距离,上面公式表示具有最小距离的个体被选中删除,如果有多个个体都是距离最小值,则考虑第二个最小距离值,以此类推.具体情况如下图:
    在这里插入图片描述

参考文献:SPEA2: Improving the Strength Pareto Evolutionary Algorithm

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值