Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-09-15
帖子: 8
声望力: 0 ![]() |
![]()
在用遗传算法求解函数最大化问题时,在用函数[Chrom, ObjVCh] = reins(Chrom, SelCh, SUBPOP, InsOpt, ObjVCh, ObjVSel)进行重组操作时,ObjVCh与ObjVSel没有取反,这样做会影响求解结果吗?因为我看《遗传算法工具箱及其应用》-雷英杰一书中所说的,reins()函数是根据适应度来选择个体和被代替个体的,也就是ObjVSel中个体目标函数越小则月容易被选择,但是,我做的是最大化问题,应该选目标函数大的去代替目标函数小的,没有对函数值取反,这样是不是错了,着急啊,要交成果了,高手指点,下边是我的代码,请老师没指教!
Chrom=[Fulla2,Fulla3,Fulla5,Fulla6]; objv=Fullgoalfun(Chrom); gen=0; while gen<=FullMAXGEN Fitnv=ranking(-objv); Selch=select('sus',Chrom,Fitnv,FullGGAP); Selch=recombin('xovdp',Selch,FullPc); f=[0,0,0,0;... FullQ,FullQ,FullS,FullS]; Selch=mutate('mutbga',Selch,f,[FullPm,1]); Objvsel=Fullgoalfun(Selch); [Chrom,objv]=reins(Chrom,Selch,1,[1 1],objv,Objvsel); gen=gen+1; alltrace(gen,1)=max(objv); alltrace(gen,2)=sum(objv)/length(objv); end 此帖于 2010-03-28 11:34 被 oudinghua 编辑。 原因: 函数写错 |
![]() |
![]() |