第一章 最优化问题概述-最优化方法课件_第1页
第一章 最优化问题概述-最优化方法课件_第2页
第一章 最优化问题概述-最优化方法课件_第3页
第一章 最优化问题概述-最优化方法课件_第4页
第一章 最优化问题概述-最优化方法课件_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

最优化方法2目录第一章最优化问题概述第二章线性规划第三章无约束最优化方法第四章约束最优化方法第一章

最优化问题概述4§1.1最优化问题的数学模型

与基本概念5例1.1.1运输问题设有m个水泥厂A1,A2,…,Am,年产量各为a1,a2,…,am吨.有k个城市B1,B2…,Bk用这些水泥厂生产的水泥,年需求量b1,b2,…,bk吨.再设由Ai到Bj每吨水泥的运价为cij元.假设产销是平衡的,即:试设计一个调运方案,在满足需要的同时使总运费最省.6A1

由题意可画出如下的运输费用图:B2AmB1A2Bk产量需求量设Ai→Bj的水泥量为xij,已知Ai→Bj单价为cij,单位为元,则总运费为:7数学模型:注:平衡条件作为已知条件并不出现在约束条件中.8例1.1.2生产计划问题设某工厂有m种资源B1,B2,…,Bm,数量各为:b1,b2,…,bm,用这些资源产n种产品A1,A2,…,An.每生产一个单位的Aj产品需要消耗资源Bi的量为aij,根据合同规定,产品Aj的量不少于dj.再设Aj的单价为cj.问如何安排生产计划,才能既完成合同,又使该厂总收入最多?9假设产品Aj的计划产量为xj.由题意可画出如下的生产与消耗的关系图:B1B2BmAnA2A1消耗10数学模型11例1.1.3指派问题设有四项任务B1,B2,B3,B4派四个人A1,A2,A3,A4去完成.每个人都可以承担四项任务中的任何一项,但所消耗的资金不同.设Ai完成Bj所需资金为cij.如何分配任务,使总支出最少?设变量指派Ai完成bj不指派Ai完成bj12则总支出可表示为:数学模型:13例1.1.4数据拟合问题在实验数据处理或统计资料分析中常遇到如下问题.设两个变量x和y,已知存在函数关系,但其解析表达式或者是未知的或者虽然为已知的但过于复杂.设已取得一组数据:(xi,yi)i=1,2,…,m.根据这一组数据导出函数y=f(x)的一个简单而近似的解析表式.14最小二乘法解这种问题常用的方法是最小二乘法,以一个简单的函数序列j1(x),j2(x),···,jn(x)为基本函数.一般选取1,x,x2,···,xn为基本函数,即以作为近似表达式.15最小二乘法系数的选取要使得下面得平方和最小:因此,数据拟合问题得数学模型为其中xi,yi(i=1,2,…,m)及jj(x)(j=0,1,…,n)为已知.16最优化问题最优化问题的一般形式为:(1.1)(目标函数)(1.3)(不等式约束)(1.2)(等式约束)其中x是n维向量.在实际应用中,可以将求最大值的目标函数取相反数后统一成公式中求最小值的形式.17相关定义定义1.1.1(可行解)

满足约束条件(1.2)和(1.3)的x称为可行解,也称为可行点或容许点.定义1.1.2(可行域)全体可行解构成的集合称为可行域,也称为容许集,记为D,即:D={x|hi(x)=0,i=1,···,m,gj(x)≥0,j=1,···,p,x∈Rn}.若hi(x),gj(x)为连续函数,则D为闭集.18相关定义定义1.1.3(整体最优解)

若x*∈D,对于一切x∈D恒有f(x*)≤f(x),则称x*为最优化问题(P)的整体最优解.若x*∈D,x≠x*,恒有f(x*)<f(x),则称x*为最优化问题(P)的严格整体最优解.19相关定义定义1.1.4(局部最优解)

若x*∈D,存在x*的某邻域Ne(x*),使得对于一切x∈D∩Ne(x*),恒有f(x*)≤f(x),则称为最优化问题(P)的局部最优解,其中Ne(x*)={x|||x-x*||<e,e>0}.当x≠x*时,若上面的不等式为严格不等式则称x*为问题(P)的严格局部最优解.显然,整体最优解一定是局部最优解,而局部最优解不一定是整体最优解.20相关定义求解最优化问题(P),就是求目标函数f(x)在约束条件(1.2),(1.3)下的极小点,实际上是求可行域D上的整体最优解.但是,在一般情况下,整体最优解是很难求出的,往往只能求出局部最优解.21向量范数定义1.1.5

