基于遗传算法的函数寻优算法
2015-05-30沈晓芳
沈晓芳
【摘要】遗传算法对问题的依赖性小,是一种全局优化算法,可用于函数寻优。本文利用Maflab优化工具箱,有效地实现了用遗传算法求解函数优化问题,实验结果表明该算法收敛速度快,寻优性能良好。
【关键词】遗传算法 函数寻优 目标函数
【中图分类号】G64 【文献标识码】A 【文章编号】2095-3089(2015)03-0152-01
遗传算法(Genetic Algorithm,GA)起始于20世纪60年代,主要由美国密执根大学的John Holland与同事和学生研究形成了较为完整的理论和方法,是一种重要的现代优化算法。遗传算法对问题的依赖性小,是一种全局优化算法,所以在很多领域获得了广泛的应用。
遗传算法基本思想:将“优胜劣汰,适者生存”的生物进化思想引入优化参数形成的编码串联群体中,按所选择的适配值函数并通过遗传中的选择、交叉及变异对个体进行筛选,使适配值高的个体被保留下来,组成新的群体,这样周而复始,群体中的个体适应度不断升高,直到满足一定的条件。遗传算法的一个重要应用是函数寻优,该算法对于寻优的函数基本无限制,既不要求函数连续,更不要求函数可微;既可以是函数解析式所表达的显函数,又可以是映射矩阵等隐函数,应用范围很广。
一、遗传算法的实现
1.遗传算法的应用步骤
(1)确定决策变量及各种约束条件,即确定出个体的表现型和问题的解空间。(2)建立优化模型,即确定出目标函数的类型及数学描述形式或量化方法。(3)确定表示可行解的染色体编码方法,即确定出个体的基因型及遗传算法的搜索空间。(4)确定解码方法,即确定出由个体基因型到个体表现型的对应关系或转化方法。(5)确定个体适应度的量化评价方法,即确定出由目标函数值到个体适应度函数的转换规则。(6)设计遗传算子,即确定选择运算、交叉运算、变异运算等算子的具体操作方法。(7)确定遗传算法的有关运行参数。
2.遗传算法的操作
图1 遗传算法操作流程图
3.遗传算法工具箱
谢菲尔德(Sheffield)遗传算法工具箱是英国谢菲尔德大学开发的遗传算法工具箱,是用Matlab语言编写的m文件,为用户提供很多实用函数。常用函数:crtrp,crtbp(创建初始种群);ranking(适应度计算)select(選择函数);xovsp(单点交叉);mutate(变异函数)Bs2rv(二进制转换到实值)等等。
二、遗传算法应用举例
1.利用遗传算法计算以下函数的最小值
f(x)=■,x∈[1,2] (1)
(1)选择二进制编码,遗传算法参数设置如表1所示
表1:参数设置表
(2)仿真结果如图2
图2:目标函数图及最优解的进化过程
函数优化问题是遗传算法的经典应用领域,也是对遗传算法进行性能评价的常用算例.Matlab软件工具箱,是整个Matlab体系的基座。在Matlab环境中用遗传算法实现函数优化问题,能有效地收敛到全局最优值,寻优性能良好。
参考文献:
[1]孙增祈,邓志东,张再兴.智能控制理论与技术[M].第二版.清华大学出版社,2011.
[2]蒋冬初,何飞,向继文.遗传算法求解函数优化问题的Matlab实现[J].吉首大学学报. 2005,26(2):98-100.
[3]刘勇,刘宝坤,李光泉.基于Maflab平台的遗传算法工具包[J].天津大学学报.2001,34(4):48—51.