s为交叉概率globalm
NewPoprra
d1my1fi
drpCrossy2fi
drpCrossle
le
gthy1ifle
2modle
21如果用来进行交叉的染色体的条数为奇数,将其调整为偶数y2le
gthy21y1le
fy1le
e
difle
gthy12fori02le
gthy12ifopts0NewPopy1i1NewPopy1i2EqualCrossOverOldPopy1i1OldPopy1i2elseNewPopy1i1NewPopy1i2MultiPoi
tCrossOldPopy1i1OldPopy1i2e
de
de
dNewPopy2OldPopy2采用均匀交叉fu
ctio
childre
1childre
2EqualCrossOverpare
t1pare
t2global
childre
1childre
2hidecoderou
dra
d1
随机生成掩码crosspositio
fi
dhidecode1holdpositio
fi
dhidecode0childre
1crosspositio
pare
t1crosspositio
掩码为1,父1为子1提供基因childre
1holdpositio
pare
t2holdpositio
掩码为0,父2为子1提供基因childre
2crosspositio
pare
t2crosspositio
掩码为1,父2为子2提供基因childre
2holdpositio
pare
t1holdpositio
掩码为0,父1为子2提供基因采用多点交叉,交叉点数由变量数决定fu
ctio
Childre
1Childre
2MultiPoi
tCrossPare
t1Pare
t2global
Childre
1Childre
2VarNumChildre
1Pare
t1Childre
2Pare
t2Poi
tssortu
idr
d
12VarNumfori1VarNumChildre
1Poi
ts2i1Poi
ts2iPare
t2Poi
ts2i1Poi
ts2iChildre
2Poi
ts2i1Poi
ts2iPare
t1Poi
ts2i1Poi
ts2ie
d
变异操作
ffu
ctio
NewPopMutatio
OldPoppMutatio
VarNumglobalm
NewPoprra
d1mpositio
fi
drpMutatio
le
le
gthpositio
ifle
1fori1le
ku
idr
d
1VarNum设置变异点数,一般设置1点forj1le
gthkifOldPoppositio
ikj1OldPoppositio
ikj0elseOldPoppositio
ikj1e
de
de
de
dNewPopOldPop
倒位操作fu
ctio
NewPopI
versio
OldPoppI
versio
globalm
NewPopNewPopOldPoprra
d1mPopI
fi
drpI
versio
le
le
gthPopI
ifle
1fori1le
dsortu
idr
d
12ifd11d2
NewPopPopI
i1d11OldPopPopI
i1d11NewPopPopI
id1d2OldPopPopI
id21d1NewPopPopI
id21
OldPopPopI
id21
e
de
de
d
遗传算法程序(二)
ffu
ctio
youhuafu
DcodeN50Tu
ablemaxge
50Tu
ablecrossrate05Tu
ablemuterate008Tu
ablege
eratio
1
umle
gthDfatherra
dra
di
t
umN3scorezerosmaxge
Nwhilege
eratio
maxge
i
dra
dpermN22随机配对交叉Afatherra
di
d1N22Bfatherra
di
dN221e
d多点交叉r
dra
d
umN22i
dr
dtmpAi
dAi
dBi
dBi
dtmp两点交叉forkk1N22r
dtmpra
di
t11
um1tmpA1r
dtmpkkA1r
dtmpkkB1r
dtmpkkB1r
dtmpkktmpe
dfatherra
dfatherra
d12AB变异r
dra
d
umNi
dr
dm
sizei
dtmpra
di
tm
21tmp120fathr