如果向量x∈Rn的某个实值函数||x||,满足条件(1)||x||≥0(||x||=0当且仅当x=0)(正定性);(2)||ax||=|a|·||x||(对于任意a∈R);(3)||x+y||≤||x||+||y||(三角不等式);则称||x||为Rn上的一个向量范数.22常用的向量范数1-范数2-范数(欧式范数)∞-范数p-范数∞-范数是p-范数的极限23常用的向量范数对向量x=(1,-2,3)T,有||x||p是p的单调递减函数.24最优化问题的分类根据数学模型中有无约束函数分为有约束的最优化问题和无约束的最优化问题.根据目标函数和约束函数的函数类型分类:线性最优化问题,非线性最优化问题,二次规划,多目标规划,动态规划,整数规划,0-1规划.25§1.2最优化问题的一般算法26迭代算法迭代算法

选取一个初始可行点x0∈D,由这个初始可行点出发,依次产生一个可行点列:x1,x2,···,xk,···,记为{xk},使得某个xk恰好是问题的一个最优解,或者该点列收敛到问题的一个最优解x*.下降算法在迭代算法中一般要求

f(xk+1)≤f(xk).27可行点列的产生在xk处求得一个方向pk(下降方向),在射线xk+apk(a>0)上求一点:xk+1=xk+akpk使得f(xk+1)≤f(xk).其中ak称为步长.定义1.2.1(下降方向)在点xk处,对于方向pk≠0,若存在实数b>0,使得任意的a∈(0,b),有:f(xk+apk)<f(xk),则称pk为函数f(x)在点xk处的一个下降方向.28下降方向若f(x)具有连续的一阶偏导数,令由Taylor公式:当gkTpk<0时,f(xk+apk)<f(xk),所以pk是f(x)在xk处的一个下降方向.反之,当pk是f(x)在xk处的一个下降方向时,有gkTpk≤0(书中有错).通常称满足gkTpk<0的方向pk是为f(x)在xk处的一个下降方向.29可行方向定义1.2.2(可行方向)

已知区域,xk∈D,对于向量pk≠0,若存在实数b>0,使得对任意的a∈(0,b

),有:xk+apk∈D,则称pk为点xk处关于区域D的可行方向.对于D的内点(存在邻域包含于D),任意方向可行,对于边界点(任意邻域既有D的点也有不在D中的点),则有些方向可行,有些方向不可行.若下降方向关于域D可行,则称为可行下降方向.30最优化问题的算法的一般迭代格式给定初始点x0,令k=0.(1)确定xk处的可行下降方向pk;(2)确定步长ak,使得f(xk+akpk)<f(xk),(3)令xk+1=xk+akpk;(4)若xk+1满足某种终止准则,则停止迭代,以xk+1为近似最优解;或者已经达到最大迭代步数,也可终止迭代.否则令k:=k+1,转(1)31收敛性如果一个算法只有当初始点x0充分接近x*时,产生的点列才收敛于x*,则称该算法为具有局部收敛的算法.如果对任意的x0∈D,由算法产生的点列都收敛x*,则称该算法为具有全局收敛的算法.由于一般情况下最优解x*是未知的,所以只有具有全局收敛性的算法才有实用意义.但算法的局部收敛性分析,在理论上是重要的,因为它是全局收敛性分析的基础。32收敛速度定义1.2.3

设序列{xk}收敛于x*,而且若0<b<1,则称{xk}为线性收敛的,称b为收敛比;定义1.2.4

