遗传算法(Genetic Algorithm,GA)最早是由美国的 John holland于20世纪70年代提出,该算法是根据大自然中生物体进化规律而设计提出的。是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。该算法通过数学的方式,利用计算机仿真运算,将问题的求解过程转换成类似生物进化中的染色体基因的交叉、变异等过程。在求解较为复杂的组合优化问题时,相对一些常规的优化算法,通常能够较快地获得较好的优化结果。遗传算法已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。

选择操作:

从旧个体中以一定概率选择优良个体组成新的种群,以繁殖得到下一代

交叉操作:

从种群中随机选择两个个体,通过两个染色体的交换组合,把父串的优秀特征遗传给子串,从而产生新的优秀个体

变异操作:

从种群中随机选择一个个体,选择个体中的一点进行变异以产生更优秀的个体

原理图:

Matlab中关于遗传算法自带的两个函数:gaoptimset()、ga()

gaoptimset()      设置遗传算法的一些参数

调用格式

options = gaoptimset('Param1', value1, 'Param2', value2, ...);(返回一个结构体)

Param1、Param2等是需要设定的参数,比如种群规模、交叉比例等等
value则是Param对应的值
CrossoverFraction             交叉比例                                                           0.8
Generations             算法中止的最大迭代次数                                           100
PopulationSize                 种群规模                                                             20
MigrationFraction             变异概率                                                             0.2
FitnessLimit       当适应度函数达到设定的值时算法中止                               -
StallGenLimit     当超过StallGenLimit代适应度函数为改善时,算法中止    50

ga()          %开始遗传算法的计算           (参数不需要则设置为空矩阵[])

调用格式

[x_best,fval] = ga(fun, nvars, A, b, Aeq, beq, lb, ub, nonlcon, options);

fun为目标函数句柄  (在定义的函数名前加个@即可)
nvars为自变量个数
A、b、Aeq、beq、lb、ub你都很熟了
nonlcon非线性约束函数句柄
options上述函数返回的结构体

举个栗子:

非线性约束函数的设立:

function [c,ceq] = nonlconfun(x)
c = -(1/4).*x(1)^2 + x(2)^2 - 1;
ceq = [];
end

目标函数句柄的设立:

function y = fun(x)
y = (x(1)-2)^2+(x(2)-1)^2;
end

主要m文件:

clc;clear
options = gaoptimset('PopulationSize', 300, 'Generations', 800);
nvars = 2;  A = [-1, 2];  b = [1];
Aeq = []; beq = []; lb = []; ub = [];
nonlcon = @nonlconfun;
[x_best,fval] = ga(@fun, nvars, A, b, Aeq, beq, lb, ub, nonlcon, options)

运行m文件,即可得到如下所示结果:

即当x1取2,x2取1的时候,函数取得最小值0

