前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MATLAB遗传算法工具箱简介

MATLAB遗传算法工具箱简介

作者头像
里克贝斯
发布2021-05-21 15:31:58
1.4K0
发布2021-05-21 15:31:58
举报
文章被收录于专栏:图灵技术域图灵技术域

MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB软件是一个功能很强大的工具,其中可以使用GA工具箱进行遗传算法的数据优化,下面给出具体的操作简单的实例。

①利用GUI打开并使用MATLAB遗传算法工具箱。

打开MATLAB选择应用程序,点击Optimization。

打开后显示优化界面第一个solver选择ga

函数(注意是单目标只能有一个函数输出值)的MATLAB代码填入Fitness Funtion,输入变量值为2,其它设置options可以使用自定义,也可以使用默认,这里我的种群设置为200。设置完后点击start

我优化的函数代码:

MATLAB

代码语言:javascript
复制
function f=GA_demo(x)
f1=4*x(1).^3+4*x(1)*x(2)+2*x(2).^2-42*x(1)-14;
f2=4*x(2).^3+4*x(1)*x(2)+2*x(1).^2-26*x(1)-22;
f=f1.^2+f2.^2;

常用的options

选项

功能

CrossoverFraction

交叉的概率

0-1的小数

EliteCount

用于精英原则, 每次遗传中一定会活下来的个体的个数

正整数

FitnessLimit

适应度的范围

标量/ {-Inf}

Generations

迭代遗传的次数

正整数

InitialPopulation

初始种群

可以用上一次遗传生成的种群 作为下一次GA的初始种群

当然MATLAB官方说这个优化工具箱将在未来的版本中去除,请留意。

②利用命令运行GA工具箱

种群大小200 精英解的数量20 交叉率0.75 迭代次数1000 停止代数(stall generations)与适应度函数值偏差(function tolerance)。若在Stallgenerations设定的代数内,适应度函数值的加权平均变化值小于function tolerance,算法停止

优化的函数是上面GUI中给出的函数

MATLAB

代码语言:javascript
复制
clear
clc
fitnessfcn = @GA_demo;
% 适应度函数句柄
nvars = 2;% 个体的变量数目
options = gaoptimset('PopulationSize',200,'EliteCount',20,'CrossoverFraction',0.75,'Generations',1000,'StallGenLimit',500,'TolFun',1e-100,'PlotFcns',{@gaplotbestf,@gaplotbestindiv}); %参数设置
[x_best,fval] =ga(fitnessfcn,nvars,[],[],[],[],[],[],[],options);   % 调用ga函数

运行时的结果:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ①利用GUI打开并使用MATLAB遗传算法工具箱。
    • 打开MATLAB选择应用程序,点击Optimization。
      • 打开后显示优化界面第一个solver选择ga
        • 常用的options
        • ②利用命令运行GA工具箱
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档