1 %----------------------------------------------------------------------

2 %程序功能:实现MOEAD算法,测试函数为ZDT1,ZDT2,ZDT3,ZDT4,ZDT6,DTLZ1,DTLZ23 %说明:遗传算子为模拟二进制交叉和多项式变异4 %作者:(晓风)5 %email: 18821709267@163.com6 %最初建立时间:2018.09.30

7 %最近修改时间:2018.10.08

8 %参考论文:9 %MOEA/D: A Multiobjective Evolutionary Algorithm Based on Decomposition10 %Qingfu Zhang, Senior Member, IEEE, andHui Li11 %IEEE TRANSACTIONS O12 %----------------------------------------------------------

13 clear all14 clc15 tic;16 %------------------------参数输入--------------------------

17 format long18 globalx_max x_min x_num f_num lamda z19 rand('state',sum(100*clock));20 N=300;%种群大小21 T=20;%邻居规模大小22 fun='DTLZ2';%

23 funfun;%测试函数24 lamda=genrate_lamda(N,f_num);%均匀分布的N个权重向量25 max_gen=250;%进化代数26 pc=1;%交叉概率27 pm=1/x_num;%变异概率28 yita1=2;%模拟二进制交叉参数229 yita2=5;%多项式变异参数530 %------------------------初始条件--------------------------

31 %%计算任意两个权重向量间的欧式距离,查找每个权向量最近的T个权重向量的索引32 B=look_neighbor(lamda,T);33 %%在可行空间均匀随机产生初始种群34 X=initialize(N,f_num,x_num,x_min,x_max,fun);35 %%初始化z36 for i=1:f_num37 z(i) = min(X(:,x_num+i));38 end39 %%初始化是否为非支配个体40 X=deterdomination(X,N,f_num,x_num);41 %%设置EP为初始种群里的非支配个体42 EP=[];43 for i=1:N44 if(X(i,x_num+f_num+1)==1)45 EP=[X(i,:);EP];46 end47 end48 %------------------------迭代更新--------------------------

