IGDX(衡量PS与真实PS之间的接近程度)
令
P
∗
P^*
P∗代表真实PS均匀分布的点集(参考点),O代表算法求得的解集,IGDX的计算公式:
I
G
D
X
(
O
,
P
∗
)
=
Σ
v
∈
P
∗
d
(
v
,
O
)
∣
P
∗
∣
IGDX(O,P^*)=\frac{\Sigma_{v\in P^*}d(v,O)}{|P^*|}
IGDX(O,P∗)=∣P∗∣Σv∈P∗d(v,O)
其中
d
(
v
,
O
)
d(v,O)
d(v,O)表示
v
v
v和
O
O
O中所有点之间欧式距离的最小值,
∣
P
∗
∣
|P^*|
∣P∗∣表示参考点的数目。
如果参考点集能够很好的表示真实PS,那么IGDX 就能较好的衡量决策空间的收敛性和多样性. IGDX 的值越小,说明算法求得的解集和参考点集越接近
下面是matlab代码
function Score = IGDX(Parameter)
% <metric> <min>
% IGDX: Calculate the IGD of the obtained Pareto set
%% Input:
% Dimension Description
% PopDec population_size x n_var Obtained Pareto set
% PS num_of_solutions_in_reference_ps x n_var Reference Pareto set
%% Output:
% Description
% Score Inverted Generational Distance (IGD) of the obtained Pareto set
[~,~,PopDec,PS,~,~] = deal(Parameter{:});
Distance = min(pdist2(PS,PopDec),[],2);
Score = mean(Distance);
end