遗传算法程序matlabr
作者:KINGTT来源:转载发布时间:200871791002r
减小字体增大字体r
r
本程序收集于网络,本人并未进行过运行,如有问题请与作者联系,如有侵权请告之r
r
遗传算法程序r
说明fgam为遗传算法的主程序采用二进制Gray编码采用基于轮盘赌法的非线性排名选择均匀交叉变异操作而且还引入了倒位操作r
r
fu
ctio
BestPopTracefgaFUNLBUBera
umpopsizepCrosspMutatio
pI
versio
optio
sr
BestPopTracefmaxgaFUNLBUBera
umpopsizepcrosspmutatio
r
Fi
dsamaximumofafu
ctio
ofseveralvariablesr
fmaxgasolvesproblemsoftheformr
maxFXsubjecttoLBXUBr
BestPop最优的群体即为最优的染色体群r
Trace最佳染色体所对应的目标函数值r
FUN目标函数r
LB自变量下限r
UB自变量上限r
era
um种群的代数取1001000默认200r
popsize每一代种群的规模;此可取50200默认100r
pcross交叉概率一般取05085之间较好默认08r
pmutatio
初始变异概率一般取00502之间较好默认01r
pI
versio
倒位概率一般取005-03之间较好默认02r
optio
s12矩阵optio
s10二进制编码默认0optio
10十进制编r
码optio
2设定求解精度默认1e4r
r
r
r
T1clockr
if
argi
3errorFMAXGArequiresatleastthreei
putargume
tse
dr
if
argi
3era
um200popsize100pCross08pMutatio
01pI
versio
015optio
s01e4e
dr
if
argi
4popsize100pCross08pMutatio
01pI
versio
015optio
s01e4e
dr
if
argi
5pCross08pMutatio
01pI
versio
015optio
s01e4e
dr
if
argi
6pMutatio
01pI
versio
015optio
s01e4e
dr
if
argi
7pI
versio
015optio
s01e4e
dr
iffi
dLBUB0r
error数据输入错误请重新输入LBUBr
e
dr
sspri
tf程序运行需要约4f秒钟时间请稍等era
umpopsize1000r
dispsr
r
globalm
NewPopchildre
1childre
2VarNumr
r
bou
dsLBUBbitsVarNumsizebou
ds1r
precisio
optio
s2由求解精度确定二进制编码长度r
bitsceillog2bou
ds2bou
ds1precisio
由设定精度划分区间r
PopI
itPopGraypopsizebits初始化种群r
m
sizePopr
NewPopzerosm
r
childre
1zeros1
r
childre
2zeros1
r
pm0pMutatio
r
BestPopzerosera
um
分配初始解空间BestPopTracer
Tracezerosera
umle
gthbits1r
i1r
whileiera
umr
forj1mr
valuejfevalFUN1b2fPopjbou
dsbits计算适应度r
e
dr
MaxValueI
dexmaxvaluer
BestPopiPopI
dexr
Tracei1MaxValuer
Tracei2le
gthbits1b2fBesr