设序列{xk}收敛于x*,而且若b=0,则称{xk}为超线性收敛的.则称{xk}为p阶收敛.33终止准则对于一种算法,应该有某种终止准则,当某次迭代满足终止准则时,就停止迭代.常用的终止准则有:(1)或(2)或(3)(4)上面三种准则的组合.注:其中e>0是预先给定的.34§1.3二维最优化问题的几何解释35理论分析二维最优化问题的目标函数z=f(x1,x2)表示三维空间R3中的曲面.在空间直角坐标系O-x1x2z中,平面z=c与曲面z=f(x1,x2)的交线在0-x1x2平面上的投影曲线为:取不同的c值得到不同的投影曲线,每一条投影曲线对应一个c值,称投影曲线为目标函数的等值线或等高线.3637理论分析求目标函数z=f(x1,x2)在可行域D上的极小点,是在与可行域D有交集的等值线中找出具有最小值的等值线.也就是在可行域D上沿着f(x1,x2)的负梯度方向或某种下降方向上找取得最小值c的点.38例1.3.1解首先画出可行域D,目标函数的等值线是以点(1,2)为圆心的一族圆.f(x1,x2)的梯度为39例1.3.1负梯度方向指向等值线圆心,所以等值线与可行域D的边界相切的点x*=(1/2,3/2)T是此问题的最优解,目标函数的最优值为1/2.40例1.3.2解首先画出可行域D的图形.D为凸多边形ODEFGO.再以c为参数画出目标函数的等值线2x1+3x2=c.41例1.3.2目标函数c的值由小到大逐渐增加,等值线沿着目标函数的梯度方向平行移动.当移动到点E时,再移动就与可行域D不相交了,所以顶点E就是最优点,最优值为14.42例1.3.3解如图所示,可行域只能是圆弧ABE,其中点A和点E是等值线–x1–x2+1=0和圆x12+x22-9=0的交点.注意到等值线是平行的抛物线,图中画出了几条目标函数的等值线.容易看出B点是最优点,所以最优解是(0,-3)T,最优值为-3.43§1.4一维搜索44问题描述已知xk,并且求出了xk处的可行下降方向pk,从xk出发,沿方向pk求目标函数的最优解,即求解问题:设其最优解为ak,于是得到一个新点xk+1=

xk+

akpk所以一维搜索是求解一元函数f(a)的最优化问题(也叫一维最优化问题).我们来求解45在[a,b]内任取x1<x2,1.4.1Fibonacci法与黄金分割法

设f(x)在[a,b]上为下单峰函数,即有唯一的极小点x*,在x*左边f(x)严格下降,在x*右边f(x)严格上升.若f(x1)≥f(x2),则x*∈[x1,b].若f(x1)<f(x2),则x*∈[a,x2]46Fibonacci方法如果只有一个试点x,我们无法将区间缩小.如果知道两个试点x1<x2,根据f(x1),f(x2)的大小关系,可以得到缩小的区间[a,x2]或[x1,b].我们的目的是使max(x2-a,b-x1)尽量小.由于x2-a+b-x1=b-a+x2-x1>b-a,因此max(x2-a,b-x1)>(b-a)/2.我们尽量靠近[a,b]中点来取点.一般取x1=(b-a)/2,x2=x1+0.1(b-a),或者x2=(b-a)/2,x1=x2-0.1(b-a).47Fibonacci法下面我们考虑任给一个f(x)的单峰区间[a,b],如果给定试点的个数n,如何使最后确定的包含最优值的区间尽量的小.另一种思维方式为,按什么方式取点,求n次函数值之后,可最多将多长的原始区间长度缩小为1.设Ln为试点个数为n,最终区间长度为1时,原始区间[a,b]的最大可能长度。48Fibonacci法设最初两个试点为x1和x2,若极小点在[a,x1]内,至多还有n–2个试点,则x1-a≤Ln–2.若极小点在[x1,b]内,包括x2在内可以有n–1个试点,则b–x1≤Ln–1.因此,Ln≤Ln–1+Ln–2.如果我们采取合适的技巧,可以使得Ln=Ln–1+Ln–2.另外,显然有L0=L1=1.49Fibonacci数列从而Ln满足差分方程:此为Fibonacci数列,一般写为:Fibonacci数列的前几个数据为:50Fibonacci法若原始区间为[a,b],要求最终的区间长度≤e,则Fn≥(b-a)/e,由此可确定n,区间缩短之后与之前的比依次为:n确定之后,最初两个试点(关于[a,b]对称)分别为:51Fibonacci法上述过程完成了一次迭代,新区间仍记为[a,b].若已经进行了i–1次迭代,第i次迭代时,还有n–i+1个试点(包括已计算过的一个函数值).注:(1)最后的两个试点取的方式:x1=(b-a)/2,x2=x1+0.1(b-a).(2)若f(x1)与f(x2)近似相等,则认为x*在[x1,x2]内.52例1.4.1(Fibonacci方法)用Fibonacci法求函数f(x)=x2-x+2在区间[-1,3]上的极小点.要求最终区间长度不大于原始区间长度的0.08倍。由Fn≥1/0.08=12.5,可知n应取6(F6=13).解函数f(x)在区间[-1,3]上为下单峰函数,53第一次迭代(a=–1,b=3)f1<f2,缩短后区间为[-1,1.462]x1=0.538x2=1.46255354x1=-0.077第二次迭代(a=–1,b=1.462)332新区间为[-0.077,1.462]55第三次迭代

