- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
clc
clear
close all
Alpha=0.1;
X=load( d:\data.txt );
for k=1:21
eval(spri ntf( syms a%d ,k));
end
a=[a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a
20,a21];
[n ,p]=size(X);
x=zeros( n,p);
Xjmax=max(X);
Xjmi n=mi n( X);
for i=1: n
x(i,:)=(X(i,:)-Xjmi n)./(Xjmax-Xjmi n);
end
%构造投影指标
for i=1: n
Z(i)=sum(a.*x(i,:));
end
% 计算投影指标函数
mean Z=mea n( Z);
Sa=0;
for k=1: n
sa=(Z(i)-mea nZ)42;
Sa=Sa+sa;
Sa=sqrt(Sa/n);
end
R=Alpha*Sa;
Da=0;
for k=1: n
rik=abs(Z(i)-Z(k));
%if Rrik
Da=Da+rik;
%e nd
end
Qa=Sa*Da;
%选择操作
fun cti on ret =select(i ndividuals,sizepop)
in dividuals.fit ness=1./(i ndividuals.fit ness);
sumfit ness=sum(i ndividuals.fit ness);
sumf= in dividuals./fit ness;
in dex=[];
for i =1:sizepop
pick=ra nd;
while pick==0
pick=ra nd;
end
for j =1:sizepop
pick =pick-sumf(j);
if pick0
in dex=[i ndex j];
break ;
end
end
end
in divlduals.chrom=in divuduals.chrom(i ndex,:);
in dividuals.fit ness=in dividuals.fit ness(i ndex);
ret=i ndividuals;
%交叉操作
fun cti on ret=Cross(pcross,le nchrom,chrom,sizepop,bou nd)
for i=1:sizepop
pick = ran d(1,2);
while prod(pick)==0
pick=ra nd(1,2);
end
in dex=ceil(pick.*sizepop);
pick=ra nd;
while pick==0
pick=ra nd;
end
if pickpcross
con ti nue ;
end
flag=0;
while flag==O
pick=ra nd;
while pick==0
pick=ra nd;
end
pos=ceil(pick.*sum(le nchrom));
pick=ra nd;
v1=chrom(i ndex(1),pos);
v2=chrom(i ndex(2),pos);
chrom(i ndex(1),pos)=pick*v2+(1-pick)*v1;
chrom(i ndex(2),pos)=pick*v1+(1-pick)*v2;
flag仁test(le nchrom,bou nd,chrom(i ndex(1),:),fcode); flag2=test(le nchrom,bou nd,chrom(i ndex(2),:),fcode);
if flag1*flag2==0
flag=0;
else flag=1;
end
end
end
ret= chrom;
%变异操作
fun cti on ret=Mutati on( pmutati on ,le nchrom,chrom,sizepoppop,bou nd)
pick=ra nd;
while pick==0
pick=ra nd;
end
in dex=ceil(pick*sizepop);
pick=ra nd;
if pickpmutati on
con ti nue ;
end
flag=0;
while flag==0
pick =rand;
while pick==0
pick=ra nd;
end
pos=ceil(pick*sum(le nchrom));
v=chrom(i,pos);
v1=v-bou nd(pos,1);
v2=bou nd(pos,2)-v;
pick=ra nd;
if pick0.5
d
文档评论(0)