急!!有个问题请教大家一下!
遗传算法中:function =targetalloc(chrom) %目标函数
=size(chrom);
%射击有利程度估计值
p=[.87 .52 .11 .78 .72 .69 .94 .72 .36 .28 .27 .74 .24 .78 .45;
.87 .52 .11 .78 .72 .69 .94 .72 .36 .28 .27 .74 .24 .78 .45;
.87 .52 .11 .78 .72 .69 .94 .72 .36 .28 .27 .74 .24 .78 .45;
.87 .52 .11 .78 .72 .69 .94 .72 .36 .28 .27 .74 .24 .78 .45;
.87 .52 .11 .78 .72 .69 .94 .72 .36 .28 .27 .74 .24 .78 .45;
.87 .52 .11 .78 .72 .69 .94 .72 .36 .28 .27 .74 .24 .78 .45;
.62 .87 .70 .22 .80 .42 .43 .90 .13 .95 .18 .19 .12 .61 .35;
.48 .20 .42 .16 .43 .58 .69 .03 .34 .72 .15 .24 .29 .30 .75];
%威胁程度评估值
w=[.47 .97 .76 .62 .48 .77 .33 .74 .54 .65 .43 .35 .63 .66 .57];
for i=1:m
for j=1:15
chrom(i,j)=p(chrom(i,j),j);
end
end
eval=chrom*w';
NIND=40; %个体数目(Number of individuals)
MAXGEN=400; %最大遗传代数(Maximum number of generations)
GGAP=0.9; %代沟(Generation gap)
trace=zeros(MAXGEN,2); %遗传算法性能跟踪初始值
BaseV=crtbase(15,8);
Chrom=crtbp(NIND, BaseV)+ones(NIND,15); %初始种群
gen=0;
ObjV=targetalloc(Chrom); %计算初始种群函数值
while gen<MAXGEN
FitnV=ranking(-ObjV); %分配适应度值(Assign fitness values)
SelCh=select('sus',Chrom,FitnV,GGAP); %选择
SelCh=recombin('xovsp',SelCh,0.7); %重组
f=rep(,);
SelCh=mutbga(SelCh, f);SelCh=fix(SelCh); %变异
ObjVSel=targetalloc(SelCh); %计算子代目标函数值
=reins(Chrom,SelCh,1,1,ObjV,ObjVSel); %重插入
gen=gen+1;
trace(gen,1)=max(ObjV); %遗传算法性能跟踪
trace(gen,2)=sum(ObjV)/length(ObjV);
end
=max(ObjV);Chrom(I,:),Y
这里面=max(ObjV);
Y 是最大函数值,I行数,
=max(ObjV)
Y =
5.8575
I =
5
>> Chrom(I,:),Y
ans =
8 7 7 4 5 4 3 6 6 7 3 3 3 1 7
Y =
5.8575
Chrom =
7 5 7 7 6 4 5 3 3 5 4 2 7 4 4
2 7 4 2 3 6 2 1 5 5 6 5 3 2 5
4 2 6 4 6 7 4 1 4 4 7 1 2 7 5
8 3 5 1 2 8 5 7 5 3 7 7 6 6 2
8 7 7 4 5 4 3 6 6 7 3 3 3 1 7
8 3 8 3 4 2 8 7 1 5 8 8 8 5 8
4 6 3 8 3 1 4 8 7 2 4 4 2 3 1
3 2 5 3 7 2 6 7 4 2 1 2 2 5 5
3 6 2 2 3 6 5 6 1 1 5 3 7 1 8
2 3 5 5 7 3 8 6 1 3 4 3 5 7 8
3 8 4 2 4 7 8 5 2 4 2 4 1 7 6
7 3 8 4 6 4 6 6 5 7 1 8 1 3 7
2 3 5 3 7 2 6 7 4 2 1 3 2 5 5
1 4 5 6 1 2 2 3 6 2 7 2 1 1 2
6 3 4 5 8 1 5 5 1 4 8 1 2 6 5
4 7 7 1 1 4 4 7 3 5 7 5 6 1 1
6 4 1 1 2 7 6 6 5 5 3 1 7 8 7
5 4 1 1 2 4 4 3 8 4 5 4 2 6 2
1 6 2 7 6 1 2 7 3 7 4 1 8 7 1
8 5 8 8 5 1 6 1 7 3 7 7 1 5 5
5 2 2 2 1 8 4 1 3 8 6 1 8 6 4
6 5 2 8 3 7 7 2 5 7 6 2 5 5 7
1 4 3 7 6 1 2 7 2 7 4 2 8 7 8
8 7 4 3 6 6 3 8 7 6 8 8 6 6 8
8 7 2 7 5 4 8 2 1 1 6 8 8 6 3
4 6 6 4 6 6 8 7 1 5 8 8 8 5 8
2 1 8 3 1 3 1 5 4 5 4 6 8 5 6
7 5 7 6 7 3 1 6 4 2 3 7 2 1 8
4 4 8 1 1 3 6 3 5 4 3 6 1 8 4
4 6 6 4 6 6 4 3 4 7 3 8 4 1 2
8 5 6 3 1 7 6 4 1 4 6 3 3 8 3
6 3 4 1 2 7 6 6 5 5 3 1 7 8 7
7 7 5 6 7 4 2 5 7 3 1 7 6 1 3
7 6 1 6 4 4 3 5 7 3 1 7 6 1 3
4 3 4 1 6 4 6 8 5 5 8 5 5 8 2
1 4 3 4 2 4 6 4 8 1 3 2 3 7 1
2 6 8 3 4 2 4 3 4 7 3 8 4 1 2
2 7 4 2 3 6 2 1 5 5 6 5 1 7 6
2 1 8 3 1 3 1 5 4 5 4 6 8 8 6
5 6 5 7 1 3 6 7 8 6 5 5 3 6 1
我不明白Y,I是怎的出来的呢?
主要有这句=max(ObjV); 回复 wgxzy_1015 的帖子
请楼上赐教!
QQ:1010437118 联系 但我并不是很懂 只懂一点啊 好的这就联系您!
页:
[1]