| 查看: 649 | 回复: 1 | ||
[求助]
遗传算法程序中不懂得地方
|
|
我最近在看遗传算法,看了一个程序对于其中的一些不太懂,所以想向大家请教一下: 这篇文章是实数编码遗传算法求Rosenbrock函数极大值,这个是从网上下下来的。 for i=1:Size xi=E(i, x1=xi(1) x2=xi(2) F(i)=100*(x1^2-x2)^2+(1-x1)^2 Ji=1./F BsJi(i)=min(Ji) end [OderJi,IndexJi]=sort(BsJi) BestJ(kg)=OderJi(1) BJ=BestJ(kg) Ji=BsJi+eps fi=F [Oderfi,Indexfi]=sort(fi) Bestfi=Oderfi(Size) BestS=E(Indexfi(Size), bfi(kg)=Bestfi fi_sum=sum(fi) fi_Size=(Oderfi/fi_sum)*Size fi_S=floor(fi_Size) r=Size-sum(fi_S) Rest=fi_Size-fi_S [RestValue,Index]=sort(Rest) for i=Size:-1:Size-r+1 fi_S(Index(i))=fi_S(Index(i))+1 end k=1; for i=Size:-1:1 for j=1:fi_S(i) TempE(k,=E(Indexfi(i), k=k+1 end end Pc=0.90; for i=1:2:Size-1 temp=rand if Pc>temp alfa=rand TempE(i,=alfa*E(i+1,+(1-alfa)*E(i, TempE(i+1,=alfa*E(i,+(1-alfa)*E(i+1, end end TempE(Size, =BestSE=TempE Pm=0.10-[1:Size]*(0.01)/Size %Bigger fi,smaller Pm Pm_rand=rand(Size,CodeL) Mean=(MaxX+MinX)/2 Dif=MaxX-MinX for i=1:Size for j=1:CodeL if Pm(i)>m_rand(i,j) TempE(i,j)=Mean(j)+Dif(j)*(rand-0.5) end end end end %Guarantee TempE(Size, belong to the best individualTempE(Size, =BestSE=TempE 这句话Rest=fi_Size-fi_S是什么意思呢?还有有的话就像这样的TempE(Size, 为什么要写个括号是什么意思呢?这还是个自适应pm函数是吧? r=Size-sum(fi_S)这句话的r是什么意思呢?还有这句话TempE(k, =E(Indexfi(i), 请高手指教。 |
» 猜你喜欢
拟解决的关键科学问题还要不要写
已经有11人回复
救命帖
已经有5人回复
限项规定
已经有5人回复
为什么nbs上溴 没有产物点出现呢
已经有9人回复
招博士
已经有3人回复
存款400万可以在学校里躺平吗
已经有35人回复
最失望的一年
已经有18人回复
求推荐博导
已经有4人回复
求推荐英文EI期刊
已经有5人回复
疑惑?
已经有5人回复
» 本主题相关价值贴推荐,对您同样有帮助:
关于遗传算法中交叉的程序
已经有5人回复
遗传算法的一段程序请教解释
已经有9人回复
请教关于遗传算法编程的问题(俺是小白)
已经有4人回复
【其他】了解遗传算法
已经有12人回复
【讨论】遗传算法解决象棋问题
已经有8人回复
【原创】请教遗传算法+车间调度相关的研究方向?谢谢
已经有4人回复
【分享】粒子群算法和遗传算法应用与改进实验框架
已经有42人回复
【求助】matlab 遗传算法工具箱绘图命令是什么?
已经有6人回复
Holland 遗传算法之父讲座(附PPT和讲座录音)
已经有19人回复
【求助】哪位高人讲一下遗传算法啥意思?书本看不懂啊!
已经有6人回复
2楼2011-05-13 15:16:11













=BestS
回复此楼