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

MATLAB遗传算法工具箱简介

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

, g# O6 z. [- |: [
+ q8 x# g/ b9 L+ YMATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB软件是一个功能很强大的工具,其中可以使用GA工具箱进行遗传算法的数据优化,下面给出具体的操作简单的实例。
) X: c) m. M/ m. t4 ?9 o
# H! A. w8 F- ]. w- W①利用GUI打开并使用MATLAB遗传算法工具箱。" ?6 ]: c. {: R/ W  @# [
打开MATLAB选择应用程序,点击Optimization。
" t+ y& T- z/ k5 L5 S3 ]3 J7 M9 a9 X

* f4 \3 W8 X# S+ ]$ a
9 [9 w+ g- V/ r打开后显示优化界面第一个solver选择ga/ b! V+ ~& I1 k1 q' N) D7 ^) D

- r2 r& _" J& w0 S - c6 h4 i. E4 O! R  t1 |4 B; x
- @7 @# {! i( O" ~! K3 M
函数(注意是单目标只能有一个函数输出值)的MATLAB代码填入Fitness Funtion,输入变量值为2,其它设置options可以使用自定义,也可以使用默认,这里我的种群设置为200。设置完后点击start
7 s2 o" K0 S' D* J( F( h
! M  v% r1 @4 P& {9 ] , I$ o. w% \9 R0 }3 _3 e

$ f  i3 L" E; P# u我优化的函数代码:; j2 u- G* M( z9 j. M
: s0 @9 V, L) c& O! {
  • 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;3 x7 y: m9 }! x7 V
9 \3 O# C8 ^- H% B4 R' j0 G& `8 S

& s, h9 F1 Q: Z6 x( F常用的options& y- C! d0 U: K1 w
选项        功能        值0 ~% S; K8 c; \  R' d$ I
CrossoveRFraction        交叉的概率        0-1的小数( y  C) `9 z' ~* m3 _* l+ {. x
EliteCount        用于精英原则,$ q" U8 x; l3 P# W
每次遗传中一定会活下来的个体的个数        正整数
5 S9 J) h) {0 Y9 Q4 GFitnessLimit        适应度的范围        标量/ {-Inf}
3 p& X0 z+ h% `8 T$ z, G7 sGenerations        迭代遗传的次数        正整数
8 Y* h# T, t9 RInitialPopulation        初始种群        可以用上一次遗传生成的种群( s# @' R  }3 w+ @: ]& z
作为下一次GA的初始种群# T$ ~; r! A; Z" ~0 ]
7 @; ?  [8 D7 R$ e
当然MATLAB官方说这个优化工具箱将在未来的版本中去除,请留意。
- [( B% c2 w* j8 o5 B2 A& }( I7 m" {! l( H! ^- k% |$ n

1 ^) S- |' _' G7 O$ w) G8 \
7 u& Z: p5 \8 W②利用命令运行GA工具箱
! r/ {- k$ `9 |9 T" e种群大小200
, Q, A7 h6 w  f/ }* N: o. x精英解的数量20# K- y) q% X% d0 U8 X3 s
交叉率0.751 r- p, o) s: @" T7 `
迭代次数1000
+ m* ?, A# ]3 O8 u7 G4 z9 \4 ]停止代数(stall generations)与适应度函数值偏差(function tolerance)。若在Stallgenerations设定的代数内,适应度函数值的加权平均变化值小于function tolerance,算法停止& G& h% g) L4 r+ h# m
! m3 D8 l0 r5 Y) l7 X
优化的函数是上面GUI中给出的函数( p( h  }" i. D, }

% j8 }% E# f1 E8 Y1 p
  • 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函数
    , ]' k1 }( W" s  r6 i. g

; `+ d& p) D; ~5 A# A$ p3 H; e; \7 z, G- I( U
运行时的结果:
; Z+ L: o' f8 Q6 B: I, K9 c. d7 l
6 b  w( C8 c! h. |9 x
. _! m% X6 n$ J2 @. q $ N# ^1 Y( M/ L3 P: e# X! B( F

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-27 19:08 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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