ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:214.69KB ,
资源ID:5331507      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5331507.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(matlab遗传算法学习和全局化算法精品毕业设计完整版.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

matlab遗传算法学习和全局化算法精品毕业设计完整版.docx

1、matlab遗传算法学习和全局化算法精品毕业设计完整版1 遗传算法步骤1 根据具体问题选择编码方式,随机产生初始种群,个体数目一定,每个个体表现为染色体的基因编码2 选择合适的适应度函数,计算并评价群体中各个体的适应。3 选择(selection)。根据各个个体的适应度,按照一定的规则或方法,从当前群体中选择出一些优良的个体遗传到下一代群体4 交叉(crossover)。将选择过后的群体内的各个个体随机搭配成对,对每一对个体,以一定概率(交叉概率)交换它们中的部分基因。5 变异(mutation)。对交叉过后的群体中的每一个个体,以某个概率(称为变异概率)改n 变某一个或某一些基因位上的基因值

2、为其他的等位基因6 终止条件判断。若满足终止条件,则以进化过程中得到的具有最大适应度的个体作为最优解输出,终止运算。否则,迭代执行Step2 至Step5。适应度是评价群体中染色体个体好坏的标准,是算法进化的驱动力,是自然选择的唯一依据,改变种群结构的操作皆通过适应度函数来控制。在遗传算法中,以个体适应度的大小来确定该个体被遗传到下一代群体中的概率。个体的适应度越大,被遗传到下一代的概率就越大,相反,被遗传到下一代的概率就越小。1 a,b,c=gaopt(bound,fun)其中,bound=xm,xM为求解区间上届和下届构成的矩阵。Fun为用户编写的函数。a为搜索的结果向量,由搜索的出的最优

3、x向量与目标函数构成,b为最终搜索种群,c为中间搜索过程变参数,其第一列为代数,后边列分别为该代最好的的个体与目标函数的值,可以认为寻优的中间结果。2 ga函数。X,F, FLAG,OUTPUT = GA(fun, n,opts).n为自变量个数,opts为遗传算法控制选项,用gaoptimset()函数设置各种选项,InitialPopulation可以设置初始种群,用PopulationSize可以设置种群规模,SelectionFcn可以定义选择函数,3 gatool 函数用于打开,GATOOL is now included in OPTIMTOOL。2.2 通过GUI 使用遗传算法在

4、Matlab 工作窗口键入下列命令gatool, 或通过Start 打开其下子菜单Genetic Algorithm Tool,如图1。只要在相应的窗格选择相应的选项便可进行遗传算法的计算。其中fitnessfun 窗格为适应度函数, 填写形式为fitnessfun,Number of variable 窗格为变量个数。其它窗格参数根据情况填入。填好各窗格内容,单击Start 按钮,便可运行遗传算法例子1 应用实例已知某一生物的总量y(单位:万个)与时间t(月)之间的关系为y=k0(1-exp(-k1*t),统计十个月得到数据见表1,试求关系式中的k0,k1。先编写目标函数,并以文件名myfu

5、ng.m 存盘。function y=myfung(x)TOT=2.0567 3.6904 4.9881 6.0189 6.8371 7.4881 8.0047 8.4151 8.7411 9.0000;t=1:10;r,s=size(TOT);y=0;for i=1:sy=y+(TOT(i)-x(:,1)*(1-exp(-x(:,2)*t(i)2 %最小估计原则end打开遗传算法的GUI,在Fitness function 窗格中输入myfung,在Number of variables 窗格中输入数字2,在Stopping criteria 选项中设置generations 为300,fi

6、tness limit 为0.001,stall generations 为100,其它参数为缺省值,然后单击Start 运行遗传算法得到k0=9.99559,k1=0.23018,即例子2 2 matlab 7 GA工具箱_木子一车(转载)例子1求的最大值;也就是求负函数的最小值最大值为-38.8503,在点 xmin=11.6255 5.7250;clearf=(x1,x2)(-(21.5+x1.*sin(4*pi*x1)+x2.*sin(20*pi*x2)t1=-3:0.1:12.1; t2=4:1.8/(length(t1)-1):5.8;x,y=meshgrid(t1,t2);mes

7、h(x,y,f(x,y)方法1 遗传算法f=(x)-(21.5+x(1)*sin(4*pi*x(1)+x(2)*sin(20*pi*x(2);opt1 = gaoptimset;opt1.PopInitRange = -3.0 4.1;12.1 5.8;opt1.PopulationSize = 1000;opt1.MutationFcn=mutationuniform;x, fval = ga(f,2,opt1)x,fval = ga(f,2, -3.0;4.1,12.1;5.8);方法2 gatool 的用法在matlab7命令行输入 gatool,见附图。在 PopulationSize

8、=10000; 请注意Mutation函数的选择。f(x1*,x2*)=-my_func1(x1*,x2*)=38.84741978236206,where x1*=11.62378; x2*=5.72501方法3 全局优化算法gs = GlobalSearch(Display,iter);f=(x)-(21.5+x(1)*sin(4*pi*x(1)+x(2)*sin(20*pi*x(2);opts = optimset(Algorithm,interior-point);problem = createOptimProblem(fmincon,objective,f,x0,1/2 1/3,l

9、b,-3 4.1,ub,12.1 5.8,options,opts);xming,fming,flagg,outptg,manyminsg = run(gs,problem)方法4 multistart 方法ms =MultiStart(TolFun,1e-10,TolX,1e-10);opts=optimset(Algorithm, interior-point);f=(x)-(21.5+x(1)*sin(4*pi*x(1)+x(2)*sin(20*pi*x(2);problem=createOptimProblem(fmincon,x0,0,0,objective,f,lb,-3,4.1,

10、ub,12.1,5.8,options,opts);xminm,fminm,flagm,outptm,someminsm=run(ms,problem,300);%stpoints=RandomStartPointSet;%默认产生10个起始点此方法得不到最优解;查看局部解的分布范围 enter hist(someminsm.Fval).方法4.1 对上个方法的改进;首先根据上个方法搜索的最佳点,取现在的方法的搜索范围为上个最优解的周围区域,缩小搜索范围clearms=MultiStart;opts=optimset(Algorithm,interior-point);f=(x)(-(21.5

11、+x(1).*sin(4*pi*x(1)+x(2).*sin(20*pi*x(2);problem=createOptimProblem(fmincon,x0,12,5,objective,f,lb,10,4,ub,12.1,5.8,options,opts);xminm,fminm,flagm,outptm,manyminsm=run(ms,problem,200)xminm = 11.6255 5.7250fminm = -38.8503flagm = 1outptm = funcCount: 8660 localSolverTotal: 200 localSolverSuccess: 2

12、00 localSolverIncomplete: 0 localSolverNoSolution: 0 message: 1x129 charmanyminsm = 1x78 GlobalOptimSolution Properties: X Fval Exitflag OutputX0方法4.2 pts = -4*rand(200,2) + 13*rand(200,2);tpoints = CustomStartPointSet(pts);rpts = RandomStartPointSet(NumStartPoints,200);allpts = tpoints,rpts;ms=Mult

13、iStart;opts=optimset(Algorithm, interior-point,LargeScale,off);f=(x)(-(21.5+x(1).*sin(4*pi*x(1)+x(2).*sin(20*pi*x(2);problem=createOptimProblem(fmincon,x0,12.1,5.6,objective,f,lb,9,4,ub,12.1,5.8,options,opts);xmin,fmin,flag,outpt,allmins = run(ms,problem,allpts)3 【问题】求f(x)=x+10*sin(5x)+7*cos(4x)的最大值

14、,其中0=x Export to Workspace and select Export problem and options to a MATLAB structure named例子5 多起始点优化(MultiStart Global Optimization)gs = GlobalSearch;ms = MultiStart;xstart = randn(3,1);options = optimset(Algorithm,interior-point);假设你想解决一个问题并假设局部解相邻0.01之内,并且函数值在函数精度之内;求解时间少于2000s;gs = GlobalSearch

15、(TolX,0.01,MaxTime,2000);gs = GlobalSearch;ms = MultiStart; xmin,fmin,flag,outpt,allmins = run(ms,problem,k);%k为要使用的起点数目,k可以由RandomStartPointSet函数产生;5.1 RandomStartPointSet Object for Start Pointsstpoints = RandomStartPointSet;%默认产生10个起始点,如果想产生stpoints = RandomStartPointSet(NumStartPoints,40);Runnin

16、g a solver is nearly identical for GlobalSearch and MultiStart. The only difference in syntax is MultiStart takes an additional input describing the start points.startpts = RandomStartPointSet(ArtificialBound,100,NumStartPoints,50);x fval eflag output manymins = run(ms,problem,startpts)5.2 CustomSta

17、rtPointSet Object for Start PointsTo use a specific set of starting points, package them in a CustomStartPointSet as follows:Place the starting points in a matrix. Each row of the matrix represents one starting point. MultiStart runs all the rows of the matrix, subject to filtering with the StartPointsToRun property. For more information, see MultiStart Algorithm.Create a CustomStartPointSet object from the matrix:tpoints = CustomStartPointSet(ptmatrix);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1