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

MATLAB遗传算法工具箱简介

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    ) u$ R: @1 c5 U* K* N; j9 E8 [
    MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB软件是一个功能很强大的工具,其中可以使用GA工具箱进行遗传算法的数据优化,下面给出具体的操作简单的实例。1 t% t! f. y* M
    ! X+ K" X* D+ Z# ~! D
    ①利用GUI打开并使用MATLAB遗传算法工具箱。
    / ?6 E0 w  h. a& Y0 r  x打开MATLAB选择应用程序,点击Optimization。
    8 O" T7 Z4 d0 g: V  h2 x8 D* J$ A& g
    8 T3 k' \& p# o, H# s# \( |

    2 w' F# Q% K1 H9 y* W+ `, z打开后显示优化界面第一个solver选择ga8 u5 j3 o- o8 {! Z# s* C& f: D$ J# E. a

    4 a' p% Y6 h6 a; j$ C 3 q; X1 ?5 c/ H- E& b
    % q4 b6 `2 ]2 }2 ~9 q

    ) u, H* a  w. y函数(注意是单目标只能有一个函数输出值)的MATLAB代码填入Fitness Funtion,输入变量值为2,其它设置options可以使用自定义,也可以使用默认,这里我的种群设置为200。设置完后点击start; N$ c) m  Y& \

    * o# ^( b0 |- i$ Z3 t9 g # C3 g* X7 H" n! F8 q0 [* \, [
    ! J# ~) P- L( O* `  n) `6 d* }% K
    7 t" k+ H* N, _( J, y$ k+ ~
    我优化的函数代码:
    + q# r- J& `' b2 Q8 A; {. I8 h2 A+ r& e' Y" W9 a
    • 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;5 ~, r6 c0 z1 r/ V; x
    : J! ~4 [1 K4 g

    ) `6 P$ w, O% o# X1 P常用的options
    : q. H& R* r2 o% l5 a) k& v/ p: |& r( l7 `. K+ F, p

    2 N  Z3 p' X) \/ f  Z- K6 L! ]7 \' Q, E; u5 M" e; D: w6 ]/ z+ _

    ( p5 L- D) K; v. W% @4 o当然MATLAB官方说这个优化工具箱将在未来的版本中去除,请留意。* ~$ a7 h- x+ z1 \3 q
    # b* [* H8 ?5 N4 i8 n/ q

    1 D9 |# l' v. m. {; h
    , d5 j9 F, v2 \: o2 j8 Y& h9 t
    - G* u$ i" k5 l7 V②利用命令运行GA工具箱& R$ P& O# U# K3 I' U( D5 O
    种群大小200
    / ~. k1 V5 M8 d, E精英解的数量20% ^# I  m3 W7 M& Z; \+ Z
    交叉率0.753 y3 B( s6 M  q# i, ^2 s6 E
    迭代次数10001 U' C+ x% A' _9 b! e( {( b% h
    停止代数(stall generations)与适应度函数值偏差(function tolerance)。若在Stallgenerations设定的代数内,适应度函数值的加权平均变化值小于function tolerance,算法停止- w9 O/ G* ?( |: h
    $ c, c+ O8 A  ~, W7 B' X
    优化的函数是上面GUI中给出的函数
    % E0 V8 g+ l$ ]: V6 W/ Y# J$ U- e9 \# `, T; {. D6 t. T
    • 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函数
      3 \7 r, Z+ `" X# U0 {' r0 l

    , X3 c  N: O+ V& k) j2 G; C) O3 p1 w& _/ O7 K7 Z2 G! b4 d
    运行时的结果:5 m) B7 j5 O/ h
    ) d+ Q$ q; e0 h5 c0 w

    & [7 N% N( P1 |" H& T 2 R: b  d: @3 P; v1 r4 X& s' v
  • 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 01:34 , Processed in 0.156250 second(s), 27 queries , Gzip On.

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

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

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