核心函数:r
1fu
ctio
popi
itializega
umbou
dseevalFNeevalOpsoptio
s初始种群的生成函数r
【输出参数】r
r
pop生成的初始种群r
【输入参数】r
r
um种群中的个体数目r
bou
ds代表变量的上下界的矩阵r
eevalFN适应度函数r
eevalOps传递给适应度函数的参数r
optio
s选择编码形式浮点编码或是二进制编码precisio
F_or_B如r
precisio
变量进行二进制编码时指定的精度r
F_or_B为1时选择浮点编码,否则为二进制编码由precisio
指定精度r
2fu
ctio
xe
dPopbPoptraceI
fogabou
dsevalFNevalOpsstartPopoptsr
termFNtermOpsselectFNselectOpsxOverFNsxOverOpsmutFNsmutOps遗传算法函数r
r
【输出参数】r
r
x求得的最优解r
e
dPop最终得到的种群r
bPop最优种群的一个搜索轨迹r
【输入参数】r
r
bou
ds代表变量上下界的矩阵r
evalFN适应度函数r
evalOps传递给适应度函数的参数r
startPop初始种群r
optsepsilo
prob_opsdisplayopts12等同于i
itializega的optio
s参数,第三个参数控制是否输出,一般为0。如1e610r
termFN终止函数的名称如maxGe
Termr
termOps传递个终止函数的参数如100r
selectFN选择函数的名称如
ormGeomSelectr
selectOps传递个选择函数的参数如008r
xOverFNs交叉函数名称表,以空格分开,如arithXoverheuristicXoversimpleXoverr
xOverOps传递给交叉函数的参数表,如202320r
mutFNs变异函数表,如bou
daryMutatio
multiNo
U
ifMutatio
o
U
ifMutatio
u
ifMutatio
r
mutOps传递给交叉函数的参数表如4006100341003400r
【注意】matlab工具箱函数必须放在工作目录下r
r
【问题】求fxx10si
5x7cos4x的最大值,其中0x9r
r
【分析】选择二进制编码,种群中的个体数目为10,二进制编码长度为20,交叉概率为095变异概率为008r
r
【程序清单】r
r
编写目标函数r
r
r
fu
ctio
solevalfit
esssoloptio
sr
xsol1r
evalx10si
5x7cos4xr
r
r
r
把上述函数存储为fit
essm文件并放在工作目录下r
r
i
itPopi
itializega1009fit
ess生成初始种群,大小为10r
r
xe
dPopbPoptracega09fit
essi
itPop1e611maxGe
Term25
ormGeomSelectr
r
008arithXover2
o
U
ifMutatio
225325次遗传迭代r
r
运算借过为:x78562248553当x为78562时,f(x)取最大值248553r
r
注:遗传算法一般用来取得近似最优解,而不是最优解。r
r
遗传算法实例2r
【问题】在-5Xi5i12区间内,求解r
r
fx1x220exp02sqrt05x12x22exp05cos2pix1cos2pix22271282的最小值。r
r
【分析】种群大小10,最大代数1000,变异率01交叉率03r
r
【程序清单】r
r
%源函数的matlab代码r
r
r
fu
ctio
evalfsolr
umvsizesol2r
xsol1
umvr
eval20r