(a=-0.077,b=1.462)新区间为新区间为第四次迭代(a=-0.077,b=0.846)56第五次迭代(a=0.231,b=0.846)取最优解57Fibonacci方法评价Fibonacci方法的优点(1)如果缩小的区间包含原来的试点,则该试点在下一步被利用(2)效率最高,有限个试点的情况下,将最优点所在的区间缩小到最小.Fibonacci方法的缺点(1)搜索前先要计算搜索的步数(2)每次搜索试点计算的公式不一致58黄金分割法我们希望保留Fibonacci方法的优点(效率最高是不可能保留的),改进其缺点.若第一次选取的试点为x1<x2,则下一步保留的区间为[a,x2]或[x1,b],两者的机会是均等的.因此我们选取试点时希望x2-a=b-x1.abx1x2设x1=a+p(b-a),则x2=a+(1-p)(b-a).59黄金分割法另外,我们希望如果缩小的区间包含原来的试点,则该试点在下一步被利用.若保留的区间为[a,x2],前一次的试点x1在这个区间内.abx1x2abx260黄金分割法abx1x2a’b’x2’我们希望原来的x1,在缩小的区间内成为新的“x2”.我们根据这一条件来计算p.计算x2的公式为x2=a+(1–p)(b–a).因此我们希望a+p(b–a)=a+(1–p)(a+(1–p)(b–a)–a)x’2=a’

+(1–p)(b’

–a’).即p2-3p+1=0化简得61黄金分割法若保留区间为[x1,b],我们得到的结果是一致的.该方法称为黄金分割法,实际计算取近似值:x1=a+0.382(b–a),x2=a+0.618(b–a),所以黄金分割法又称为0.618法.黄金分割法每次缩小区间的比例是一致的,每次将区间长度缩小到原来的0.618倍.62算法1.4.2黄金分割法给定a,b(a<b)以及e>0,step1令x2=a+0.618(b-a),f2=f(x2);step2令x1=a+0.382(b-a),f1=f(x1);step3若|b–a|<e,则x*=(a+b)/2,Stop.step4若f1<f2,则b=x2,x2=x1,f2=f1,转step2;

若f1=f2,则a=x1,b=x2,转step1;

若f1>f2,则a=x2,x1=x2,f1=f2,转step5;step5令x2=a+0.618(b–a),f2=f(x2),转step3.63用0.618法求解例1.4.1的数据表迭代次数[a,b]x1x2f1f2|b-a|<e0[-1,3]0.5281.4721.7512.695否1[-1,1.472]-0.0560.5282.0591.751否2[-0.056,1.472]0.5280.8881.7511.901否3[-0.056,0.888]0.3050.5281.7881.751否4[0.305,0.888]0.5280.6651.7511.777否5[0.305,0.665]0.4430.5281.7531.751否6[0.443,0.665]0.5280.5801.7511.757是

最优解x*=(0.443+0.665)/2=0.554640.618法和Fibonacci之间的关系0.618法为Fibonacci法的极限形式.650.618法和Fibonacci之间的关系迭代步数的比较0.618法:Fibonacci方法:忽略得到黄金分割法至多比Fibonacci法多一步66进退法(寻找下单峰区间)在一维搜索之前,必须先知道一个f(x)的下单峰区间.书中的算法1.4.3给出了求函数的一般的下单峰区间的算法.此处我们对算法1.4.3加以改进,求出f(x)的一个形如[0,b]形式的下单峰区间因为我们关心的问题是:我们的目的是找出两个点x1<x2,使得f(x1)≤f(x2),f(x1)≤f(0).67进退法(寻找下单峰区间)给定初始点x0=0,初始步长Dx>0,x1=x0+Dx.x0下面分两种情况讨论.(1)f(x1)≤f(x0)x1对应着图上用红线标出的一部分68进退法(寻找下单峰区间)x0(1)f(x1)≤f(x0)此时x1取值小,我们加大步长向右搜索,取Dx=2Dx,x2=x1+Dx若f(x1)≤f(x2),则我们要找的区间即为[x0,x2]x1x2Dx2Dx69进退法(寻找下单峰区间)x0(1)f(x1)≤f(x0)若f(x1)>f(x2),则我们所取的步长偏小.令x1=x2,Dx=2Dx,x2=x1+Dx继续往下判断,直到满足f(x1)≤f(x2).x1x2Dx2Dxx1x270进退法(寻找下单峰区间)x0(2)f(x1)>f(x0)此时x1取值大,我们缩小步长向x1左边搜索,取Dx=Dx/2,x2=x1,

