1. 首页 > 经验 >

遗传算法代码 遗传算法python实现

关于遗传算法代码,遗传算法python实现这个很多人还不知道,今天小华来为大家解答以上的问题,现在让我们一起来看看吧!

遗传算法代码 遗传算法python实现遗传算法代码 遗传算法python实现


遗传算法代码 遗传算法python实现


1、发现的几处错误:1、适应度函数里面if a[i]=4改为if a(i)==4,类似的还有if b[i]=4。

2、不需要多解释了吧?一个是数组注意和C语言风格区别,另一个是判断相等的符号问题。

3、2、适应度函数应返回列向量,在fit函数加一句:fitness=fitness(:);3、选择的结果是种群规模减小,不能使用固定的出示规模20,应把适应度函数里面两处循环for i=1:20改为for i=1:size(x,1)。

4、4、主函数里面rein应为reins。

5、代码写到一个M文件中:function zd%% 初始化遗传算法参数%初始化参数NIND=20;MAXGEN=100;NVAR=8;PRECI=1;GGAP=0.9;% 进化代数,即迭代次数% 种群规模%% 初始化种群计算适应度值% 初始化种群FieldD=[rep(PRECI,[1,NVAR]);rep([0;1],[1,NVAR]);rep([1;0;1;1],[1,NVAR])];Chrom=crtbp(NIND,NVARPRECI);ObjV=fit(bs2rv(Chrom,FieldD));gen=0;while genFitnV=ranking(ObjV);SelCh=select('sus',Chrom,FitnV,GGAP);SelCh=recombin('xovsp',SelCh,0.7);SelCh=mut(SelCh,0.07);ObjVSel=fit(bs2rv(SelCh,FieldD));[Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);gen=gen+1%找的染色体trace(gen,1)=min(ObjV);trace(gen,2)=sum(ObjV)/length(ObjV);endplot(trace(:,1)); hold on;plot(trace(:,2)); grid;legend('erage','bestfitness');function [fitness]=fit(x)for i=1:size(x,1)i%随机产生一个种群if (x(i,6)x(i,7)-x(i,8)x(i,6))(x(i,3)x(i,2)-x(i,4)x(i,1))==0x(i,:)=unidrnd(2,1,8)-1;end%染色体的适应度enda=x(:,1)+x(:,2)+x(:,3)+x(:,4);b=x(:,5)+x(:,6)+x(:,7)+x(:,8);for i=1:size(x,1)iif a(i)==4c=1;elsec=0;endif b(i)==4d=1;elsed=0;endfitness(i)=c+d;endfitness=fitness(:);。

本文到这结束,希望上面文章对大家有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 12345678@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息