这些日子一直在学习遗传算法,在CSDN上看了好多关于遗传算法的例子,但是找不到一个符合自己的例子。

自己的需求:有四个变量,寻求最优化的结果。

跟那些用二元函数举例的不同。

首先介绍下,

1. 遗传算法的流程:

假设有100个个体,计算每个个体的适应度(即性能),通过轮盘算法,选择100个个体,这100个不是前面的100个,而是根据适应度从新选择的,适应度高的一般多选,适应度低的一般淘汰掉,总数为100个,然后这100个就可以进行遗传操作,一般顺序是交叉、变异,然后形成的新种群就是下一代了。这就是一次循环,然后设置循环N次,就可以了。这里的适应度是根据自己的问题来设置的,一般是取最大值。

2. 注意的问题

我介绍的遗传算法matlab程序是多个变量、二进制的。

3. 细节介绍

其实交叉、变异的程序都大同小异,对于单个变量和多个变量的区别在于设置的pop。如果你是多个变量,每个变量设置20位二进制来表示,那么你pop就要设置的列数为变量数乘以20,行数是个体的数目。这是第一个理解的地方。

接下来就是计算适应度的程序了。这里假设变量数为4个,个体数为50个,故pop是一个【50,4*20】的数组大小。这里是二进制哈,你要计算的话,得转化为十进制,所以需要一个binary2decimal()函数,用法如下:

x1 = binary2decimal(pop(i,1:20));
    x2 = binary2decimal(pop(i,21:40));
    x3 = binary2decimal(pop(i,41:60));
    x4 = binary2decimal(pop(i,61:80));

这里的i是代表每个个体。那么久通过上面的函数得到四个变量了,带入自己模型所对应的函数计算,可以得到每个个体的适应度。

然后就是选择函数,交叉函数,变异函数。

最后将新的种群赋值给pop,再次循环,知道循环次数结束。

遗传算法 matlab实现 多维变量 二进制编码相关推荐

  1. MATLAB语言实现模拟退火算法求解n维变量的最小值问题

    在给定定义域,对于求解函数对应的最优值问题.此处以模拟退火算法求解30维变量函数最小值问题举例(最大值问题也可转化成求解最小值问题). 其中,. 一.模拟退火算法简介 模拟退火算法(SA)来源于固体退 ...

  2. MATLAB程序详细解析,遗传算法——matlab代码解析

    遗传算法--matlab代码解析 本文为学习B站老哥数学建模课程之后的一点笔记,图片源自web,代码源自老哥程序包,侵权删. 详细的遗传算法原理不再赘述,百度即可找到. 算法定义 遗传算法(GA)是模 ...

  3. 加速遗传算法 matlab,求加速遗传算法,不是自适应遗传算法

    就是用第一次.第二次进化迭代所产生的优秀个体的变量变化空间, 作为变量新的初始变化区间, 算法进入步 1, 重新运行 SGA ,如此加速循环, 直到最优个体的优化准则函数值小于某一设定值或算法运行达到 ...

  4. 简单遗传算法MATLAB实现

    整理资料的时候发现的一篇讲的比较好的基于MATLAB实现遗传算法的博文,感谢原主的博文,源博文->简单遗传算法MATLAB实现 遗传算法的概念最早是由Bagley J.D 于1967年提出的.后 ...

  5. Matlab遗传算法求解TSO,遗传算法matlab程序实例.doc

    遗传算法matlab程序实例.doc --------------------------------------------------------------------------------- ...

  6. matlab 极坐标 二维,matlab笔记二维绘图(极坐标隐函数等)008.docx

    matlab笔记二维绘图(极坐标隐函数等)008.docx 008二维绘图(极坐标.隐函数等)一.极坐标图形调用格式为POLART,R,'选项'其中,T为极角,R为极径,选项的使用和PLOT类似.例1 ...

  7. 利用matlab绘制二维均匀流线和向量场

    利用matlab绘制二维均匀流线和向量场(向量场彩色箭头,颜色随变量变化) 0前言 1 均匀流线的绘制 2 绘制彩色的短线图 3 绘制彩色的均匀流线 4 运动的彩色箭头流线图 0前言 之前一篇文章ma ...

  8. 非线性整数规划的遗传算法Matlab程序

    非线性整数规划的遗传算法Matlab程序 通常,非线性整数规划是一个具有指数复杂度的NP问题,如果约束较为复杂,Matlab优化工具箱和一些优化软件比如lingo等,常常无法应用,即使能应用也不能给出 ...

  9. matlab建成二维数组,matlab绘制二维数组

    hist 累计图 rose 极座标累计图 stairs 阶梯图 stem 针状图 fill 实心图 feather 羽毛图 compass 罗盘图 quiver 向量场图 Matlab 如何画出一个二 ...

  10. 遗传算法(matlab)

    遗传算法(matlab) 主要流程 编码 二进制编码 编码 解码 浮点数编码 符号编码 适应度函数 适应度函数尺度变换 1.线性尺度变换 2.乘幂尺度变换 3.指数尺度变换 选择算子 轮盘赌选择 交叉 ...

最新文章

  1. 初识FPGA(二)(FPGA与ASIC及CPLD的对比)
  2. 【计算机网络】计算机网络概述 : 总结 ( 概念 | 组成 | 功能 | 分类 | 性能指标 | OSI 七层参考模型 | TCP/IP 模型 | 五层参考模型 )★★★
  3. 24张IT工程师技能图谱,这些你都会吗?
  4. 深度学习(3)手写数字识别问题
  5. 【C语言】又是排序(指针专题)
  6. Python使用with语句:记录时间检查路径
  7. 查找丢包故障点的一个好命令:pathping
  8. while (true) 和 for (;;) 哪个更快?
  9. soapui直接下载响应内容为本地的文件
  10. 最新伯乐PHP个人在线自动发卡网源码V3.1
  11. 下载envi中遇到的问题
  12. 微信小程序:收款码三合一制作微信小程序源码下载多模板选择
  13. 8m照片宽和高是多少_8寸照片的大小
  14. Mac10.14版本安装虚拟机Parallels Desktop 14和windows7 64位旗舰版镜像
  15. android power 按键,android 添加按(power键)电源键结束通话(挂断电话)
  16. 攻防世界backup
  17. vue手机适配媒体查询用法@media
  18. 014 Unbox failed! RequestError: Error: getaddrinfo ENOENT raw.githubusercontent.com raw.githubuserco
  19. 07中华小姐大赛落幕 20岁佳丽曾光夺冠
  20. Centos 7 环境下将修改后的MAC地址永久保存

热门文章

  1. 地图制图基础(二):地图内容
  2. php酒店系统论文,基于PHP的酒店管理系统PHP1008(毕业设计+论文)
  3. 道路设计基础知识,让你一秒变大师
  4. java applet init_java Applet中init方法
  5. 使用wamp3.0.6安装LimeSurvey时报“参数默认值只能为NULL”错误的解决办法
  6. 数字逻辑练习题(七) 用74LS138译码器和门电路实现逻辑函数
  7. java运行环境配置实验报告_java程序开发运行环境实验报告.doc
  8. Google Earth Pro软件无法登录,打开为黑色
  9. python爬取新浪博客_Python爬取韩寒所有新浪博客
  10. ISO 9001是什么?ISO 9001 质量管理体系详细介绍