《最优化模型与算法复习过程.ppt》由会员分享,可在线阅读,更多相关《最优化模型与算法复习过程.ppt(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、最优化模型与算法优化模型简介概念、基本形式概念、基本形式n什么是优化?就是从各种方案中选取一个最好的。从数学角度看,优化理论就是研究如何在状态空间中寻找到全局最优点。n一般的优化具有下面形式:min f(x1,x2,xn)s.t.g(x)0,xD其中x1,x2,xn(即问题的可行域,代表问题参数的选择范围),即minf(X),其中X(矢量形式)。f(x)是决策问题的数学模型,也是决策问题的目标函数目标函数,g(x)0是决策问题的约束条件约束条件,X是决策问题的决决策变量策变量,D是决策问题的定义域(可行域可行域)。问题归结为求极值。极值点非常多,需要找到全局最小点。注:求问题的最大和最小是同一
2、个问题,算法完全一样。n分布模型的参数估计问题是典型的优化问题,最大似然估计模型是典型的优化模型。2优化模型分类n1.根据是否存在约束条件 有约束模型,无约束模型 注:有约束问题通常采用转换方法将有约束模型转换为无约束模型再求解。n2.根据目标函数和约束条件表达式的性质 线性规划,非线性规划,二次规划,多目标规划等 注:最常见的优化模型为非线性规划模型。n3.根据决策变量的连续性 连续性优化模型,离散性优化模型(典型的组合优化问题,最短路)注:两类模型在求解方法上有较大不同,本次讲解针对前一种。3优化算法及其分类n什么是优化算法?专门用于求解优化模型的方法叫做优化算法,优化算法与优化模型有本质
3、区别。n优化算法可分为两大类 1 梯度类算法 牛顿法、二分法、共轭梯度法、梯度下降法、单纯形法等,该类算法也称为局部优化算法,明显缺陷是局部优化。Matlab优化工具箱多用该类算法。2 非梯度类算法 (1)遍历搜索法,在组合优化中称为穷举法,计算量大,适用于小规模计算求解。(2)随机搜索法,包括遗传算法、模拟退火算法、群类算法、禁忌搜索法等,又称为现代优化算法,是一类全局最优算法,求解的准确性与时间长度、迭代次数直接相关。4常用的优化功能函数常用的优化功能函数l求解求解线性规划线性规划问题的主要函数是问题的主要函数是linprog。l求解求解二次规划二次规划问题的主要函数是问题的主要函数是qu
4、adprog。l求解求解无约束非线性规划无约束非线性规划问题的主要函数是问题的主要函数是fminbnd、fminunc和和fminsearch。l求解求解约束非线性规划约束非线性规划问题的函数是问题的函数是 fmincon。l多目标优化问题的MATLAB函数有fgoalattain和和fminimax。MATLAB优化工具箱优化求解一般步骤优化求解一般步骤 建立目标函数文件建立目标函数文件 针对具体工程问题建立针对具体工程问题建立优化设计的数学模型优化设计的数学模型不等式约束条件表不等式约束条件表示成示成g(X)0的形的形式式 建立调用优化工具函数建立调用优化工具函数的的M文件或命令文件文件或
5、命令文件建立约束函数文件建立约束函数文件运行优化工具函数的运行优化工具函数的M文文件或命令文件求解件或命令文件求解min f(x1,x2,xn)s.t.g(x)0无约束非线性规划问题的MATLAB函数fminbnd要求目标函数为连续函数要求目标函数为连续函数只求解单变量问题只求解单变量问题fminunc可求解单变量和多变量问题可求解单变量和多变量问题适用于简单优化问题适用于简单优化问题可求解复杂优化问题可求解复杂优化问题fminsearchxopt,fopt,exitflag=fminsearch(fun,x0,options)无约束多元函数最小值无约束多元函数最小值函数函数fminsearc
6、h调用格式调用格式设置优化选项参数设置优化选项参数初始点初始点目标函数目标函数返回最优设计变量返回最优设计变量返回目标函数值返回目标函数值返回算法的终止返回算法的终止指示变量值指示变量值例 求y=2x13+4x1x23-10 x1x2+x22 的最小值点.解:X=fminsearch(2*x(1)3+4*x(1)*x(2)3-10*x(1)*x(2)+x(2)2,0,0)结果为:X=1.0016 0.8335或在MATLAB编辑器中建立函数文件.function f=myfun(x)f=2*x(1)3+4*x(1)*x(2)3-10*x(1)*x(2)+x(2)2;保存为myfun.m,在命令
7、窗口键入 X=fminsearch(myfun,0,0)或 X=fminsearch(myfun,0,0)结果为:X=1.0016 0.8335有约束的多元函数最小值有约束的多元函数最小值数学模型形式:数学模型形式:min f(X)s.t.AXb (线性线性不等式约束)不等式约束)AeqX=beq (线性线性等式约束)等式约束)C(X)0(非线性非线性不等式约束条件)不等式约束条件)Ceq(X)=0(非线性非线性等式约束)等式约束)Lb X Ub(边界约束条件)(边界约束条件)其中:x、b、beq、lb、ub是向量,A、Aeq为矩阵,C(x)、Ceq(x)是返回向量的函数,f(x)为目标函数,
8、f(x)、C(x)、Ceq(x)可以是非线性函数.函数 fmincon格式格式 x=fmincon(fun,x0,A,b)x=fmincon(fun,x0,A,b,Aeq,beq)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)x,fval=fmincon()x,fval,exitflag=fmincon()x,fval,exitflag,output=fmincon()x,fval,e
9、xitflag,output,lambda=fmincon()x,fval,exitflag,output,lambda,grad=fmincon()x,fval,exitflag,output,lambda,grad,hessian=fmincon()参数说明:参数说明:fun为目标函数,它可用前面的方法定义;nonlcon的作用是通过接受的向量x来计算非线性非线性不等约束和非线性非线性等式约束分别在x处的估计C和Ceq,通过指定函数名函数名或函数名句柄函数名句柄来使用,如:x=fmincon(myfun,x0,A,b,Aeq,beq,lb,ub,mycon),先建立非线性约束函数,并保存为
10、mycon.m:function C,Ceq=mycon(x)C=%计算x处的非线性不等约束的函数值.Ceq=%计算x处的非线性等式约束的函数值.lambda是Lagrange乘子,它体现哪一个约束有效.output输出优化信息;grad表示目标函数在x处的梯度;hessian表示目标函数在x处的Hessian值.控制参数控制参数options序号功能默认值及其含义说明1输出形式0,无中间结果输出Options(1)=1,按照表格输出结果Options(1)=-1,隐藏警告信息2解x的精度1e-4Options(2)设置x解的终止条件3函数f的精度1e-4Options(3)设置函数f的终止条
11、件4约束g的精度1e-6Options(4)设置约束g的终止条件5选择主要算法0Options(5)选择主要优化算法6搜索方向算法0fmin()函数为无约束优化搜索方向提供3种算法:Options(6)=0,拟牛顿法BFGS公式Options(6)=1,拟牛顿法DFP公式Options(6)=2,梯度法7步长一维搜索0fmin()函数为无约束优化的步长一维搜索提供2种算法:Options(7)=0,二次和三次混合插值法Options(7)=1,三次多项式插值法控制参数控制参数options序号功能默认值及其含义说明8函数值输出Options(8)输出最终迭代函数值9梯度检验0,不检验Optio
12、ns(9)比较梯度10函数计算次数Options(10)输出函数计算次数11梯度计算次数Options(11)输出函数梯度计算次数12约束计算次数Options(12)输出约束计算次数13等式约束个数0,等式约束为0 Options(13)输入等式约束个数14最大迭代次数100n(n为变量维数)Options(14)输入最大迭代次数15目标个数0Options(15)输入目标个数16差分步长最小值1e-8Options(16)步长的下限或变量的最小梯度值17差分步长最大值0.1Options(17)步长的上限或变量的最大梯度值18步长Options(18)步长参数,第1次迭代时置1【例】求解约
13、束非线性规划:求解约束非线性规划:解解:首先建立一个首先建立一个m文件文件mymyfun.mfunction y=myfun(x)y=-exp(x(1)*x(2)2*(3-exp(x(1)-x(2)2);存储为存储为mymyfun.m首先将问题转化为首先将问题转化为matlab要求的格式要求的格式;即求出即求出fun,A,b,Aeq,Beq,X0,Lb,Ub然后建立一个然后建立一个 m文件文件 confun.mfunction c,cep=confun(x)c=;%c为非线性不等式为非线性不等式cep=exp(x(1)+x(2)2-3;%cep为非线性等式为非线性等式然后存储为然后存储为con
14、confun.m最后在命令窗口中最后在命令窗口中输输入:入:A=;b=;Aeq=;beq=;Lb=;Ub=;x,f=fmincon(myfun,1;1,confun)题目中有非线性约束条件,所以建立非线性约束题目中有非线性约束条件,所以建立非线性约束m-文件。文件。x=0.8852 0.7592f=6.2043e-016优化过程演示n为了进一步了解优化模型的求解算法,给出具体实例的优化过程演示。n例:以共轭梯度优化算法优化某函数进行演示,并说明计算时间复杂度。17现代优化算法 遗传算法 模拟退火算法 禁忌搜索算法 蚁群算法 粒子群算法 差分进化算法 特点:基于客观世界中的一些自然现象;建立在计
15、算机迭代计算的基础上;都属于随机搜索算法,具有全局优化能力;具有普适性,可解决实际应用问题。注:群类算法还有鱼群算法、蜂群算法、鸟群算法等。现代优化算法现代优化算法全局性优化理论的一般性描述全局性优化理论的一般性描述n两种搜索方式:单点法和多点法。单点法是一种串行方式,即从一个初始状态(单个个体)出发,按照某种方式转移状态进行全局优化,这种方式通常要消耗较多机时;多点法是一种并行方式,即从可行域的多个初始状态(多个个体)同时进行搜索寻找全局最优解,但是空间开销大。根据各态历经假设,理论上二者可以具有相同的搜索效果。事实上,单CPU情况下的单点法和多点法并没有本质性的区别。19模拟退火算法及模型
16、模拟退火算法及模型 算法的提出 模拟退火算法最早的思想由Metropolis等(1953)提出,1983年Kirkpatrick等将其应用于组合优化。物理退火过程物理退火过程算法的目的 解决NP复杂性问题;克服优化过程陷入局部极小;克服初值依赖性。什么是退火:退火是指将固体加热到足够高的温度,使分子呈随机排列状态,然后逐步降温使之冷却,最后分子以低能状态排列,固体达到某种稳定状态。物理退火过程物理退火过程模拟退火算法及模型模拟退火算法及模型 Metropolis准则以概率接受新状态 物理退火过程物理退火过程 固体在恒定温度下达到热平衡的过程可以用Monte Carlo方法(计算机随机模拟方法)
17、加以模拟,虽然该方法简单,但必须大量采样才能得到比较精确的结果,计算量很大。若在温度T,当前状态i 新状态j若EjEi,则接受 j 为当前状态;否则,以概率 p=exp-(Ej-Ei)/kBT 接受j 为当前状态。即:p大于0,1)区间的随机数,则仍接受状态 j 为当前状态;否则保留状态 i 为当前状态。模拟退火算法及模型模拟退火算法及模型 Metropolis准则以概率接受新状态 p=exp-(Ej-Ei)/kBT 物理退火过程物理退火过程 在低温下,只接受与当前状态能量差较小的新状态。在高温下,可接受与当前状态能量差较大的新状态;组合优化与物理退火的相似性组合优化与物理退火的相似性相似性比
18、较 优化问题优化问题金属物体金属物体解解粒子状态粒子状态最优解最优解能量最低的状态能量最低的状态设定初温设定初温熔解过程熔解过程Metropolis抽样过程抽样过程等温过程等温过程控制参数的下降控制参数的下降冷却冷却目标函数目标函数能量能量SA算法描述遗传算法nDarwin 的物种进化的主要思想是自然选择(Natural selection)。生物通过竞争来进化,以适应环境。生物通过遗传(Heredity)、变异(Mutation)等过程实现进化。遗传和变异的物质基础是染色体(Chromosome)。染色体又是由DNA 和蛋白质组成的。基因中保留着遗传物质。通过基因的复制(production
19、)、交叉(crossover)和变异(mutation)实现生物的性状的变异和遗传。n标准遗传算法的基本框架是由Holland于20世纪60年代提出的,它使用二进制编码,采用赌轮选择和随机配对,关键是编码编码。这是一类模拟生物进化过程的全局性优化算法,其搜索效率取决于搜索策略或状态转移策略、编码策略、运行参数的合理配置等方面。对于具有下面数学结构的研究对象min(或max)f(x),s.t.g(x)0,xD 遗传算法可以具有较好的搜索效果。26遗传算法n基本思路基本思路:第一步:建立研究对象的数学结构模型,确定目标函数类型(即求目标函数的最大值还是最小值?)。第二步:确定表示可行解的染色体编码
20、方法,即确定个体基因型X及遗传算法的搜索空间。第三步:确定解码方法,即确定由个体基因型X到相应表现型的对应关系或转换关系。27遗传算法n基本思路基本思路:第四步:设计遗传算子,包括选择算子、交叉算子、变异算子等的具体操作方法。第五步:确定个体适应度的量化评价方法,即制定由目标函数 f(x)到个体适应度的转换规则。第六步:确定遗传算法的有关运行参数。包括编码串长度l(对于二进制编码)、交叉概率Pc、变异概率Pm、种群规模M、终止代数T等运行参数的设置。第七步:设计遗传算法程序,其中使用了最优保留策略。28遗传算法n为了提高其搜索效率,可以在三个方面提出改进措施:1)采用更好的搜索策略。采用更好的
21、搜索策略。主要包括:精英策略(elitist strategy);构造与模拟退火算法、局部搜索算法如最速下降法等相结合的混和遗传算法(hybrid genetic algorithm);通过改造模式定理和引入半序关系将所有模式构成一个半序格,从而将人工智能理论中的状态空间搜索算法如A算法与遗传算法相结合而提出的统计遗传算法(statistical genetic algorithm);基于家族优生学原理构成两两结合的家族竞争机制,通过引入正交设计法构造出“正交交配”算子,从而在每个家庭内部形成局部竞争环境的进化算法;利用小生境技术、聚类分析或狭义遗传算法而提出的分区域搜索遗传算法等。29遗传算
22、法2)采用更加合理的编码策略采用更加合理的编码策略。如采用十进制编码,多维实数编码,或根据模式定理将二进制编码的低阶、高平均适应度的长定义距模式转换为短定义距模式等。3)合理配置运行参数合理配置运行参数。遗传算法的求解效率在很大程度上取决于编码串长度l(对于二进制编码)、种群规模M、交叉概率Pc、变异概率Pm、终止代数T、适应度函数f(M)等运行参数的设置,当然与具体的选择算子也有很大关系,这在搜索策略中已经有一定体现。除了种群规模和终止代数之外,人们对于染色体编码、交叉和变异概率、适应度函数等进行了深入广泛的讨论,此处不再详细说明。30全局优化全局优化(Rastrigins Function)全局最小点(0,0)优化算法解方程威布尔分布统计量方程假设=1000;=1.15.则=951.7015;2=6.8841e+005.将与视为待求解变量,转化为最优化问题,则最优化模型为:谢谢大家!谢谢大家!此课件下载可自行编辑修改,仅供参考!此课件下载可自行编辑修改,仅供参考!感谢您的支持,我们努力做得更好!谢谢感谢您的支持,我们努力做得更好!谢谢