介绍

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站
目前的多目标优化算法有很多, Kalyanmoy Deb的带精英策略的快速非支配排序遗传算法( nondominated sorting genetic algorithm Il,NSGA-I)无疑是其中应用最为广泛也是最为成功的一种。


clc;clear;
tic;
%% 初始化
PopSize=200;%种群大小
MaxIteration =300;%最大迭代次数
R=50;
location1=load('location1_100.txt');%优化100个城市
location2=load('A_location2_100.txt');
% location1=load('location1.txt');
% location2=load('location2.txt');
CityNum =size(location1,2);%城市数
V=CityNum;
M=2;
pc=0.8;pm=0.9;
for i=1:PopSizechromosome(i,1:CityNum)=randperm(CityNum);chromosome(i,CityNum+1:CityNum+2)=costfunction(chromosome(i,1:CityNum),location1,location2);
end
chromosome= non_domination_sort_mod(chromosome);%将解分  最后一列为拥挤度 倒数第二列为分级数
index=find(chromosome(:,103)==1);
costrep=chromosome(index,101:102);%第一级即非劣解%% 主循环
pool = round(PopSize/2);  %突变池规模for Iteration=1:MaxIterationif ~mod(Iteration,10)fprintf('current iter:%d\n',Iteration)disp([' Number of Repository Particles = ' num2str(size(costrep,1))]);endparent_chromosome = selection_individuals(chromosome,pool,2);parent_var=parent_chromosome(:,1:CityNum);%分离出解向量%% 交叉offspring_var=[];offspring_cost=[];for ic=1:pool/2m1=randi(pool);%选出交叉向量m2=randi(pool);while m1==m2m1=randi(pool);endscro(1,:)=parent_var(m1,:);scro(2,:)=parent_var(m2,:);if rand<pcc1=randi(CityNum);%选出交叉位置c2=randi(CityNum);while c1==c2c1=randi(CityNum);endchb1=min(c1,c2);chb2=max(c1,c2);middle=scro(1,chb1+1:chb2);scro(1,chb1+1:chb2)=scro(2,chb1+1:chb2);scro(2,chb1+1:chb2)=middle;for i=1:chb1while find(scro(1,chb1+1:chb2)==scro(1,i))zhi=find(scro(1,chb1+1:chb2)==scro(1,i));y=scro(2,chb1+zhi);scro(1,i)=y;endwhile find(scro(2,chb1+1:chb2)==scro(2,i))zhi=find(scro(2,chb1+1:chb2)==scro(2,i));y=scro(1,chb1+zhi);scro(2,i)=y;endendfor i=chb2+1:CityNumwhile find(scro(1,1:chb2)==scro(1,i))zhi=find(scro(1,1:chb2)==scro(1,i));y=scro(2,zhi);scro(1,i)=y;endwhile find(scro(2,1:chb2)==scro(2,i))zhi=find(scro(2,1:chb2)==scro(2,i));y=scro(1,zhi);scro(2,i)=y;endendendif rand<pm%逆序变异m1=randi(CityNum);m2=randi(CityNum);while m1==m2m1=randi(CityNum);endloc1=min(m1,m2);loc2=max(m1,m2);scro(1,loc1:loc2)=fliplr(scro(1,loc1:loc2));%             tt=scro(1,m2);%             scro(1,m2)=scro(1,m1);%             scro(1,m1)=tt;endif rand<pm%对换变异m1=randi(CityNum);m2=randi(CityNum);while m1==m2m1=randi(CityNum);endtt=scro(2,m2);scro(2,m2)=scro(2,m1);scro(2,m1)=tt;endscro_cost(1,:)=costfunction(scro(1,:),location1,location2);scro_cost(2,:)=costfunction(scro(2,:),location1,location2);offspring_var=[offspring_var;scro];%解offspring_cost=[offspring_cost;scro_cost];%适应度endoffspring_chromosome(:,1:V)=offspring_var;offspring_chromosome(:,V+1:V+M)=offspring_cost;main_pop = size(chromosome,1);offspring_pop = size(offspring_chromosome,1);intermediate_chromosome(1:main_pop,:) = chromosome;intermediate_chromosome(main_pop + 1 :main_pop + offspring_pop,1 : M+V) = ...offspring_chromosome;intermediate_chromosome = ...non_domination_sort_mod(intermediate_chromosome);%% 选择chromosome = replace_chromosome(intermediate_chromosome,PopSize);index=find(intermediate_chromosome(:,103)==1);costrep=intermediate_chromosome(index,101:102);cost=intermediate_chromosome(:,101:102);if ~mod(Iteration,1)figure (1)plot(costrep(:,1),costrep(:,2),'r*',cost(:,1),cost(:,2),'kx');xlabel('F1');ylabel('F2');title(strcat('Interaction ',num2str(Iteration), ' Pareto non-dominated solutions'));%          hold onendif ~mod(Iteration,MaxIteration)%             if ~mod(Iteration,1)fun_pf=costrep;[fun_pf,~]=sortrows(fun_pf,1);plot(fun_pf(:,1),fun_pf(:,2),'k*-');title(strcat('Interaction ',num2str(Iteration), ' Pareto non-dominated solutions'));hold on;grid on;end
end

