当前位置:文档之家› 非线性规划理论和算法

非线性规划理论和算法

非线性最优化理论与算法第一章引论本章首先给出了一些常见的最优化问题和非线性最优化问题解的定义,并且根据不同的条件对其进行了划分。

接着给出了求解非线性优化问题的方法,如图解法等,同时又指出一个好的数值方法应对一些指标有好的特性,如收敛速度与二次终止性、稳定性等。

随后给出了在非线性最优化问题的理论分析中常用到的凸集和凸函数的定义和有关性质。

最后给出了无约束优化最优性条件。

第二章线搜索方法与信赖域方法无约束优化的算法有两类,分别是线搜索方法和信赖域方法。

本章首先给出了两种线搜索方法即精确线搜索方法和非精确线搜索方法。

线搜索方法最重要的两个要素是确定搜索方向和计算搜索步长,搜索步长可确保下降方法的收敛性,而搜索方向决定方法的收敛速度。

精确线搜索方法和非精确线搜索方法对于精确线搜索方法,步长ακ满足αk=arg minƒx k+αd kα≥0这一线搜索可以理解为αk是f(x k+αd k)在正整数局部极小点,则不论怎样理解精确线搜索,它都满足正交性条件:d k T∇ƒ(x k+αk d k)=0但是精确搜索方法一般需要花费很大的工作量,特别是当迭代点远离问题的解时,精确的求解问题通常不是有效的。

而且有些最优化方法,其收敛速度并不依赖于精确搜索过程。

对于非精确搜索方法,它总体希望收敛快,每一步不要求达到精确最小,速度快,虽然步数增加,则整个收敛达到快速。

书中给出了三种常用的非精确线搜索步长规则,分别是Armijo步长规则、Goldstein步长规则、Wolfe步长规则。

第一个步长规则的不等式要求目标函数有一个满意的下降量,第二个不等式控制步长不能太小,这一步长规则的第二式可能会将最优步长排除在步长的候选范围之外,也就是步长因子的极小值可能被排除在可接受域之外。

但Wolfe步长规则在可接受的步长范围内包含了最优步长。

在实际计算时,前两种步长规则可以用进退试探法求得,而最后一种步长规则需要借助多项式插值等方法求得。

紧接着,又介绍了Armijo和Wolfe步长规则下的下降算法的收敛性。

信赖域方法线性搜索方法都是先方向再步长,即先确定一个搜索方向d k,然后再沿着这个搜索方向d k选择适当的步长因子αk,新的迭代点定义为x k+1=x k+αk d k。

与线搜索方法不同,信赖域方法是先步长再方向,此方法首先在当前点附近定义目标函数的一个近似二次模型,然后利用目标函数在当前点的某邻域内与该二次模型的充分近似,取二次模型在该邻域内的最优值点来产生下一迭代点。

它把最优化问题转化为一系列相对简单的局部寻优问题。

信赖域方法的思想为:设当前点x k的邻域定义为Ωk=dϵR n d−d k≤∆k其中,∆k称为信赖域半径。

目标函数在极值点附近近似一个二次函数,因此对于无约束优化问题,利用二次逼近,构造如下信赖域模型。

一般的,信赖域模型的目标函数取为m k d=ƒk +g k T d+12d T B k d其中,B k∈R n×n对称,是ƒ在d k处Hesse阵∇2ƒk或者其近似。

这个问题就是信赖域方法模型的子问题。

设d k是信赖域子问题的解,我们称目标函数ƒ在第k步的实下降量Ared k=ƒx k-ƒx k+d k函数的预下降量Pred k=m k0-m k d k定义比值r k=Ared kPred k它衡量了二次模型与目标函数的逼近程度。

一般的,Pred k>0。

若r k<0,x k+d k不能作为下一迭代点,需要缩小信赖域半径,重新计算d k;若r k>0且靠近1,说明二次模型与目标函数在信赖域内有很好的近似,在下一迭代时可以扩大信赖域半径;对其他情况信赖域半径不变。

