matlab、lingo程序代码3-背包问题(遗传算法)_第1页
matlab、lingo程序代码3-背包问题(遗传算法)_第2页
matlab、lingo程序代码3-背包问题(遗传算法)_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

背包问题-遗传算法解决 function Population1=GA_copy(Population,p,w0,w)%复制算子%Population为种群n=length(Population(:,1);fvalue=zeros(1,n);for i=1:n fvalue(i)=GA_beibao_fitnessvalue(Population(i,:),p,w0,w);endfval=fvalue/sum(fvalue);F(1)=0;for j=1:n F(j+1)=0; for k=1:j F(j+1)=F(j+1)+fval(k); endendfor i=1:n test=rand; for j=1:n if(test=F(j)&(testF(j+1) Population1(i,:)=Population(j,:); end endend function Population1=GA_exchange(Population,pc)%遗传算法交换算子%pc为交换概率Population1=Population;POP=;n=length(Population(:,1);%k=floor(n*pc); %用于交换的染色体数目%采用单点交换算子j=1;l=length(Population(1,:);for i=1:n test(i)=rand; if test(i)=1 for m=1:k for t=p(2*m-1)+1:l s=POP(2*m-1,t); POP(2*m-1,t)=POP(2*m,t); POP(2*m,t)=s; end end for m=1:k0 for i=1:l Population1(POP(m,l+1),i)=POP(m,i); end endend function fitnessvalue=GA_fitnessvalue(x,p,w0,w)%使用惩罚法计算适应度值 %x为染色体%p为背包问题中每个被选物体的价值%w0为背包问题中背包总容积%w为背包问题中每个被选物品的容积l=length(x);for i=1:l a(i)=p(i).*x(i);endf=sum(a);b=min(w0,abs(sum(w)-w0);for i=1:l wx(i)=w(i).*x(i);endif abs(sum(wx)-w0)b*0.99 p=0.99;else p=abs(sum(wx)-w0)/b;endfitnessvalue=f*(1-p)*(1-p)*(1-p);function Population=GA_Initial(n,P)%n为染色体长度,即所供选择的物品总数%P为初始种群大小for i=1:P for j=1:n temp=rands(1,1); if temp0 Population(i,j)=1; else Population(i,j)=0; end endend function Population1=GA_tubian(Population,pe_tubian)%遗传算法突变算子%pe为突变概率Population1=Population;n=length(Population(:,1);m=length(Population(1,:);for i=1:n for j=1:m te

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论