下载此文档

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


文档分类:IT计算机 | 页数:约3页 举报非法文档有奖
1/3
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/3 下载此文档
文档列表 文档介绍
精品文档,仅供学****与交流,如有侵权请联系网站删除
【精品文档】第 1 页
背包问题---遗传算法解决
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);
end
fval=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);
end
end
for i=1:n
test=rand;
for j=1:n
if((test>=F(j))&&(test<F(j+1)))
Population1(i,:)=Population(j,:);
end
end
end
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)<pc
for z=1:l
POP(j,z)=Population(i,z);
end
POP(j,l+1)=i;
p(j)=randint(1,1,[1 l-1]);
精品文档,仅供学****与交流,如有侵权请联系网站删除
【精品文档】第 2 页
j=j+1;
end
end
k0=j-1;
k=floor(k0/2);
if k>=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
end
end
function fitnessvalue=GA_fitnessvalue(x,p,w0,w)
%使用惩罚法计算适应度值
%x为染色体
%p为背包问题中每个被

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

非法内容举报中心
文档信息
  • 页数3
  • 收藏数0 收藏
  • 顶次数0
  • 上传人jiquhe72
  • 文件大小10 KB
  • 时间2021-12-03