| 查看: 686 | 回复: 2 | ||||
[求助]
遗传算法matlab程序求解
|
|
figure(1); fplot('variable.*sin(10*pi*variable)+2.0',[-1,2]);%画出函数曲线 %定义遗传算法参数 NIND=40;%个体数目(Number of individuals) MAXGEN=25;%最大遗传代数(Maximum number.of generations) PRECI=20;%变量的二进制位数(Precision of variables) GGAP=0.9;%代沟(Generation gap) trace=zeros(2,MAXGEN);%寻优结果的初始值 FieldD=[20;-1;2;1;0;1;1];%区域描述器(Build field descriptor)格雷编码,算术刻度,包含边界 Chrom=crtbp(NIND,PRECI);%初始种群 gen=0;%代计数器 variable=bs2rv(Chrom,FieldD);%计算初始种群的十进制转换 ObjV=variable.*sin(10*pi*variable)+2.0;%计算目标函数值 while gen SelCh=select('sus',Chrom,FitnV,GGAP);%选择 SelCh=recombin('xovsp',SelCh,0.7);%重组 SelCh=mut(SelCh);%变异 variable=bs2rv(SelCh,FieldD);%子代个体的十进制转换 ObjVSel=variable.*sin(10*pi*variable)+2.0;%计算子代的目标函数值 [Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);%重插入子代的新种群 gen=gen+1;%代计数器增加 %输出最优解及其序号,并在目标函数图像中标出,Y为最优解,I为种群的序号 [Y,I]=max(ObjV); hold on; plot(variable(I),Y,'bo');%b是blue,o是圆圈 trace(1,gen)=max(ObjV);%遗传算法性能跟踪 trace(2,gen)=sum(ObjV)/length(ObjV); end variable=bs2rv(Chrom,FieldD);%最优个体的十进制转换 hold on ; grid on;%显示网格线 plot(variable',ObjV','b*'); figure(2); plot(trace(1, ');%plot函数可以接受字符串输入变量,这些字符串输入变量用来指定不同的颜色、线型和标记符号。:表示点线hold on; plot(trace(2, ','-.');grid;%-.表示点划线legend('解的变化','种群均值的变化');%图形加标注 麻烦问一下 染色体数目会变为36? 怎么样解决,使其一直为40? |
» 收录本帖的淘帖专辑推荐
导航、制导与控制 | matlab |
» 猜你喜欢
全日制(定向)博士
已经有5人回复
假如你的研究生提出不合理要求
已经有10人回复
萌生出自己或许不适合搞科研的想法,现在跑or等等看?
已经有4人回复
Materials Today Chemistry审稿周期
已经有4人回复
参与限项
已经有3人回复
实验室接单子
已经有4人回复
对氯苯硼酸纯化
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有12人回复
所感
已经有4人回复
要不要辞职读博?
已经有7人回复
» 本主题相关价值贴推荐,对您同样有帮助:
大家爱帮我看看这段MATLAB程序为啥出错了
已经有5人回复
求助高手将以下C语言翻译为Matlab语言,急急急!
已经有12人回复
matlab论文分享(包括神经网络,遗传算法,粒子群算法)
已经有442人回复
如何MATLAB程序实现遗传算法
已经有11人回复
一个关于matlab的遗传算法的问题
已经有3人回复
学习Matlab必备!!!
已经有398人回复
求回归方程参数估计的最优化算法matlab代码
已经有9人回复
看不懂matlab程序该怎么办?
已经有7人回复
遗传算法的一段程序请教解释
已经有9人回复
【求助】matlab 遗传算法工具箱绘图命令是什么?
已经有6人回复
2楼2013-05-02 23:39:21
3楼2013-05-02 23:52:12












');%plot函数可以接受字符串输入变量,这些字符串输入变量用来指定不同的颜色、线型和标记符号。:表示点线
回复此楼