CrossOverPoppMutatio
VarNum变异I
versio
PopI
versio
Mutatio
PoppI
versio
倒位PopI
versio
Pop更新pMutatio
pm0i4pCross3pm0era
um4随着种群向前进化,逐步增大变异率至12交叉率pipMutatio
ii1e
dt1era
umplottTrace1title函数优化的遗传算法xlabel进化世代数era
umylabel每一代最优适应度maxfit
essMaxFvalImaxTrace1XTraceI2le
gthbits1holdo
plotIMaxFvaltextI5MaxFvalFMAX
um2strMaxFvalstr1spri
tf进化到d代自变量为s时得本次求解的最优值f
对应染色体是:sI
um2strXMaxFval
um2strBestPopIdispstr1figure2plottp绘制变异值增大过程
fT2clockelapsed_timeT2T1ifelapsed_time60elapsed_time6elapsed_time660elapsed_time5elapsed_time51e
difelapsed_time50elapsed_time5elapsed_time560elapsed_time4elapsed_time41e
d像这种程序当然不考虑运行上小时啦str2spri
tf程序运行耗时d小时elapsed_time4elapsed_time5elapsed_time6dispstr2d分钟4f秒
初始化种群采用二进制Gray编码其目的是为了克服二进制编码的Hammi
g悬崖缺点fu
ctio
i
itpopI
itPopGraypopsizebitsle
sumbitsi
itpopzerospopsizele
Thewholezeroe
codi
gi
dividualfori2popsize1poprou
dra
d1le
popmod0poppop02i1时b1a1i1时bimodai1ai2其中原二进制串a1a2a
Gray串b1b2b
i
itpopipop1e
d1e
di
itpoppopsizeo
es1le
Thewholeo
ee
codi
gi
dividual
解码fu
ctio
fvalb2fbvalbou
dsbitsfval表征各变量的十进制数bval表征各变量的二进制编码串bou
ds各变量的取值范围bits各变量的二进制编码长度scalebou
ds2bou
ds12bits1Thera
geofthevariables
umVsizebou
ds1cs0cumsumbitsfori1
umVabvalcsi1csi1fvalisum2sizea2110ascaleibou
dsi1
fe
d
选择操作采用基于轮盘赌法的非线性排名选择各个体成员按适应值从大到小分配选择概率:Piq11q
1qi其中P0P1P
sumPi1fu
ctio
selectpopNo
li
earRa
kSelectFUNpopbou
dsbitsglobalm
selectpopzerosm
fitzerosm1fori1mfitifevalFUN1b2fpopibou
dsbits以函数值为适应值做排名依据e
dselectprobfitsumfit计算各个体相对适应度01qmaxselectprob选择最优的概率xzerosm2x1m11yx2sortselectprobrq11qm标准分布基值
ewfitx2r1qx11生成选择概率
ewfitcumsum
ewfit计算各选择概率之和rNumssortra
dm1fitI
1
ewI
1while
ewI
mifrNums
ewI
ewfitfitI
selectpop
ewI
popfitI
ewI
ewIr