gd_ds.m

来自「为了有效地应用遗传算法解决 鲁棒控制系统设计问题」· M 代码 · 共 27 行

M
27
字号
% 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 + =
减小字号Ctrl + -
显示快捷键?