Matlab遗传算法相关推荐

  1. c遗传算法的终止条件一般_Matlab2 :Matlab遗传算法(GA)优4~-r-具箱是基于基本操作 联合开发网 - pudn.com...

    Matlab2 所属分类:matlab例程 开发工具:PDF 文件大小:115KB 下载次数:76 上传日期:2007-09-07 20:04:29 上 传 者:钱广 说明:  :Matlab遗传算法 ...

  2. matlab bs2rv.m,matlab遗传算法工具箱中的例子不能用?

    matlab遗传算法工具箱中的例子不能用,我也发现了,求助 figure(1); fplot('variable.*sin(10*pi*variable)+2.0',[-1,2]);   %画出函数曲 ...

  3. 【生产优化】基于matlab遗传算法求解帐篷工序问题【含Matlab源码 2145期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [生产优化]基于matlab遗传算法求解帐篷工序问题[含Matlab源码 2145期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...

  4. 【GA MTSP】基于matlab遗传算法求解多旅行商问题(多且同始终点)【含Matlab源码 1339期】

    一.获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码. 获取代码方式2: 完整代码已上传我的资源:[MTSP]基于matlab遗传算法求解多旅行商问题[ ...

  5. 基于Matlab遗传算法工具箱解决物流中心选址

    目录 1.问题 2.建模 3.Matlab编程.求解 1.问题 物流配送中6个客户的位置坐标和配数数量如表1所示,如何设置物流配数中心使得配送量最小. 2.建模 3.Matlab编程.求解 编写目标函 ...

  6. Matlab遗传算法神经网络泰坦尼克号

    Matlab遗传算法神经网络泰坦尼克号 介绍 实验步骤 流程图 初始化参数 初始化种群 计算适应度函数 选择 交叉 变异 实验结果 总代码 介绍 数据处理见上篇博文,这里用遗传算法优化神经网络的参数, ...

  7. 【ELM分类】基于matlab遗传算法优化ELM神经网络数据分类【含Matlab源码 2138期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[ELM分类]基于matlab遗传算法优化ELM神经网络数据分类[含Matlab源码 2138期] 点击上面蓝色字体,直接付费下载,即可. ...

  8. 【GA TSP】基于matlab遗传算法求解旅行商问题【含Matlab源码 1337期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[TSP]基于matlab遗传算法求解旅行商问题[含Matlab源码 1337期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...

  9. matlab bs2rv.m,matlab遗传算法工具箱gatbx(直接可用版)

    [实例简介] 这是最好用的matlab遗传算法工具箱:gatbx,工具箱可直接使用.安装说明及使用简介可见<matlab遗传算法gatbx工具箱介绍及安装说明>一文. [实例截图] [核心 ...

  10. matlab 工具箱 GATBX 的安装,安装Sheffield Matlab遗传算法工具箱的建议

    在通常的遗传算法学习中,可以直接对目标函数进行编写,但是当我们需要使用simulink进行仿真优化需要用到遗传算法时,我这里有两种建议:①在模型中添加sfunction然后使用自己喜欢的语言进行编写: ...

最新文章

  1. [推荐].NET开发人员必备的10个Visual Studio Add-Ins
  2. 简单的并发测试工具 ab.exe ab.zip可下载 -摘自网络
  3. Eclipse 修改所有文件默认编码为UTF-8
  4. 阿里云服务器外网访问问题
  5. JDBC之在分层结构中实现业务
  6. 【每周CV论文推荐】 初学深度学习人脸属性分析必读的文章
  7. apache lucene_全文搜索Apache Lucene简介
  8. 点钞机语音怎么打开_我有这些语音识别指令,你都知道吗?
  9. excel解决线性规划求解问题
  10. O2O(online to offline)营销模式
  11. 第一章 基本句型及补语
  12. 牛腩新闻发布--本地超链接打不开
  13. 气传导耳机是什么原理?气传导蓝牙耳机优缺点分析
  14. pca百分比取多少比较好_主成分分析(PCA)的详细解释
  15. 激光打印机的原理、碳粉分类
  16. 浙江科技大学计算机调剂,浙江科技大学计算机应用技术专业2019年考研调剂信息...
  17. vue-barcode生成条形码
  18. 华为EC122在HiSi3110E上移植
  19. ios12上滑关闭程序动画_苹果iOS 12.1.3应用强制退出后台动画再变
  20. Playfair密码的基本原理及事例

热门文章

  1. The Biggest Water Problem【牛客网】
  2. window删除文件夹时提示源路径太长无法删除的解决办法
  3. java技术可行性分析_Java可行性分析
  4. c语言课程设计物业,C语言课程设计报告--物业管理系统.doc
  5. netstat命令详解
  6. 词表匹配工具FlashText
  7. ASP.NET 访问项目网站以外的目录文件
  8. PDFLib库的使用c++
  9. python语言程序设计实践教程上海交通大学出版社的答案_高等教育出版社出版社c语言程序设计实践教程习题参考答案...
  10. 计算机二级ms模拟考试系统,全国计算机等级考试二级MS Office高级应用模拟考试系统...