《最优化方法及控制应用2》由会员分享,可在线阅读,更多相关《最优化方法及控制应用2(197页珍藏版)》请在金锄头文库上搜索。
1、常用无约束最优化方法3.1 最速下降法3.2 Newton法3.3 修正Newton法3.4 共轭方向法3.5 共轭梯度法3.6 变尺度法3.7 坐标轮换法3.8 单纯形法常用无约束最优化方法本章开始讨论多维无约束最优化问题本章开始讨论多维无约束最优化问题其中其中 这个问题的求解是指在这个问题的求解是指在 中找一点中找一点 ,使得对于,使得对于任意的任意的 都有都有 成立,则点成立,则点 就是问题(就是问题(3.13.1)的全局最优点)的全局最优点但是,大多数最优化方法只能求到局部最优点,即在但是,大多数最优化方法只能求到局部最优点,即在 中找到中找到一点一点 ,使得式(,使得式(3.23.2
2、)在)在 的某个领域中成立的某个领域中成立这个矛盾对于实际问题一般容易解决根据问题的实际意义多这个矛盾对于实际问题一般容易解决根据问题的实际意义多半可以判定用优化方法求出的局部最优解是否为全局最优解半可以判定用优化方法求出的局部最优解是否为全局最优解而在理论上这是个比较复杂的问题。而在理论上这是个比较复杂的问题。无约束优化方法是优化技术中极为重要和基本的内容之一它不仅可以直接用来求解无约束优化问题,而且很多约束优化问题也常将其转化为无约束优化问题,然后用无约束优化方法来求解另外,有些无约束优化方法只需略加处理,即可用于求解约束优化问题 常用无约束最优化方法常用无约束最优化方法 无约束优化理论发
3、展较早,比较成熟,方法也很多,新的方法还在陆续出现把这些方法归纳起来可以分成两大类:一类是仅用计算函数值所得到的信息来确定搜索方向,通常称它为直接搜索法,简称为直接法,另一类需要计算函数的一阶或二阶导数值所得到的信息来确定搜索方向,这一类方法称为间接法(解析法) 直接法不涉及导数、Hesse矩阵,适应性强,但收敛速度较慢;间接法收敛速度快,但需计算梯度,甚至需要计算Hesse矩阵 一般的经验是,在可能求得目标函数导数的情况下还是尽可能使用间接方法;相反,在不可能求得目标函数的导数或根本不存在导数的情况下,当然就应该使用直接法 常用无约束最优化方法常用无约束最优化方法 对于问题(对于问题(3.1
4、)为了求其最优解,按最优化算法的基)为了求其最优解,按最优化算法的基本思想是从一个给定的初始点本思想是从一个给定的初始点 出发,通过基本迭代出发,通过基本迭代格式格式 ,按照特定的算法,按照特定的算法 产生一串点列产生一串点列 ,如果点列收敛,则该点列的极限点为问题(,如果点列收敛,则该点列的极限点为问题(3.1)的)的最优解最优解 最速下降法一、最速下降法基本原理一、最速下降法基本原理一、最速下降法基本原理一、最速下降法基本原理 在基本迭代格式在基本迭代格式 中,每次迭代搜索方向中,每次迭代搜索方向 取为目标函数取为目标函数 的负梯度方向,即的负梯度方向,即 ,而,而每次迭代的步长每次迭代的
5、步长 取为最优步长,由此所确定的算法取为最优步长,由此所确定的算法 称为最速下降法。称为最速下降法。 最速下降法为了求解问题(3.1),如图所示,假定我们 已经迭代了 次 获得了第 个迭代点 现在从 出发,可选择的下降方向很多,一个非常自然的想法是沿最速下降方向(即负梯度方向)进行搜索应该是有利的,至少在 邻近的范围内是这样。因此,取搜索方向为 . 最速下降法最速下降法为了使目标函数在搜索方向上获得最多的下降,沿为了使目标函数在搜索方向上获得最多的下降,沿 进行一维搜索,由此得到第进行一维搜索,由此得到第 个迭代点个迭代点 ,即,即 ,其中步长因子,其中步长因子 按下式确定按下式确定 也可记为
6、也可记为显然显然,令令 就可以得到一个点列就可以得到一个点列 ,其中其中 是初始点是初始点,由计算者任意选定由计算者任意选定.当当 满足一定的满足一定的条件时条件时,由式由式(5.3)所产生的点列所产生的点列 必收敛于的极小点必收敛于的极小点以后为书写方便以后为书写方便,记记 . 因此因此在不发生混淆时,再记在不发生混淆时,再记 最速下降法最速下降法二、最速下降法迭代步骤二、最速下降法迭代步骤二、最速下降法迭代步骤二、最速下降法迭代步骤 已知目标函数已知目标函数 及其梯度及其梯度 ,终止,终止 (1)选定初始点)选定初始点 ,计算计算 置置 (2)作直线搜索:)作直线搜索: ;计算;计算 (3
7、)用终止准则检测是否满足:若满足,则打印最优)用终止准则检测是否满足:若满足,则打印最优 解解 停机;否则,置停机;否则,置 转转(2) 最速下降法最速下降法最速下降法算法流程如图所示开始结束选定X0YX , fH准则满足N 将最速下降法应用于正定二次函数将最速下降法应用于正定二次函数 可以推出显式迭代公式可以推出显式迭代公式. 设第设第 次迭代点为次迭代点为 我们来我们来求求 的表达式的表达式 对式(对式(5.4)关于)关于 求梯度,有求梯度,有 因此,因此, 现在从现在从 出发沿出发沿 作直线搜索以确定作直线搜索以确定 ,于是,于是, 其中其中 是最优步长因子是最优步长因子 最速下降法最速
8、下降法 又因式又因式(4.2),有有 再利用再利用(5.5),(5.6),(5.7)可得:可得: 或或 由此解出:由此解出: 代入(代入(5.7)中得到)中得到 这就是最速下降法用于二次函数的显式迭代公式这就是最速下降法用于二次函数的显式迭代公式最速下降法最速下降法最速下降法最速下降法例例例例5.1 5.1 5.1 5.1 试用最速下降法求函数 的极小点.迭代两次,计算各迭代点的函数值,梯度及其模,并验证相邻两个搜索方向是正交的设初始点为 解解解解: : : : 与(5.4)比较,得 梯度表达式是 由 ,计算因为目标函数是二次的,可以使用式(5.8),所以有最速下降法最速下降法 因为 由此说明
9、相邻两个搜索方向 是正交的 计算最速下降法最速下降法 三、最速下降法有关说明 最速下降法的优点是算法简单,每次迭代计算量小,占用内存量小,即使从一个不好的初始点出发,往往也能收敛到局部极小点.但它有一个严重缺点就是收敛速度 沿负梯度方向函数值下降很快的廉洁,容易使人们产生一种错觉,认为这一定是最理想的搜索方向,沿该方向搜索时收敛速度应该很快,然而事实证明,梯度法的收敛速度并不快最速下降法最速下降法 特别是对于等值线(面)具有狭长深谷形状的函数,收敛速度更慢其原因是由于每次迭代后下一次搜索方向总是与前一次搜索方向相互垂直,如此继续下去就产生所谓的锯齿现象即从直观上看,在远离极小点的地方每次迭代可
10、能使目标函数有较大的下降,但是在接近极小点的地方,由于锯齿现象,从而导致每次迭代行进距离缩短,因而收敛速度不快.最速下降法最速下降法Newton法 如果目标函数如果目标函数 在在 上具有连续的二阶偏导数,上具有连续的二阶偏导数,其其Hesse矩阵矩阵 正定并且可以表达成为显式(今后为正定并且可以表达成为显式(今后为了简便起见,记了简便起见,记 ,那么可以使用下述的,那么可以使用下述的Newton法这种方法一旦好用,收敛速度是很快的法这种方法一旦好用,收敛速度是很快的它是一维搜索它是一维搜索Newton切线法的推广切线法的推广一、Newton法基本原理为寻求收敛速度快的算法,我们考虑在应用基本迭
11、代公 式 中,每轮迭代在迭代的起始点 处用 一个适当的二次函数来近似该点处的目标函数,由此 用点 指向近似二次函数极小点的方向来构造搜索方向 (如图所示)NewtonNewton法法下面具体讨论下面具体讨论Newton法法 设最优化问题为设最优化问题为 ,其中,其中 二阶可导,二阶可导,Hesse矩阵矩阵 正定不妨设经过正定不妨设经过 次迭代已获点次迭代已获点 ,现将,现将 在在 处展开成二阶泰勒公式,于是有处展开成二阶泰勒公式,于是有显然显然 是二次函数,特别由题设知是二次函数,特别由题设知 还是正定二次还是正定二次函数,所以函数,所以 是凸函数且存在唯一全局极小点是凸函数且存在唯一全局极小
12、点NewtonNewton法法为求此极小点,令即可解得亦即对照基本迭代格式易知,式(5.9)中的搜索方向 步长因子 NewtonNewton法法换句话说从点换句话说从点 出发沿搜索方向出发沿搜索方向 并取步长并取步长 即可得即可得 的极小点的极小点 .因此因此 是直指点是直指点 处近似二处近似二次函数次函数 的极小点的方向此时称的极小点的方向此时称 为从点为从点 出出发的发的Newton方向方向从初始点开始,每一轮从当前迭代点出发,沿从初始点开始,每一轮从当前迭代点出发,沿Newton方向并取步长方向并取步长 的算法称为的算法称为Newton法法NewtonNewton法法二、二、二、二、Ne
13、wtonNewton法迭代步骤法迭代步骤法迭代步骤法迭代步骤已知目标函数已知目标函数 及其梯度及其梯度 Hesse矩阵矩阵 ,终止限终止限 (1)选定初始点选定初始点 计算计算 置置 (2)计算计算 (3)由方程由方程 解出解出 (4)计算计算(5)判别终止准则是否满足:若满足,则打印最优解判别终止准则是否满足:若满足,则打印最优解 停机;否则置停机;否则置 转转(2).NewtonNewton法法开始结束选定X0N求解方程H准则满足X , fNewton法的流程如图所示Y例例例例5.2 5.2 5.2 5.2 试用试用Newton法求法求 的极小点的极小点,初始初始点取为点取为 解解解解:
14、: : : 梯度为梯度为 Hesse矩阵为矩阵为 其逆矩阵为其逆矩阵为 由迭代公式(由迭代公式(5.13)得第)得第1 迭代点为迭代点为由于此时由于此时 ,停止迭代得,停止迭代得因此,它就是极小点因此,它就是极小点 NewtonNewton法法 从上述例从上述例5.2我们看到,用我们看到,用Newton法求解,只经一法求解,只经一轮迭代就得到最优解轮迭代就得到最优解这一结果并不是偶然的,因为从这一结果并不是偶然的,因为从Newton方向的构方向的构造我们知道,对于正定二次函数,造我们知道,对于正定二次函数,Newon方向就是方向就是指向其极小点的方向指向其极小点的方向因此,用因此,用Newto
15、n法解目标函数为正定二次函数的法解目标函数为正定二次函数的无约束最优化问题,只需一次迭代就可得最优解无约束最优化问题,只需一次迭代就可得最优解NewtonNewton法法对于目标函数是非二次函数的非约束最优化问题,一对于目标函数是非二次函数的非约束最优化问题,一般地说,用般地说,用Newton法通过有限轮迭代并不能保证可求法通过有限轮迭代并不能保证可求得最优解但由于目标函数在最优解附近能近似于二得最优解但由于目标函数在最优解附近能近似于二次函数,因此当先取接近于最优解的初始点使用次函数,因此当先取接近于最优解的初始点使用Newton法求解时,其收敛速度一般是快的法求解时,其收敛速度一般是快的事
16、实上,可以证明在初始点离最优解不远的条件下,事实上,可以证明在初始点离最优解不远的条件下,Newton法是二次收敛的但是当初始点选得离最优解法是二次收敛的但是当初始点选得离最优解太远时,太远时,Newton法并不一定是收敛的方法,甚至连其法并不一定是收敛的方法,甚至连其下降性也很难保证下降性也很难保证NewtonNewton法法 三、三、三、三、NewtonNewton法有关说明法有关说明法有关说明法有关说明 Newton法收敛速度非常快具有二次收敛的优点,但法收敛速度非常快具有二次收敛的优点,但它存在下面四个严重的缺点:它存在下面四个严重的缺点:(1)尽管每次迭代不会使目标函数)尽管每次迭代
17、不会使目标函数 上升,但仍上升,但仍不能保证不能保证 下降当下降当Hesse矩阵非正定时,矩阵非正定时,Newton法的搜索将会失败法的搜索将会失败(2)对初始点要求严格一般要求比较接近或有利于)对初始点要求严格一般要求比较接近或有利于接近极值点,而这在实际计算中是比较难办的接近极值点,而这在实际计算中是比较难办的NewtonNewton法法(3)在进行某次迭代时可能求不出搜索方向由于搜)在进行某次迭代时可能求不出搜索方向由于搜索方向为索方向为若目标函数在若目标函数在 点点Hesse矩阵为奇异,则求不出矩阵为奇异,则求不出 ,因而不有构成牛顿方向,从而使迭代无法进行,因而不有构成牛顿方向,从而
18、使迭代无法进行(4)牛顿方向构造困难,计算相当复杂,除了求梯度)牛顿方向构造困难,计算相当复杂,除了求梯度以外还需计算以外还需计算Hesse矩阵及其逆矩阵,占用机器内存矩阵及其逆矩阵,占用机器内存相当大相当大NewtonNewton法法修正Newton法 一、修正一、修正一、修正一、修正NewtonNewton法基本原理法基本原理法基本原理法基本原理 为了克服为了克服Newton法的缺点,人们保留选法的缺点,人们保留选Newton方向作为搜索方向,摒弃其步长恒取方向作为搜索方向,摒弃其步长恒取1,而用一维,而用一维搜索确定最优步长,由此产生的算法称为修正搜索确定最优步长,由此产生的算法称为修正
19、Newton法(或阻力法(或阻力Newton法)法)修正Newton法 二、修正Newton法迭代步骤已知目标函数 及其梯度 Hesse矩阵 终止限 (1)选取初始点 令(2)求梯度向量计算 ,若 ,停 止迭代输出 否则,转(3)(3)构造Newton方向计算 , 取(4)进行一维搜索求 ,使得 令 ,转(2) 修正Newton法的流程如图所示k=0计算 求 使 计算开始结束选定YN三、修正Newton法有关说明 修正Newton法克服了Newton法的缺点特别是,当 迭代点接近于最优解时,此法具有收敛速度快的优点, 对初始点的选择要求不严 但是,修正Newton法仍需要计算目标函数的Hess
20、e矩 阵和逆矩阵,所以求解的计算量和存贮量均很大.另外, 当目标函数的Hesse矩阵在某点处出现奇异时,迭代将 无法进行,因此修正Newton法仍有相当的局限性修正修正NewtonNewton法法共轭方向法构成各种不同最优化方法,往往取决于如何从基本迭代构成各种不同最优化方法,往往取决于如何从基本迭代公式公式 中确定搜索方向中确定搜索方向在最速下降法中,由于取在最速下降法中,由于取 从而导致搜索路线从而导致搜索路线出现锯齿状,收敛速度降低;出现锯齿状,收敛速度降低;而在而在Newton法中,由于选取法中,由于选取 收敛速度收敛速度虽很快,但计算量很大,特别是还要求虽很快,但计算量很大,特别是还
21、要求Hesse矩阵正定,矩阵正定,从而导致该算法对初始点选择要求过严从而导致该算法对初始点选择要求过严下面我们将给大家介绍一种新的最优化方法,它的计算下面我们将给大家介绍一种新的最优化方法,它的计算量小,收敛速度没有量小,收敛速度没有Newton法快,但比最速下降法快法快,但比最速下降法快得多的新算法,称为共轭方向法得多的新算法,称为共轭方向法 一、共轭方向法基本原理 首先介绍共轭方向概念及其些性质 定义定义5.1 设 是对称矩阵,对于非零向量 若有 则称 与 相互 共轭或 正交的 对于非零向量组 若有 则称 是 共轭方向组或 正交方向组,也称 它们是一组 的共轭方向共轭方向法共轭方向法 在上
22、述定义中若 ( 阶单位矩阵),则式(5.10)和式(5.11)成为 和 由此可知,共轭概念是正交概念的推广,共轭方向是正交方向的推广定理定理5.1 设 是正定矩阵, 是非零向量若 是 一组 共轭方向,则它们是线性无关的3.4 3.4 共轭方向法共轭方向法3.4 3.4 共轭方向法共轭方向法证明 设有一组实数 使得 依次以 左乘上式得到 因为 是一组 的共轭方向,故有 又由于A是正定矩阵,所以对于 有 把以上两式用于式(5.12),便可推知 由此证明 是线性无关3.4 3.4 共轭方向法共轭方向法考虑以二次函数为目标函数的无约束极小化问题其中 是对称正定矩阵 有如下定理:定理定理5.2 设 是对
23、称正定矩阵, 是一 组A 的共轭方向.对于问题(5.13),若从任意点 出发依次沿 进行一维搜索,则至多经过n 轮迭代,可得问题(5.13)的最优解3.4 3.4 共轭方向法共轭方向法证明 设从点X0 出发依次按方向 进行一维搜索产生的迭代点是其中最优步长 是通过下式来确定又由 和式(5.14)可推知即利用式(5.16)有 对上式右乘 可得因为 是 A共轭方向,故得 或另外,由式(5.15)可知 3.4 3.4 共轭方向法共轭方向法因为所以由式(5.18)有由式(5.17)和上式,对于 我们得到特别地,当 时有 由于 是一组A的共轭方向,由定理5.1知它们是线性无关的,因而向量 可表示为这些向
24、量的线性组合 其中 是实数3.4 3.4 共轭方向法共轭方向法所以由式(5.19)有 即有 于是得即Xn是f(X) 的驻点又因为A是对称正定,故f(X)是凸函数,因而Xn是问题(5.13)的最优解这说明,至多经过n 次迭代必可求得 (5.13)的最优解.3.4 3.4 共轭方向法共轭方向法 通常,我们把从任意点 出发,依次沿某组共轭方向进行一维搜索的求解最优化问题的方法,叫做共轭方向法共轭方向法为了直观起见,首先考虑二维情况现在我们把下降法用于形式为(5.13)的二元二次函数任选初始点 从 出发沿某个下降方向 作一维搜索得到 (如图所示)3.4 3.4 共轭方向法共轭方向法由式(由式(4.2)
25、知)知 而且向量而且向量 所在的直线必与某条等值线(椭圆)相切所在的直线必与某条等值线(椭圆)相切于于 点下一次迭代,如果按最速下降法选择负梯度点下一次迭代,如果按最速下降法选择负梯度方向为搜索方向,那末将要发生锯齿现象方向为搜索方向,那末将要发生锯齿现象.为了克服这种现象,我们设想,下一次迭代的搜索方为了克服这种现象,我们设想,下一次迭代的搜索方向将直指极小点向将直指极小点 如果能够选定这样的搜索方向,如果能够选定这样的搜索方向,那么对于二元二次函数只须顺次进行两次直线搜索就那么对于二元二次函数只须顺次进行两次直线搜索就可以求到极小点了可以求到极小点了下面来讨论这样的方向下面来讨论这样的方向
26、 应该满足什么条件,怎样确应该满足什么条件,怎样确定定3.4 3.4 共轭方向法共轭方向法 因为因为 直接指极小点直接指极小点 所以可写成所以可写成 其中其中 是最优步长因子,是最优步长因子, 显然,当显然,当 时,时, 对(对(5.13)求导数,有)求导数,有 因为因为 是极小点,所以有是极小点,所以有 将式(将式(5.21)代入此式中,由()代入此式中,由(5.22)可得)可得等式两边同时左乘等式两边同时左乘 并注意到式并注意到式(5.20)和和 于是于是3.4 3.4 共轭方向法共轭方向法这就是为使这就是为使 直指极小点所必须满足的条件显然直指极小点所必须满足的条件显然(5.23)中)中
27、 和和 是是A的共轭向量由式(的共轭向量由式(5.20),),不难给出不难给出 的表达式的表达式两边同时左乘两边同时左乘 ,有,有由此解出由此解出代回到式代回到式 (5.24),得),得3.4 3.4 共轭方向法共轭方向法一般地,在一般地,在 维空间中可以找出维空间中可以找出 个互相共轭的方向,个互相共轭的方向,对于对于 元正定二次函数,从任意初始点出发,顺次沿元正定二次函数,从任意初始点出发,顺次沿这这 个共轭方向最多作个共轭方向最多作 次直线搜索就可以求得目标次直线搜索就可以求得目标函数的极小点这就是共轭方向法的算法形成的基本函数的极小点这就是共轭方向法的算法形成的基本思想思想3.4 3.
28、4 共轭方向法共轭方向法对于对于 元正定二次目标函数,从任意初始点出发,如元正定二次目标函数,从任意初始点出发,如果经过有限次迭代就能够求得极小点,那么这种算法果经过有限次迭代就能够求得极小点,那么这种算法称为具有二次终止性称为具有二次终止性例如例如Newton法对于二次函数只须经过一次迭代就可以法对于二次函数只须经过一次迭代就可以求得极小点,因此是二次终止的;而最速下降法不具求得极小点,因此是二次终止的;而最速下降法不具有二次终止性;共轭方向法(包括共轭梯度法,变尺有二次终止性;共轭方向法(包括共轭梯度法,变尺度法等)是二次终止的度法等)是二次终止的一般来说,具有二次终止性的算法,在用于一般
29、函数一般来说,具有二次终止性的算法,在用于一般函数时,收敛速度较快时,收敛速度较快3.4 3.4 共轭方向法共轭方向法二、共轭方向法迭代步骤 已知具有正定矩阵A 的二次目标函数 和终止限 (1)选定初始点X0 和具有下降的方向P0,置 k=0(2)作直线搜索 (3)判别 是否满足:若满足,则打印 停机;否则转(4)(4)提供共轭方向 使得(5) ,转(2).3.4 3.4 共轭方向法共轭方向法共轭方向法的流程如图所示 e+)(1kXf k=0 提供共轭方向1+kP使得 kjQPPkj, 1 ,0,01L=+T ),(1kkskPXlX=+ 开始 停 1+kX Y N k=k+1 选定e,00P
30、X 三、共轭方向法有关说明三、共轭方向法有关说明三、共轭方向法有关说明三、共轭方向法有关说明 上述算法针对二次目标函数,但也可用于一般的非二上述算法针对二次目标函数,但也可用于一般的非二次函数在求优过程中次函数在求优过程中 因舍入误差不能满足因舍入误差不能满足 时,可取时,可取 为新的初始点,再重复前为新的初始点,再重复前面的过程面的过程3.4 3.4 共轭方向法共轭方向法3.5 共轭梯度法如果在共轭方向法中初始的共轭向量如果在共轭方向法中初始的共轭向量 恰好取为初始点恰好取为初始点 处的负梯度处的负梯度 ,而以下各共轭方向,而以下各共轭方向 由第由第 迭代点迭代点 处的负梯度处的负梯度 与已
31、经得到的共轭向量与已经得到的共轭向量 的的线性组合来确定,那么就构成了一种具体的共轭方向法线性组合来确定,那么就构成了一种具体的共轭方向法.因为每一个共轭向量都是依赖于迭代点处的负梯度而构因为每一个共轭向量都是依赖于迭代点处的负梯度而构造出来的,所以称为共轭梯度法造出来的,所以称为共轭梯度法一、共轭梯度法基本原理一、共轭梯度法基本原理一、共轭梯度法基本原理一、共轭梯度法基本原理设从任意点设从任意点 出发,第一个搜索方向取为出发,第一个搜索方向取为 处的负梯度处的负梯度方向方向 当搜索得到点当搜索得到点 后,设以下按后,设以下按 来产生搜索方向来产生搜索方向为了使选择为了使选择 使所产生的使所产
32、生的 和和 是是A的共轭,以的共轭,以 右乘上式的两边,于是有右乘上式的两边,于是有 3.5 3.5 共轭梯度法共轭梯度法因为要使 和 是A 的共轭, 应有 故由上式得综上所述,我们可以生成n个方向3.5 3.5 共轭梯度法共轭梯度法式(5.25)中含有问题(5.13)的目标函数系数阵,这对于目标函数是非二次函数的问题是不方便的通过简化,一般地我们可以利用目标函数的梯度信息,来产生n 个共轭方向由此得共轭梯度法算法3.5 3.5 共轭梯度法共轭梯度法 二、共轭梯度法迭代步骤已知目标函数 ,终止限 (1)选取初始点 ,给定终止限 (2)求初始梯度计算 ,若 ,停止迭 代输出 , 否则转(3)(3
33、)构造初始搜索方向.取 ,令 ,转(4)(4)进行一维搜索求 使得 令 ,转(5) 3.5 3.5 共轭梯度法共轭梯度法(5)求梯度向量计算 ,若 ,停止 迭代输出 否则转(6).(6)检验迭代次数若 ,令 ,转(3), 否则,转(7)(7)构造共轭方向取 转(4)3.5 3.5 共轭梯度法共轭梯度法共轭梯度法的流程如图所示结束求tk使计算开始X0选定YN构造初始搜索方向取计算Xk+1YNYN例例例例5.3 5.3 5.3 5.3 用共轭梯度法求用共轭梯度法求 其中其中 选初始点选初始点 解解解解: : : : 显然显然3.5 3.5 共轭梯度法共轭梯度法所以新的搜索方向由此,有并且可推知因而
34、得下一迭代点由于 停止迭代输出所求得 3.5 3.5 共轭梯度法共轭梯度法例5.3的迭代的路径如图所示3.5 3.5 共轭梯度法共轭梯度法三、共轭梯度法有关说明三、共轭梯度法有关说明三、共轭梯度法有关说明三、共轭梯度法有关说明实际上实际上,可以把共轭梯度法看作是最速下降法的一种改可以把共轭梯度法看作是最速下降法的一种改进进.当令当令 时时,就变为最速下降法就变为最速下降法.共轭梯度法由于不涉及矩阵共轭梯度法由于不涉及矩阵,仅仅存储向量仅仅存储向量,因而存储量因而存储量小小,适合于维数较高的优化问题适合于维数较高的优化问题另外另外,共轭梯度法不要求精确的直线搜索共轭梯度法不要求精确的直线搜索.但
35、是但是,不精确的不精确的直线搜索可能导致迭代出来的向量不再共轭直线搜索可能导致迭代出来的向量不再共轭,从而降低从而降低方法的效能方法的效能.克服的办法是克服的办法是:重设初始点重设初始点,即把经过即把经过 次迭代得到的次迭代得到的 作为初始点重新迭代作为初始点重新迭代3.5 3.5 共轭梯度法共轭梯度法 我们知道我们知道Newton法最突出的优点是收敛速度快法最突出的优点是收敛速度快,在这一在这一点上其它算法无法比拟的点上其它算法无法比拟的.因此因此,建议凡是建议凡是Hesse矩阵比矩阵比较容易求出的问题尽可能使用较容易求出的问题尽可能使用Newton法求解法求解.然而然而Newton法还有一
36、个严重缺陷法还有一个严重缺陷,就是每次迭代都要计就是每次迭代都要计算目标函数的算目标函数的Hesse矩阵和它的逆矩阵矩阵和它的逆矩阵,当问题的维数当问题的维数n较大时较大时,计算量迅速增加计算量迅速增加,从而就抵消了从而就抵消了Newton法的优点法的优点3.6 3.6 变尺度法变尺度法3.6 变尺度法为此,人们开始寻找一种算法既可以保持为此,人们开始寻找一种算法既可以保持Newton法收法收敛速度快的优点,又可以摆脱关于敛速度快的优点,又可以摆脱关于Hesse矩阵的计算,矩阵的计算,这就是本节要给大家介绍的变尺度算法这就是本节要给大家介绍的变尺度算法 变尺度法是一种非常好的方法其中变尺度法是
37、一种非常好的方法其中DFP算法和算法和BFGS算法,可以说直到目前为止在不用算法,可以说直到目前为止在不用Hesse矩阵的方法中矩阵的方法中是最好的算法是最好的算法一、变尺度法基本原理 在Newton法中,由基本迭代格式 其中 令 于是有 其中 是初始点, 和 分别是目标函数 在 点 的梯度和Hesse矩阵 3.6 3.6 变尺度法变尺度法为了消除这个迭代公式中的Hesse逆矩阵 可用某种近似矩阵 来替换它,即构造一个矩阵序列 去逼近Hesse逆矩阵序列 此时式(5.26)变为事实上,式中 无非是确定了第 次迭代的搜索方向.为了取得更大的灵活性,我们考虑更一般的迭代公式 其中步长因子 通过从
38、出发沿 作直线搜 索来确定3.6 3.6 变尺度法变尺度法 式(5.27)是代表很广的一类迭代公式. 例如,当 (单位矩阵)时,它变为最速下降法的迭代 公式为使 确实与 近似并且有容易计算的特点, 必须对 附加某些条件: 第一,为保证迭代公式具有下降性质,要求 中的每 一个矩阵都是对称正定的理由是,为使搜索方向 是下降方向,只要 成立即可,即 成立 当 对称正定时,此式必然成立,从而保证式(5.27) 具有下降性质3.6 3.6 变尺度法变尺度法第二,要求第二,要求 之间的迭代具有简单形式显然,之间的迭代具有简单形式显然,是最简单的形式了其中是最简单的形式了其中 称为校正矩阵,式称为校正矩阵,
39、式(5.28)称为校正公式)称为校正公式 第三,第三, 必须满足拟必须满足拟Newton条件条件3.6 3.6 变尺度法变尺度法 所谓拟Newton 条件由下面的推导给出设迭代过程已进行到 步, 和 均已求出,现在推导 所必须满足的条件设目标函数 具有连续的二阶偏导数现在将 在 处展成二阶泰勒公式:令 ,于是有 即3.6 3.6 变尺度法变尺度法 当 正定时, 当用 近似 时,由此看出 也必须满足 换句话说,式(5.29)就是称为 近似Newton 条 件为了今后书写方便,记于是拟Newton条件可写为3.6 3.6 变尺度法变尺度法二、变尺度法迭代步骤(拟二、变尺度法迭代步骤(拟二、变尺度法
40、迭代步骤(拟二、变尺度法迭代步骤(拟NewtonNewton法)法)法)法)已知目标函数已知目标函数 及其梯度及其梯度 终止限终止限(1)选定初始点)选定初始点 ;计算;计算 ;选定初;选定初 始矩阵始矩阵 ,要求要求 对称正定(例如对称正定(例如 );置置 (2)计算搜索方向)计算搜索方向 (3)作直线搜索)作直线搜索 ,计算,计算 3.6 3.6 变尺度法变尺度法(4)判别终止准则是否满足:若满足,则 就是 所求的极小点,打印,停机;否则转(5)(5)计算 (6) , 转(2) 其中校正矩阵 可由确定的公式来计算不同 的公式对应不同的拟Newton算法 3.6 3.6 变尺度法变尺度法拟N
41、ewton算法的流程如图所示k=k+1H准则满足Xk+1开始结束选定X0, 对称正定阵H0,置k=0YN以下几段将要讨论各种公式的构成以及相应算法但以下几段将要讨论各种公式的构成以及相应算法但是不论哪个公式都必须满足拟是不论哪个公式都必须满足拟Newton条件条件.由式(由式(5.30)和式()和式(5.28)知,)知, 必须满足必须满足 或或 由此可见,由此可见, 与与 , 和和 有关有关满足式(满足式(5.31)的)的 有无穷多个,因此上述拟有无穷多个,因此上述拟Newton算法构成一族算法下面分别介绍两个常用算法构成一族算法下面分别介绍两个常用的公式的公式3.6 3.6 变尺度法变尺度法
42、(一)(一)DFP算法算法DFP算法首先是由Davidon(1959年)提出来的,后来,Fletcher和Powell(1963年)对Davidon的方法作了改进,最后才形成DFP算法D,F,P是这三位学者名字的字头这种算法是无约束最优化方法最有效的方法之一3.6 3.6 变尺度法变尺度法 1DFP算法基本原理算法基本原理 考虑如下形式的校正公式 其中 , 是待定 维向量, , 是待定常数 这时校正矩阵是 现在来确定 : 根据拟Newton条件, 必须满足(5.31),于是有 或 3.6 3.6 变尺度法变尺度法满足以上方程的待定向量满足以上方程的待定向量 和和 有无穷多种取法,下有无穷多种取
43、法,下面是其中的一种:面是其中的一种:注意到注意到 和和 都是数量,不妨取都是数量,不妨取同时定出同时定出将这两式代回(将这两式代回(5.32)得)得 这就是这就是DFP校正公式校正公式3.6 3.6 变尺度法变尺度法 2DFP算法迭代步骤 在拟Newton算法中,只要把第(5)步改为计算式(5.33) 而其它不变,该算法就为DFP算法了 但是由于计算中舍去误差的影响,特别是直线搜索不精确的影响,可能要破坏迭代矩阵 的正定性,从而导致算法失效为保证 的正定性,采取以下重置措施: 迭代 次后,重置初始点和迭代矩阵,即 以后重新迭代 3.6 3.6 变尺度法变尺度法已知目标函数 及其梯度 ,问题的
44、维数 ,终止限 (1)选定初始点计算(2)置 (3)作直线搜索 计算(4)判别终止准则是否满足:若满足,则打印 停机;否则转(5)(5)若 则置 转(2);否则,转(6).(6)计算 置 转(3). 3.6 3.6 变尺度法变尺度法例例例例5.4 5.4 5.4 5.4 用用DFP算法求算法求 取取解解解解: : : : 当我们取当我们取 时,时,DFP法与最速下降法具有相同的法与最速下降法具有相同的第第1迭代点,在迭代点,在5.1中已作了计算中已作了计算3.6 3.6 变尺度法变尺度法以下用DFP法作第二次迭代按DFP算法中的第(6)步计算因为所以3.6 3.6 变尺度法变尺度法搜索方向为从
45、 X1出发沿P1进行直线搜索,即由 知 ,所以 ,由于 所以 是极小点3.6 3.6 变尺度法变尺度法(二)(二)BFGS算法算法 我们再介绍另一个有效和著名的变尺度算法由于它是我们再介绍另一个有效和著名的变尺度算法由于它是Broyden, Fletcher(1970年),年),Goldfarb(1969年)年)和和Shanno(1970年)共同研究的结果,因而叫做年)共同研究的结果,因而叫做BFGS算法算法3.6 3.6 变尺度法变尺度法1BFGS算法基本原理算法基本原理考虑如下形式的校正公式 式中 这时校正矩阵为 3.6 3.6 变尺度法变尺度法式(5.34)中有一个参数 ,它可以取任何实
46、数,每取一个实数就对应一种拟Newton算法容易验证,当取 时就是DFP校正公式令就转变为著名的DFGS校正公式3.6 3.6 变尺度法变尺度法2DFGS算法迭代步骤算法迭代步骤已知目标函数 及其梯度 ,问题的维数 ,终止限 (1)选取初始点 ,初始矩阵 ,给定终止限 (2)求初始梯度向量,计算 ,若 ,停 止迭代输出 ,否则,转(3)(3)构造初始BFGS方向,取 令 转(4)(4)进行一维搜索,求 ,使得 , 令 ,转(5)3.6 3.6 变尺度法变尺度法(5)求梯度向量,计算)求梯度向量,计算 ,若,若 ,停,停 止迭代输出止迭代输出 ;否则,转(;否则,转(6)(6)检验迭代次数,若)
47、检验迭代次数,若 ,令令 转(转(3);否);否 则,转(则,转(7)(7)构造)构造BFGS方向,用方向,用BFGS公式公式 计算计算 ,取,取 ,令,令 ,转(,转(4) 3.6 3.6 变尺度法变尺度法DFGS算法的流程如图所示结束求tk使X0开始计算给定YN构造初始BFGS方向,取计算Xk+1用BFGS公式计算Hk+1,取令YNYN三、变尺度法有关说明变尺度法中的二个重要算法DFP算法和BFGS算法,它们的迭代过程相同,区别仅在于校正矩阵选取不同.对于DFP法,由于一维搜索的不精确和计算误差的积累可能导致某一轮的奇异,而BFGS法对一维搜索的精度要求不高.并且由它产生的不易变为奇异矩阵
48、.FGS法比DFP法更具有好的数值稳定性,它比DFP法更具有实用性3.6 3.6 变尺度法变尺度法3.7 坐标轮换法坐标轮换法属于直接法它既可用于无约束最优化问坐标轮换法属于直接法它既可用于无约束最优化问题的求解,又可经过适当的处理用于约束最优化问题题的求解,又可经过适当的处理用于约束最优化问题的求解的求解一、坐标轮换法基本原理一、坐标轮换法基本原理一、坐标轮换法基本原理一、坐标轮换法基本原理坐标轮换法的基本思想是把含有坐标轮换法的基本思想是把含有n 个变量的优化问题个变量的优化问题轮换地转化为单变量(其它变量视为常量)的优化问轮换地转化为单变量(其它变量视为常量)的优化问题题所谓单变量优化问
49、题就是沿某个坐标轴方向进行一维所谓单变量优化问题就是沿某个坐标轴方向进行一维搜索的问题搜索的问题坐标轮换法的寻优思路是:先选定一个初始点 X0 作为第一轮搜索的始点 ,依次沿n个坐标轴方向进行一维搜索,每次只在一个坐标轴方向上改变相应变量的值,其它(n-1) 个变量均保持不变在沿第一个坐标轴方向进行一维搜索得到目标函数值的最小点(或近似最小点) 后,再以此点作为始点转到沿第二个坐标轴方向进行一维搜索得到 ,直到沿第 n个坐标轴方向搜索结束得到 为一个循环如果 不满足收敛准则,则以 作为初始点转入下一轮循环,直到经过 次循环,获得满足收敛准则的点 ,即作为最优点 3.7 3.7 坐标轮换法坐标轮
50、换法对于二维最优化问题,其搜索过程如图所示3.7 3.7 坐标轮换法坐标轮换法 在坐标轮换法中,沿各个坐标轴方向进行一维搜索时,常选用最优步长因子或加速步长法加速步长法则是从初始点出发,沿搜索(坐标轴)方向先取一个较小的步长 ,作前进(或后退)试探如试探成功(目标函数值有所减小),则按步长序列 加大步长(注意每次加大步长都是由初始点算起),直至试探失败(目标函数值比前一次的有所增加)时,则取其前一次的步长作为沿这个坐标轴方向搜索的最优步长,并计算出该方向上的终止点,而后以这个终止点为始点再进行下一坐标轴方向的搜索,并重复上述步骤如此迭代下去,直到找到最优点 本节只用一维搜索法来确定最优步长 3
51、.7 3.7 坐标轮换法坐标轮换法二、坐标轮换法迭代步骤二、坐标轮换法迭代步骤二、坐标轮换法迭代步骤二、坐标轮换法迭代步骤 取初始点取初始点 置坐标轴搜索方向:置坐标轴搜索方向:首先沿首先沿 方向进行一维搜索,求出该方向上目标函数的方向进行一维搜索,求出该方向上目标函数的极值点极值点 ;再以;再以 为初始点沿为初始点沿 方向进行一维搜索,方向进行一维搜索,得到极值点得到极值点 仿此依次沿仿此依次沿 进行一维搜索,进行一维搜索,最终得到极值点最终得到极值点 这就完成了第一轮循环的搜索这就完成了第一轮循环的搜索 3.7 3.7 坐标轮换法坐标轮换法如果 能够满足收敛准则,即可停止搜索,以 作为 输
52、出否则,继续以 为初始点,进行第二轮循环,依次沿 进行一维搜索,得到第二循环的极值点如此进行下去,直至最终找到满足收敛准则(终止准则)的点 ,即求得了最优解 再求出目标函数值具体迭代过程如下:3.7 3.7 坐标轮换法坐标轮换法 已知目标函数已知目标函数 终止限终止限 (1)任选取始点)任选取始点 作为第一轮循环的初始点作为第一轮循环的初始点 (2)置搜索方向依次为)置搜索方向依次为 (3)按下式求最优步长并进行迭代计算)按下式求最优步长并进行迭代计算 3.7 3.7 坐标轮换法坐标轮换法 上 式中, 为循环次数, 为该循环中 一维搜索的序号, 为利用一维搜索 求出的最优步长(4)如果 ,即转
53、(5);如果 ,则转(3).(5)收敛性准则 : ,若满足判别式, 即停止迭代,输出最优解 及 若不满足,则令 转(3) 3.7 3.7 坐标轮换法坐标轮换法坐标轮换法的计算流程如图所示k=k+1k=1X=X0i=n?开始给定YN沿 求 使i=1i=i+1N结束YX* 例例例例5.5 5.5 5.5 5.5 用坐标轮换法求用坐标轮换法求 初始点初始点 解解解解: : : : 从初始点出发,依次沿方向从初始点出发,依次沿方向 搜索,搜索,以第一步为例以第一步为例,从从X0出发出发,沿沿e1方向搜索方向搜索,求得求得 点点 3.7 3.7 坐标轮换法坐标轮换法得 即 于是得 再从 出发,沿 方向搜
54、索,求得 点 求 可得 ,即取 于是有 3.7 3.7 坐标轮换法坐标轮换法 终止判别 因终止条件不满足,需继续迭代,取 进行第二轮循环迭代,各轮迭代计算数据见下表,最优解为 3.7 3.7 坐标轮换法坐标轮换法循环迭代序号是否满足收敛准则10.00,3.003.133.13,1.561.443.13,1.561.633.45否23.13,1.560.502.63,1.560.252.63,1.310.160.56否32.63,1.310.192.44,1.310.092.44,1.220.040.21否42.44,1.220.092.35,1.220.052.35,1.170.0150.10
55、否52.35,1.170.062.29,1.170.032.29,1.140.0070.06否62.29,1.140.042.25,1.140.022.25,1.120.0040.045否72.25,1.120.032.22,1.120.012.22,1.110.0020.03是3.7 3.7 坐标轮换法坐标轮换法三、坐标轮换法有关说明 坐标轮换法的优点是算法简单,计算量小,其缺点是计算效率低,对高维问题尤为突出因此,坐标轮换法通常用于维数较低的优化问题(一般 ) 3.8 单纯形法 单纯形法是利用对简单几何图形各顶点的目标函数单纯形法是利用对简单几何图形各顶点的目标函数值作相互比较,在连续改变
56、几何图形的过程中,逐值作相互比较,在连续改变几何图形的过程中,逐步以目标函数值较小的顶点取代目标函数值最大的步以目标函数值较小的顶点取代目标函数值最大的顶点,从而进行求优的一种方法顶点,从而进行求优的一种方法,属于直接法之一属于直接法之一 一、单纯形法基本原理 现以求二元函数的极小点为例,说明单纯形法形成原理. 设二元函数 在 平面上取不在同一条 直线上的三个点 并以它们为顶点构成一单纯 形三角形算出各顶点的函数值 比较其大小,现假定比较后有 这说明点 最差,点 最好,点 次差 为了寻找极小点,一般来说应向最差点的反对称方向进行搜索 3.8 3.8 单纯形法单纯形法以 记为 的中点(如图所示)
57、,在 的延长线上取点 ,使 称为 关于 的反射点算出 的函数值 ,可能出现以下几种情形: 3.8 3.8 单纯形法单纯形法 (1) 这说明搜索方向正确,可进一步扩大效果,继续沿 向前搜索,也就是向前扩张这时取 其中 为扩张因子,一般取 如果 ,说明扩张有利,就可以点 代替 点 构成新的单纯形 如果 ,说明扩张不利,舍去点 ,仍以点 代替 构成新的单纯形 3.8 3.8 单纯形法单纯形法(2) 这说明搜索方向正确,但无须扩张,以这说明搜索方向正确,但无须扩张,以 代替代替 构成构成新的单纯形新的单纯形 (3) 这表示这表示 点走得太远,应缩回一些若以点走得太远,应缩回一些若以 表示压缩表示压缩因
58、子,则有因子,则有 常取为常取为0.5.以以 代替代替 构成新的单纯形构成新的单纯形3.8 3.8 单纯形法单纯形法 (4) 这时应压缩更多一些,将新点压缩至 至 之间,令 注意,将式(5.35)中的 代之以 ,即可得式(5.36)如果 ,则以 代替 构成新的单 纯形 否则认为 方向上所有点的函数值 都大于 ,不能沿此方向搜索 这时,可以以 为中心进行缩边 若使顶点 和 向 移近一半距离, 得新单纯形 以此单纯形 为基础再进行寻优3.8 3.8 单纯形法单纯形法 以上说明,不管哪种情况,我们都可以得到一个新的单纯形,其中至少有一顶点的函数值比原单纯形为小如此继续,直至满足收敛终止准则 在n维情
59、况下,一个单纯形含有 个顶点,计算工作量较大,但原理和上述二维情况相同3.8 3.8 单纯形法单纯形法3.8 3.8 单纯形法单纯形法 二、单纯形法迭代步骤二、单纯形法迭代步骤二、单纯形法迭代步骤二、单纯形法迭代步骤已知设已知设 为为 维变量维变量,目标函数为目标函数为 ,终止限为终止限为 (1) 构成初始单纯形构成初始单纯形 在在 维空间中选初始点维空间中选初始点 (离最优点越近越好)(离最优点越近越好),从从 出发,沿各坐标方向以步长出发,沿各坐标方向以步长 得得 个顶点个顶点 这样选择顶点可保证向量组这样选择顶点可保证向量组 线性无线性无关否则,就会使搜索范围局限在较低维的空间内,有关否
60、则,就会使搜索范围局限在较低维的空间内,有可能找不到极小点当然,在各坐标方向可以走不同的可能找不到极小点当然,在各坐标方向可以走不同的距离距离步长步长 的范围可取的范围可取0.515.0,开始时常取,开始时常取 ,接近最优点时要减小,例如取接近最优点时要减小,例如取0.51.0 (2) 计算各顶点的函数值 比较各函数值的大小,确定最好点 、最差点 和次 差点 ,即 3.8 3.8 单纯形法单纯形法(3) 计算 之外各点的“重点” , 求出反射点(4) 当 时,需要扩张,令 如果,则以 代替 形成一新单纯 形;否则,以代 替 构成新单纯形然后转(8).3.8 3.8 单纯形法单纯形法(5)当 时
61、,以 代替 构成新单 纯形,然后转(8) (6)当 时,则需要收缩即令 以 代替 得新单纯形,并转(8)(7) 当 时,令 如果 则将单纯形缩边,可将向量 的长度缩小一半,即 这样可得一新单纯形否则就以 代替 得新单纯 形然后转(8).3.8 3.8 单纯形法单纯形法 (8) 收敛性检验,每次迭代得到新单纯形后,即应进 行收敛性检验,如满足收敛指标,则迭代停止, 即 为所求的近似解否则,继续进行迭代计算 通常 所用的收敛准则是 或 式中 和 为预先给定的允许误差3.8 3.8 单纯形法单纯形法 例例例例5.65.65.65.6试用单纯形法求 的极小值 . 解解解解: : : : 选 并取 和
62、这三点不在一条直线上,用它们作为初始单纯形的顶点 (如图所示)3.8 3.8 单纯形法单纯形法然后计算各顶点的函数值: 可知 为最差点, 为最好点以 表示 和 的重心,则反射点3.8 3.8 单纯形法单纯形法由于 ,故需扩张取 ,则因为 ,故以 代替 ,由 , 和 构成新单纯形,然后进行下一个循环该问题的最优解为 经32次循环,可把目标函数 减小到3.8 3.8 单纯形法单纯形法3.8 3.8 单纯形法单纯形法 三、单纯形法有关说明 本算法上机占用内存很少,对变量不多且精度要求不高的问题此法很方便,但当变量个数多于10以上,此法就显得不十分有效 习题习题1用最速下降法求解2用Newton法求解
63、 初始点 3用修正Newton法求解 初始点 习题习题4用共轭梯度法求解 取初始点5用共轭梯度法求解 自定初始点 6用DFP法求解 初始点 习题习题7用坐标轮换法求解取初始点8用单纯形法求解 给定初始单纯形顶点为 四 常用约束最优化方法4.1 4.1 外点罚函数法外点罚函数法4.2 4.2 内点罚函数法内点罚函数法4.3 4.3 混合罚函数法混合罚函数法4.4 4.4 约束坐标轮换法约束坐标轮换法4.5 4.5 复合形法复合形法四 常用约束最优化方法考虑一般的约束最优化问题,其数学模型为考虑一般的约束最优化问题,其数学模型为 求解约束优化问题,就是要在可行域求解约束优化问题,就是要在可行域 中
64、,找一个可行点中,找一个可行点 使目标函数使目标函数 取得最小值取得最小值此时称此时称 为问题(为问题(6.1)的最优解)的最优解 由处理约束条件的办法不同,约束优化方法也可分为直接法和间接法两大类 间接法的基本思想是将约束优化问题首先转换为一系列的无约束优化问题,然后利用无约束优化方法来求解,逐渐逼近约束问题的最优解这些算法一般比较复杂,但由于它们可以采用计算效率高、稳定性好的无约束优化方法,故可用于求解高维的优化问四四 常用约束最优化方法常用约束最优化方法 直接法的基本思想是构造一迭代过程,使每次迭代点都在可行域D中,且一步一步地降低目标函数值,直到求得最优解这类方法很多,如约束坐标轮换法
65、,复合形法等这类方法一般是算法简单,对目标函数和约束函数无特殊要求;但计算量大,需用机时较多,不适用维数较高的问题,而且一般用于求解只含不等式约束的优化问题.四四 常用约束最优化方法常用约束最优化方法4.1 外点罚函数法 对于问题(对于问题(6.1),本节所述方法的基本策略是,根),本节所述方法的基本策略是,根据约束特点(等式或不等式)构造某种据约束特点(等式或不等式)构造某种“罚函数罚函数”,然后把它加到目标函数中去,使得对约束最优化,然后把它加到目标函数中去,使得对约束最优化问题的求解转化为对一系列无约束问题极小点或者问题的求解转化为对一系列无约束问题极小点或者无限地向可行域靠近,或者一直
66、保持在可行集内移无限地向可行域靠近,或者一直保持在可行集内移动,直到收敛于原来约束最优化问题极小点动,直到收敛于原来约束最优化问题极小点4.1 外点罚函数法一、外点罚函数法基本原理一、外点罚函数法基本原理一、外点罚函数法基本原理一、外点罚函数法基本原理 对问题(对问题(6.1),构造一函数为),构造一函数为 其中其中 在式(6.2)中, 又称为惩罚函数 是一个逐渐增大的参数, 称为惩罚 因子 又称为问题(6.1)的增广目标函数显然,增广目标函数 是定义在 上的一个无 约束函数由增广目标函数 的构造知:4.1 4.1 外点罚函数法外点罚函数法当当 时,时, 此时此时 的最优解就是问题(的最优解就
67、是问题(6.1)的最优解;)的最优解;而当而当 时时, 的最优解就不一定是问题的最优解就不一定是问题(6.1)的最优解)的最优解.但是研究当但是研究当 时时, 的最优解的最优解我们是不感兴趣的我们是不感兴趣的,为此规定为此规定:当当 时时, 在在X点处的函数值迅速变大点处的函数值迅速变大,换句话说换句话说,可行域外的任一点可行域外的任一点X处的函数值处的函数值 都相当大都相当大.此时要求此时要求 在在 中的中的最优解,只能让点最优解,只能让点X回到回到D内才有可能求得内才有可能求得 在在 中的最优解中的最优解,然而一旦当点然而一旦当点X回到回到D内内,即即 ,此时此时 就与问题(就与问题(6.
68、1)就有相同的最优解)就有相同的最优解 4.1 4.1 外点罚函数法外点罚函数法 当 时, 迅速变大是通过罚因子M来实现简言之,外点罚函数法的思想是:当点 时,设法加大不可行点处的函数值,使不可行点不能成为 在 中的最优解一般,在用外点罚函数法求解问题(6.1)时,我们首先构造增广目标函数 ,然后按照无约束优化方法求解如果求出 的最优解为 ,则判断 是否属 于D .如果 ,则 是问题(6.1)的最优解;如果 ,则不是问题(6.1)的最优解,此时说明原来的罚因子给小了,需加大罚因子,使得 ,然后再重新计算 的最优解4.1 4.1 外点罚函数法外点罚函数法二、外点罚函数法迭代步骤二、外点罚函数法迭
69、代步骤二、外点罚函数法迭代步骤二、外点罚函数法迭代步骤 已知问题(已知问题(6.1),构造增广目标函数),构造增广目标函数其中惩罚函数其中惩罚函数 按式按式(6.2)构造构造,给定终止限给定终止限 (可取可取 ).(1)选定初始点)选定初始点 ,初始罚因子,初始罚因子 可取可取 ) 罚因子放大系数罚因子放大系数 ,置,置 (2)假设已获迭代点)假设已获迭代点 ,以,以 为初始点,求解无为初始点,求解无约束问题约束问题 设其极小点为设其极小点为 (3)若)若 ,则,则 就是所要求的最优解,打印就是所要求的最优解,打印 ,停机;否则,转(,停机;否则,转(4)(4)置)置 ,转(,转(2).4.1
70、 4.1 外点罚函数法外点罚函数法外点罚函数法的流程如图所示YN开始选定计算求出最优解输出结束例例例例6.1 6.1 6.1 6.1 求解解解解解: : : : 可以看出,本题的约束最优解为 现用外点罚函数法解这个约束优化问题 构造增广目标函数 由此解 得 给定一个罚因子 ,即可求得极小点 ,可以看出 不是可行点,且有4.1 4.1 外点罚函数法外点罚函数法右图给出了不同 时 的的轨迹例6.1可以帮助读者进一步 理解用外点罚函数法求极小点序列 时怎样收敛于约束最优点 4.1 4.1 外点罚函数法外点罚函数法例例例例6.2 6.2 6.2 6.2 用外点罚函数法求解解解解: : : : 增广目标
71、函数为 按阶跃函数的定义,4.1 4.1 外点罚函数法外点罚函数法 对于 ,下图画出了 的图形由图可 以看出, 的极小点 全不属于可行域因此只须 考虑 的情况4.1 4.1 外点罚函数法外点罚函数法 实际上,对于固定的 ,令 由此解得 这就是对于固定的 , 的极小点例如,当 时, ; 当 时, ; 当 时, 若令 时,则这里的 就是例6.2的极小点4.1 4.1 外点罚函数法外点罚函数法二、外点罚函数法有关说明二、外点罚函数法有关说明二、外点罚函数法有关说明二、外点罚函数法有关说明 在外点罚函数中,是通过一系列惩罚因子在外点罚函数中,是通过一系列惩罚因子 求求 的极小点来逼近原约束问题的最优点
72、这的极小点来逼近原约束问题的最优点这一系列的无约束极小点一系列的无约束极小点 将从约束可行域外部向约将从约束可行域外部向约束边界运动,实际上,随着罚因子的增大,迫使惩罚项束边界运动,实际上,随着罚因子的增大,迫使惩罚项的值逐渐减小,从而使的值逐渐减小,从而使 的极小点的极小点 沿着沿着某一运动轨迹逐渐接近等式约束面与起作用的不等式约某一运动轨迹逐渐接近等式约束面与起作用的不等式约束面上的最优点束面上的最优点 当当 趋于无穷大时,趋于无穷大时, 的极小点就是原问题的最优点的极小点就是原问题的最优点 4.1 4.1 外点罚函数法外点罚函数法 容易提出这样的问题:既然越大越好,那么迭代一开始 就把
73、取得很大,似乎求解一次无约束问题就可以求 到约束问题的最优解,可以少解几次无约束问题但是 可以证明, 越大,增广目标函数 的Hesse矩 阵的条件数越坏,给无约束问题求解增加越来越大的困 难,甚至无法求解4.1 4.1 外点罚函数法外点罚函数法因此,在迭代开始时又不得不把 取得小一些无疑,这增加了计算量,这正是外点罚函数法的弱点此外,当 在 处无定义时, 的性质变得很复杂另一方面,由于外点罚函数法是从 外迭代点逼近D内最优解,所以在寻优的过程中不能直接观察到D内点的变化情况,也无法求得近似最优解4.1 4.1 外点罚函数法外点罚函数法4.2 内点罚函数法 内点罚函数法刚好克服了外点罚函数法的不
74、足之处,内点罚函数法刚好克服了外点罚函数法的不足之处,内点罚函数法的迭代过程均在可行域内点罚函数法的迭代过程均在可行域D内进行,它是内进行,它是通过在通过在D内寻找一串点列内寻找一串点列 来逼近最优解来逼近最优解 一、内点罚函数法基本原理首先在D的边界设置一道障碍,当从可地域D中的某点 出发进行迭代时,每当迭代点靠近D的边界时,便被此边界上的障碍(形如绝壁)阻挡碰回,这种阻挡碰回实质上也是一种惩罚,换句话说,所谓阻挡碰回就是当迭代点靠近D的边界时,离边界越近函数值增加越大,特别当迭代点到达边界上时,函数值变为无穷大由此可以想象不可能在靠近D的边界上取得最优解,只能在远离D的边界内找到最优解4.
75、2 4.2 内点罚函数法内点罚函数法按照这种想法,对于构造如下增广目标函数其中, 称为障碍因子, 称为障碍函数4.2 4.2 内点罚函数法内点罚函数法下面我们来分析 是否符合内点罚函数法的构造设想显然 和 都定义在D内, 取值较小时,当迭代点远离边界, ,此时 的最优解可作为问题(6.3)的近似最优解;4.2 4.2 内点罚函数法内点罚函数法4.2 4.2 内点罚函数法内点罚函数法但当迭代点靠近D的边界时,由 的构造知,即使 取值很小,但 ,即 使得 的函数值变得很大,此时显然不可能在区域D的边界附近求得 的最优解,于是迫使迭代点被阻挡碰回到远离区域D的边界去寻优.用式子表示即是当障碍因子用式
76、子表示即是当障碍因子 逐渐减小时,有逐渐减小时,有 且且 式(式(6.4)中)中 为为 的极小点序列,的极小点序列, 为问题(为问题(6.3)的最优解)的最优解.4.2 4.2 内点罚函数法内点罚函数法二、内点罚函数法迭代步骤已知对问题(6.3),构造增广目标函数 给定终止限(1)选定初始点 初始障碍因子 障碍因子的缩小系数 (可取 ),置(2)假设已获迭代点 以 为初始点,求解 设其最优解为4.2 4.2 内点罚函数法内点罚函数法 (3)若 ,则 是问题(6.3)的 最优解,打印 停机;否则,转(4) (4) ,转(2)4.2 4.2 内点罚函数法内点罚函数法内点罚函数法的流程图如图所示YN
77、开始选定计算求出最优解输出结束例例例例6.3 6.3 6.3 6.3 用内点罚函数法求解解解解: : : : 构造增广目标函数 由 解得4.2 4.2 内点罚函数法内点罚函数法 给定一个罚因子 ,即可求得一极小点 右图给出不同罚因子时 的轨迹.可看出 在可行域内,且随着 逐渐逼近于0, 逐渐逼近理论最优点 例6.3可帮助读者进一步理解用内点罚函数法求极小点序列 时是怎样收敛于约束 最优点 4.2 4.2 内点罚函数法内点罚函数法三、内点罚函数法有关说明三、内点罚函数法有关说明三、内点罚函数法有关说明三、内点罚函数法有关说明内点罚函数法的优点在于每次迭代都是可行点,当迭内点罚函数法的优点在于每次
78、迭代都是可行点,当迭代到一定次数时,尽管可能没有达到约束最优点,但代到一定次数时,尽管可能没有达到约束最优点,但可以被接受为一个较好的近似最优点可以被接受为一个较好的近似最优点在实际应用中,按该点求得的解可能比初始解有很大在实际应用中,按该点求得的解可能比初始解有很大的改进,因而被工程技术人员接受,作为一种最优设的改进,因而被工程技术人员接受,作为一种最优设计方案计方案4.2 4.2 内点罚函数法内点罚函数法然而,内点罚函数法要求初始点位于可行域内部,即所有的约束需按严格不等式满足这对于简单的优化问题是不难解决的,因为原设计方案可能是用常规设计方法求得的,虽然不是最优,但一般是可行的,因此就可
79、将原方案作为初始点但对复杂的优化问题,由于变量和约束较多,要想得到一个可行的初始点,并不十分容易,这时就要采用求可行点的算法4.2 4.2 内点罚函数法内点罚函数法在内点罚函数法中,障碍函数的定义域是约束可行域因此,在求 的最优解时,并不是求它在整个 维欧氏空间 中的最优解,而是求 在约束可行域 上的极小点这是因为障碍函数 在D 的边界上无定义,而在 D的外部某些项为负,并且可取绝对值任意大的负值,从而使 趋于 所以 在全空间 内的极小点是不存在的4.2 4.2 内点罚函数法内点罚函数法因此,在用无约束优化方法求 的最优解时,要防止越过约束边界而搜索到非可行域中去,这就要求在一维搜索时,要适当
80、控制步长,保证搜索在可行域内进行4.2 4.2 内点罚函数法内点罚函数法4.3 混合罚函数法 前面介绍了外点罚函数法和内点罚函数法外前面介绍了外点罚函数法和内点罚函数法外点罚函数法的初始点可以任选,适用于求解具有点罚函数法的初始点可以任选,适用于求解具有等式约束与不等式约束的优化问题;而内点罚函等式约束与不等式约束的优化问题;而内点罚函数法要求初始点在可行域内,适用于求解不等式数法要求初始点在可行域内,适用于求解不等式约束优化问题约束优化问题为了综合外点罚函数法与内点罚函数法的优点,为了综合外点罚函数法与内点罚函数法的优点,常将两种算法结合起来使用,这样便形成了混合常将两种算法结合起来使用,这
81、样便形成了混合罚函数法罚函数法 一、混合罚函数法基本原理 对于同时具有不等式约束和等式约束的优化问题, 混合罚函数法采用的罚函数形式又分为内点形式和外点形式两种下面只介绍内点形式的混合罚函数,即4.3 4.3 混合罚函数法混合罚函数法采用内点形式的混合罚函数时,混合初始点 应选为满足各个不等式约束条件的点,障碍因子 亦应按内点罚函数法取为递减序列,即在混合罚函数 中, 的作用是限制搜索跑出不等式约束确定的区域,相当于内点罚函数法。而 的作用是迫使搜索点向等式约束面靠近,相当于外点罚函数法4.3 4.3 混合罚函数法混合罚函数法 二、混合罚函数法迭代步骤二、混合罚函数法迭代步骤二、混合罚函数法迭
82、代步骤二、混合罚函数法迭代步骤已知问题(已知问题(6.1),构造增广目标函数),构造增广目标函数 给定终止限给定终止限(1)选选定定初初始始点点 ,要要求求满满足足不不等等式式约约束束,初初始始障障碍碍因子因子 ,惩罚因子缩小系数,惩罚因子缩小系数 ,置,置(2)假设已获)假设已获 迭代点,以迭代点,以 为初始点,求为初始点,求 设其最优解为设其最优解为 4.3 4.3 混合罚函数法混合罚函数法(3)若 则 是问题(6.1)的最优解,打印 , 停机;否则转(4)(4) ,转(2)4.3 4.3 混合罚函数法混合罚函数法三、混合罚函数法有关说明为了加速罚函数法的收敛速度,可以采用外插技术外插技术
83、我们知道,在罚函数法中,给定一个罚因子(可以是障碍因子,也可以是惩罚因子)就可以求 的一个极小点 ,因此 的极小点可以看作是 的函数,记为 4.3 4.3 混合罚函数法混合罚函数法前面讲过,当 时, 趋于约束最优点 因此可以设想,只要能将 的函数表达式写出来,就可通过求极限的方法求得约束最优点 为求 的表达式,自然会想到利用前几点 通过曲线的拟合来近似地予以反映这就是外插技术基本思想4.3 4.3 混合罚函数法混合罚函数法假定对于罚因子 已求得 的极小点 则可用高次多项式来拟合极小点的轨迹曲线,即式中 为系数向量,其值可由 个线性方程组求得4.3 4.3 混合罚函数法混合罚函数法令 则得它是约
84、束最优点的 一个更好的逼近,可将其作为 的极小点的初始点,这将有利于加速收敛在实际应用中,常采用两点外插法或三点外插法两点外插法就是利用前两次求得的 的极小点 和 来外插求得4.3 4.3 混合罚函数法混合罚函数法通常采用的外插公式为通常采用的外插公式为 式中式中 均为均为 维向量维向量用已知用已知 和和 两点,而且两点,而且 ,代入上式,代入上式可求得可求得 在式在式(6.5)中令中令 ,立即可求得外插点,立即可求得外插点 也就是也就是 4.3 4.3 混合罚函数法混合罚函数法4.4 约束坐标轮换法 约束坐标轮换法是在无约束坐标轮换法的基础上,约束坐标轮换法是在无约束坐标轮换法的基础上,加入
85、由约束函数构成的可行性限制,使每次迭代都加入由约束函数构成的可行性限制,使每次迭代都必须在可行域内进行必须在可行域内进行它的基本思想是将一个维的约束优化问题转化为依它的基本思想是将一个维的约束优化问题转化为依次沿个坐标轴方向轮流进行迭代的一维搜索问题次沿个坐标轴方向轮流进行迭代的一维搜索问题一、约束坐标轮换法基本原理对于 维约束优化问题,依次沿坐标向量 的方向进行搜索时,由于只能在可行域内进行搜索,故不宜采用最优步长,以免越出可行域为此,通常利用加步搜索法来确定搜索步长,以求得一系列可行点,使目标函数值逐次下降,直至收敛到最优解 4.4 4.4 约束坐标轮换法约束坐标轮换法现以 下图所示的二维
86、情况进行说明4.4 4.4 约束坐标轮换法约束坐标轮换法设已知初始点设已知初始点 且满足约束条件且满足约束条件,用步长用步长 沿坐标轴方向沿坐标轴方向 的正向搜索到点的正向搜索到点 时;因目标函数时;因目标函数 的值增大的值增大(这意这意味着试探失败味着试探失败),故改为自故改为自 点沿点沿 的负方向搜索得点的负方向搜索得点 该点在可行域内该点在可行域内,且使目标函数值有所下降且使目标函数值有所下降(这意味着试探这意味着试探成功成功),说明该点同时满足可行性与适用性两个条件说明该点同时满足可行性与适用性两个条件,于是再于是再由点由点 出发出发,按加速步长按加速步长 搜索至点搜索至点 此点仍在可
87、行域此点仍在可行域内内,且该点的目标函数值继续下降且该点的目标函数值继续下降;于是再按加速步长于是再按加速步长 搜索至点搜索至点 但此点已越出了可行域但此点已越出了可行域,即不满足可行性条即不满足可行性条件件,故舍弃点故舍弃点 退回到点退回到点 并记其为并记其为 4.4 4.4 约束坐标轮换法约束坐标轮换法再由该点出发,转为用步长 沿坐标轴方向 搜索,得点 ,该点在可行域内,且使目标函数值下降;当加速步长为 后,所得的点 虽在可行域内,但不能使目标函数值下降,故予舍弃,仍退回到点 ,并记其为 至此,第一轮搜索完毕如点 已能满足计算精度,则停止搜索;否则,视该点为初始点 ,转入第二轮搜索,如果所
88、求的最终点与初始点相同,则将步长缩小,即取步长为 ,然后重新进行搜索,直至求得满足计算精度的最优点 4.4 4.4 约束坐标轮换法约束坐标轮换法二、约束坐标轮换法迭代步骤二、约束坐标轮换法迭代步骤二、约束坐标轮换法迭代步骤二、约束坐标轮换法迭代步骤已知目标函数已知目标函数 ,约束函数,约束函数 终止限终止限 步长缩放因子步长缩放因子 (1)选取初始点选取初始点 ,初始步长,初始步长 ,置,置 (2)由由 出发,按步长出发,按步长 ,沿坐标轴,沿坐标轴 的正方向进的正方向进行搜索,取行搜索,取 4.4 4.4 约束坐标轮换法约束坐标轮换法如果 且 ,则取 ,即加速向前搜索,直到不满足可行性条件或
89、适用性条件,然后退回前一搜索点,将其作为该方向的最终点 如果沿 的正方向搜索不到能同时满足可行性条件和适用性条件的点,则改为沿 的负方向搜索,即取搜索步长为 ,仿照沿正方向的搜索过程,求得该方向的最终点 如果沿 的正、负两方向搜索均失败,则将点 作为该方向的最终点 ,然后转向下一个坐标轴方向继续进行搜索4.4 4.4 约束坐标轮换法约束坐标轮换法 (3)由 出发,沿坐标轴方向 进行搜索,按步骤 (2)的做法,求得该方向的最终点 以此类推,直到沿第n个坐标轴方向 进行一维搜 索完毕,得到设计点 至此,完成了第 k轮搜 索,记第 k轮搜索得到的最优点为 (4)若 转(5);否则需要进行下一轮搜索,
90、 即令 转(2) (5)进行步长判别,如果步长 已缩短到足够小时, 即满足 时,则 为最优点,输出 结束否则,收缩步长,即令 转(2)4.4 4.4 约束坐标轮换法约束坐标轮换法 约束坐标轮换法的流程如图所示NYN开始选定从Xk-1出发沿各坐标方向依次搜索得到Xkk=k+1结束Y三、约束坐标轮换法有关说明三、约束坐标轮换法有关说明三、约束坐标轮换法有关说明三、约束坐标轮换法有关说明 约束坐标轮换法具有算法明了,迭代简单,便于使用约束坐标轮换法具有算法明了,迭代简单,便于使用者掌握运用等优点但是,它的收敛速度较慢,对于者掌握运用等优点但是,它的收敛速度较慢,对于维数较高的优化问题很费机时另外,这
91、种方法在某维数较高的优化问题很费机时另外,这种方法在某些情况下还会出现些情况下还会出现“死点死点”的病态,导致输出伪最优的病态,导致输出伪最优点为了辨别输出最优点的真伪可用点为了辨别输出最优点的真伪可用 条件来条件来检验通常的做法是输入多个初始点,并给出各种不检验通常的做法是输入多个初始点,并给出各种不同的初始步长进行多次运算,再从众多的输出解中进同的初始步长进行多次运算,再从众多的输出解中进行比较而排除伪最优点行比较而排除伪最优点4.4 4.4 约束坐标轮换法约束坐标轮换法4.5 复合形法 复合形法是目前求约束优化问题的一种重要的直接法,复合形法是目前求约束优化问题的一种重要的直接法,它是无
92、约束最优化问题中单纯形法的推广其基本思想是:它是无约束最优化问题中单纯形法的推广其基本思想是:在可行域内选取在可行域内选取 个设计点作为初始复合形的顶点,为个设计点作为初始复合形的顶点,为了克服单纯形法容易产生降维的缺点,复合形的顶点个数了克服单纯形法容易产生降维的缺点,复合形的顶点个数取为取为n+2k5的优化问题,一般应适当减少顶点数目,取 (取整)当然,顶点的最少数目不得低于 4.5 4.5 复合形法复合形法 习题习题1用外点罚函数法求解 2用外点罚函数法求解 习题习题3用外点罚函数法编程计算 取终止限 4. 用内点罚函数法求解 习题习题5用内点罚函数法求解6用内点罚函数法编程计算取初始点 初始障碍因子 缩小系数取 终止限 习题习题7分别用内点罚函数法和混合罚函数法编程计算 取终止限 8用约束坐标轮换法编程计算 取终止限 习题习题9.用复合形法编程计算 取终止限五 程序设计及其他优化方法1Fminbnd:进行有约束的一元函数最小值求解:进行有约束的一元函数最小值求解2Fminsearch:进行多变量函数的无约束优化。:进行多变量函数的无约束优化。3Fminunc:也是对多变量无约束函数优化:也是对多变量无约束函数优化4Fmincon:对有约束的多变量函数寻优。:对有约束的多变量函数寻优。