![](https://csdnimg.cn/release/download_crawler_static/87486126/bg5.jpg)
17) /*R2 排序*/
18) k=N−|¯Pt|;
19) Rt = R2ranking(At−¯Pt,VV,zimin,zimax,k);
20) Pt+1=¯Pt∪Rt;
21) end if
22) end if
当 At 中非支配解的数目大于 N 时, 采用种群分解策略和 R2 排序选择管理种群. 在执
行上述操作之前, 首先要进行目标值标准化: 种群中解的目标值为 ft(p)={ft,1(p),ft,2(p),
⋯,ft,|At|(p)}, p∈At, 目标值标准化首先通过非支配解集合计算得出理想点 zmin = (z1min,z2min,
⋯,zMmin)和最差点 zmax = (z1max,z2max,⋯,zMmax), zimin = min(ft,i(p))和 zimax = max(ft,i(p)), i=1,
⋯,M; 则 Ft(p)转化为 F′t(p)经过如下标准化等式:
f′t,i(p)=ft,i(p)−ziminzimax−zimin
i∈{1,⋯,M}, ft,i(p)和 f′t,i(p)分别表示第 i 个解的标准化前和标准化后的目标值.
种群进行目标值标准化以后就会进入种群分解, 从而获得解集¯Pt, 这时候需要判断解
集¯Pt 中解的数目是否满足种群规模, 若不满足就需要采用 R2 排序选取缺少的 k 个解得到
解集 Rt. 值得注意的是, 在很多情况下集合¯Pt 中解的数目是有限的, 从而无法满足种群规
模. 因此, 利用 R2 排序能够从种群分解淘汰的解中保留具有良好收敛性和多样性的解以满
足种群规模.
2.3 种群分解
种群分解选择过程如算法 3 所示. 首先, 通过将每个解与最近的参考向量联系起来, 把
种群 At 分解为一组子种群. 角度可以衡量解和参考向量之间的空间关系, 如果一个解和参
考向量之间的角度最小, 那么就会被分配到这个参考向量所代表的子种群中.
算法 3. 种群分解
输入: At (非支配解集合), F′t(p) (标准化后的目标值), VV (参考向量);
输出: ¯Pt (种群分解获得的解集合);
1) /*分解种群*/
2) for i=1 to |At| do
3) for j=1 to N do
4) θt,i,j=arccosf′t,i(p)⋅vt,j‖f′t,i(p)‖;
5) end for
6) end for
7) for i=1 to |At| do
8) r=argminj∈{1,⋯,N}θt,i,j;
9) ¯Pt,r=¯Pt,r∪{St,i};