区间多目标优化算法IP-MOEA

作品简介

区间定义和操作

区间多目标优化问题 (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.


创作时间: