超体积指标(Hypervolume Indicator,S 度量)详析
前言
提醒:
文章内容为方便作者自己后日复习与查阅而进行的书写与发布,其中引用内容都会使用链接表明出处(如有侵权问题,请及时联系)。
其中内容多为一次书写,缺少检查与订正,如有问题或其他拓展及意见建议,欢迎评论区讨论交流。
内容由AI辅助生成,仅经笔者审核整理,请甄别食用。
文章目录
- 前言
- 一、核心定义与数学表达式
- 二、公式拆解与几何意义
- 三、可视化样例
- 二维示例
- 三维示例
- 五维示例
- 四、为何能衡量解集质量?
- 1. 收敛性(解的优劣)
- 2. 多样性(解的分布)
- 五、关键性质与应用
- 总结
超体积指标(Hypervolume Indicator,简称IHVI_{\text{HV}}IHV或 S 度量)是多目标优化中评估解集质量的核心指标,能够同时衡量解集的收敛性(接近真实最优前沿)和多样性(解的分布均匀性)。以下结合数学公式详细解析其原理:
一、核心定义与数学表达式
超体积指标的本质是计算解集在目标空间中“支配区域的体积”,其数学定义为:
IHV(Z∗,A)=λ(⋃a∈AH(a,Z∗))I_{\text{HV}}(Z^*, A) \;=\; \lambda\left( \bigcup_{a \in A} H(a, Z^*) \right) IHV(Z∗,A)=λ(a∈A⋃H(a,Z∗))
其中:
- A={a1,a2,…,an}A = \{a_1, a_2, \dots, a_n\}A={a1,a2,…,an}:待评估的近似解集(nnn为解的数量,每个aia_iai是目标空间中的一个点)。
- Z∗=(z1∗,z2∗,…,zm∗)Z^* = (z^*_1, z^*_2, \dots, z^*_m)Z∗=(z1∗,z2∗,…,zm∗):最差参考点(需满足对所有a∈Aa \in Aa∈A和所有目标维度iii,有ai≤zi∗a_i \leq z^*_iai≤zi∗,即Z∗Z^*Z∗被所有解支配)。
- H(a,Z∗)H(a, Z^*)H(a,Z∗):解aaa与参考点Z∗Z^*Z∗构成的超矩形区域,定义为:
H(a,Z∗)={x∈Rm∣a1<x1<z1∗,a2<x2<z2∗,…,am<xm<zm∗}H(a, Z^*) \;=\; \{ \, x \in \mathbb{R}^m \mid a_1 < x_1 < z^*_1,\ a_2 < x_2 < z^*_2,\ \dots,\ a_m < x_m < z^*_m \, \} H(a,Z∗)={x∈Rm∣a1<x1<z1∗, a2<x2<z2∗, …, am<xm<zm∗} - λ(⋅)\lambda(\cdot)λ(⋅):勒贝格测度(高维空间中“体积”的推广,二维为面积,三维为体积,mmm维为测度)。
- ⋃a∈AH(a,Z∗)\bigcup_{a \in A} H(a, Z^*)⋃a∈AH(a,Z∗):所有解对应的超矩形区域的并集(合并重叠部分)。
二、公式拆解与几何意义
超体积的计算可分为三步,以二维目标空间(如“成本”和“时间”双目标优化)为例直观理解:
1. 单个解的“支配区域”H(a,Z∗)H(a, Z^*)H(a,Z∗)
对解a=(a1,a2)a = (a_1, a_2)a=(a1,a2)和参考点Z∗=(z1∗,z2∗)Z^* = (z^*_1, z^*_2)Z∗=(z1∗,z2∗),其超矩形区域H(a,Z∗)H(a, Z^*)H(a,Z∗)是:
- 目标1(如成本)的区间:(a1,z1∗)(a_1, z^*_1)(a1,z1∗)(长度为z1∗−a1z^*_1 - a_1z1∗−a1);
- 目标2(如时间)的区间:(a2,z2∗)(a_2, z^*_2)(a2,z2∗)(长度为z2∗−a2z^*_2 - a_2z2∗−a2);
- 区域面积:(z1∗−a1)×(z2∗−a2)(z^*_1 - a_1) \times (z^*_2 - a_2)(z1∗−a1)×(z2∗−a2)。
几何意义:该区域包含了所有被aaa支配且不优于Z∗Z^*Z∗的点,即“aaa比这些点更优,但Z∗Z^*Z∗比这些点更差”。
2. 区域并集⋃a∈AH(a,Z∗)\bigcup_{a \in A} H(a, Z^*)⋃a∈AH(a,Z∗)
当有多个解时,需将每个解的超矩形区域合并(去除重叠部分)。例如,若A={a1,a2}A = \{a_1, a_2\}A={a1,a2},则合并后的区域为:
H(a1,Z∗)∪H(a2,Z∗)H(a_1, Z^*) \cup H(a_2, Z^*) H(a1,Z∗)∪H(a2,Z∗)
关键作用:避免重叠区域被重复计算,确保体积反映真实覆盖范围。
3. 勒贝格测度λ(⋅)\lambda(\cdot)λ(⋅)的计算
最终超体积是合并区域的“体积”:
- 二维:面积(λ=长×宽\lambda = \text{长} \times \text{宽}λ=长×宽);
- 三维:体积(λ=长×宽×高\lambda = \text{长} \times \text{宽} \times \text{高}λ=长×宽×高);
-mmm维:λ=∏i=1m(zi∗−ai)\lambda = \prod_{i=1}^m (z^*_i - a_i)λ=∏i=1m(zi∗−ai)(单个解的超体积,多解时需去重叠)。
三、可视化样例
二维示例
运行结果(黑色的"x"表示"最差参考点")
三维示例
运行结果(绿色的菱形表示"最差参考点")
五维示例
一种计算五维超体积的方法的代码示例(没有对超体积进行可视化):
clc;
clear;%% Step 1: 生成两组五目标解集(模拟帕累托解)
N = 100; % 每组100个解
M = 5; % 5个目标% 解集A:均匀分布在超平面上,质量较好
A = rand(N, M);
A = A ./ sum(A,2); % 归一化到超平面上% 解集B:扰动解集A,模拟较差前沿
noise = 0.05 * randn(N, M); % 小扰动
B = A + noise;
B = max(B, 0); B = min(B, 1); % 保持在 [0,1]%% Step 2: 归一化
all_obj = [A; B];
min_vals = min(all_obj);
max_vals = max(all_obj);A_norm = (A - min_vals) ./ (max_vals - min_vals);
B_norm = (B - min_vals) ./ (max_vals - min_vals);%% Step 3: 参考点设置
r = 1.1 * ones(1, M); % 统一参考点(通常略大于最大目标值)%% Step 4: 超体积指标函数定义(简化法:蒙特卡洛采样估计 HV)function hv = computeHVMonteCarlo(P, ref, sampleN)% Monte Carlo 方法估算超体积% P: 目标值矩阵 (N x M)% ref: 参考点 (1 x M)% sampleN: 采样点数M = size(P, 2);randSamples = rand(sampleN, M) .* ref;dominated = false(sampleN,1);for i = 1:size(P,1)dominated = dominated | all(bsxfun(@le, P(i,:), randSamples), 2);endhv = sum(dominated) / sampleN * prod(ref);
end%% Step 5: 计算两组的超体积
HV_A = computeHVMonteCarlo(A_norm, r, 1e6);
HV_B = computeHVMonteCarlo(B_norm, r, 1e6);fprintf('HV of Set A: %.4f\n', HV_A);
fprintf('HV of Set B: %.4f\n', HV_B);%% Step 6: 可视化(五维平行坐标图)
figure;% 显示解集A的平行坐标
subplot(1,2,1);
parallelcoords(A_norm, 'Color', 'b', 'LineWidth', 1.5);
title('Set A (Parallel Coordinates)');
xlabel('Objectives');
ylabel('Normalized Values');
grid on;% 显示解集B的平行坐标
subplot(1,2,2);
parallelcoords(B_norm, 'Color', 'r', 'LineWidth', 1.5);
title('Set B (Parallel Coordinates)');
xlabel('Objectives');
ylabel('Normalized Values');
grid on;% 额外:添加图例
legend('Set A', 'Set B');
运行结果
四、为何能衡量解集质量?
超体积指标通过“体积”量化解集的两大核心特性:
1. 收敛性(解的优劣)
若解aaa更接近真实 Pareto 前沿(目标值更小),则zi∗−aiz^*_i - a_izi∗−ai更大(区间更长),单个超矩形体积更大,整体超体积更易增大。
例如:
- 解a1=(1,3)a_1 = (1, 3)a1=(1,3)与a2=(2,4)a_2 = (2, 4)a2=(2,4)(参考点Z∗=(5,5)Z^* = (5, 5)Z∗=(5,5));
-H(a1,Z∗)H(a_1, Z^*)H(a1,Z∗)面积:(5−1)×(5−3)=8(5-1) \times (5-3) = 8(5−1)×(5−3)=8;
-H(a2,Z∗)H(a_2, Z^*)H(a2,Z∗)面积:(5−2)×(5−4)=3(5-2) \times (5-4) = 3(5−2)×(5−4)=3; - 显然a1a_1a1收敛性更好,对超体积贡献更大。
2. 多样性(解的分布)
若解在目标空间分布均匀(不聚集),合并后的区域重叠少、覆盖广,体积更大;若解聚集,重叠区域多,体积小。
例如:
- 解a1=(1,4)a_1 = (1, 4)a1=(1,4)和a2=(4,1)a_2 = (4, 1)a2=(4,1)(参考点Z∗=(5,5)Z^* = (5, 5)Z∗=(5,5));
- 单个面积分别为4×1=44 \times 1 = 44×1=4和1×4=41 \times 4 = 41×4=4,合并后去重叠(重叠面积1×1=11 \times 1 = 11×1=1),总超体积4+4−1=74 + 4 - 1 = 74+4−1=7;
- 若两解均为(2,2)(2, 2)(2,2),合并后体积仅为3×3=93 \times 3 = 93×3=9(但实际多样性差)。
五、关键性质与应用
- 单调性:若解集AAA支配解集BBB(AAA中每个解都不劣于BBB且至少有一个更优),则IHV(A)≥IHV(B)I_{\text{HV}}(A) \geq I_{\text{HV}}(B)IHV(A)≥IHV(B)。
- 对参考点的依赖性:Z∗Z^*Z∗需合理选择(通常略大于所有解的最大目标值),否则会导致计算偏差。
- 应用场景:多目标优化算法性能对比(如 NSGA-II、MOEA/D 等)、解集质量评估与筛选。
总结
超体积指标通过公式IHV(Z∗,A)=λ(⋃a∈AH(a,Z∗))I_{\text{HV}}(Z^*, A) = \lambda\left( \bigcup_{a \in A} H(a, Z^*) \right)IHV(Z∗,A)=λ(⋃a∈AH(a,Z∗)),将抽象的“收敛性”和“多样性”转化为可计算的“体积”。其核心逻辑是:体积越大,解集在目标空间中覆盖的优质区域越广,综合质量越好。理解超体积的关键在于把握“超矩形区域的合并体积”这一几何本质,以及参考点和勒贝格测度的作用。