非支配关系Matlab描述
规则
- 如果个体A在所有目标上都小于等于个体B且在有至少一个目标上小于个体B则称个体A支配B。
- 如果不存在个体A支配个体B的情况并且A在至少一个目标上比B小并且B在至少一个目标上比A小,则称A和B是非支配关系
% 遍历所有M个目标值
for obj_index=1:Global.M
if NewPop.obj(obj_index)<=Population(i).obj(obj_index)
% 如果目标值小于等于则计数值加1
offspringless_or_equal= offspringless_or_equal+1;
if NewPop.obj(obj_index)<Population(i).obj(obj_index)
% 如果目标值完全小于则计数值加1
offspringless=offspringless+1;
end
else parentless=parentless+1;
end
end
% 如果新解可以支配旧解
if((offspringless_or_equal==Global.M)&&(offspringless>0))
Population(i)=NewPop;
%如果两者非支配
elseif((offspringless>0)&&(parentless>0))