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

MATLAB遗传算法工具箱简介

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x

    ) N# C9 k3 z& a7 GMATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB软件是一个功能很强大的工具,其中可以使用GA工具箱进行遗传算法的数据优化,下面给出具体的操作简单的实例。+ r7 Y" H! B1 c8 p4 d/ p9 r) C* x6 ]
    1 ~: Q; d# k6 x  f" }, s* B( E
    ①利用GUI打开并使用MATLAB遗传算法工具箱。
    ) n) N& L) T' ^3 b- E+ [0 K打开MATLAB选择应用程序,点击Optimization。
    3 M% H" `; C" Y4 C4 L4 C5 {! X- q+ ?0 t

    . h/ N% J4 H$ w7 e: p1 a
    ) p' v" I7 h8 l打开后显示优化界面第一个solver选择ga' }' W- ?: S4 v4 A! z

    0 s2 J. g( s" J+ f! H+ F  G, b
    , x8 r) i( F  p7 ]5 d. H
    1 e2 Z' y1 V! T; x2 Z! w1 Y6 X# e' U6 D5 n
    函数(注意是单目标只能有一个函数输出值)的MATLAB代码填入Fitness Funtion,输入变量值为2,其它设置options可以使用自定义,也可以使用默认,这里我的种群设置为200。设置完后点击start3 Q2 H) b6 A% n6 A( }$ q

    3 x4 A& T, o, ~2 ]8 ^! |" n
    . Z; h) ?9 Q# b* M. O2 G6 G& W* a) V' |
    6 D. \' i/ E" }! x
    我优化的函数代码:( s  w# t* q: Z4 @
    7 U$ P, i9 X$ L! J
    • 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;
      ; f# f3 Y1 d+ H/ \4 f

    ! z7 V+ |" U3 V- k& d6 V5 ?3 W
    ; C0 Q8 ?$ g# k+ a9 R6 |常用的options
    2 x6 N! j' R( I7 x
    $ t; e9 C3 P* r! q * r+ j/ V8 J7 F, w: Z
    " U, I7 V; |" x9 G2 P
    6 X4 D; m7 c" W( J8 U; ~% Z
    当然MATLAB官方说这个优化工具箱将在未来的版本中去除,请留意。
    ; E: R( Z4 j, M+ J, u1 Z! N( z/ c2 x$ A. c5 T& @) `
    & O, P/ H) d$ D
    ! T1 p0 u( j, c+ _; [. g
    5 k/ o& [) I" v! F" L/ z
    ②利用命令运行GA工具箱
    : R' L( {/ g5 m1 ^种群大小200; a! y* k  z6 w; i
    精英解的数量208 t2 k' w8 G* H, k6 a: m# l
    交叉率0.75
    * q- d/ \9 v6 E0 g6 c迭代次数1000$ Z. L* Q, s* |1 s4 E$ o
    停止代数(stall generations)与适应度函数值偏差(function tolerance)。若在Stallgenerations设定的代数内,适应度函数值的加权平均变化值小于function tolerance,算法停止1 B6 I$ |) _" [7 N9 w: \
    5 c, ]  e0 x9 I6 z3 v
    优化的函数是上面GUI中给出的函数- t- z5 D0 w! E: _( z2 ?* u. O
    & r, C. m5 l+ T- G" A
    • 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函数* s- u3 T- l& e  @! l

    2 w- [( F: d! f
    3 R5 v3 C. Z: X5 Z. ]" Q8 y# i运行时的结果:. \8 _6 `+ Z0 U; j$ @& P

    ; `7 D: S: G: n  g0 Y' O
    5 b  Q# Z5 k8 B1 B( ~. A7 ]4 P8 Z
    5 \/ k' g% \* K
  • 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-11-23 23:51 , Processed in 0.187500 second(s), 27 queries , Gzip On.

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

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

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