遗传算法求解函数优化问题的Matlab实现
遗传算法求解函数优化问题的Matlab实现
72福建电脑2010年第6期
遗传算法求解函数优化问题的Matlab实现
石丽娟
(苏州大学电子信息学院江苏苏州215021)
【摘要】:本文介绍了遗传算法的基本原理,并重点分析了Matlab遗传算法工具箱的使用方法。在此基础上,给出了一个函数优化问题的实例,以验证Matlab遗传算法工具箱在解决基于遗传算法的函数优化问题上的有效性和实用性。
【关键词】:遗传算法Matlab函数优化遗传算法(GeneticAlgorithm,缩写为GA),最先由JohnHol-land教授于1975年提出,它是一种借鉴生物界自然选择和遗传原理的随机优化搜索策略。遗传算法几乎渗透到从工程到社会科学的诸多领域,广泛用于组合优化、机器学习、自适应控制、规划设计和人工生命等领域,是21世纪有关智能计算中的关键技术之一。Matlab语言是一种高效率的用于科学工程计算的高级语言,它的语法规则简单、更贴近人的思维方式,通俗易懂。Matlab语言有着丰富的各种工具箱,Matlab的优化工具箱就是其中之一。采用Matlab遗传算法优化工具箱,不仅具有简单、易用、易于修改的特点,且为解决许多传统的优化方法难以解决的参数优化、非线性、多峰值之类的复杂问题提供有效的途径,为遗传算法的研究和应用提供很好的应用前景。1、遗传算法的描述
遗传算法提供了一个求解复杂系统优化问题的通用框架,它以适应度函数为依据,通过对群体中的个体施加遗传操作,实现群体内个体结构重组的迭代处理过程。
遗传算法的基本流程图如图1所示。
fÁ
PÁ Â i?1,2,3,L,N
fÁ
并以上式的概率分布从当前一代群体popi(t)中随机选择一些染色体遗传到下一代群体中构成一个新种群
ÁÁÁ
newpop(t 1)??popÁ(t)j?1,2LN?;
5.交叉操作
以概率Pc交配,得到一个有N个染色体组成的群体crosspop(t+1);
6.变异操作
用某一较小的概率Pm使染色体的基因发生变异,形成新的
群体mutpop(t+1);该新的群体即为完成一次遗传操作后的子代记为pop(t)=mutpop(t+1),同时它又作为下一次遗传操作的父代,返回2。
带选择、交叉、变异的标准遗传算法并不一定收敛于全局最优解。在实际的应用过程中,要对SGA进行适当的改进,才能使遗传算法具有良好的收敛性能。
2、Matlab的遗传算法工具箱(GAToolbox)
遗传算法在应用过程中必须要编制大量的程序进行优化计算,利用Matlab遗传算法优化工具箱编程是最有效的方法和途径。MATLAB遗传算法工具箱的主要函数有如下几类:
(1)初始化种群创建函数(Creationfunction)
GAOT提供了3种创建初始种群的方法,它们为二进制编码、实值编码和整数编码函数,用户还可以自定义初始化函数。创建初始种群的主要参数是数据类型(populationtype)、变量的维数(sizeofvariables)、种群的大小(sizeofpopulation),初始种群取值的范围(initialrange)等。其中,种群的大小会影响GA的有效性,太小,GA会很差或根本找不出问题的解,因为太小的种群数目不能提供足够的采样点,太大,则会增加计算量,使收敛时间延长。一般种群大小选在20至160之间较合适。
(2)适应度函数(Fitnessfunction)
适应度是遗传算法引导搜索的主要依据,改变种群内部结
图1遗传算法(GA)流程图
构的遗传操作均要通过评价函数加以控制。原适应度函数根据
算法的主要运算过程如下:
实际问题由用户自定义,遗传算法工具箱总是使目标函数或适
1.编码和产生初始群体
应度函数最小化即minf(x),若要求函数f(x)的最大值,则要进行变
根据问题选择相应的编码方法,并随机产生一个确定长度
换,取g(x)=-f(x),转而求g(x)的最小值。工具箱提供了适应度的尺
的N个染色体组成的初始群体:
度变换函数,如排列(Rank)、比率(Proportional)、线性变换(Shift
popÁ(t), t 1 , i?1,2,3,L,N
linear),也可以自定义。
2.计算适应度值
(3)选择操作函数(Selectionfunction)
对群体pop(t)中的每一个染色体popi(t)计算它的适应度:
选择操作决定哪些个体可以进入下一代。GAOT提供了随机均匀分布选择法(Stochasticuniform)、赌轮盘选择法(Roulette)、剩fi?fitness(popi(t))
余(Remainder)选择法、锦标赛选择法(Tournament),也可以自定
3.判断算法收敛准则是否满足。若满足输出搜索结果,否则义。继续执行以下步骤;
(4)交叉操作函数(Crossoverfunction)
4.选择操作交叉操作是选取2个个体作为父代parent1和parent2,
产生出根据各个个体的适应度值计算选择概率:
遗传算法求解函数优化问题的Matlab实现
2010年第6期福建电脑
73
2个新的子代个体child1和child2。GAOT中提供的交叉函数有:离散重组(Scattered)、线性重组(Sheuristic)、单点交叉(Simplepoint)等五种交叉方式,也可以自定义。交叉操作还需设置交叉概率PC,此参数控制着交叉操作的频率,PC太大,会使高适应度
值的结构很快被破化掉;PC太小,搜索会停滞不前,一般取0.25至
局部极小值,但只有一个全局最小点(0,0),最小值为0。其三维几何特性如图2所示。
1、编写Schaffer函数的M文件Schaffer.m:
functionz=Schaffer(x)
z=((x(1)^2+x(2)^2)^0.25)*((sin(50*((x(1)^2+x(2)^2)^0.1)))^2+1.0);
图1
0.75。
(5)变异函数(Mutationfunction)
变异操作有利于保持种群的多样性、跳出局部极值,防止未成熟收敛。GAOT中提供的变异函数有高斯变异(Gaussian)、均匀变异(Uniform),也可以自定义。变异操作还需设置变异概率Pm,它是增大种群多样性的第二因素,Pm太小,不会产生新的基因块,P太大,会使GA变成随机搜索,一般取0,01至0.20。m
(6)停止条件(Stoppingconditions)
停止条件定义了算法终止的条件,GAOT中设置的参数有最大代数(Generation)、停止执行前的最大时间(Timelimited)、适应度限(Fitnesslimited)、停滞代数(Stallgeneration)、停滞时间(Stalltime)。
(7)主程序函数(Mainfunction)
主程序函数的作用是调用相应的遗传操作函数,完成遗传优化。主程序既可编写为M文件,然后在MATLAB的Command窗口运行,也可从命令行运行遗传算法函数ga。Ga函数的用法为:
[xfval]=ga(@fitnessfcn,nvars,options)
其中,输出参数:x为返回的最终点即最后变量值;fval为适应度函数在x点的值即最优值。输入参数:@fitnessfcn是计算适应度函数值的M文件的函数;nvars是适应度函数中独立变量的个数;options是参数结构体,可以缺省。
每一个参数的值都存放在参数结构体options中,例如op-tions.Populationsize在结构体中的缺省值为20,如果需要设置Populationsize的值等于100,可以通过下面的语句进行修改:op-tions=gaoptimset('PopulationSize',100)。这样,参数Populationsize的值变为100,而其他参数的值仍为缺省值或当前值。这时,再输入ga(@fitnessfun,nvars,options),函数ga将以种群中个体为100运行遗传算法。为了得到遗传算法更多的输出结果,可以使用下面的语句调用ga:
[xfvalreasonoutputpopulationscores]=ga(@fitnessfcn,
2、设置参数和调用遗传算法的主程序 …… 此处隐藏:6384字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [说明书]浅谈视觉传达设计中的色彩艺术
- [说明书]数据库原理-实验8-查询优化
- [说明书]临时用电施工组织设计
- [说明书]反假币考试试题第二套(人民币)
- [说明书]《建设工程监理规范》-2014.3.1实施
- [说明书]筋出槽,骨错缝病机诠释
- [说明书]百度预计来路对网站权重有多大影响
- [说明书]房屋面积测绘细则
- [说明书]计算机控制技术填空题汇总
- [说明书]乡镇卫生院(社区中心)死亡医学证明管
- [说明书]2013尾矿工实操试题
- [说明书]2015事业单位面试备考:贵州省事业单位
- [说明书](目录)2017-2022年半导体材料市场发
- [说明书]浙江省制造业发展“十三五”规划
- [说明书]干部选拔任用工作情况的自查报告
- [说明书]《发电厂电气部分》课后部分问答题整理
- [说明书]中国建立政府成本会计制度的思考
- [说明书]中国文化输出的现状及挑战-100分
- [说明书]通信原理实验指导(13-9)
- [说明书]HSF培训试卷(有害物质培训考试试题)
- 高中地理必修一:2.3《大气环境之六_气
- 新人教版八年级数学上期末总复习精品优
- WEB应用托管平台系统架构
- 《应用文写作》期末试卷
- 2017年秋九年级数学上册24.3正多边形和
- _空心村_形态特征与生成机理分析_以河
- 北师大版生物七年级下册12章2节感受器
- 社区卫生服务中心主任职责
- 广东省2014届广州二模材料作文“求道”
- 完整户口本英文翻译模板
- 2015年液化天然气LNG市场调研及发展趋
- 农村学校教育发展新
- 2014年注册税务师税法(Ⅱ)考试试题及答
- 东方大学俄语新版第5册第-7课课文翻译
- 路基路面工程课程设计1
- 219亩项目2011营销策略
- 第1篇 贸易术语-EXW、FCA、FAS
- 年会或大型活动防疫应急预案
- 改善提案(合理化建议)
- 初三英语第四单元ppt




