失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 基于NSGAII的多目标优化算法的MATLAB仿真

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

时间:2021-07-09 04:40:11

相关推荐

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

1.算法简介

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

2.部分核心代码

clc;clear;close all;warning off;addpath 'func\'%% parametres settingnvar=3; % number of variablelb=[-4 -4 -4]; % lower boundub=[4 4 4];% upper boundnpop=40;% number of populationpc=0.7; % percent of crossoverncross=2*round(npop*pc/2); % number of crossover offspringpm=0.3; % percent of mutationnmut=round(npop*pm); % number of mutation offspringmaxiter=150;%% initializationempty.pos=[];empty.cost=[];empty.dcount=[]; % dominate countempty.dset=[];% dominate setempty.rank=[];empty.cdis=[];% crowding distancepop=repmat(empty,npop,1);for i=1:npoppop(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 loopfor iter=1:maxiter% crossovercrosspop=repmat(empty,ncross,1);crosspop=crossover(crosspop,pop,ncross,F,nvar);% mutationmutpop=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(F{1})) ]) end%% resultspareto=pop(F{1},:);

3.仿真演示

4.相关参考文献

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

C82

如果觉得《基于NSGAII的多目标优化算法的MATLAB仿真》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。