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

matlab 遗传算法gatbx工具箱分享

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 House 于 2020-4-17 10:30 编辑
9 g" B  ^9 [" C0 C3 o7 x/ x" _" O# }* X
最近刚刚开始看遗传算法的例子,网上找了一个:8 O: O1 P+ b2 p! f; L: n
  • <div class="blockcode"><blockquote>clc;clear all;close all;
  • %========画出函数图=======
  • figure(1);
  • lb=0;ub=9;   %自变量x的取值范围[-2,2]
  • ezmesh('x+10*sin(5*x)+7*cos(4*x)',[lb,ub]);  %画出函数曲线
  • hold on;
  • %================定义遗传算法参数======
  • ps=10;    %种群大小
  • mds=50;   %最大遗传代数
  • gt=20;    %个体长度
  • dg=0.95;  %代沟
  • px=0.95;   %交叉概率
  • pm=0.08;   %变异概率
  • trace=zeros(2,mds);   %寻优结果的初始值
  • FD=[gt;lb;ub;1;0;1;1]; %区域描述器
  • Chrom=crtbp(ps,gt);   %创建任意离散随机种群
  • %=========optimize(优化)====
  • gen=0;   %代计数器
  • X=bs2rv(Chrom,FD);  %初始种群的十进制转化
  • ObjV=X+10*sin(5*X)+7*cos(4*X);  %计算目标函数值
  • while gen<mds
  •     FitnV=ranking(-ObjV);               %分配适应度值
  •     SelCh=select('sus',Chrom,FitnV,dg); %选择
  •     SelCh=recombin('xovsp',SelCh,px);   %重组
  •     SelCh=mut(SelCh,pm);                %变异
  •     X=bs2rv(SelCh,FD);                 %子代个体的十进制转换
  •     ObjVSel=X+10*sin(5*X)+7*cos(4*X); %计算子代的目标函数值
  •     [Chrom,ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);%重插入子代到父代,得到新种群
  •     X=bs2rv(Chrom,FD);
  •     gen=gen+1;
  •     %获取每代的最优解及其序号,Y为最优解,I为个体序号
  •     [Y,I]=max(ObjV);
  •     trace(1,gen)=X(I);  %记下每代的最优值
  •     trace(2,gen)=Y;
  • end
  • plot(trace(1,: ),trace(2,: ),'bo');
  • grid on;
  • plot(X,ObjV,'bo');  %画出最后一代的种群
  • hold off;
  • %==========画进化图=====
  • figure(2);
  • plot(1:mds,trace(2,: ));
  • grid on;
  • xlabel('遗传代数');
  • ylabel('解的变化');
  • title('进化过程');
  • bestY=trace(2,end);
  • bestX=trace(1,end);
  • fprintf(['最优解:\nX=',num2str(bestX),'\nY=',num2str(bestY),'\n']);
    + C- D+ N+ }5 c& v: Y
  Z$ M+ i/ }; g

3 V' e: k, J7 @8 l# M
' C# q9 p  [" G* P' g  O) S
) ]) Y3 H; {* E2 z这个不用工具箱是算不出来的。
6 s, g$ {5 n8 }' a" \2 f我本来论坛里搜了一个,用的是gaot_ga工具箱(论坛里有),但是 crtbp.m这个函数总是出错。后来发现是这个工具箱里没有==
. t3 O) P# X$ i0 Z; g* K6 W# i0 G于是重新找了gatbx的工具箱,现在结果可以成功复制了,如图:. b5 t( X) C  T7 n" ^3 W" d

6 y' \1 g8 b0 L( L, |% ?- Z本来图2是跑不出来的,现在可以了。
' W- k) }6 \4 ^1 m' E
- g' R# V  A( Z4 e% ^* r! zgatbx 分享给大家: E& {$ f. B8 i: n
游客,如果您要查看本帖隐藏内容请回复
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-4-17 18:50 | 只看该作者
    aot_ga工具箱很好用啊
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-24 01:51 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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