dMaxrefdoublefouti
tmax寻找数组中最大值
fi
timax0fori1ipopsizeiiffifmaxmaxivoidFi
dMi
refdoublefouti
tmi
寻找数组中最小值i
timi
0fori1ipopsizeiiffifmi
mi
ivoidWheelSelect轮盘选择popsize个染色体(可重复),并将序号放入selected中,作为交叉的染色体i
tijrdoublesumwheel00sum0fori0ipopsizeisumfiwheeli1wheelififori0ipopsizeirra
dNexti
tsumforj0jpopsizejifrwheeljrwheelj1
fselectedijbreakvoidCrossoveri
tp1i
tp2i
tc1i
tc2交叉将序号为selectedi和selectedi1(这里形参是p1,p2)的染色体进行交叉,产生的子代放在prege
eratio
中i和i1(这里形参是c1,c2)的位置doubledrra
dNextDoubleifdrCrossRatei
tcoveri
g_code
ewi
tChromosomeLe
gthfori
ti0iChromosomeLe
gthicoveri
g_codeira
dNext02fori
ti0iChromosomeLe
gthiifcoveri
g_codei0
extge
eratio
c1iprege
eratio
p1i
extge
eratio
c2iprege
eratio
p2ielse
extge
eratio
c1iprege
eratio
p2i
extge
eratio
c2iprege
eratio
p1ielsefori
ti0iChromosomeLe
gthi
extge
eratio
c1iprege
eratio
p1i
extge
eratio
c2iprege
eratio
p2ivoidMutatio
refi
tcurge
eratio
变异i
tis_
ot_mutatio
fdoubledrfori
ti0ipopsizeidrra
dNextDoubleifdrMutateRatefori
tj0jChromosomeLe
gthjis_
ot_mutatio
ra
dNext02ifis_
ot_mutatio
1curge
eratio
ijra
dNext111voidPri
tResult计算每次迭代后种群中最优解及其适应度值,平均适应值i
tiji
tmi
doubleaverageaverage0fori0ipopsizeiaveragefiaveragedoubleaveragepopsizeCo
soleWrite