随后又给出了信赖域算法,只是由于信赖域模型利用负梯度方向为搜索方向,算法的效率很低,然后就给出了建立信赖域方法超线性收敛性的子问题的三种求解方法,分别是折线法、二维子空间方法和精确解方法。

信赖域方法和线性搜索方法是求解非线性优化问题的两类主要的数值方法。

与线性搜索方法相比,信赖域方法思想新颖,具有可靠性、有效性和很强的收敛性。

第三章最速下降法与牛顿方法本章主要介绍最速下降法和牛顿方法,最速下降法又称为梯度法,是根据目标函数的线性近似得到的,但是它的收敛速度并不快。

相比之下,牛顿方法具有快的收敛速度,它是根据目标函数的二次近似得到的,是没有步长搜索的算法。

最速下降法最速下降法从目标函数的负梯度方向一直前进,直到达到目标函数的最低点。

书中首先给出了最速下降法的算法和算法的性质,然后讨论了最速下降法的收敛速度。

最速下降方法的迭代公式是:x k+1=x k+αk d k其中d k=-g k为最速下降方向,ƒx k+αk d k=minα≥0f(x k+αd k)为最优步长。

在最速下降法中,两个相邻的搜索方向是正交的,即d k,d k+1=0最速下降法具有锯齿现象,即在极小点附近,目标函数可以用二次函数近似,其等值面近似于椭圆面,长轴和短轴分别位于对应最小特征值和最大特征值的特征向量的方向。

其大小与特征值的平方根成反比。

最速下降法有一定的优点,如计算量小,存储量小,对初始点没有特殊要求,有着很好的全局收敛性。

但是最速下降法是线性收敛的,当接近最优解时,收敛速度很慢,原因是d k=-g k仅反映ƒx在x k处的局部性质,以及相继两次迭代中搜索方向是正交的。

牛顿方法牛顿方法是用目标函数的二阶展开式来近似的,并用其最小值点来产生下一迭代点得到的。

设函数ƒ二阶连续可微。

ƒx k+s在x k点的二阶近似展开式为m k s≜ƒk +s T g k+12s T G k s若G k正定,则m k s是凸函数。

利用一阶最优性条件G k s=-g k可得二次函数m k s的最小值点s k=-G k−1g k根据目标函数在当前点附近与二次函数的近似,将x k−G k−1g k作为下一迭代点就得到牛顿算法,其中-G k−1g k称为牛顿方向。

牛顿算法最终得到的是目标函数的稳定点。

对于严格凸二次函数,牛顿算法一步就可以得到目标函数的全局最优值点,而对一般的非二次函数,该算法也可以很快地搜索到最优值点。

它是借助目标函数在当前点的二阶Taylor展开式的最小值点逐步逼近目标函数的最小值点,它有很快的收敛速度。

牛顿算法虽然有很快的收敛速度,但是它严重依赖于初始点的选择,而且在每次迭代过程中需要计算目标函数的梯度和Hesse矩阵,这就导致算法效率降低。

第四章共轭梯度法共轭梯度法是介于最速下降法和牛顿方法之间的一种无约束优化算法,它具有超线性收敛速度。

它跟最速下降法相类似,共轭梯度法只用到了目标函数及其梯度值,避免了Hesse矩阵的计算。

因此,它是求解无约束优化问题的一种比较有效而实用的算法。

本章首先讲述了线性共轭方向法,接着给出了线性共轭梯度法和非线性共轭梯度法,最后讲述了共轭梯度法的收敛性。

线性共轭方向法共轭方向法的基本思想是在求解n维正定二次目标函数极小点时产生一组共轭方向作为搜索方向。

在精确线搜索条件下算法最多迭代n步,即能求得极小点。

书中首先给出了线性共轭方向法。

对于二次规划问题min x∈R n ƒx=12x T A x−b T x关于系数矩阵A构造共轭方向,再沿之进行线搜索,这样便得到线性共轭方向法。

