资源简介
moead优化算法摘要:在传统的多目标优化问题上常常使用分解策略。但是,这项策略还没有被广泛的应用到多目标进化优化中。本文提出了一种基于分解的多目标进化算法。该算法将一个多目标优化问题分解为一组???单目标优化问题并对它们同时优化。通过利用与每一个子问题相邻的子问题的优化信息来优化它本身,这是的该算法比MOGLS和非支配排序遗传算法NSGA-Ⅱ相比有更低的计算复杂度。实验结果证明:在0-1背包问题和连续的多目标优化问题上,利用一些简单的分解方法本算法就可以比MOGLS和NSGA-Ⅱ表现的更加出色或者表现相近。实验也表明目标正态化的MOEA/D算法可以解决规模范围相异的多目标问题,同时使用一个先进分解方法的MOEA/D可以产生一组分别非常均匀的解对于有3个目标问题的测试样例。最后,MOEA/D在较小种群数量是的性能,还有可扩展性和敏感性都在本篇论文中通过实验经行了相应的研究。
代码片段和文件信息
%
% Copyright (c) 2015 Yarpiz (www.yarpiz.com)
% All rights reserved. Please read the “license.txt“ for license terms.
%
% Project Code: YPEA124
% Project title: Implementation of MOEA/D
% Muti-objective Evolutionary Algorithm based on Decomposition
% Publisher: Yarpiz (www.yarpiz.com)
%
% Developer: S. Mostapha Kalami Heris (Member of Yarpiz Team)
%
% Contact Info: sm.kalami@gmail.com info@yarpiz.com
%
clc;
clear;
close all;
%% Problem Definition
CostFunction=@(x) ZDT1(x); % Cost Function
nVar=3; % Number of Decision Variables
VarSize=[nVar 1]; % Decision Variables Matrix Size
VarMin = 0; % Decision Variables Lower Bound
VarMax = 1; % Decision Variables Upper Bound
nObj=numel(CostFunction(unifrnd(VarMinVarMaxVarSize)));
%% MOEA/D Settings
MaxIt=100; % Maximum Number of Iterations
nPop=50; % Population Size (Number of Sub-Problems)
nArchive=30;
T=max(ceil(0.15*nPop)2); % Number of Neighbors
T=min(max(T2)15);
crossover_params.gamma=0.5;
crossover_params.VarMin=VarMin;
crossover_params.VarMax=VarMax;
%% Initialization
% Create Sub-problems
sp=CreateSubProblems(nObjnPopT);
% Empty Individual
empty_individual.Position=[];
empty_individual.Cost=[];
empty_individual.g=[];
empty_individual.IsDominated=[];
% Initialize Goal Point
%z=inf(nObj1);
z=zeros(nObj1);
% Create Initial Population
pop=repmat(empty_individualnPop1);
for i=1:nPop
pop(i).Position=unifrnd(VarMinVarMaxVarSize);
pop(i).Cost=CostFunction(pop(i).Position);
z=min(zpop(i).Cost);
end
for i=1:nPop
pop(i).g=DecomposedCost(pop(i)zsp(i).lambda);
end
% Determine Population Domination Status
pop=DetermineDomination
评论
共有 条评论