基于NSGAII的多目标优化算法的MATLAB仿真

Posted fpga&matlab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于NSGAII的多目标优化算法的MATLAB仿真相关的知识,希望对你有一定的参考价值。

1.算法简介

          NSGA-II在引入算术交叉算子的同时,提出并引入累积排序适应度赋值策略。实验表明,INSGA具有更高的收敛速度和更好的种群多样性。

2.部分核心代码

clc;
clear;
close all;
warning off;
addpath 'func\\'

%% parametres setting

nvar=3;        %  number of variable
lb=[-4 -4 -4]; % lower bound
ub=[4 4 4];     % upper bound

npop=40;     % number of population


pc=0.7;       % percent of crossover
ncross=2*round(npop*pc/2);  % number of crossover offspring

pm=0.3;        %  percent of mutation
nmut=round(npop*pm);  % number of mutation offspring


maxiter=150;


%% initialization

empty.pos=[];
empty.cost=[];
empty.dcount=[];   % dominate count
empty.dset=[];     % dominate set
empty.rank=[];      
empty.cdis=[];      % crowding distance


pop=repmat(empty,npop,1);

for i=1:npop
    pop(i).pos=lb+rand(1,nvar).*(ub-lb);
    pop(i).cost=fitness(pop(i).pos);
end

[pop F]=non_dominated_sorting(pop);
pop=calculated_crowding_distance(pop,F);
pop=sorting(pop);

%% main loop

for iter=1:maxiter

    % crossover
    crosspop=repmat(empty,ncross,1);
     crosspop=crossover(crosspop,pop,ncross,F,nvar);
     
     % mutation
     mutpop=repmat(empty,nmut,1);
     mutpop=mutation(mutpop,pop,nmut,lb,ub,nvar);
     
     [pop]=[pop;crosspop;mutpop];
    
     [pop F]=non_dominated_sorting(pop);
      pop=calculated_crowding_distance(pop,F);
      pop=sorting(pop);
      
      pop=pop(1:npop);
      
      [pop F]=non_dominated_sorting(pop);
      pop=calculated_crowding_distance(pop,F);
      pop=sorting(pop);
      
      
      C=[pop.cost]';
      
      figure(1)
      plotpareto(F,C)
      
      
      
      disp([ ' iter =   '  num2str(iter) ' BEST F1 = ' num2str(min(C(:,1)))  ' BEST F2  = ' num2str(min(C(:,2))) ' NF1 = '  num2str(length(F1)) ]) 
    
    
    
    
    
end

%% results

pareto=pop(F1,:);




3.仿真演示

 

4.相关参考文献

[1]刘旭红, 刘玉树, 张国英,等. 多目标优化算法NSGA-II的改进[J]. 计算机工程与应用, 2005, 41(15):3.

C82

以上是关于基于NSGAII的多目标优化算法的MATLAB仿真的主要内容,如果未能解决你的问题,请参考以下文章

基于NSGAII的多目标优化算法的MATLAB仿真

基于NSGAII多目标遗传优化的WSN无线传感器网络最优覆盖率matlab仿真

MATLAB教程案例17基于NSGAII多目标优化算法的matlab仿真及应用

NSGAII算法多目标优化的matlab仿真

matlab实现多目标优化求解-NSGA-II 算法

多目标优化求解基于金鹰算法(MOGEO)的多目标优化求解matlab源码