介绍

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站
目前的多目标优化算法有很多, 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. springboot启动异常java.lang.NoSuchFieldError: DEFAULT_INCOMPATIBLE_IMPROVEMENTS
  2. minimun-depth-of-binary-tree
  3. Windows XP Mode
  4. bash shell基础之三字符串测试及for循环
  5. 计算机导论的重点,计算机导论重点题目精华版
  6. Activity Intent相关FLAG介绍
  7. 装箱与拆箱 c# 1231
  8. mysql表统一编码_PHP MySQL Apache统一编码
  9. php随笔10-thinkphp 3.1.3 模板继承 布局
  10. Linux内存是怎么工作的
  11. POJ 2392 Space Elevator(多重背包变形)
  12. 将绘图保存到图像文件,而不是使用Matplotlib显示
  13. resultSet.next() 位置处报错:java.lang.OutOfMemoryError: Java heap space
  14. ppt倒计时3分钟_老板发来200页PPT文件,让我翻译成英文,3分钟教你搞定
  15. 国内开源的镜像网站(很全很详细)
  16. IoT全品类全场景来了,但5G时代“大雁群飞”仍需紧盯“服务”
  17. 中国游客是否可以持中国驾照在美国自驾游?_游侠_新浪博客
  18. CSS 多列等高的几种实现方式
  19. c++11:std::default_delete
  20. cad角度命令怎么输入_软件CAD | 修改工具栏(上)

热门文章

  1. Derby 数据库的应用
  2. ERROR: Invalid HADOOP_MAPRED_HOME
  3. chuxia小清新博客主题wordpress模板分享
  4. 【Revit二次开发】外部事件(ExternalEvent)
  5. 阿里云2021财年营收超600亿,每年8亿美元大单被抢
  6. 树莓派安装smbus_Adafruit的树莓派教程:GPIO配置
  7. 本科计算机去当兵,我儿子2017年9月1日入学学计算机平面设计今年想去当兵在校生能去当兵吗...
  8. 三国志战略版:Daniel_也甜也咸-青州兵分析
  9. android还原快捷键是什么意思,你所不知道的安卓手机上的通用快捷键
  10. 成年人才懂的脑洞漫画,尺度有点大!