x1=x2-Dx若f(x1)≤f(x0),则我们要找的区间即为[x0,x2]否则继续缩小区间,直到满足f(x1)≤f(x0).x1x2x1711.4.2二分法若f(x)的导数存在且容易计算,则线性搜索的速多可以得到提高,下面的二分法每次将区间缩小至原来的二分之一.设f(x)为下单峰函数,若f(x)在[a,b]具有连续的一阶导数,且f’(a)<0,f’(b)>0取c=(a+b)/2,若f’(c)=0,则c为极小点;若f’(c)>0,则以[a,c]代替[a,b]作为新区间;若f’(c)<0,则以[b,c]代替[a,b]作为新区间.721.4.3抛物线法在求一元函数的极小点问题上,我们可以利用若干点处的函数值来构造一个多项式,用这个多项式的极小点作为原来函数极小点的近似值.抛物线法就是一个用二次函数来逼近f(x)的方法,这也是我们常说的二次插值法.设在已知的三点x1<x0<x2处对应的函数值f(xi)=fi,且满足:f1>f0,f0<f2过三点(x1,f1),(x0,f0),(x2,f2)作二次函数y=j(x),即作一条抛物线,则可推导出:73为求j(x)的极小点,令j’(x)=0,得:74若充分接近,即对于预先给定的精度,有,则把作为近似极小点.否则计算,找出和之间的大者,去掉或,使新的三点仍具有两端点的函数值大于中间点的函数值的性质.利用新的点再构造二次函数,继续进行迭代.751.4.4不精确的一维搜索前面介绍的得几种一维搜索方法,都是为了获得一元函数f(x)的最优解,所以习惯上称为精确一维搜索.在解非线性规划问题中,一维搜索一般很难得到真正的精确值.因此,不精确的一维搜索开始为人们所重视.即在xk点确定了下降方向pk后,只计算少量的几个函数就可得到一个满足f(xk+1)<f(xk)的近似点xk+1.76不精确的一维搜索对于不精确的一维搜索,要求产生的点列具有某种收敛性.所以除了对下降方向pk有要求之外,对步长ak也有要求,即要求目标函数要“充分的下降”.下面令f(a)=f(xk+apk),我们讨论ak满足的条件.77不精确一维搜索对于一元函数f(a),精确一维搜索的条件为f’(ak)=0.不精确一维搜索的条件f’(ak)≈0,或|f’(ak)|≤s.实际计算中上式不好控制,一般的方法是|f’(ak)/f’(0)|≤s.s的选取:不宜太大——否则下降不够充分;不宜太小——否则“太精确”.适合的范围:比1稍小一些.78不精确一维搜索例:函数f(a)=(a-1)2.f’(a)=2(a-1),f’(0)=-2.取s=0.5,则控制条件为|f’(ak)|≤s|f’(0)|=1,即|2(ak-1)|≤1,1/2≤ak≤3/2.79不精确一维搜索上述条件是不够的,甚至不能保证f(ak)<f(0).例如:对于一分段函数

a≤3/2时,f(a)=(a-1)2;

a>3/2时,f(a)=a-5/4.易见f(a)是一个连续可导函数,且a>3/2时导数为1.|f’(ak)|≤s|f’(0)|=1确定的范围是1/2≤ak,不能保证函数值下降.80不精确一维搜索为此,我们在直线y=0以及函数f(a)在a=0处的切线之间画一条直线,将搜索范围首先限制在这条直线下方.81不精确一维搜索上述直线的方程为y-f(0)=mf’(0)a.因此搜索的条件为f(ak)-f(0)≤mf’(0)ak

.作业:对f(a)=f(xk+apk),证明82不精确一维搜索|f’(ak)/f’(0)|≤sf(ak)-f(0)≤mf’(0)a83不精确一维搜索的Wolfe原则设f(x)可微,取m∈(0,1/2),s∈(m,1),选取ak>0,使或用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论