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

MATLAB遗传算法工具箱简介

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    + p' Y3 e# p: I6 }8 [: F* d
    MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB软件是一个功能很强大的工具,其中可以使用GA工具箱进行遗传算法的数据优化,下面给出具体的操作简单的实例。9 W1 M4 }& O3 `1 h

    & W9 x4 u+ L* X4 |①利用GUI打开并使用MATLAB遗传算法工具箱。& F$ c3 u# M+ W. F0 p
    打开MATLAB选择应用程序,点击Optimization。7 \; @. f, u3 w- z4 ]3 l+ C3 W
    ! A3 H: D8 d) F3 Y4 q
    " [! _0 B: b& b5 M1 y

    ! d1 m; f0 T' G1 o  }打开后显示优化界面第一个solver选择ga0 W; X" z* A! D- V- p4 e

    9 l- R4 B7 @' @+ E/ R ' y$ b$ ^; K1 F$ z3 {! k

    2 x( n- k8 O2 y, B8 J$ `7 m6 N& C5 ?1 {: ~5 ^" _7 a
    函数(注意是单目标只能有一个函数输出值)的MATLAB代码填入Fitness Funtion,输入变量值为2,其它设置options可以使用自定义,也可以使用默认,这里我的种群设置为200。设置完后点击start
    " ^( O& U/ E7 W6 J- Y1 B+ o4 Y# X1 k7 y& v
    ( L. L$ z) ^' K0 B7 Y, Q

    % K+ J' V( v: S8 S
    9 G3 X8 N' Z7 E4 \" ]我优化的函数代码:
    ( N. v& m& n$ p) C# q' L, ]  h/ V+ S) b% {
    • 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;$ x$ ]3 U7 l; h# e5 H  R& u3 s% a" g

    9 A3 r( j; ^/ `# e9 Q8 P
    % `1 [) \4 B" @; a6 m常用的options9 t) m; b: C; m- Y2 r* ^

    ) N6 I  |% i$ X0 e
    ; r/ o8 Z+ ]- X2 e/ r! s
    8 V( q$ t9 w7 s1 H0 W1 ~; K- m( \* |$ A) q
    当然MATLAB官方说这个优化工具箱将在未来的版本中去除,请留意。% K6 f% @* X5 y) q7 J! f" D( t
    2 N8 i3 S1 v/ D' ?2 ]$ w
    7 X3 v, {& P, |7 w0 ~) C$ S

    . h2 v! c* \1 y9 j% ]
    , j# Z! f* O# Z# H% t②利用命令运行GA工具箱! S0 W6 d: G) u0 B& m7 w
    种群大小200
    0 D# j0 A' u0 b3 t+ z0 x8 p精英解的数量20+ j2 e( Y. {9 W3 w; {+ O
    交叉率0.75
    6 i" |9 ^2 r; N: |3 k( S; a迭代次数1000
    7 A+ k: ?3 a- o2 k5 P停止代数(stall generations)与适应度函数值偏差(function tolerance)。若在Stallgenerations设定的代数内,适应度函数值的加权平均变化值小于function tolerance,算法停止
    2 M$ p( l6 W5 L6 a% K: v# c' @( w% W9 e, c# J6 b& k
    优化的函数是上面GUI中给出的函数
    8 T( i7 N! I( }2 I) B, \/ Q( g/ f% o
    • 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函数/ J7 n# G4 b9 n! b% m" ^$ `; O
    : C, }2 o% f* Q0 ?6 [9 @, b

    8 h9 X  g8 g" ]8 C运行时的结果:
    # c5 _" v. x" Y. ]& C9 n( v  B) w7 t: V+ c4 {# r! N* b0 e" v
    # m/ s/ P( s1 c; R9 z. p

    ' Y" _) y& Q$ `# C' N- t1 Y+ h
  • 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-24 00:25 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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