APP下载

MATLAB遗传算法工具箱的研究与应用

2013-09-21吕德文

时代农机 2013年3期
关键词:工具箱适应度交叉

吕德文

(大连大学机械工程学院,辽宁 大连 116622)

遗传算法(Genetic Algorithm)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。它是由美国的J.Holland教授1975年首先提出,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自动适应地调整搜索方向,不需要确定的规则。遗传算法的这些性质,已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域,是现代有关智能计算中的关键技术。

MATLAB语言是一种面向科学与工程的高效率高级语言,它的语法规则简单、更贴近人的思维方式、通俗易懂。MATLAB语言有着丰富的各种工具箱,MATLAB的优化工具箱提供对各种优化问题的一个完整的解决方案,遗传算法优化工具箱就是其中之一。采用MATLAB遗传算法优化工具箱,不仅具有简单、易用、易于修改的特点,且为解决许多传统的优化方法难以解决的参数优化、非线性、多峰值之类的复杂问题提供有效的途径,为遗传算法的研究和应用提供很好的应用前景。

1 遗传算法

遗传算法模拟从低级到高级的演化过程,即从初始群体出发,采用优胜劣汰、适者生存的自然法则选择个体,通过交叉编译来产生下一代群体,逐代演化,知道产生满足条件的个体为止,其流程图如图1。①确定待优化的参数范围,并对搜索空间进行编码;②随机产生包含各个个体的初始种群;③将种群中各个个体解码成对应的参数值,用解码后的参数求解适应度函数,运用适应度函数评估各个个体的适应度;④对收敛条件进行判断,如果已经找到最佳个体,则停止,否则继续进行遗传操作;⑤按适应度进行选择操作,让适应度大的个体在种群中占有较大的比例,一些适应度较小的个体将会被淘汰;⑥随机交叉,两个个体按一定的交叉概率进行交叉操作,并产生两个新的子个体;⑦按照一定的变异概率变异,使个体的某个或某些位的性质发生改变;⑧重复步骤③至⑦,直至满足终止条件。

图1 遗传算法流程图

2 遗传算法工具箱

遗传算法工具箱(GAOT)包括许多实用的函数,这些函数按照功能可分为以下几类:主界面函数、选择函数、演化函数、其它的终止函数、二进制表示函数、演示程序等。

MATLAB的遗传算法工具箱核心函数GAOTV5其主程序ga.m提供遗传算法工具箱与外部的接口。在MATLAB环境下,执行ga.m并设定相应的参数,就可完成优化。

工具箱中遗传算法的主函数为:

[x fval]=ga(@fitnes s fcn,nvars,options)

其中,输出参数:①x:返回的最终点;②fval:适应度函数在x点的值。

输入参数:①@fitnessfun:计算适应度函数的M文件的函数句柄;②nvars:适应度函数中变量个数;③options:参数结构体。

输入参数结构体options具有缺省值,可以利用缺省参数运行遗传算法,调用语句如下:

[x fval]=ga(@fitnes s fcn,nvars)

每一个参数的值都存放在参数结构体options中,例如options.Populationsize在结构体中的缺省值为20,如果需要设置Populationsize的值等于100,可以通过下面的语句进行修改:

options=gaoptimset(‘pulationSize’,00)

这样,参数Populationsize的值为100,其他参数的值为缺省值或当前值。这时,再输入:

ga(@fitnessfun,nvars,options)

函数ga种群中个体为100运行遗传算法。

为了得到遗传算法更多的输出结果,可以使用下面的语句调用ga:

[x fval reason output population scores]=ga(@fitnessfcn,nvars)

除了x和fval之外增加了四个输出变量:①reason:法停止的原因;②output:算法每一代的性能;③population:最后种群;④scores:最后得分值[6]。

3 算例

求具有两个独立变量的Rastrigin函数的最小值。参数设置:种群大小为25,交叉率为0.85,变异率为0.15,最大迭代次数为50。

经过计算,其返回结果为X=[0.00809,0.00155],Fval=0.0134472869。由实验结果可以看出,使用MATLAB遗传算法工具箱求解函数优化问题,函数可以有效地收敛到全局最优点,并且具有收敛速度快和结果直观的特点。

4 结论

MATLAB具有强大的矩阵运算能力,利用MATLAB遗传算法工具箱可以对传统优化算法难以实现全局优化的函数进行优化。本文的实验结果验证了MATLAB遗传算法优化工具箱能高效、灵活地求解复杂函数的优化问题,并且收敛速度快,求解的精度高。

猜你喜欢

工具箱适应度交叉
改进的自适应复制、交叉和突变遗传算法
“六法”巧解分式方程
会“叫”的工具箱和工具
一种基于改进适应度的多机器人协作策略
基于MATLAB优化工具箱优化西洋参总皂苷提取工艺
机械加工机床工具箱的优化设计
连数
连一连
基于空调导风板成型工艺的Kriging模型适应度研究
双线性时频分布交叉项提取及损伤识别应用