NSGA-II改进之种群初始化

  • 1-什么是佳点集
  • 2-佳点集初始化种群的方法
  • 3-佳点集初始化种群与随机初始化种群的对比
  • 4-佳点集初始化种群代码(matlab)

原NSGA-II的算法在初始化种群的时候采用的是随机生成。随机代表着不确定,且随机生成的种群在整个空间上表现为不均匀;为消除随机初始化带来的不确定,和种群在空间上分布不均匀问题,由此引出新的初始化种群方式:佳点集生成种群

注:种群的初始化结果是否对种群的进化是否有影响,个人并没有做太大的研究,仁者见仁智者见智。

1-什么是佳点集

佳点集最初是由华罗庚等提出,基本定义和构造为:
假设 G s 是 s 维的欧式几何空间,那么 r ∈ G s , 那么 P n ( i ) = ( r 1 i i , r 2 i 2 , r 3 i 3 , . . . r n i n ) , i = 1 , 2 , 3 , . . . n 。 n 表示样本数量, P n ( i ) 表示佳点集,而 r 指的是佳点,一般取 r = { 2 c o s ( 2 π i 7 ) , 1 ≤ i ≤ n } 或者取 r = { e i } \begin{aligned} &假设Gs是s维的欧式几何空间,那么r\in Gs,那么P_n(i)=(r_1i_i,r_2i_2,r_3i_3,...r_ni_n),i=1,2,3,...n。 \\&n表示样本数量,P_n(i)表示佳点集,而r指的是佳点,一般取 r=\begin{Bmatrix} 2cos(\frac{2\pi i}{7}), 1\leq i\leq n \end{Bmatrix} 或者取 \\&r=\begin{Bmatrix} e^i \end{Bmatrix} \end{aligned} ​假设Gs是s维的欧式几何空间,那么r∈Gs,那么Pn​(i)=(r1​ii​,r2​i2​,r3​i3​,...rn​in​),i=1,2,3,...n。n表示样本数量,Pn​(i)表示佳点集,而r指的是佳点,一般取r={2cos(72πi​),1≤i≤n​}或者取r={ei​}​

2-佳点集初始化种群的方法

已知:种群所在的空间维度为n,种群数量为m

s t e p 1 : 计算 r 值, r = ( r 1 , r 2 , . . . r n ) , 其中 r j = m o d ( 2 c o s ( 2 π i 7 ) , 1 ) , 1 ≤ j ≤ n 。 s t e p 2 :构造数量 m 的佳点集: P n ( i ) = { ( r 1 i 1 , r 2 i 2 , . . . r n i n ) } , i = 1 , 2 , 3 , . . . n s t e p 3 : 将 P n 映射到种群所在的可行域上: X i j = a j + P n ( i ) ( b j − a j ) 其中 a j 表示当前维度的下限, b j 表示当前维度的上限 \begin{aligned} &step1:计算r值,r=(r_1,r_2,...r_n),其中r_j=mod(2cos(\frac{2\pi i}{7}),1),1\leq j\leq n。\\ \\&step2:构造数量m的佳点集: \\& P_n(i)=\begin{Bmatrix} (r_1i_1,r_2i_2,...r_ni_n) \end{Bmatrix} ,i=1,2,3,...n\\ \\&step3:将P_n映射到种群所在的可行域上:\\ &X_i^j=a_j+P_n(i)(b_j-a_j) \\&其中a_j表示当前维度的下限,b_j表示当前维度的上限 \end{aligned} ​step1:计算r值,r=(r1​,r2​,...rn​),其中rj​=mod(2cos(72πi​),1),1≤j≤n。step2:构造数量m的佳点集:Pn​(i)={(r1​i1​,r2​i2​,...rn​in​)​},i=1,2,3,...nstep3:将Pn​映射到种群所在的可行域上:Xij​=aj​+Pn​(i)(bj​−aj​)其中aj​表示当前维度的下限,bj​表示当前维度的上限​

3-佳点集初始化种群与随机初始化种群的对比

假设种群规模为100

佳点集生成

随机生成

4-佳点集初始化种群代码(matlab)

% pop_size:种群数量
% dimension:维度
% bound:取值范围
function pop = init_pop(pop_size,dimension,bounds)
%佳点集生成初始种群
p = zeros(pop_size,dimension);
for i = 1:pop_sizefor j = 1:dimensionr = mod(2*cos(2*pi*j/7)*i,1);% 对应维度的rp(i,j) = bounds(j,1)+r*(bounds(j,2)-bounds(j,1));end
end% %随机i生成定义域范围内种群
% p = rand(pop_size,dimension);%生成popsize*dimension的0-1矩阵
% for i = 1:dimension
%     p(:,i) = bounds(i,1)+p(:,i)*(bounds(i,2)-bounds(i,1));
% end

