找回密码
 注册
关于网站域名变更的通知
查看: 627|回复: 1
打印 上一主题 下一主题

MATLAB遗传算法工具箱简介

[复制链接]
  • TA的每日心情

    2019-11-20 15:22
  • 签到天数: 2 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2021-4-13 14:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x

    + s% w9 _- V( kMATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB软件是一个功能很强大的工具,其中可以使用GA工具箱进行遗传算法的数据优化,下面给出具体的操作简单的实例。
    4 A. N- [1 D5 O7 P1 w( v' h3 {/ s! n2 g7 K7 p$ u
    ①利用GUI打开并使用MATLAB遗传算法工具箱。
    - L3 b: f- J. U打开MATLAB选择应用程序,点击Optimization。9 Y# w9 x8 k3 }

      o6 c! Q  M4 }7 k0 Q9 [
    5 j: V5 J/ ]. p3 O' H- ]- H: v: m& u6 l/ \4 }: S9 H/ Q; Q
    打开后显示优化界面第一个solver选择ga
    ! _; j/ q! X4 J) F+ C# `6 T: {7 \/ Z+ v1 }7 c% P4 `/ B
    1 e5 Z3 J8 y: D2 v( n
    : U$ @% s2 x) w

    " ~" k- B2 j- y. Z- O4 x函数(注意是单目标只能有一个函数输出值)的MATLAB代码填入Fitness Funtion,输入变量值为2,其它设置options可以使用自定义,也可以使用默认,这里我的种群设置为200。设置完后点击start
    . X. K) H+ V9 e) u; P  a  [4 S
    ; A% F, `3 Y: a% b* f# `6 r ) ^! D) f6 x) _+ _. L
    . A5 W6 @! Q8 g+ x6 ?! \9 e
    ! x" p1 _6 d% H9 {
    我优化的函数代码:+ }3 T/ N4 h/ I/ H( O, q1 T

    / P6 ~' G' X+ k: a: E
    • 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;, }7 D1 V# |8 @; w5 j/ v8 H
    . o7 C3 V# Q! v
    % x5 v( t7 i/ p/ Z# W2 A! }
    常用的options
    * L5 S# Q1 E& }6 A* B. ^! K$ z  O/ N* |

    : ^  T" {* n: p' R
    8 ?, h; {: H$ N1 B6 e# z) y7 i
    9 I6 X. r0 s. z# O1 A3 E当然MATLAB官方说这个优化工具箱将在未来的版本中去除,请留意。
    - C4 n: X5 C" s% v& q* S) b3 n8 W" \, ^2 S2 |- Z- H% ~
    0 Y- H+ H4 h) e. ~* k3 c3 P
    % z, n0 ^7 e+ H7 F! c8 X- ~# S0 @* B
    / F; }! T# k& x1 q
    ②利用命令运行GA工具箱
    & G6 f: a! h1 j4 e0 K! B8 w0 C种群大小200
    ) v9 a0 H* }/ u4 J$ a& m5 w# y精英解的数量20* x7 T( j# U, x9 S
    交叉率0.75
    $ J# `& V; |! q0 \- s迭代次数1000
    3 N  G1 M4 D. _% s* L) {/ s* Q停止代数(stall generations)与适应度函数值偏差(function tolerance)。若在Stallgenerations设定的代数内,适应度函数值的加权平均变化值小于function tolerance,算法停止
    4 j/ \- L- _0 B% X; P" D' ?
    1 n2 f  ~& A4 b9 J优化的函数是上面GUI中给出的函数0 m4 x6 i% g0 x4 t9 d' q( b

    " S/ h# J( t9 [8 {) V1 o$ V
    • 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函数
      # T( {1 w& V+ h) {
    / g% h% K4 |3 z, J8 T% I  N

    & Z% |/ ]) q. p) B运行时的结果:
    , N0 c$ ]8 ]* z1 l' z
    5 I, L2 R/ ~. k* l9 a. y
    2 Y1 [# W& d, R: i& \ $ J6 o0 ?6 H0 [/ u9 N/ a9 Y
  • TA的每日心情

    2019-11-29 15:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2021-4-13 15:20 | 只看该作者
    MATLAB遗传算法工具箱简介
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-30 13:57 , Processed in 0.187500 second(s), 27 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表