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

MATLAB遗传算法工具箱简介

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
" x9 s( U. ?7 {

! l3 C  W2 C$ d' {MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB软件是一个功能很强大的工具,其中可以使用GA工具箱进行遗传算法的数据优化,下面给出具体的操作简单的实例。7 _- ~4 @* l8 v# v1 l

! e8 M* Q2 i2 D# V9 k, u3 f: t①利用GUI打开并使用MATLAB遗传算法工具箱。0 Z4 v# N% m( a9 T4 Q% B
打开MATLAB选择应用程序,点击Optimization。$ R0 X, c, t" m; v& R  D

- Z9 o+ P6 a4 r) ~. S
% w7 k% J( F2 s% E1 f9 ?6 M& v& @% B* I+ p  a
打开后显示优化界面第一个solver选择ga
9 F4 L" j9 x* y
4 t5 m: y3 e; |6 M% t, N- c( y6 K
. E2 ~  M! g1 ^6 k# P) n) G$ U, r( q/ C
函数(注意是单目标只能有一个函数输出值)的MATLAB代码填入Fitness Funtion,输入变量值为2,其它设置options可以使用自定义,也可以使用默认,这里我的种群设置为200。设置完后点击start
# Q& C+ Y* Z$ r7 P7 u: ^) Q: Y" U; \. u, g. B. m6 B% p7 ^# o

) D! S& x$ J! @' `, ]  m( |2 U, F) Q" u1 }/ f* V
我优化的函数代码:
8 f* Z. O4 G/ q+ f% R
0 m" H3 ~+ s6 r% @. g
  • 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;
    0 g* M; H4 |6 w7 z3 h( i. l
5 C7 Y; v% b$ M0 ~7 V

* r# Z6 y+ z  v9 y' a常用的options
' V) W( r' w1 `. l2 I8 [选项        功能        值
9 i) U& ~  D& uCrossoveRFraction        交叉的概率        0-1的小数
: i5 g, N8 v# n2 I6 x) T- hEliteCount        用于精英原则,! R/ d$ @5 h# O2 X! p0 Z6 I* S
每次遗传中一定会活下来的个体的个数        正整数
8 i8 \( i; p! L! s/ B/ u* PFitnessLimit        适应度的范围        标量/ {-Inf}
8 _/ W4 H( t3 u( T! O* pGenerations        迭代遗传的次数        正整数
9 M! @: [1 V) U. FInitialPopulation        初始种群        可以用上一次遗传生成的种群
2 b- h' x! K1 T1 n! Z8 u( z作为下一次GA的初始种群
3 H  S6 l. X; s7 b
" q: k% U8 z+ X( C6 y当然MATLAB官方说这个优化工具箱将在未来的版本中去除,请留意。
( N% c! z- L* W, e. l" R5 R. R7 ^, f( r8 l
8 _4 e+ R1 B4 ^  w, m; n3 n1 P
  j) p8 H5 S4 F! \$ Z" y) l
②利用命令运行GA工具箱
6 v  e3 Q0 H" M7 |! I; D种群大小200
4 A( s) L: \0 f( W* H精英解的数量20
0 x4 u2 W- D- R; I$ ]# |( H交叉率0.75" P% q% S3 |7 O. k5 }) A! L
迭代次数10004 y$ b+ S. _( C  a, |
停止代数(stall generations)与适应度函数值偏差(function tolerance)。若在Stallgenerations设定的代数内,适应度函数值的加权平均变化值小于function tolerance,算法停止
2 N1 j  `. ~2 ?  t7 I$ I; u7 D
) ]3 ?+ ~- b* e* Q$ g* Z0 @& D优化的函数是上面GUI中给出的函数
( c4 l. T4 }0 T  }5 T
1 |. i9 d0 T; n6 Z2 y1 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函数4 U1 f  ?3 \; Z+ }# q: _& ^9 ?! j

& u: a  E, ^( C: Y! {) n2 a
- C: {. L; u5 G% |# g; a运行时的结果:
% @) y1 F# G" V# I0 X
0 a; N% T% b1 Z, ?* h# w6 p. y& @& }! m$ T

' ~* W4 c4 T0 \9 K+ N( ?/ I( k

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-22 03:01 , Processed in 0.093750 second(s), 26 queries , Gzip On.

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

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

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