clc;
close all;
clear all;
%进化的代数
T=100;
optionsOrigin=gaoptimset('Generations',T/2);
[x,fval,reason,output,finnal_pop]=ga(@ch14_2f,2,optionsOrigin);
%进行第二次接力进化
options1=gaoptimset('Generations',T/2,'InitialPopulation',finnal_pop,...
'PlotFcns',@gaplotbestf);
[x,fval,reason,output,finnal_pop]=ga(@ch14_2f,2,options1);
Bestx=x
BestFval=fval
看到过这个程序,能用来解规划问题,可是为什么程序中应用了两次50代的遗传算法,为什么不用一次100代的呢?
关于matlab遗传算法的问题,急!!!!!!!!
答案:2 悬赏:0 手机版
解决时间 2021-03-19 02:37
- 提问者网友:温柔港
- 2021-03-18 04:47
最佳答案
- 五星知识达人网友:逐風
- 2021-03-18 06:19
你好,这是协同遗传进化算法,有两个种群同时进行进化,防止局部极小。
全部回答
- 1楼网友:走死在岁月里
- 2021-03-18 07:05
不知道你这个遗传算法得出的结果与你已知的最小值差距多大?其实遗传算法作为优化算法,得到的只是优化解,不一定是最优解,此其一,其二,基本遗传算法可调整的参数太多,例如选择,交叉的方法,而这些对结果影响还是比较大的,如果你用轮盘赌方法效果不怎样,可以选择用其他方法试试。 最后,matlab是有遗传工具箱的,你可以直接使用工具箱得到结果,如果你不确定你的程序有没有写错的话。也可以作为一个参考。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