运行过程

运行结果


如需帮助VX:zhangshu2274
代码下载链接

matlab基于遗传算法的多目标优化算法(附代码获取方法)相关推荐

  1. 《MATLAB智能算法30个案例》:第9章 基于遗传算法的多目标优化算法

    <MATLAB智能算法30个案例>:第9章 基于遗传算法的多目标优化算法 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例分析> ...

  2. 基于遗传算法的多目标优化算法(附代码案例)

    一.理论基础 多目标优化问题可以描述如下: 其中,f(x) 为待优化的目标函数:x 为 待优化的变量:lb 和 ub 分别为变量 x 的下限和上限约束:Aeq * x = beq 为变量 x 的线性等 ...

  3. 基于透镜成像学习策略的灰狼优化算法-附代码

    基于透镜成像学习策略的灰狼优化算法 文章目录 基于透镜成像学习策略的灰狼优化算法 1.灰狼优化算法 2.基于透镜成像学习的 GWO 算法 2.1修改控制参数*C*策略 2.2 透镜成像反向学习策略 3 ...

  4. 基于柯西变异的蚁狮优化算法 - 附代码

    基于柯西变异的蚁狮优化算法 文章目录 基于柯西变异的蚁狮优化算法 1.蚁狮优化算法 2. 改进蚁狮优化算法 2.1 基于柯西变异算子改进 3.实验结果 4.参考文献 5.Matlab代码 6.Pyth ...

  5. 基于Levy飞行的飞蛾扑火优化算法-附代码

    基于Levy飞行的飞蛾扑火优化算法 文章目录 基于Levy飞行的飞蛾扑火优化算法 1.飞蛾扑火优化算法 2. 改进飞蛾扑火优化算法 2.1 Lévy 飞行 3.实验结果 4.参考文献 5.Matlab ...

  6. 基于麻雀搜索算法的同步优化特征选择 - 附代码

    基于麻雀搜索算法的同步优化特征选择 - 附代码 文章目录 基于麻雀搜索算法的同步优化特征选择 - 附代码 1.数据集 2.SVM模型建立 3.麻雀搜索算法同步优化特征选择 4.测试结果 5.参考文献: ...

  7. 智能优化算法:正余弦优化算法-附代码

    智能优化算法:正余弦优化算法-附代码 文章目录 智能优化算法:正余弦优化算法-附代码 1.算法原理 2.算法流程 3.算法结果 4.参考文献 5.MATLAB代码 6.Python代码 摘要:正 余 ...

  8. 智能优化算法:多元宇宙优化算法-附代码

    智能优化算法:多元宇宙优化算法-附代码 文章目录 智能优化算法:多元宇宙优化算法-附代码 1.算法原理 2.算法流程图 3.算法结果 4.参考文献 5.MATLAB代码 6.python代码 摘要:多 ...

  9. 智能优化算法:蚁狮优化算法-附代码

    智能优化算法:蚁狮优化算法-附代码 文章目录 智能优化算法:蚁狮优化算法-附代码 1.算法原理 1.1 蚂蚁的随机游走 1.2蚁狮对蚂蚁随机游走的影响 1.3自适应机制 1.4 精英策略 2.算法步骤 ...

最新文章

  1. Mysql多实例配置文档
  2. N76E003快速上手使用和大坑提示
  3. linux6.6系统安装,CentOS6.6系统怎么安装
  4. Mirosoft Office自动化问题
  5. 制作Scary爬虫步骤
  6. 发布代码小助手V2.1发布了——Code2HTML工具
  7. 在eclipse中使用第三方库总结
  8. 啊哈算法---快速排序(C语言)
  9. 多质点列车动力学模型
  10. 正则表达式基础语法大全
  11. 有哪些值得推荐的数据可视化工具?
  12. 测试用例方法----正交试验(实验)设计法(黑盒)
  13. 一流科技登上开源供应商名录
  14. c#实现 正弦sin、反正弦arcsin,正切tan、反正切arctan:求角度值
  15. Qt 配置使用IPP库
  16. FleaPHP 学习笔记2
  17. jkd1.8 list.stream()练习
  18. [转]各大银行网银转账手续费一览表
  19. 巧用SEO技术,速提自然流量
  20. timewrap 算法

热门文章

  1. CSS3利用animation动画实现多个图标在指定间隔后再次动作
  2. 几度苍凉的伤感独特日志发布:想要逃,却怎么也逃不掉
  3. iOS Core Data 数据迁移 指南 144 作者 一缕殇流化隐半边冰霜 关注 2016.05.09 00:35* 字数 4718 阅读 2931评论 17喜欢 327 前言 Core
  4. 神探Python程序员,带你千里捉小三!
  5. ZCMU 1739: 笨鸟先飞
  6. Xilinx 差分信号 LVDS传输实战
  7. 超好用PHP函数库~不断更新,欢迎评论补充!(精)
  8. 从新女同事说百度搜索的问题和方向
  9. MQTT X v1.8.3 正式发布
  10. java 读者写者_Java实现生产者消费者问题与读者写者问题详解