下载此文档

matlab、lingo程序代码3-背包问题(遗传算法).doc


文档分类:IT计算机 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7 下载此文档
文档列表 文档介绍
背包问题---遗传算法解决functionPopulation1=GA_copy(Population,p,w0,w)%复制算子%Population为种群n=length(Population(:,1));fvalue=zeros(1,n);fori=1:nfvalue(i)=GA_beibao_fitnessvalue(Population(i,:),p,w0,w);endfval=fvalue/sum(fvalue);F(1)=0;forj=1:nF(j+1)=0;fork=1:jF(j+1)=F(j+1)+fval(k);endendfori=1:ntest=rand;forj=1:nif((test>=F(j))&&(test<F(j+1)))Population1(i,:)=Population(j,:);endendendfunctionPopulation1=GA_exchange(Population,pc)%遗传算法交换算子%pc为交换概率Population1=Population;POP=[];n=length(Population(:,1));%k=floor(n*pc);%用于交换的染色体数目%采用单点交换算子j=1;l=length(Population(1,:));fori=1:ntest(i)=rand;iftest(i)<pcforz=1:lPOP(j,z)=Population(i,z);endPOP(j,l+1)=i;p(j)=randint(1,1,[1l-1]);j=j+1;endendk0=j-1;k=floor(k0/2);ifk>=1form=1:kfort=p(2*m-1)+1:ls=POP(2*m-1,t);POP(2*m-1,t)=POP(2*m,t);POP(2*m,t)=s;endendform=1:k0fori=1:lPopulation1(POP(m,l+1),i)=POP(m,i);endendendfunctionfitnessvalue=GA_fitnessvalue(x,p,w0,w)%使用惩罚法计算适应度值%x为染色体%p为背包问题中每个被选物体的价值%w0为背包问题中背包总容积%w为背包问题中每个被选物品的容积l=length(x);fori=1:la(i)=p(i).*x(i);endf=sum(a);b=min(w0,abs(sum(w)-w0));fori=1:lwx(i)=w(i).*x(i);endifabs(sum(wx

matlab、lingo程序代码3-背包问题(遗传算法) 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人dongmengguoji
  • 文件大小18 KB
  • 时间2019-11-08