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

MATLAB遗传算法工具箱简介

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    4 N  Z8 V, _) a# W1 j' R. u
    MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB软件是一个功能很强大的工具,其中可以使用GA工具箱进行遗传算法的数据优化,下面给出具体的操作简单的实例。
    1 E2 f( s8 |  K& x: y) ?5 Z5 Y' y; |! v: M
    ①利用GUI打开并使用MATLAB遗传算法工具箱。
    6 F/ e& S# T' d0 c# m( e( [打开MATLAB选择应用程序,点击Optimization。
    $ P9 T( ~2 W& K! E# \; d6 ^. b5 [3 T9 S
    * `8 k0 x  ^* r$ @$ x+ I

    ' h* y1 v: d0 Q' w9 o$ A打开后显示优化界面第一个solver选择ga
    * J5 B( C( q. K/ V
    9 w4 s' {1 y: \3 B5 i& I3 w' L
    : Z1 ~0 u$ P, h% b% u% ]5 r' W7 V- @/ k/ T) S( T+ T

    4 y5 M( F6 y3 s6 n函数(注意是单目标只能有一个函数输出值)的MATLAB代码填入Fitness Funtion,输入变量值为2,其它设置options可以使用自定义,也可以使用默认,这里我的种群设置为200。设置完后点击start$ _7 |% x3 ~: i. l* P) N! i( D
    * b9 t$ j# @# v" n$ R! u% c

    ; z7 N6 w/ }  c$ x& @4 @' r: @! Q6 G0 X! F; k
    0 r( h# b7 a- s8 c1 F" f1 j
    我优化的函数代码:9 f- E8 F% E# P5 U; w

    $ m4 g! z& g5 Y8 J7 G# w+ G% z
    • 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;6 k( I! W* W4 j3 B9 @
    2 C/ D( z4 ?& @7 b" Z
    ' {, U, `9 ]9 ?! h- @: q7 a5 e
    常用的options
      b! L6 K3 d! b# L& G
    0 r- K6 f+ ^3 k: l   f2 R4 d) z4 @1 ]0 q
    # g, O* T; v2 O0 o3 g5 f7 c
    2 a$ l5 v, _% z' l  F2 S0 l
    当然MATLAB官方说这个优化工具箱将在未来的版本中去除,请留意。
    % J0 ~+ \! o$ B  A5 W
    ' C. [1 a+ [' F* W2 {" ?' L # e1 T+ e( B; S" x- Q5 _

    6 I" C' M' v2 N, i# V& C4 U/ P
    : \. m* n0 w: C# E6 {②利用命令运行GA工具箱# O' S" p* k5 x! j
    种群大小200
    + ]4 P9 r) M! c+ A6 f  d精英解的数量20
    / @/ f4 D" U9 b2 q/ A6 p交叉率0.75' [! c% z$ \6 X3 f6 m
    迭代次数1000
    % I8 D7 {8 q+ P" B' Z+ u停止代数(stall generations)与适应度函数值偏差(function tolerance)。若在Stallgenerations设定的代数内,适应度函数值的加权平均变化值小于function tolerance,算法停止4 X& S9 K0 P; g) r' P8 i! l1 R

    $ C; {6 K" p' N' V1 L4 h9 H优化的函数是上面GUI中给出的函数1 A) L/ F0 j& c! R, l' L+ J
    . G- t* |8 z! ]% h& g
    • 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函数' B8 @/ E( I* j+ o
    % K. J& i6 u7 m3 o6 d9 z
    , P- A8 u" Z$ H. _
    运行时的结果:
    , P9 T0 y- u& [9 M
    + w( M% N, u: F; E- {
    ! T5 b3 a' L5 r6 h
    3 W# ?3 T+ W4 M+ m2 S) z
  • 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-31 12:18 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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