教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 说明书 >

遗传算法求解函数优化问题的Matlab实现

来源:网络收集 时间:2026-08-22
导读: 遗传算法求解函数优化问题的Matlab实现 72福建电脑2010年第6期 遗传算法求解函数优化问题的Matlab实现 石丽娟 (苏州大学电子信息学院江苏苏州215021) 【摘要】:本文介绍了遗传算法的基本原理,并重点分析了Matlab遗传算法工具箱的使用方法。在此基础上,给

遗传算法求解函数优化问题的Matlab实现

72福建电脑2010年第6期

遗传算法求解函数优化问题的Matlab实现

石丽娟

(苏州大学电子信息学院江苏苏州215021)

【摘要】:本文介绍了遗传算法的基本原理,并重点分析了Matlab遗传算法工具箱的使用方法。在此基础上,给出了一个函数优化问题的实例,以验证Matlab遗传算法工具箱在解决基于遗传算法的函数优化问题上的有效性和实用性。

【关键词】:遗传算法Matlab函数优化遗传算法(GeneticAlgorithm,缩写为GA),最先由JohnHol-land教授于1975年提出,它是一种借鉴生物界自然选择和遗传原理的随机优化搜索策略。遗传算法几乎渗透到从工程到社会科学的诸多领域,广泛用于组合优化、机器学习、自适应控制、规划设计和人工生命等领域,是21世纪有关智能计算中的关键技术之一。Matlab语言是一种高效率的用于科学工程计算的高级语言,它的语法规则简单、更贴近人的思维方式,通俗易懂。Matlab语言有着丰富的各种工具箱,Matlab的优化工具箱就是其中之一。采用Matlab遗传算法优化工具箱,不仅具有简单、易用、易于修改的特点,且为解决许多传统的优化方法难以解决的参数优化、非线性、多峰值之类的复杂问题提供有效的途径,为遗传算法的研究和应用提供很好的应用前景。1、遗传算法的描述

遗传算法提供了一个求解复杂系统优化问题的通用框架,它以适应度函数为依据,通过对群体中的个体施加遗传操作,实现群体内个体结构重组的迭代处理过程。

遗传算法的基本流程图如图1所示。

PÁ Â i?1,2,3,L,N

并以上式的概率分布从当前一代群体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字,全部文档内容请下载后查看。喜欢就下载吧 ……

遗传算法求解函数优化问题的Matlab实现.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1483212.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)