区间定义和操作
定义:闭区间,定义为 ,为实数集
当区间上下端点相等时,区间退化为一个点,称为退化区间。
操作:区间
四则运算
数乘
区间范数
区间范数为:
其中
区间多目标优化问题 (IMOPs)
定义:无约束 IMOPs 的数学模型如下所述
区间 的中心和宽度为:
IMOPs相关概念
Pareto 支配
互不支配:
Pareto 最优解
不存在,满足 。
Pareto 最优解集 所有非支配解的集合
Pareto 最优前沿 非支配解集在目标空间中的映射
测试函数的构造
两目标
三目标
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 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结果
程序链接:IP-MOEA
参考文献
[1] R. Moore, R. Kearfott and M. Cloud, “Introduction to interval analysis,” Philadelphia, PA, USA: SIAM, 2009.