全球旧事资料 分类

ctio
flagtestle
chrombou
dcode
le
chrombou
dcode
i
put染色体长度i
put变量的取值范围output染色体的编码值
flag1

msizecode
fori1
ifcodeibou
di1codeibou
di2flag0e
d
e
d

程序4:对每一代种群进行选择
子程序:选择操作,函数名称存储为Selectm
fMATLAB课程遗传算法实验报告及源代码
fu
ctio
retSelecti
dividualssizepop
本函数对每一代种群中的染色体进行选择,以进行后面的交叉和变异
i
dividualsi
put种群信息
sizepopi
put种群规模
opts
i
put选择方法的选择
ret
output经过选择后的种群
i
dividualsfit
ess1i
dividualsfit
ess
sumfit
esssumi
dividualsfit
ess
sumfi
dividualsfit
esssumfit
ess
i
dex
fori1sizepop转sizepop次轮盘
pickra
d
whilepick0
pickra
d
e
d
forj1sizepop
pickpicksumfj
ifpick0
i
dexi
dexj
break寻找落入的区间,此次转轮盘选中了染色体i;注意:在转sizepop次轮盘的过程中,有可能会重复选择某些染色体。
e
d
e
d
i
dividualschromi
dividualschromi
dex
i
dividualsfit
essi
dividualsfit
essi
dex
reti
dividuals

程序5:变异
子程序:变异操作,函数名称存储为Mutatio
m
fu
ctio
retMutatio
pmutatio
le
chromchromsizepoppopbou
d
本函数完成变异操作pcorssle
chromchromsizepoppopret
i
put变异概率i
put染色体长度i
put染色体群i
put种群规模i
put当前种群的进化代数和最大的进化代数信息output变异后的染色体
fori1sizepop
随机选择一个染色体进行变异
pickra
d
whilepick0
pickra
d
fMATLAB课程遗传算法实验报告及源代码
e
d
i
dexceilpicksizepop
变异概率决定该轮循环是否进行变异
pickra
d
ifpickpmutatio

co
ti
ue
e
d
flag0
whileflag0变异位置
pickra
d
whilepick0
pickra
d
e
d
posceilpicksumle
chrom随机选择了染色体变异的位置,即选择了第pos个变量进行变异
vchromipos
v1vbou
dpos1
v2bou
dpos2v
pickra
d变异开始
ifpick05
deltav21pick1pop1pop22
chromiposvdelta
else
deltav11pick1pop1pop22
chromiposvdelta
e
d变异结束flagtestle
chrombou
dchromi
检验染色体的可行性
e
d
e
d
retchrom

程序6:交叉
子程序:新种群交叉操作,函数名称存储为crossm
fu
ctio
retCrosspcrossle
chromchromsizepopbou
d
本函数完成交叉操作pcorssle
chrom
i
put交叉概率i
put染色体的长度
chromsizepop
i
put染色体群i
put种群规模
ret
or
好听全球资料 返回顶部