NSGA-II改进之种群初始化相关推荐

  1. 进化计算(六)——NSGA II代码实现(Matlab)

    NSGA II代码实现 代码流程图 Code Main 函数选择 种群初始化 非支配排序 拥挤度计算 二进制锦标赛选择算子 SBX&Poly mutation 精英策略选择 目标函数 参考链接 ...

  2. 进化计算(四)——NSGA/NSGA II算法详解

    NSGA/NSGA II算法理论学习  -A fast and elitist multiobjective genetic algorithm NSGA-II阅读笔记 引言 概述 为什么引入NSGA ...

  3. NSGA II实例讲解

    NSGA II实例讲解 此文章是[1]的文字版,相关视频原链接见参考资料. 假设有一个圆规问题,目标函数为最小的底面积和最小的侧面积. 底面积=πr^2, 侧面积=πrsh 总的目标函数=底面积+侧面 ...

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

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

  5. 【多目标优化】2. 非支配排序遗传算法 —(NSGA、NSGA-II)

    [多目标优化]1. 多目标优化的相关基本概念 [多目标优化]2. 非支配排序遗传算法 -(NSGA.NSGA-II) [多目标优化]3. 基于分解的多目标进化算法 -(MOEAD) 1. 非支配排序遗 ...

  6. 【MATLAB第6期】基于MATLAB的粒子群及若干改进的粒子群算法原理介绍 持续更新

    一.经典粒子群PSO算法 1 思想来源 粒子群优化(Particle Swarm Optimization,PSO) 作为进化计算的一个分支,是由 Eberhart 和 Kennedy 于 1995 ...

  7. 基于遗传算法改进的BP神经网络电网负荷预测,GA-BP神经网络电网负荷预测,1000案例之14

    摘要 节能减排,降低谈排放,降低电网传输的损耗 电力负荷预测是以电力负荷为对象进行的一系列预测工作.从预测对象来看,电力负荷预测包括对未来电力需求量(功率)的预测和对未来用电量(能量)的预测以及对负荷 ...

  8. 非支配排序遗传算法(NSGA,NSGA-II )

    非支配排序遗传算法(NSGA,NSGA-II ) 一.非支配排序遗传算法(NSGA) 1995年,Srinivas和Deb提出了非支配排序遗传算法(Non-dominated Sorting Gene ...

  9. 求解高维优化问题的改进正弦余弦算法

    文章目录 一.理论基础 1.正弦余弦算法 2.改进的正弦余弦算法 (1)反向学习初始化 (2)修改个体位置更新方程 (3)算法步骤 二.仿真实验与结果分析 1.测试函数 2.实验结果 (1)和原始SC ...

最新文章

  1. 用python中django创建网页终端直接关闭是什么问题_如何用Python Django创建网站?系列文章03(持续更新...)...
  2. 项目的数据存储c语言,C语言项目实战项目8__项目中学生数据的存储与重用.ppt
  3. SQL Server之体系结构
  4. 智能家居物联网化将成为AWE大会最大看点
  5. kmalloc, vmalloc分配的内存结构
  6. 初中计算机教案小学,初中8年级信息技术教案
  7. 完全二叉树子节点个数
  8. 上线不到两年 腾讯“小鹅拼拼”被曝即将关停
  9. 分享一些前端优质的掘金小册,学完技术感觉已经超神了
  10. caxa cam数控车2020破解版 v20.0.0.6460附安装教程|caxa数控车2020破解版
  11. MongoDB——聚合管道之$group操作
  12. libvlc添加视频录制接口
  13. 支付宝崩了登上微博热搜
  14. android获取uid,Android获得UID的办法
  15. SOEM 源码解析 ecx_set_slaves_to_default
  16. html让同一行的文字和图片居中对齐显示
  17. wpf 骚搞 新浪微博
  18. Python1.语言基本要素上(郭炜老师python大学mooc)
  19. 微软云计算产品详解 主打Windows
  20. python生成一笔画_python实现欧拉路径查找算法与微信小游戏《一笔画完》(一)...

热门文章

  1. golang 后台管理系统框架
  2. 英文版SecureCRT显示乱码解决
  3. 华擎主板bios设置图解_华擎主板设置BIOS的图解教程
  4. 做了8年前端,感谢那些优秀的后端,陪伴我工作,教会我成长
  5. Elasticsearch 组合聚集(Composite aggregation)实现交叉分析
  6. Win11--将右键菜单改回Win10(展开菜单)
  7. 【linux】循序渐进学运维-基础篇-linux运维级别
  8. 风格迁移-风格损失函数(Gram矩阵)理解
  9. 八、STM32串口通信
  10. 独立循环神经网络(indRNN)