关于多目标进化算法评估指标
超体积指标(HV,Hypervolume):
介绍:
算法获得的非支配解集与参照点围成的目标空间中区域的体积。HV值越大,说明算法的综合性能越好
优点:同时评价收敛性和多样性;无需帕累托前沿进行评估
缺点:面对高维问题时,计算复杂度高;参考点的选择在一定程度上决定超体积指标值的准确性
示例:
示例图片:
示例图片说明:
棕色为一开始的参考点。
计算方法为首先按照第一个维度x的坐标排序,然后从最大的x坐标开始。
对于第一个参考点采用以下做法:
(参考点的y-第一个点的y)*(参考点的x-第一个点的x)
对于其他的参考点采用以下做法:
(前一个点的y-当前点的y)*(前一个参考点的x-当前点的x)
最后累加得到超体积
示例代码:
% 以下是hypervolume函数的简单实现(示例)
function hv = hypervolume(points, refPoint)
% 简单三维超体积计算(假设无支配关系)
if isempty(points)
hv = 0;
return;
end
% 按第一个维度排序
[~, idx] = sort(points(:,1), 'descend');
sortedPoints = points(idx, :);
hv = 0;
prevX = refPoint(1);
for i = 1:size(sortedPoints, 1)
p = sortedPoints(i, :);%逐步分割目标空间,避免体积重复计算
width = prevX - p(1);
height = refPoint(2) - p(2);
depth = refPoint(3) - p(3);
hv = hv + width * height * depth;
prevX = p(1);
end
end