📄 gd_ds.m
字号:
% GD,Ds Calculate计算GD,Ds
% 24-Nov-2003.
%
function [dst,GD,Ds]=GD_Ds(ND_list,P1,P2)%P1,P2为1*500的列;;0__1
Qx=size(ND_list,2);
Sp=size(P1,2);
D=zeros(1,Qx);
for i=1:Qx
Dq=dist(ND_list(:,i)',[P1;P2]);%dist表示距离加权函数;;dist (W,P)其W,P运算对应关系同一般矩阵,,但运算规则不同,不是相乘 而是相减平方,再取和
%Dq为1*500矩阵;;实质是100个目标分别产生500个距离;;P1;P2与0--1变换的距离关系
D(i)=min(Dq);%使Dq的最小值(即与P1;P2某一点的距离最短)被存储
end
GD=sqrt(sum(D.^2))/Qx%种群与P1;P2的最短距离;;绝对平均误差
% Calculate diversity metrics of the Pareto front in the final population.
[ND_list(1,:),IF1]=sort(ND_list(1,:));
ND_list(2,:)=ND_list(2,IF1);%按目标函数1对目标函数2进行排序
dm1=dist(ND_list(:,1)',[P1(1);P2(1)]);
dm2=dist(ND_list(:,Qx)',[P1(Sp);P2(Sp)]);
dm=dm1+dm2;%以两端为参考
for i=1:Qx-1
di(i)=dist(ND_list(:,i)',ND_list(:,i+1));
end
davg=mean(di);%每列的平均值;;相邻两目标向量的平均距离
Ds=(dm+sum(abs(di-davg)))/(dm+davg*(Qx-1))%目标函数的相对波动情况/??????????????????
dst=(0+sum(abs(di-davg)))/(0+davg*(Qx-1))%田宏亮自己加目标函数的相对波动情况
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -