寻找遁甲 发表于 2011-3-2 06:47

急!!有个问题请教大家一下!

遗传算法中:
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是怎的出来的呢?

wgxzy_1015 发表于 2011-3-2 11:37

主要有这句=max(ObjV);

寻找遁甲 发表于 2011-3-2 12:32

回复 wgxzy_1015 的帖子

请楼上赐教!

wgxzy_1015 发表于 2011-3-2 19:07

QQ:1010437118   联系      但我并不是很懂   只懂一点啊

寻找遁甲 发表于 2011-3-2 21:38

好的这就联系您!
页: [1]
查看完整版本: 急!!有个问题请教大家一下!