《第9章 最优化问题和遗传算法.ppt》由会员分享,可在线阅读,更多相关《第9章 最优化问题和遗传算法.ppt(84页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第9 9章章 最优化问题和遗传算法最优化问题和遗传算法n优化设计问题数学模型的一般形式是n优化设计问题数学模型包括维设计变量、约束条件(不等式约束条件和等式约束条件)和目标函数三项要素。优化问题的数学模型是实际优化问题的数学抽象,在满足所有的约束条件和情况下,求解维设计变量,使某项或多项设计目标(技术经济指标)达到最优。nMATLAB优化工具箱(Optimization Toolbox)中包含有一系列优化算法和模块,可以用于求解线性规划和二次规划、函数的最大和最小值、非线性规划、多目标优化、非线性最小二乘逼近和曲线拟合、非线性系统方程和复杂结构的大规模优化问题。n遗传算法(Genetic A
2、lgorithm)是模拟生物自然进化过程的进化算法中一个重要的领域,它已经被广泛地应用于自动控制、机器学习、模式识别、图形处理、人工神经网络、优化调度、经济预测、通讯网络和函数优化等各个领域,它作为一种新的全局优化搜索算法,在求解复杂的工程优化问题中取得良好的效果。利用MATLAB系统中的遗传算法工具箱(GA Toolbox)可以实现遗传算法许多基本运算。9.1 MATLAB9.1 MATLAB优化工具箱的应用优化工具箱的应用n常用的优化功能函数有n求解线性规划问题的函数linprogn求解二次规划问题的函数quadprogn求解无约束非线性规划问题的函数fminbnd、fminunc和fmi
3、nsearchn求解约束非线性规划问题的函数fminconn求解多目标优化问题的函数fgoalattain和fminimaxn使用MATLAB优化工具箱函数处理优化设计问题的分析和计算的一般步骤是:n1、针对具体工程问题建立优化设计的数学模型(其中,不等式约束条件表示成的形式);n2、分析数学模型中的目标函数,并建立相应的目标函数文件(包括计算目标函数必需的输入参数,描述目标函数表达式等内容),以自定目标函数文件名将它存储在工作间MATLABWORK中;n3、分析数学模型中的非线性约束条件,并建立相应的非线性约束函数文件(包括计算约束函数必需的输入参数,描述约束函数表达式等内容),以自定的约束
4、函数文件名将它存储在工作间MATLABWORK中;n4、分析优化设计的数学模型,选择适用的优化工具函数,并建立调用优化工具函数的命令文件(内容包括输入初始点,建立设计变量的线性约束和边界约束的矩阵和向量,使用优化工具函数调用目标函数文件和约束函数文件的语句,以及运算结果输出等内容),将优化工具函数作为“黑箱”调用,以自定的命令文件名将它存储在工作间MATLABWORK中。n将优化设计的命令文件复制到MATLAB命令窗口的运算提示符“”后面运行。n如果编制的目标函数文件、约束函数文件和命令文件存在错误,MATLAB就会给出错误的类型和在M文件中的位置,方便用户对错误进行定位和检查。n如果M文件没
5、有错误(包括逻辑错误和语法错误),命令窗口就会显示出运算信息,获得与所有条件都相容的优化结果。n9.1.1 9.1.1 线性规划问题线性规划问题n线性规划(Linear Programming)是数学规划中最简单和基本的问题,它主要用来解决在有限的资源条件下完成最多的任务,或是确定如何统筹任务完成以使用最少的资源。n线性规划的数学模型包括决策变量X、约束条件和目标函数三个要素,它的决策变量是非负的,而且约束函数和目标函数都是线性函数。n线性规划的数学模型表示为n用于求解线性规划的MATLAB函数是linprog,其调用格式为:nxopt,fopt=linprog(f,A,b,Aeq,beq,l
6、b,ub,x0,options)n其中,输入参数有:n f是目标函数各维变量的系数向量;n A和b是不等式约束函数的系数矩阵和常数向量;n Aeq和beq是等式约束函数系数矩阵和常数向量;n lb和ub分别是设计变量的下限和上限;n x0是初始点;n options是设置优化选项参数(参考表9-1)。n输出参数有:n xopt和fopt是返回目标函数最优解及其函数值。n例例9-1 9-1 求解线性规划问题n编制求解线性规划问题的M文件:n%求解线性规划问题nf=-2,-1,3,-5;%各维变量的系数向量nA=1,2,4,-1;2,3,-1,1;1,0,1,1;%系数矩阵nb=6,12,4;%不
7、等式约束函数的常数向量nlb=0,0,0,0;%设计变量的下限nxopt,fopt=linprog(f,A,b,lb)n由于线性规划问题中没有等式约束,所以相应的系数矩阵Aeq和常数向量beq用空矩阵符号“”表示。程序运行结果:nOptimization terminated successfully.nxopt=0.0000n 2.6667n 0.0000n 4.0000nfopt=-22.6667n可见,约束最优解位于两个边界约束 和 的交集上。n9.1.2 9.1.2 二次规划问题二次规划问题n二次规划问题(Quadratic Programming)是最简单的非线性规划问题,其目标函数
8、是二次函数,而约束函数是线性函数。由于二次规划问题的求解比较成熟,有时可以将一些求解比较困难的一般非线性约束规划问题转化为较易处理的序列二次规划子问题求解。n用于求解二次规划问题的函数是 quadprogn二次规划的 数学模型为 n使用格式为n xopt,fopt=quadprog(H,C,A,b,Aeq,beq,lb,ub,x0,options)n其中,输入参数有:n H是目标函数的海色矩阵;n C是目标函数设计变量一次项的系数向量;n A和b是不等式约束函数的系数矩阵和常数向量;n Aeq和beq是等式约束函数的系数矩阵和常数向量n lb和ub分别是设计变量的下限和上限;n x0是初始点;
9、n options是设置优化选项参数(参考表9-1)。n输出参数有:nxopt和fopt返回目标函数的最优解及其函数值。n例例9-2 9-2 求解约束优化问题n将目标函数写成二次函数的形式n其中:n线性不等式约束函数的系数矩阵和常数向量为n线性等式约束函数的系数矩阵和常数向量为n编制求解二次规划的M文件n%求解二次规划问题nH=2,-2,0;-2,3,0;0,0,2;%函数的海色矩阵nC=0,0,1;%各维变量的系数向量nA=1,3,2;%不等式约束函数的系数矩阵nb=6;%不等式约束函数的常数向量nAeq=2,-1,1;%等式约束函数的系数矩阵nbeq=4;%等式约束函数的常数向量nlb=z
10、eros(3,1);%设计变量的下限nxopt,fopt=quadprog(H,C,A,b,Aeq,beq,lb)%调用线性规划函数n%最优点的约束函数值ng=A*xopt-b%不等式约束nh=Aeq*xopt-beq%等式约束nM文件运行结果:nOptimization terminated successfully.nxopt=2.4783n 1.0870n 0.1304nfopt=2.6739ng=8.8818e-016nh=-4.4409e-016n可见,二次规划的约束最优解位于不等式约束和等式约束的交集。n9.1.3 9.1.3 无约束非线性规划问题无约束非线性规划问题n1、函数fm
11、inbnd应用n函数fminbnd只能求解单变量的无约束非线性规划问题,而且要求目标函数为连续函数。调用格式n xopt,fopt,exitflag,output=fminbnd(fun,x1,x2,options)n其中,输入参数有:n fun是目标函数;n x1,x2是迭代搜索区间,即变量的边界约束,即x1xx2;n options是设置优化选项参数(见表9-1)。例如options(1)为负值时,则显示中间过程,默认值是options(1)=0;options(2)为最优解xopt的误差范围,默认值是1e-4;等等。n输出参数有:n Xopt为返回的满足fun取得最小值的x的值;n fo
12、pt为目标函数最小值;n exitflag表示退出条件:exitflag0表示计算收敛,exitflag=0表示超过了最大的迭代次数,exitflag 0表示计算收敛,exitflag=0表示超过了最大的迭代次数,exitflag 9|y2-4|x(3)=0)&(g2=0)n y=-f;%满足约束条件时nelsen y=-(f+p);%不满足约束条件时nendn 2、调用遗传优化算法函数,初始种群个体数目取20,其他默认缺省参数(进化繁殖100代)n%生成初始种群,个体数目取20nbounds=ones(2,1)*-1 3;%变量上下限nstartPop=initializega(20,bou
13、nds,minf_4,);n%遗传优化算法搜索nxf,endPop,beestSols,trace=ga(bounds,minf_4);nbeestSolsnxfnM文件运行结果:nbeestSols=%略去输出数据nxf=n 2.0310 0.8229 -0.0323n运算结果表明,繁殖到第62代时获得最优解:n将最优解代入两个约束条件中进行检验:n%计算最优点不等式约束函数值ng1y=xf(1)-2*xf(2)+1 ng2y=0.25*xf(1)2-3*xf(2)2+1nM文件运行结果:ng1y=n 1.3859ng2y=n 4.2997e-007n3、描述遗传算法搜索过程n%绘制遗传优化算法过程图形nplot(trace(:,1),trace(:,2),b:);nhold on;nplot(trace(:,1),trace(:,3),r);ngrid;nxlabel(bf Generation);ylabel(bf Fitness);ntitle(bf 二维约束非线性遗传算法的各代最好解与平均值);nlegend(虚线:各代种群平均值,实线:各代最优解)M文件运行结果如图9-9所示,图中实线表示各代最优解,虚线表示各代种群平均值。
限制150内