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

matlab 遗传算法gatbx工具箱分享

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 House 于 2020-4-17 10:30 编辑
4 [. k% s, s' T1 B0 _
; K7 y+ O; L! `  b: ^& i! i# I% {最近刚刚开始看遗传算法的例子,网上找了一个:
( v" [9 [' l9 U9 j: x
  • <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']);+ _. ~+ n$ g6 c1 d

* P$ }/ m& S) F( p
# P5 r7 K6 v0 |$ c. o0 Q4 k( j

" `4 r) ~4 A2 _+ J) x$ D# Y. Q* s0 P$ v8 A: |9 f2 q3 v9 h
这个不用工具箱是算不出来的。6 E& U7 q" @: `4 H1 Z0 r
我本来论坛里搜了一个,用的是gaot_ga工具箱(论坛里有),但是 crtbp.m这个函数总是出错。后来发现是这个工具箱里没有==( D) A3 h; e& z, G  K, [( u( P
于是重新找了gatbx的工具箱,现在结果可以成功复制了,如图:0 Y, _$ A) [" N' n. H: d
6 D# p3 W9 Z& V8 W, v0 M) @
本来图2是跑不出来的,现在可以了。
0 s6 s. M! T/ H
! q8 u+ N/ }1 {# O+ E4 agatbx 分享给大家! x8 J6 Q1 i5 l  _; j
游客,如果您要查看本帖隐藏内容请回复
  • 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-7-22 15:55 , Processed in 0.109375 second(s), 26 queries , Gzip On.

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

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

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