遗传算法 matlab实现 多维变量 二进制编码
这些日子一直在学习遗传算法,在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实现 多维变量 二进制编码相关推荐
- MATLAB语言实现模拟退火算法求解n维变量的最小值问题
在给定定义域,对于求解函数对应的最优值问题.此处以模拟退火算法求解30维变量函数最小值问题举例(最大值问题也可转化成求解最小值问题). 其中,. 一.模拟退火算法简介 模拟退火算法(SA)来源于固体退 ...
- MATLAB程序详细解析,遗传算法——matlab代码解析
遗传算法--matlab代码解析 本文为学习B站老哥数学建模课程之后的一点笔记,图片源自web,代码源自老哥程序包,侵权删. 详细的遗传算法原理不再赘述,百度即可找到. 算法定义 遗传算法(GA)是模 ...
- 加速遗传算法 matlab,求加速遗传算法,不是自适应遗传算法
就是用第一次.第二次进化迭代所产生的优秀个体的变量变化空间, 作为变量新的初始变化区间, 算法进入步 1, 重新运行 SGA ,如此加速循环, 直到最优个体的优化准则函数值小于某一设定值或算法运行达到 ...
- 简单遗传算法MATLAB实现
整理资料的时候发现的一篇讲的比较好的基于MATLAB实现遗传算法的博文,感谢原主的博文,源博文->简单遗传算法MATLAB实现 遗传算法的概念最早是由Bagley J.D 于1967年提出的.后 ...
- Matlab遗传算法求解TSO,遗传算法matlab程序实例.doc
遗传算法matlab程序实例.doc --------------------------------------------------------------------------------- ...
- matlab 极坐标 二维,matlab笔记二维绘图(极坐标隐函数等)008.docx
matlab笔记二维绘图(极坐标隐函数等)008.docx 008二维绘图(极坐标.隐函数等)一.极坐标图形调用格式为POLART,R,'选项'其中,T为极角,R为极径,选项的使用和PLOT类似.例1 ...
- 利用matlab绘制二维均匀流线和向量场
利用matlab绘制二维均匀流线和向量场(向量场彩色箭头,颜色随变量变化) 0前言 1 均匀流线的绘制 2 绘制彩色的短线图 3 绘制彩色的均匀流线 4 运动的彩色箭头流线图 0前言 之前一篇文章ma ...
- 非线性整数规划的遗传算法Matlab程序
非线性整数规划的遗传算法Matlab程序 通常,非线性整数规划是一个具有指数复杂度的NP问题,如果约束较为复杂,Matlab优化工具箱和一些优化软件比如lingo等,常常无法应用,即使能应用也不能给出 ...
- matlab建成二维数组,matlab绘制二维数组
hist 累计图 rose 极座标累计图 stairs 阶梯图 stem 针状图 fill 实心图 feather 羽毛图 compass 罗盘图 quiver 向量场图 Matlab 如何画出一个二 ...
- 遗传算法(matlab)
遗传算法(matlab) 主要流程 编码 二进制编码 编码 解码 浮点数编码 符号编码 适应度函数 适应度函数尺度变换 1.线性尺度变换 2.乘幂尺度变换 3.指数尺度变换 选择算子 轮盘赌选择 交叉 ...
最新文章
- 初识FPGA(二)(FPGA与ASIC及CPLD的对比)
- 【计算机网络】计算机网络概述 : 总结 ( 概念 | 组成 | 功能 | 分类 | 性能指标 | OSI 七层参考模型 | TCP/IP 模型 | 五层参考模型 )★★★
- 24张IT工程师技能图谱,这些你都会吗?
- 深度学习(3)手写数字识别问题
- 【C语言】又是排序(指针专题)
- Python使用with语句:记录时间检查路径
- 查找丢包故障点的一个好命令:pathping
- while (true) 和 for (;;) 哪个更快?
- soapui直接下载响应内容为本地的文件
- 最新伯乐PHP个人在线自动发卡网源码V3.1
- 下载envi中遇到的问题
- 微信小程序:收款码三合一制作微信小程序源码下载多模板选择
- 8m照片宽和高是多少_8寸照片的大小
- Mac10.14版本安装虚拟机Parallels Desktop 14和windows7 64位旗舰版镜像
- android power 按键,android 添加按(power键)电源键结束通话(挂断电话)
- 攻防世界backup
- vue手机适配媒体查询用法@media
- 014 Unbox failed! RequestError: Error: getaddrinfo ENOENT raw.githubusercontent.com raw.githubuserco
- 07中华小姐大赛落幕 20岁佳丽曾光夺冠
- Centos 7 环境下将修改后的MAC地址永久保存
热门文章
- 地图制图基础(二):地图内容
- php酒店系统论文,基于PHP的酒店管理系统PHP1008(毕业设计+论文)
- 道路设计基础知识,让你一秒变大师
- java applet init_java Applet中init方法
- 使用wamp3.0.6安装LimeSurvey时报“参数默认值只能为NULL”错误的解决办法
- 数字逻辑练习题(七) 用74LS138译码器和门电路实现逻辑函数
- java运行环境配置实验报告_java程序开发运行环境实验报告.doc
- Google Earth Pro软件无法登录,打开为黑色
- python爬取新浪博客_Python爬取韩寒所有新浪博客
- ISO 9001是什么?ISO 9001 质量管理体系详细介绍