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

MATLAB遗传算法工具箱简介

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

9 r+ Q/ s: D% E+ T, M
' G7 {/ `0 p+ k6 xMATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB软件是一个功能很强大的工具,其中可以使用GA工具箱进行遗传算法的数据优化,下面给出具体的操作简单的实例。
$ Z6 y1 Z/ r: X8 _
, v; |  Q: j/ E" Y. {  w①利用GUI打开并使用MATLAB遗传算法工具箱。+ L. E  q" }9 `% \& ^' _! F
打开MATLAB选择应用程序,点击Optimization。
0 `/ h8 O( m; p( D$ `; {% W( q
/ ~+ r- p' v0 ~+ g 1 V# D: R$ G+ J1 g. A
! G9 `* Y4 E8 @1 K# A
打开后显示优化界面第一个solver选择ga0 j* n& k5 b$ W! l: F: G2 h

  R) u  c* H+ K% _  x 3 k/ O% C% J8 i: _  h" J+ y! Z

5 h* h# _2 A( j7 ~0 w3 k5 V函数(注意是单目标只能有一个函数输出值)的MATLAB代码填入Fitness Funtion,输入变量值为2,其它设置options可以使用自定义,也可以使用默认,这里我的种群设置为200。设置完后点击start7 [, C2 L5 R0 S

% ^& L" ]  ~5 N) y7 ]! N. [% o7 M! x
$ O% Q! l) Y4 N/ V7 n% _
+ K/ f7 N3 V4 n我优化的函数代码:
4 N9 }" L9 F' \/ F
4 T4 G) R; W4 |' 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;
    1 O6 F  Z! ~3 i5 Q! |: Q9 Z+ a' P

+ v+ d" v  k3 L  M' J: \6 s# p. {7 P: R
常用的options
, v) ]  m' S3 P8 N! J" ]选项        功能        值
( x& C. |) ~5 hCrossoveRFraction        交叉的概率        0-1的小数5 @6 y$ D0 G, ]6 }9 y5 q
EliteCount        用于精英原则,- r% o/ J1 X9 Z1 r
每次遗传中一定会活下来的个体的个数        正整数
; b6 Z5 x9 I' U; q* sFitnessLimit        适应度的范围        标量/ {-Inf}
. j8 b. R! A+ F% d& CGenerations        迭代遗传的次数        正整数# \; g' c6 b( c$ d8 N
InitialPopulation        初始种群        可以用上一次遗传生成的种群
% C  f6 R3 Q: K/ _1 |作为下一次GA的初始种群
8 \+ P; l0 ]+ M( i  u) G) ]% D3 {) H5 k, W
当然MATLAB官方说这个优化工具箱将在未来的版本中去除,请留意。
: i3 Q) O) q# D* I5 Q. q! t( a0 J# N: {- C0 A1 i- @& \
1 T0 O% Y  I, @+ M* K
; q9 l8 V; @- S3 B9 \/ x
②利用命令运行GA工具箱  A( g  q" P' h0 A5 k
种群大小200* i. ^4 T/ [' b4 C! O1 W: z
精英解的数量20; x; ]8 ~8 y) Z& {& S) E
交叉率0.75
/ _- `- j5 b& Q$ @8 P! F迭代次数10001 B+ d- _6 a5 `' R" V
停止代数(stall generations)与适应度函数值偏差(function tolerance)。若在Stallgenerations设定的代数内,适应度函数值的加权平均变化值小于function tolerance,算法停止
7 g5 A* ~3 C- u& w% U) x) N; p* B; \/ ~' O- s! {% H' K3 v2 X
优化的函数是上面GUI中给出的函数
) @0 m9 e0 d9 B, Q
7 S9 O6 c5 ~; Y9 o6 f2 ]
  • 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函数/ `* |1 r  t7 y9 C! y" y
( U: B* x# r2 [& C+ T. [
( N% _+ F) k6 o' c  W4 y
运行时的结果:
2 e2 ^5 @1 X+ q5 j: G' V9 V1 j; ^  B" ^; D+ n
7 H7 D3 V; b, ~. d3 _4 d
$ T3 }  [! {; B2 o' X6 O

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-6 22:18 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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