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

MATLAB遗传算法工具箱简介

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-9-25 15:40 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x

: \. e9 t# y! ]) U. R: ]# g- q3 T( ]2 m0 h. {
MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB软件是一个功能很强大的工具,其中可以使用GA工具箱进行遗传算法的数据优化,下面给出具体的操作简单的实例。5 X0 e  Y) k* s, b4 L1 }: P

# ~& G+ H2 C7 M4 F①利用GUI打开并使用MATLAB遗传算法工具箱。* C% {7 V1 \  h  F! ^- i; e
打开MATLAB选择应用程序,点击Optimization。, U! I: Z$ n) N% a" F) N' k
3 v: o4 p9 a, _! i
! C5 W5 q% I) A( Y% g

" w+ J1 d+ j* u5 Q* {4 E' T打开后显示优化界面第一个solver选择ga( L1 a0 u$ z6 g3 u7 ~9 P' s
. o( i" {5 O- t4 ^" F

9 s8 T( E- ?# O2 L( }$ b, ]# }( {8 O6 z. v& v+ ~8 k& @2 ?8 ^4 `
函数(注意是单目标只能有一个函数输出值)的MATLAB代码填入Fitness Funtion,输入变量值为2,其它设置options可以使用自定义,也可以使用默认,这里我的种群设置为200。设置完后点击start: `/ x& ^+ o- z% p+ y+ ]& ]

6 I& ^0 m) u& }# @' }
; o4 K5 q( P% t' H" _/ P/ H
1 k. D& ^8 w9 V* a9 X1 d. ]; h我优化的函数代码:
' H% f* M/ X' g% m! \( M& U( T9 r7 R& K( J/ i6 r* Z' F
  • 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;
      V# u0 ?- {: T  M

5 y+ u0 ^) }0 s# m) c8 H1 t* C2 `% L9 q4 z: P3 ?3 _
常用的options
8 g- |7 X; }" g8 k2 L7 r) p选项        功能        值
' ^9 m. ^$ v6 k6 vCrossoveRFraction        交叉的概率        0-1的小数
$ ]' e: ^; K( t) g5 ?+ X3 |& o! r$ ZEliteCount        用于精英原则,& S) b% c$ |  t7 d: F! u. s/ H7 t
每次遗传中一定会活下来的个体的个数        正整数
1 |) s: a4 }, R: X4 F/ TFitnessLimit        适应度的范围        标量/ {-Inf}. x" u; Q- T9 [; x% B3 z/ Q1 o# ]
Generations        迭代遗传的次数        正整数1 P! {8 Y4 S4 Z  c5 }3 |
InitialPopulation        初始种群        可以用上一次遗传生成的种群
) x9 K8 M8 s  r作为下一次GA的初始种群
% K6 p7 Q3 ^" O  d$ v2 i( u# [5 u9 u- h6 M  P0 d) e* \! a7 @
当然MATLAB官方说这个优化工具箱将在未来的版本中去除,请留意。8 p. c# z% @1 Z

7 p% F* V+ ~7 @+ [/ h3 K ! B, ^1 f: v& n
3 q) |" o( ?5 {6 e
②利用命令运行GA工具箱
2 V2 _1 F9 V* o, R* \8 b2 @种群大小200
4 P3 k6 R7 K5 ]' o, T, w精英解的数量207 Y6 \1 d- l. J5 g' Q
交叉率0.75" w+ |0 \3 A5 `7 @) F. c3 K: ^
迭代次数10000 }( T5 o8 Q3 J  B3 j
停止代数(stall generations)与适应度函数值偏差(function tolerance)。若在Stallgenerations设定的代数内,适应度函数值的加权平均变化值小于function tolerance,算法停止( a9 o: w/ K. Q& f
2 R' v  y  X! ~' g
优化的函数是上面GUI中给出的函数
  m9 _6 e" a2 j8 M8 c, T6 E+ i* M0 W0 b0 X0 E& q5 }& p8 \: t$ K" m
  • 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函数
    " `0 ^6 K/ N' b: S+ J# }! d; C# p

! |- K/ S$ F& b2 i; r* W0 r$ ^. K0 M
运行时的结果:; W' Y7 T. R3 _$ ^1 z5 U$ s! D

6 ]: l, r9 s! b0 T9 T
% U+ }2 }- q1 u* j) f 3 }2 t# u# ^2 e+ }. B3 D  a# t2 B

该用户从未签到

2#
发表于 2020-9-25 16:35 | 只看该作者
MATLAB遗传算法工具箱简介
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-25 00:49 , Processed in 0.187500 second(s), 26 queries , Gzip On.

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

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

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