论文题目:Performance metrics in multi-objective optimization
2015年在会议上提出的,对近十几年来对专业文献中提出的54个多目标优化指标进行了回顾和分析,讨论了被引用最多的指标的用法、趋势和优缺点.
表中显示了排名前十的评价指标,现在看论文主要看到的就是HV和GD,IGD
引言
一般来说,EA的性能是通过实验测试来评估的,因此,为此定义了一些性能指标。度量主要考虑解集的3个方面:
- 收敛性,即接近理论帕累托最优前沿
- 多样性:分布以及传播的广泛程度
- 解的个数.
定义
多目标优化问题一般有D个决策变量,N个目标函数,所以他会有两个空间,一个是决策变量空间(D维度,代表决策变量的分布情况),一个是目标空间(N维度,表示每个目标值的分布情况,pareto前沿就在这上面)
Pareto Dominance
给定在决策变量空间的两个向量S1,S2,如果S1支配S2,则称S1在任何目标函数空间的值中都不劣于S2,且在至少一个目标函数中严格更优.
Pareto optimal set and Pareto optimal front
对于给定的一个多目标优化问题MOP,帕累托最优集(POS)就是包含所有关于决策变量空间中非支配解的集合.
那么对于给定的MOP及其对应的帕累托最优集(POS),他的帕累托最优前沿(PF)就是将POS映射到目标空间的结果.
Approximation set(近似集)
A为目标空间的一组向量,如果A中的任何一个元素不支配或者不等于A中的任何其他向量,则称A为近似集,所有近似集的集合记为Z.
再解决现实问题的结果通常都是近似集.
Performance metric
就是设计一个函数,可以包含对每个集合赋予一个实数值,最后使用实数值来比较不同算法在求解多目标优化问题时的质量.
并对指标进行了分类
- Cardinality metrics(基数度量):直观上说就是解的数量多
- Accuracy metrics(精度度量):指A的收敛性,代表离PF的距离
- Diversity metrics(多样性度量):指A中解的相对距离和A所覆盖的范围
如果度量作为参数只有一个被评估的近似集A,则称该度量是一元(Unary metrics) HV,GD,IGD都是一元.
HV
根据上面的分类,它是一元的,且是包含了精确性和多样性.
Hypervolume(HV)是一种用于衡量多目标优化算法性能的指标,用于度量目标空间的体积,该体积至少被非支配解集中的一个解所覆盖.
计算HV指标的关键是确定参考点。参考点是一个向量,其中的每个元素都是目标函数在已知最优解上的最大值。通过将解集中的每个解与参考点进行比较,可以计算出每个解所贡献的超体积,进而得到整个解集的HV值。
优点:
同时评价收敛性和多样性,并能以单个数字得到解与最优集合的接近程度,以及在某种程度上得到目标空间上解的分布。
缺点:
HV指标的计算复杂度较高,尤其是对于高维多目标优化问题,并且参考点的选择也会影响HV指标的值。
GD
Generation Distance是一种用于测量得到的解与已知最优解之间的距离的绩效指标。其计算公式为:GD=∑(d(i)−d(r))/(m−1),其中d(i)表示得到的解i与最近的参考点之间的欧几里得距离,d(r)表示帕累托前沿上的最优解与最近的参考点之间的欧几里得距离,m为目标的个数。
GD值越小,说明得到的解越接近帕累托前沿上的最优解。
优点
相比HV,计算代价是轻量级的。
缺点:
1)仅度量解集的收敛性,无法评估多样性;
2)需要参考集
PopObj = Population.best.objs;
if size(PopObj,2) ~= size(optimum,2)
score = nan;
else
Distance = min(pdist2(PopObj,optimum),[],2);
score = norm(Distance)/length(Distance);
end
IGD
Inverted Generational Distance和GD相似,但是同时考虑了多样性和收敛性,对于真实的最优帕累托前沿中的每个解y,找到与其最近的PF中的解x,计算其欧式距离,取平均值而不需开方,如果
的数量大于PF数量,那么IGD就能最完整的表达PF的性能,IGD值越好,代表算法多样性和收敛性更好。
优点:
可同时评价收敛性和多样性,且计算量小
与GD指标相比,IGD指标具有更好的数学性质和计算稳定性。
缺点:
需要有参考点
PopObj = Population.best.objs;
if size(PopObj,2) ~= size(optimum,2)
score = nan;
else
score = mean(min(pdist2(optimum,PopObj),[],2));
end