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

MATLAB遗传算法工具箱简介

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
' Y' \- o/ i( ^, B3 ?6 a. x/ R2 V
. p/ d0 O0 \) c
MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB软件是一个功能很强大的工具,其中可以使用GA工具箱进行遗传算法的数据优化,下面给出具体的操作简单的实例。
2 Z$ H; T% q0 M2 F1 a# ~# Z7 N
7 Y1 A: _( p, S: {①利用GUI打开并使用MATLAB遗传算法工具箱。
" d' `8 y. m9 W9 Q5 q打开MATLAB选择应用程序,点击Optimization。
, R) `8 M! m( y- p( E! \" I' Q4 U1 @7 S; W+ {' C

$ J9 l4 e  {$ H& ?4 D, L9 ]) f9 y5 z/ X$ q6 n9 G( e; |" {
打开后显示优化界面第一个solver选择ga# E  X2 F) L3 _# J  a

9 z% f6 b! {$ |: j- ^. d
6 F" [$ e- C" t6 Q9 [
0 N7 v8 b! L4 E3 B! h" p) L函数(注意是单目标只能有一个函数输出值)的MATLAB代码填入Fitness Funtion,输入变量值为2,其它设置options可以使用自定义,也可以使用默认,这里我的种群设置为200。设置完后点击start8 r6 z! I, C* o( z5 D' p8 w" K8 A- {

+ f4 t5 i0 \/ E- d7 P9 x
+ |, T- N1 m0 v8 e3 S7 t& x/ ]7 f3 K; a7 C
我优化的函数代码:
& k8 s2 K' y. n( V1 @7 W+ R/ Q, u. k
  • 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;
    4 A1 N2 e7 ^' e) g' P( J6 ~
3 P- ?) d7 Q" G  t# c4 U% c
4 u: I# G+ w. ^
常用的options
* A, I) q: X' Y0 i7 R7 c! Y7 K9 f- v选项        功能        值
( ~, c0 m5 d6 H$ G: VCrossoveRFraction        交叉的概率        0-1的小数; k+ Y4 t; o$ T# s8 E
EliteCount        用于精英原则,
  K9 y2 S# o0 X3 ~每次遗传中一定会活下来的个体的个数        正整数
$ X, M/ t3 H1 EFitnessLimit        适应度的范围        标量/ {-Inf}+ a; i! q6 H& H2 w
Generations        迭代遗传的次数        正整数
7 T" b4 j9 d7 {! t! K4 Y# TInitialPopulation        初始种群        可以用上一次遗传生成的种群5 p7 x0 X0 T/ @
作为下一次GA的初始种群
; G% F: A0 R8 D+ D( L
1 u, i  L+ N9 s9 I当然MATLAB官方说这个优化工具箱将在未来的版本中去除,请留意。
( h5 F" Y2 B5 Z: d8 q( a; o  U; W5 t1 {9 W
- ~* s- X) i/ @- B4 {$ i

0 v- Y( p0 d4 U( V  ^) S8 s# Q②利用命令运行GA工具箱
+ Q3 Y$ E8 ^. N2 x& v3 k种群大小200
' B: z4 E3 C& o& e/ i% E精英解的数量20
; X2 {' D5 Q5 V9 s7 `7 B" X: `交叉率0.75% E3 x- S, P, i& R
迭代次数10003 ?' \0 l8 c, s
停止代数(stall generations)与适应度函数值偏差(function tolerance)。若在Stallgenerations设定的代数内,适应度函数值的加权平均变化值小于function tolerance,算法停止
0 t# W+ ^- v; a" r. T1 I& w) q) B
+ @* Q. u3 u9 v7 z优化的函数是上面GUI中给出的函数
8 f/ X/ S( w) X6 r2 y8 d/ x$ @2 u; `! l- h; b) E
  • 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函数
    2 J# a/ I" j( `" x

& n& e+ X, w: h" Z( _
8 r5 Z; t4 D9 b9 I运行时的结果:; O4 ]0 N2 G; v! M0 d# c, L
' l, z& r+ y" ?# f* [0 o
; }, Q% V: T# o; P8 v1 U, J1 m
. A  O( h+ @3 k) F. x9 M) d  C& h

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 21:34 , Processed in 0.171875 second(s), 27 queries , Gzip On.

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

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

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