49 for gen=1:max_gen50 for i=1:N51 %%基因重组,从B(i)中随机选取两个序列k,l52 index1 =randperm(T);53 parent1 = B(i,index1(1));54 parent2 = B(i,index1(2));55 off=cross_mutation(X(parent1,:),X(parent2,:),f_num,x_num,x_min,x_max,pc,pm,yita1,yita2,fun );56 %off=cross_mutation2(X(parent1,:),X(parent2,:),f_num,x_num,x_min,x_max,pc,pm,yita1,yita2,fun );57 %%更新z58 for j=1:f_num59 %%if(Zi

70 equal=0;%y'的目标函数值等于个体的目标函数值数目

71 greater=0;%y'的目标函数值大于个体的目标函数值数目

72 for mm=1:f_num73 if(off(:,x_num+mm)>EP(k,x_num+mm))74 greater=greater+1;75 elseif(off(:,x_num+mm)==EP(k,x_num+mm))76 equal=equal+1;77 else

78 less=less+1;79 end80 end81 %%%从EP中移除被y'支配的向量

82 if(greater==0 && equal~=f_num)%y'支配EP中的第K个个体

83 kk=[k kk];84 end85 %%%如果EP中没有支配y'的个体,将y'加入EP86 if(less==0 && equal~=f_num)%EP中的第K个个体支配y'87 temp=1;88 end89 end90 if(isempty(kk)==0)91 EP(kk,:)=[];92 end93 if(temp==0)94 EP=[EP;off];95 end96 end97 if mod(gen,10) ==098 fprintf('%d gen has completed!\n',gen);99 end100 % if f_num==2

101 % plot(EP(:,x_num+1),EP(:,x_num+2),'r*');102 % elseif f_num==3

103 % plot3( EP(:,x_num+1), EP(:,x_num+2),EP(:,x_num+3),'r*');104 % set(gca,'xdir','reverse'); set(gca,'ydir','reverse');105 %end106 %title(num2str(gen));107 %drawnow108 end109 filepath=pwd;110 cd('G:\xjl\learnPro\matlabLearn\临时数据\EP_DTLZ2');111 save solution5.txt EP -ASCII112 cd(filepath);113 toc;114 %------------------------画图对比--------------------------

115 if f_num==2

116 hold on117 plot(EP(:,x_num+1),EP(:,x_num+2),'r*');118 elseif f_num==3

119 hold on120 plot3( EP(:,x_num+1), EP(:,x_num+2),EP(:,x_num+3),'r*');121 set(gca,'xdir','reverse'); set(gca,'ydir','reverse');122 end123 %figure;124 % if f_num==2

125 %hold on126 % plot(X(:,x_num+1),X(:,x_num+2),'r*');127 % elseif f_num==3

128 %hold on129 % plot3( X(:,x_num+1), X(:,x_num+2),X(:,x_num+3),'r*');130 % set(gca,'xdir','reverse'); set(gca,'ydir','reverse');131 %end132 %--------------------Coverage(C-metric)---------------------

133 A=PP;B=EP(:,(x_num+1):(x_num+f_num));%%%%%%%%%%%%%%%%%%%%

134 [temp_A,~]=size(A);135 [temp_B,~]=size(B);136 number=0;137 for i=1:temp_B138 nn=0;139 for j=1:temp_A140 less=0;%当前个体的目标函数值小于多少个体的数目141 equal=0;%当前个体的目标函数值等于多少个体的数目142 for k=1:f_num143 if(B(i,k)

151 end152 end153 if(nn~=0)154 number=number+1;155 end156 end157 C_AB=number/temp_B;158 disp('C_AB:');159 disp(C_AB);160 %-----Distance from Representatives in the PF(D-metric)-----

161 A=EP(:,(x_num+1):(x_num+f_num));P=PP;%%%%%%%%%%%%%%%%%%%

162 [temp_A,~]=size(A);163 [temp_P,~]=size(P);164 min_d=0;165 for v=1:temp_P166 d_va=(A-repmat(P(v,:),temp_A,1)).^2;167 min_d=min_d+min(sqrt(sum(d_va,2)));168 end169 D_AP=(min_d/temp_P);170 disp('D_AP:');171 disp(D_AP);172 filepath=pwd;173 cd('G:\xjl\learnPro\matlabLearn\临时数据\EP_DTLZ2');174 save C_AB5.txt C_AB -ASCII175 save D_AP5.txt D_AP -ASCII176 cd(filepath);

moea切比雪夫_基于分解的多目标进化优化MOEA/D之切比雪夫方法代码相关推荐

  1. TIA博途_基于SCL语言制作模拟量输入输出全局库的具体方法

    TIA博途_基于SCL语言制作模拟量输入输出全局库的具体方法 一. 模拟量输入块:创建FB,定义块的接口,如下图所示: 程序中包含了高报警,低报警,一般上位机报警需要这个变量. 极性选择,适合更广的应 ...

  2. 病虫害模型算法_基于深度学习的目标检测算法综述

    sigai 基于深度学习的目标检测算法综述 导言 目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的位置和大小,是机器视觉领域的核心问题之一.由于各类物体有不同的外观,形状,姿态,加上成像 ...

  3. lstm模型_基于LSTM模型的学生反馈文本学业情绪识别方法

    | 全文共8155字,建议阅读时长8分钟 | 本文由<开放教育研究>授权发布 作者:冯翔 邱龙辉 郭晓然 摘要 分析学生学习过程产生的反馈文本,是发现其学业情绪的重要方式.传统的学业情绪 ...

  4. python安装pyecharts清华_基于Python安装pyecharts所遇的问题及解决方法

    最近学习到数据可视化内容,老师推荐安装pyecharts,于是pip install 了一下,结果...掉坑了,下面是我的跳坑经验,如果你有类似问题,希望对你有所帮助. 第一个坑: 这个不难理解,缺少 ...

  5. san分布式共享文件系统_基于SAN存储共享卷实现openstack高可用的方法与流程

    本发明涉及一种高可用方法,特别是一种基于SAN存储共享卷实现openstack高可用的方法. 背景技术: 云计算是利用虚拟化技术,将数据中心的计算.存储.网络等资源整合起来,形成统一的资源池,再将这些 ...

  6. ae渲染存在偏移_基于三维GIS技术的矢量地图动态LOD渲染方法

    本文从地图操作和要素可见性入手分析地图简化的影响因素,并基于分析的结果设计相应的缓存结构以加速地图的渲染.研究GPU环境下梯形格网的高效LOD方法,探讨简化前后节点的重组和显存中EBO数据的更新方法, ...

  7. 双向长短期记忆网络模型_基于深度双向长短期记忆网络的空气质量预测方法与流程...

    [技术领域] 本发明涉及一种基于深度双向长短期记忆网络的空气质量预测方法,属于空气污染预测领域. 背景技术: 空气污染物浓度的预测拥有很强的学科交叉性,一直是环境.气象.数学.地理及计算机科学领域研究 ...

  8. cesium 车流_基于Cesium的城市三维可视化地下管线系统的建立方法与流程

    本发明属于虚拟三维管线领域,特别是涉及基于Cesium的城市三维可视化地下管线系统的建立方法. 背景技术: 随着我国经济的快速发展,城市规模也在不断地扩大,而城市地下管网的铺设力度也不断加大,城市地下 ...

  9. 圆形标定板_基于圆形标定板特征点提取及排序的方法

    基于圆形标定板特征点提取及排序的方法 刘智 [摘 要] 摘要:在计算机视觉中 , 圆形标定板被广泛使用在像机标定中 , 本文针 对圆形标定板图像 ( 图 1) 在特征点提取后的排序问题 , 提出了利用 ...

  10. emif接口速率问题_基于EMIF接口的双速率1553B总线设备通信方法与流程

    本发明涉及计算机总线通信 技术领域: ,尤其涉及一种基于EMIF(ExternalMemoryInterface,外部存储器接口)接口的双速率1553B总线设备通信方法. 背景技术: :某一1553B ...

最新文章

  1. 15 分钟搭建一个基于XLNET的文本分类模型——keras实战
  2. 鸟哥的Linux私房菜(基础篇)- 一些基础的Linux 问题
  3. C++类型转换: static_cast const_cast reinterpret_cast dynamic_cast
  4. mysql不支持python3吗_MySQL的4种事务隔离级别你还不清楚吗?
  5. C语言 记录程序运行时间(以秒为单位)
  6. CRM campaign relationship read
  7. 如何根据对象获取到对应的表名_Excel VBA 常用对象二
  8. mysql删除盘点表,用友U8数据库表名参照表修改号参考.doc
  9. php取商,PHP获取百度关键词排名
  10. python access 源码_连接的微软Access数据库,这是一个轻量级的Python模块(MDB格式)...
  11. 2017 多校联合训练 3 题解
  12. oracle判断字符串以什么开头_oracle存储过程 判断字符串开头
  13. 用python简单代码做一个计算器
  14. 软件需求工程 高校教学平台 项目可行性报告
  15. 删除win10添加的网络位置
  16. 用Excel做了7天报表,这个领导喜欢的可视化工具,只用了7小时
  17. 侧馈矩形微带天线设计报告
  18. verilog从txt中读取_verilog语言中的文件读写
  19. PS首战——拼贴海报
  20. 利用Java提取excel内容

热门文章

  1. 时域认识采样定理的一个小例子
  2. 交通信号灯规范国家标准出台
  3. JSP从入门到精通_课堂实战视频教程
  4. 无需积分PowerDesigner 下载
  5. 零基础CSS入门教程(29)–CSS下拉菜单实例
  6. css实现div半透明而文字不透明
  7. 破解寝室安装老毛子路由器校园网电信闪讯锐捷认证
  8. 基于Booth算法的64位浮点乘法器的实现
  9. 全志A33_Vstar
  10. mdf文件修复工具 专业修复sql server数据库