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

MATLAB遗传算法工具箱简介

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
+ q4 l. \. \4 j& r
' s. ~/ H3 d& k) b! K
MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB软件是一个功能很强大的工具,其中可以使用GA工具箱进行遗传算法的数据优化,下面给出具体的操作简单的实例。
) j, S: w- Z# H/ N/ [5 Y. p0 w; \  }
& v" r( }/ j% j! }①利用GUI打开并使用MATLAB遗传算法工具箱。' t+ c1 F' G& z
打开MATLAB选择应用程序,点击Optimization。
# e. E& X% D+ ]9 _
. l; I5 B  ]3 q
" }) |1 |1 o! c, y9 r0 w5 j% X3 f0 U1 V; F& w+ d
打开后显示优化界面第一个solver选择ga
% n) R7 m! x! }# z- x! H9 s0 H
& B' b. W4 w! C . b3 N( W0 ?* I5 z) m  L" A

# H/ v# _2 I& G3 G# @4 l6 U函数(注意是单目标只能有一个函数输出值)的MATLAB代码填入Fitness Funtion,输入变量值为2,其它设置options可以使用自定义,也可以使用默认,这里我的种群设置为200。设置完后点击start
& l% F! e! @0 ]( |0 `9 ?
7 v4 D. M. b1 t( [( o / H: b) b0 W/ f# ]0 h
5 {) p- Y1 l' Z2 h3 Q# ~
我优化的函数代码:: s% [  D6 T5 V1 |/ J

; e1 g! f# a7 B, j. P1 u
  • 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;/ b) u* X, a$ s/ }3 E) p- C
2 q4 T' Y  b# E

0 f- _: D( j! [6 U2 J6 ^2 x0 `常用的options1 t% E# F$ F2 [( Y2 ]
选项        功能        值
: Q) f1 g! Z5 Y$ n. g% LCrossoveRFraction        交叉的概率        0-1的小数: ^# B9 Y( Y2 f
EliteCount        用于精英原则,
9 J/ K; i+ p0 o: G+ z3 @6 C每次遗传中一定会活下来的个体的个数        正整数9 I$ T  ^( Z7 e5 w& `2 z5 Y# ~
FitnessLimit        适应度的范围        标量/ {-Inf}, p! X+ \( E6 j' J: p- [1 R
Generations        迭代遗传的次数        正整数
- w4 b5 M7 u6 W8 b8 g* F) y# PInitialPopulation        初始种群        可以用上一次遗传生成的种群
" v3 r( {' F2 h: y作为下一次GA的初始种群
- f  z% N$ c& p" D: @
5 O) G; A* }/ q* C1 r+ J* q" m/ [当然MATLAB官方说这个优化工具箱将在未来的版本中去除,请留意。& v& y' _. j0 A5 q+ W2 G- p
, V- A: Q6 i; F( o' B

9 l  Z# s# j# A: \  ?/ c$ P8 Z
6 S4 t  a6 O& z/ \0 o0 W②利用命令运行GA工具箱- i; `: O9 T8 T7 k" u1 B7 x  [, ?. ~
种群大小200& E! ], P% t/ z6 j, r
精英解的数量209 ?- ~, S1 @5 @: l0 h
交叉率0.752 u3 v; J! z" z
迭代次数1000; Z2 R0 {/ K, [' Q' s1 G7 S3 U
停止代数(stall generations)与适应度函数值偏差(function tolerance)。若在Stallgenerations设定的代数内,适应度函数值的加权平均变化值小于function tolerance,算法停止
0 N6 @+ \; q# P! s, P  v* j( a! X
优化的函数是上面GUI中给出的函数$ T+ v$ J- R% q4 U% q4 R: y) i8 c( w

3 L* E. O& H. }' a, t- 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函数1 g' N5 o/ C) x5 ]
. T* V& s* d# \/ W" _0 L
/ \; w/ n& C2 a( T) K# n+ s
运行时的结果:
6 W$ y. E; S" f" C8 F  [! F" U  ^3 Z& m

) \& K7 u% S9 {4 a: W1 _ . B0 ~, |  R$ U; N* e2 {3 e

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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