- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
遗传算法
组员:张云云 杨亚飞 林琪琦
%初始值程序 cs.m
bound=[-3.0 12.1;4.1 5.8];
L=bound(:,2)-bound(:,1);
R=L*10^4;
a=rand(10,1);
s1=floor(R(1)*a);
s2=floor(R(2)*a);
b1=ones(10,1)*bound(1,1);
b2=ones(10,1)*bound(2,1);
r=[b1+s1/10^4,b2+s2/10^4];
%编码函数(十进制转化为二进制编码) B2F.m
%r 编码向量(十进制码)
%bound 边界约束
%b 二进制编码串
function [b,len,v]=B2F(r,bound)
len=[];v=[];b =[];b1=[];b2=[];
L=bound(:,2)-bound(:,1);
R=floor(L*10^4);
l1=length(de2bi(R(1)));
l2=length(de2bi(R(2)));
v1=r(:,1)-ones(10,1)*bound(1,1);
v1=floor(v1*10^4);
for i=1:10
B1=de2bi(v1(i),l1);
b1=[b1;B1];
end
v2=r(:,2)-ones(10,1)*bound(2,1);
v2=floor(v2*10^4);
for i=1:10
B2=de2bi(v2(i),l2);
b2=[b2;B2];
end
b=[b1,b2];
v=[v1,v2];
len=l1+l2;
%解码函数(二进制编码转化为十进制) F2B.m
%二进制编码转化为十进制
%x 解码向量(二进制码)
%bound 边界约束
%z 十进制码
function z=F2B(x,bound)
d=[];d1=[];d2=[];
x1=x(:,1:18);
x2=x(:,19:33);
d1=bi2de(x1);
d2=bi2de(x2);
for i=1:10
if d1(i)bound(1,2);
d1(i)=bound(1,2);
end
if d2(i)bound(2,2);
d2(i)=bound(2,2);
end
end
d=[d1,d2];
z=[ones(10,1)*bound(1,1)+d1/10^4,ones(10,1)*bound(2,1)+d2/10^4];
%个体适应度评价函数 myfun.m
function f=myfun(x1,x2)
f=21.5+x1.*sin(4*pi.*x1)+x2.*sin(20*pi.*x2);
%选择函数(轮盘赌)lp.m
%采取小盘轮转法
%child 返回选择后的染色体(十进制码)
%f 个体适应度
function child=lp(f,r)
value=sum(f);
for i=1:10
p(i)=f(i)/value;
q(i)=sum(p(1:i));
end
t=rand(10,1);
for j=1:10
for k=1:10
if t(j)q(k)
v(j)=k;
break
end
end
end
for i=1:10;
child(i,:)=r(v(i),:);
end
%交叉函数 cross.m
%采取点交叉
%child 选择后的种群基因(二进制码)
%CP 交叉概率
%cpop 交叉后的种群基因(二进制码)
%v 用于交叉的亲代
function [cpop,v]=cross(child,CP)
B=[];t=[];
v=[];
p=rand(10,1);
k=1;
for i=1:10
if p(i)CP
v(k)=i;
k=k+1;
end
end
if isempty(v)
B=[];
else
for i=1:k-1
B(i,:)=child(v(i),:);
end
for i=1:2:k-2
p2=floor(rand*32)+1;
t=zeros(1,p2);
t=B(i,1:p2);
B(i,
文档评论(0)