资源简介
遗传算法求最小值 经本人调试 十分好用 用run命令调用mainmin1和mainmin2 就可以算出了
f='-(exp(-1))+(x-20).*(x-22)';可以改为其他计算其他函数的最小值
代码片段和文件信息
%--------------------------------------------------------------------------
%Crossover%交叉操作
function v=crossover(vtemppc)
[NL]=size(vtemp);
C(:1)=rand(N1)<=pc;%选择被杂交的。<=pc就是1否则是0构成0-1向量
I=find(C(:1)==1);%找分量等于1的元素,其下标构成向量。
I‘;%变成行向量
j=1;
for i=1:2:size(I)%两两配对所以以2为步长
if i>=size(I)%奇数个处理 如果是奇数个,则最后一行不处理
break;
end
site=fix(1+L*rand(1));%fix向零取整,L=22.%site属于1-22.随机确定交换点的位置
temp=vtemp(I(i1):);%交换的暂存变量。T 记录要交叉的第一行基因
vtemp(I(i1)site:end)=vtemp(I(i+11)site:end);%交换后面的数值
vtemp(I(i+11)site:end)=temp(:site:end);%交换 temp没有被修改
end
v=vtemp;%复制返回
end
%%
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 751 2013-12-03 20:58 ga_main\crossover.m
文件 513 2013-12-03 20:57 ga_main\decode.m
文件 210 2013-12-03 20:58 ga_main\init_population.m
文件 2984 2015-08-25 16:28 ga_main\mainmin1.m
文件 2999 2015-08-25 16:42 ga_main\mainmin2.m
文件 376 2013-12-05 00:54 ga_main\roulette.m
文件 403 2013-12-03 21:00 ga_main\roulette2.m
目录 0 2015-08-25 16:39 ga_main
----------- --------- ---------- ----- ----
8236 8
- 上一篇:flash计算器
- 下一篇:110kv变电站设计CAD图
评论
共有 条评论