接着书中给出了共轭方向的定义和具体的线性共轭方向法及算法的收敛定理。

对于凸二次函数,无论共轭方向法从哪点出发,至多n 次迭代后都终止于目标函数的最优值点。

这个算法具有二次终止性,但是它仅是一个概念性算法,实现它的关键在于如何选取共轭方向,不同的选取会产生不同的共轭方向法。

而且该性质与搜索方向的次序无关。

对于线性共轭方向法,若系数矩阵A 为正的对角阵,则该方法相当于依次沿n 个正坐标轴方向进行精确线搜索。

这种算法克服了最速下降法的慢收敛性,又避免了牛顿法的计算量大和局部收敛性的缺点。

算法简单,易于编程,需存储空间小等优点,是求解大规模问题的主要方法。

线性共轭梯度法在线性共轭方向法中,取d 0=−g 0便得到线性共轭梯度法。

对于严格凸二次函数,仅利用d k −1,而无需利用前k -1个搜索方向d 0,d 1,…,d k −2就可得到与前k 个搜索方向d 0,d 1,…,d k −1共轭的搜索方向d k 。

首先给出了共轭梯度法的迭代公式为x k+1=x k +αk d k , d k =-g k +βk −1d k −1其中,d −1=0,βk −1由βk −1=g k T g kg k −1T g k −1来决定。

对于凸二次函数,最优步长αk =-g k T d kd k T Ad k 接着给出了完整的线性共轭梯度法和共轭梯度法的性质定理,通过它的性质,我们可以得到最优步长的计算公式可简化为αk =g k T g kd k T Ad k ,利用g k+1−g k =αk Ad k 和g k+1T d i =0和d j T Ad k =0式,参数βk 的计算公式可化简βk =g k+1T g k+1g g T g k由共轭梯度法的迭代公式,容易发现其迭代过程仅比最速下降法稍微复杂一点,但却具有二次终止性。

由于该方法源于线性方程组求解,而且d 0取负梯度方向,故它被称为线性共轭梯度法。

对严格的凸二次函数,牛顿算法具有一步终止性,共轭梯度法具有n 步终止性。

对凸二次函数ƒ x =x T A x −b T x 。

共轭梯度法至多n 步终止。

实际上,若矩阵A 有r 个相异特征值,则它至多r 步迭代后终止。

并且还有设x ∗是凸二次函数ƒ x =12x T A x −b T x 的最优值点,则g 0=A x 0−b =A x 0−x ∗则x k+1−x ∗=x 0−x ∗+P k A g 0= I +P k A A x 0−x ∗最后通过一系列的分析证明,我们可知线性共轭梯度法的效率与矩阵A 的条件数密切相关。

为降低矩阵A 的条件数,如果引入线性变换y =T x (其中T 为一非奇异矩阵),则原凸二次规划问题转化为min 12y T T −T AT −1 y − T −T b Ty 通过以上的分析我们不难发现,对于大规模线性方程组问题,线性共轭梯度法往往成为首选,不过,对于小规模的线性方程组问题,Gauss 消元法更简便。

非线性共轭梯度法线性共轭梯度法在求凸二次函数的最小值点时有良好的性质,将其应用于无约束非线性最优化问题就得到非线性共轭梯度法。

对于共轭梯度法的搜索方向d k =−g k +βk −1d k −1,参数βk −1有多种表达形式。

下面为常见的几种:βk −1=g k T g k −g k −1 d k −1T g k −g k −1 (CW 公式) βk −1=g k T g kg k −1Tg k −1 (FR 公式) βk −1=g k T g k −g k −1g k −1T g k −1(PR 公式) βk −1=−g k T g k d k −1Tg k −1 (Dixon 公式) βk −1=g k T g k d k −1T g k −g k −1(DY 公式) 在最优步长规则下,对凸二次函数,这些表达式是等价的。

相关主题