区间定义和操作

区间多目标优化问题 (IMOPs)

IMOPs相关概念

区间偏序关系 (IPORs)

测试函数的构造

IP-MOEA程序

其中
evaluate_objective 主要包括ZDT1~ZDT3,DTLZ1和DTLZ2区间测试函数
case {'ZDT1'}
f = [];
sum_x = 0;
g = [];
for i = 2 : V
sum_x = sum_x + x(i)^2;
end
g_x = 1+9*sum_x/(V-1);
g(1) = x(1); %目标一的精确值
g(2) = g_x*(1-sqrt(g(1)/g_x)); %目标二的精确值
f(1) = min(g(1),g(1)+sin(10*pi*sum(x))/4); %目标一的下界
f(2) = max(g(1),g(1)+sin(10*pi*sum(x))/4); %目标一的上界
f(3) = min(g(2),g(2)+sin(20*pi*sum(x))/4); %目标二的下界
f(4) = max(g(2),g(2)+sin(20*pi*sum(x))/4); %目标二的上界
GD,IGD,spp,yanzhan,zhypeIndicatorSampled为指标值计算
genetic_operator2 为进化操作
IMOEA 为主函数,主要包括相关参数初始化,进化操作,指标计算和绘图
initialize_variables 为初始化种群
for i = 1 : N
for j = 1 : V
f(i,j) = (min(j) + (max(j) - min(j))*rand(1));
end
f(i,V + 1: K) = (evaluate_objective(name,f(i,:), M, V));
end
main为主运行程序
clear;clc;
name='ZDT1';
num_of_runs=1; %设置总的运行次数
pop=100;gen=400; %注意根据pop修改pture1的N
nVar= 30;
for runs = 1:num_of_runs %鐙珛杩愯num_of_runs=30娆?
fprintf('总循环次数:%d\n',runs)
[metric_staticIP,archive_staticIP]=IMOEA(name,nVar,pop,gen,runs);
staticIP_metric(runs,1)=metric_staticIP;
staticIP_archive(runs,1).staticIP=archive_staticIP;
end
metric 为计算相关区间指标
objectivedescriptionfunction 目标函数相关参数
plot_figure 绘制区间上下界以及区间前沿
plotcube 绘制区间
ptrue 真实前沿
ptrue1 三目标函数真实前沿
replace_chromosome 种群个体的选择
tournament_selection 选择交配个体
ucafor_this 区间大小比较
unondominationsortmod 非支配排序
UniformPoint 生成均匀分布参考向量
绘制最终DTLZ1结果


参考文献
[1] R. Moore, R. Kearfott and M. Cloud, “Introduction to interval analysis,” Philadelphia, PA, USA: SIAM, 2009.