目前,遗传算法工具箱主要有三个:

  • 英国谢菲尔德大学的遗传算法工具箱
  • 美国北卡罗来纳州立大学的遗传算法最优化工具箱
  • MATLAB自带的遗传算法与直接搜索工具箱(GADS)

GADS介绍

本文介绍的是MATLAB自带的遗传算法与直接搜索工具箱(GADS),其可以求解无约束优化问题、线性约束优化问题、非线性约束优化问题。它拥有两种使用方式,一种为使用命令行方式,其特点是简洁;另一种为利用GUI界面,即在相应参数的位置上键入特定值或使用默认值,其特点是直观。另外,需注意GADS是对目标函数取最小值进行优化。(求解最大值只需将适应度函数乘以-1,即取相反数)

其GUI界面打开方式有两种,一种为在工具栏中选择Optimization Tool,可以在Solver下拉菜单中找到函数名为ga的选项即为其GUI界面。另一种则需在命令窗口中输入optimtool(‘ga’)打开GUI界面。

界面从左到右共由三部分组成:

  • 问提建立与结果模块( Problem Setup and Results )

从上到下依次是:输入适应度函数句柄( Fitness function )、个体所含的变量数目( Number of variables )、约束(线性不等式约束( Linear inequalities )、线性等式约束( Linear equalities )、上下限约束( Bounds )、非线性约束函数( Nonlinear constraint function),待设置完中间板块的Options后,单击 Start按钮,遗传算法即开始运行,运行完之后的结果显示在该板块的下部。

  • 遗传算法选项设置板块( Options )
  1. 种群( Population )

    种群的类型( Population Type )默认为实数编码( Double vector )。种群大小( Population size )默认值是50,也可以根据需要自定义( Specify )。(下面各参数均可由用户自定义)

    剩下为初始种群的相关设置,要以为由遗传算法通过初始种群产生函数( Creation function )随机产生,也可以由用户设定初始群( Initial population )、初始种群的适应度函数值( Initial scores )和初始种群的范围( Initial range )。

  2. 适应度排序( Fitness scaling )

    默认使用函数等级排序( Rank )。

  3. 选择( Selection )

    默认使用函数随机均匀( Stochastic uniform )。

  4. 繁殖( Reproduction )

    遗传算法为了繁殖下一代,需要设置精英数目( Elite count)和交叉叉后代比例( Crossover fraction ),默认值分别为0.05*种群大小和0.8。

  5. 变异( Mutation)

    根据所优化函数的约束的不同,变异函数是不同的。用户只需要保持默认的 constraint dependent 即可,GADS 会根据问题建立与结果板块( Problem Setup and Results )中输入的约束类型的不同选择不同的变异函数。

  6. 交叉( Crossover)。

    同变异,用户只需要保持默认的 constraint dependent 即可。

  7. 迁移( Migration )

    迁移是个体在子种群之间的移动,如果将种群大小设置为长度大于1的向量,则算法会创建迁移。每隔一段时间,一个亚种群中最好的个体就会取代另一个亚种群中最差的个体。您可以通过以下三个参数控制迁移的方式。方向默认为向前( Forward ),则会向最后一个子种群迁移。即第n个亚种群迁移到第(n+1)个亚种群。

  8. 终止条件( Stopping criteria )

    终止条件有以下几个,满足其中一个条件,遗传算法即停止
    ① 最大进化代数( Generations )。最大进化代数即遗传算法的最大迭代次数,默认为100*变量数。
    ② 时间限制( Time limit )。遗传算法允许的最大运行时间,默认为无穷大。
    ③ 适应度函数值限制( Fitness limit )。当种群中的最优个体的适应度函数值小于或等于Fitness limit 时,算法停止。
    ④ 停止代数( Stall generations )。若在 Stall generations设定的代数内,算法停止。默认的设置分别为50。
    ⑤ 停止时间限制( Stall time limit )。若在 Stall time limit设定的时间内,种群中的最优个体没有进化,算法停止。

    ⑥ 适应度函数值偏差( Function tolerance)。适应度函数值的加权平均变化值小于 Function tolerance,算法停止。默认的设置分别为1e-6。

  9. 绘图函数( Plot functions )。包括最优个体的适应度函数值( Best fitness )、最优个体( Best individual )、种群中个体间的距离( Distance )等,只要选中相应的选项, GADS就会在遗传算法的运行过程中绘制其随种群进化的变化情况。

  • 快速参阅板块( Quick Reference )

该板块对问题建立与结果板块及遗传算法选项设置板块的内容做了详细的解释,相对于快速的Help,不需要时可以隐藏。

具体操作

  1. 使用GUI方式:

首先编写适应度函数的m文件,即所求解目标函数。

function f = GADS(x)
%适应度函数表达式
f=...

然后再输入适应度函数句柄,如:@GADS。最后填写各参数后单击Start开始运行遗传算法。

  1. 使用命令行方式:
fitnessfcn = @GADS;           % 适应度函数句柄
nvars = 2;         % 个体的变量数目
%参数设置
options = gaoptimset('PopulationSize',100,'EliteCount',10,'CrossoverFraction',0.75,'Generations',500,'StallGenLimit',500,'TolFun',1e-100,'PlotFcns',{@gaplotbestf,@gaplotbestindiv});
[x_best,fval] =ga(fitnessfcn,nvars,[],[],[],[],[],[],[],options);   % 调用ga函数

上面gaoptimset函数中各参数根据需求变换。

运行结果



需要源码请在文章下留言

MATLAB自带的遗传算法工具箱(GADS)相关推荐

  1. matlab自带的优化工具箱,MATLAB 自带优化工具箱(optimization Tool)之遗传算法简述...

    MATLAB 自带优化工具箱(optimization Tool)之遗传算法简述 MATLAB 自带优化工具箱(optimization Tool)之遗传算法简述 MATLAB 自带优化工具箱(opt ...

  2. MATLAB找不到遗传算法工具箱,用不了gatool命令的解决方案

    解决方案 官方解释如下: gatool was removed as of R2015b. Use optimtool 在MATLAB R2015b前的版本可以使用gatool调用遗传算法工具箱,我测 ...

  3. matlab 遗传算法 等式约束,关于MATLAB遗传算法工具箱不等式约束

    过去很久了,之前写论文的经验分享一下. 写毕业论文的时候需要用到遗传算法,网上查了很多资料,由于没时间认真去学算法的内部结构,最后还是选择了MATLAB自带的遗传算法工具箱(MATLAB2017-GA ...

  4. 关于MATLAB遗传算法工具箱不等式约束

    过去很久了,之前写论文的经验分享一下. 写毕业论文的时候需要用到遗传算法,网上查了很多资料,由于没时间认真去学算法的内部结构,最后还是选择了MATLAB自带的遗传算法工具箱(MATLAB2017-GA ...

  5. GATBX遗传算法工具箱函数及实例讲解

    基本原理: 遗传算法是一种典型的启发式算法,属于非数值算法范畴.它是模拟达尔文的自然选择学说和自然界的生物进化过程的一种计算模型.它是采用简单的编码技术来表示各种复杂的结构,并通过对一组编码表示进行简 ...

  6. MATLAB 2016a遗传算法工具箱安装

    测试环境:window 7,MATLAB 2016a,gatbx遗传算法工具箱 添加工具箱时,需要设置路径并保存工具箱路径缓存,但是2016a 找不到file菜单,因此.... 步骤: 1. 下载遗传 ...

  7. MAT之SA:T1编写主函数法和T2Matlab自带的SA工具箱GUI法,两种方法实现对二元函数优化求解

    MAT之SA:T1编写主函数法和T2Matlab自带的SA工具箱GUI法,两种方法实现对二元函数优化求解 目录 输出结果 实现代码 输出结果 %SA:T2法利用Matlab自带的SA工具箱optimt ...

  8. MAT之SA:T1编写主函数法和T2Matlab自带的SA工具箱GUI法,两种方法实现对一元函数优化求解

    MAT之SA:T1编写主函数法和T2Matlab自带的SA工具箱GUI法,两种方法实现对一元函数优化求解 目录 输出结果 实现代码 输出结果 %SA:T2法利用Matlab自带的SA工具箱optimt ...

  9. MATLAB遗传算法工具箱Genetic Algorithm Toolbox的下载和安装

    2019独角兽企业重金招聘Python工程师标准>>> 1. 下载Genetic Algorithm Toolbox 打开网页http://codem.group.shef.ac.u ...

  10. Python遗传算法工具箱的使用(一)求解带约束的单目标优化

    加了个小目录~方便定位查看~ 前言 正文 一. 基础术语: 二. 遗传算法基本算子: 三.完整实现遗传算法: 四.后记: 前言 网上有很多博客讲解遗传算法,但是大都只是"点到即止" ...

最新文章

  1. 字节AI Lab总监李磊离职加入UCSB,马维英后又一大牛回归学界
  2. ES6 箭头函数易出错细节
  3. w7计算机无法管理员权限设置,操作权限不够?教你开启Win7管理员帐户
  4. Linux内部的时钟处理机制全面剖析
  5. python矩阵运算dot_矩阵、张量乘法(numpy.tensordot)的时间复杂度分析
  6. 音视频技术开发周刊 | 192
  7. 钉钉开发者接口文档_无需开发,IT事件接入钉钉的方法详解
  8. 利用 Charles Proxy 下载旧版本 iOS App
  9. Win32程序执行单元-多线程
  10. 【LeetCode笔记】322. 零钱兑换(Java、动态规划)
  11. 高等组合学笔记(九): 球盒模型的十二模式,分拆的生成函数
  12. 【LeetCode】剑指 Offer 32 - II. 从上到下打印二叉树 II
  13. Golang实践录:工程管理
  14. java socket 客户端接收_java socket,怎么把客户端接收到的用户名和密码发送给后台?...
  15. OWASP 2013年十大Web应用安全漏洞
  16. ubuntu下virtualbox安装windows7
  17. 如何制作印章水印?教你在线制作电子印章水印
  18. Windows 使用 ssh 命令行 通过密钥连接到 云服务器
  19. GBT 31000-2015 社会治安综合治理基础数据规范 数据项 编码
  20. 超简洁WIN10桌面分享

热门文章

  1. jsp 弹出窗口设置大全
  2. 数学建模之常见的优化模型
  3. CAD手机精准看图隐私政策
  4. creator 生成bmfont字体文件
  5. SMTP邮件服务器要求安全连接或客户端未通过身份验证的各个解决方案
  6. quartz定时器corn表达式
  7. 服务器部署文档模板,完整word版)部署文档模板
  8. 网络安全辅助工具:免费MD5解密网站
  9. 磁盘不见了只剩一个c盘_电脑开机后磁盘都不见了,只剩下C盘了,为什么啊,求大神指教。...
  10. TLPI UNIX linux系统编程手册源代码运行