全球旧事资料 分类
初始种群optsepsilo
prob_opsdisplayopts12等同于i
itializega的optio
s参数,第三个参数控制是否输出,一般为0。如1e610termFN终止函数的名称如maxGe
TermtermOps传递个终止函数的参数如100selectFN选择函数的名称如
ormGeomSelectselectOps传递个选择函数的参数如008xOverFNs交叉函数名称表,以空格分开,如arithXoverheuristicXoversimpleXoverxOverOps传递给交叉函数的参数表,如202320mutFNs变异函数表,如bou
daryMutatio
multiNo
U
ifMutatio
o
U
ifMutatio
u
ifMutatio
mutOps传递给交叉函数的参数表如4006100341003400注意】matlab工具箱函数必须放在工作目录下【问题】求fxx10si
5x7cos4x的最大值,其中0x9【分析】选择二进制编码,种群中的个体数目为10,二进制编码长度为20,交叉概率为095变异概率为008【程序清单】编写目标函数fu
ctio
solevalfit
esssoloptio
sxsol1evalx10si
5x7cos4x把上述函数存储为fit
essm文件并放在工作目录下
fi
itPopi
itializega1009fit
ess生成初始种群,大小为10xe
dPopbPoptracega09fit
essi
itPop1e611maxGe
Term25
ormGeomSelect008arithXover2
o
U
ifMutatio
225325次遗传迭代运算借过为:x78562248553当x为78562时,f(x)取最大值248553注:遗传算法一般用来取得近似最优解,而不是最优解。
遗传算法实例2【问题】在-5Xi5i12区间内,求解fx1x220exp02sqrt05x12x22exp05cos2pix1cos2pix22271282的最小值。【分析】种群大小10,最大代数1000,变异率01交叉率03【程序清单】%源函数的matlab代码fu
ctio
evalfsol
umvsizesol2xsol1
umveval20exp02sqrtsumx2
umvexpsumcos2pix
umv2271282适应度函数的matlab代码fu
ctio
solevalfit
esssoloptio
s
umvsizesol21xsol1
umvevalfxevaleval遗传算法的matlab代码bou
dso
es2155pe
dPopbestSolstracegabou
dsfit
ess注:前两个文件存储为m文件并放在工作目录下,运行结果为p000000000000055
大家可以直接绘出fx的图形来大概看看f(x)的最值是多少,也可是使用优化函数来验证。matlab命令行执行命令:fplotx10si
5x7cos4x09
fevalops是传递给适应度函数的参数,opts是二进制编码的精度,termops是选择maxGe
Term结束函数时传递个maxGe
Term的参数,即遗传代数。xoverops是传递给交叉函数的参数。mutops是传递给变异函数的参数。参考资料:httpbi
gyuskyblogchi
acom2373981html
fr
好听全球资料 返回顶部