第八章 无约束多维问题的最优化方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
k 1
gk g k 1
2 2
在迭代中第一次搜索方向 d0 取 x0 的负梯度方向-g0。
5 共轭梯度法
与梯度法相比,由于修正项kdk 改进了收敛性,使搜 索方向共轭,故能以较少的迭代次数收敛到最优点。 由于计算梯度时很可能出现误差,使搜索方向不能完 全保持共轭,同时目标函数也可能不是正定的二次函数, 因此n次迭代后一般都不会达到精确的极小点。可在每n次 迭代后令 d0 = dn = -gn 作为下一轮迭代的第一次搜索方向,重新开始新一轮迭代。 上述共轭梯度法又称 Fletcher-Reeves 共轭梯度法。而 PRP(Polak-Ribiere-Poiyak)共轭梯度法按下式计算k-1:
5 共轭梯度法
共轭梯度法的迭代公式
设从xk出发,沿dk=-gk 方向作一维搜索到 xk+1点,并算 出xk+1点的梯度方向gk+1。由于gk+1 是沿等直面在该点的法 线方向,而dk是沿等直面在该点的切线方向,故(dk)Tgk+1= 0,即 gk+1Tgk=0,gk+1 与 gk 正交。 为了在 gk+1 和 gk 构成的正交系中确定共轭方向dk+1,令 dk+1 = -gk+1+k dk 即把共轭方向dk+1看成-gk+1与 dk的线性组合,k 为待定 系数。要使dk+1与dk 共轭,就应使 (dk+1)TGdk =0 而 (dk+1)TGdk =(-gk+1+kdk)TGdk =(-gk+1 kgk)TG(-gk ) =gk+1TGgk+k gkTGgk =0
f xi
i i 1,2,, n
2 最速下降法
例1 求 f(x1, x2) = x12+25x22 的极小点。
取初始点 x0 =[2 2]T,则 f(x0) =104 f(x0) =[4 100]T 沿负梯度即[-4 -100]T方向进行一维搜索,有 x1 = x0 0 f(x0) =[2 2]T 0[4 100]T = [2 40 2 1000]T 在x1点 f(x1, x2) =(2 40)2+25(2 1000)2 =(0) 令’(0) = 0,有 2(2 40) (-4)+50(2 1000) (-100) = -16+320 10000 +5000000 = 5000320 10016 = 0 0 = 0.020030718 得到第一次迭代的结果: x1 = [2 40 2 1000]T= [1.919877 -3.0718034-2]T f(x1) =3.686164 经过十次迭代,得到最优解: x* = [0 0]T f(x* ) =0
4 共轭方向及共轭方向法
共轭方向的概念
二次正定函数的一般形式为:
f x 1 T x Gx bT x c 2
式中,G为 nn 阶对称正定矩阵,b=[b1, b2, ,bn]T 为常矢 量,c为常数。
对于矩阵 G,若存在两个 n 维非零矢量 d0 和 d1,使 ( d0)TGd1=0 成立,则称 d0 和d1 是 G 共轭方向 (或 G共轭矢量 ) 。 特别地,当G为单位矩阵时,(d0)Td1=0 ,则称d0 和d1是正 交的。矢量正交是矢量共轭的特例。
5 共轭梯度法
因此,下一个搜索方向确定为
d k 1 gk 1 k d k gk 1 gk 1 gk
2 2
dk
同样 ,可以证明按上述公式确定的 dk+2 与 dk+1 为共轭方 向,依此类推而确定的 n个dk (k=0,1,2,…,n-1)方向为一组 关于G的共轭向量系。上述结论也可由数学归纳法证明。 最后,我们得到共轭梯度法的迭代公式为 x k+1 = x k+k dk 式中 dk = -gk+k-1 dk-1
2 最速下降法
或 数值微分 数值微分在优化中是一个非常重要的问题,对优化结 果影响较大。具体作法是用 f 代替 f ,其中 x x f = f f0 式中,f0 = f(x0),是计算偏导数那点 x0 处的目标函数值; f = f(x) = f(x1, x2, · · · , xi+xi, · · · , xn),是其它变量保持不变,xi 变化为 xi+xi 时的目标函数值。 f f 为使 尽可能接近 ,xi 应取得小一些,但过小又 x x 会引起舍入误差。一般可取 xi = 0.001(ui li) ui 和 li 分别为变量 xi 的估计上限和下限。
4 共轭方向及共轭方向法
共轭方向法
共轭方向是一大类方法,包括共轭梯度法,Powell法等。 其中一种产生共轭方向的方法为格拉姆-斯密特 (Gram- Schmidt)法。 比较有效的共轭方向法都尽量避免计算海赛矩阵。
5 共轭梯度法
共轭梯度法的共轭方向
二次正定函数 f x x T Gx bT x c 在 xk 点的梯度为 2 k gk = Gx + b 前面已给出优化算法的搜索迭代公式: xk+1= xk+kdk 若进行一维搜索,k 则为最优步长因子。 xk 和xk+1 两点负梯度方向的差为 gk+1 gk = G(xk+1 xk) = G(xk+kdk xk)=k Gdk 若dk+1 和 dk 是G 共轭方向,则 (dk+1)TG dk = 0 用(dk+1)T前乘 (gk+1 gk),有 (dk+1)T(gk+1 gk) = k(dk+1)TGdk = 0 即 dk+1与(gk+1 gk)正交。
4 共轭方向及共轭方向法
共轭方向的性质
二次收敛性: 如 n=2,二次函数的等值线为一同心椭圆族,它的极 小点就是椭圆中心。该椭圆族有一重要性质,即两平行线 与椭圆的两个切点的连线必过椭圆族的中心,且连线与平 行线的方向是共轭的(见下图)。
x2
x1
4 共轭方向及共轭方向法
因此,从任一点出发,沿任意方向作一维搜索找到的 极小点就是椭圆的切点,再沿共轭方向作一维搜索找到的 极小点就是椭圆中心也就是目标函数的极小点。这说明, 对二维二次正定目标函数只要沿共轭方向作两次一维搜索 就可得到其极小点。 推广到n维,若采用共轭方向作为搜索方向,任何一个 具有极小值的n维二次正定目标函数,理论上最多只要n步 就能达到极小点且与所用搜索方向的次序无关。这种性质 称为“二次收敛性”,利用这种性质的优化方法称为二次 收敛方法。
3 牛顿型方法
为防止牛顿法收敛到极大点而不是极小点,可在迭代 过程中作一维搜索,形成改进的牛顿法—“阻尼牛顿法”。 牛顿法的最大缺点是需要计算海赛矩阵,并求其逆矩阵, 计算量很大。 例2 用牛顿法求 f(x1, x2) = x12+25x22 的极小点。
取 x0 = [2 2]T f(x0) = [2x10 50x20] T = [4
第八章 无约束多维问题的 最优化方法
1 概述 2 最速下降法
3 牛顿型方法
4 共轭方向及共轭方向法 5 共轭梯度法
6 变尺度法
7 坐标轮换法
8 鲍威尔法
9 单形替换法
1 概 述
无约束优化方法只考虑搜索的适行性,结合罚函数法, 也可解约束优化问题。目前,成熟可靠的优化算法中,无 约束优化方法占多数,总体上无约束优化方法的有效性及 实用性都优于约束优化方法。 无约束优化方法可分为两大类:1)不求导数的直接法, 主要有随机方法和直接搜索方法; 2)求导数的间接法,按 所求导数的最高阶数又可分为一阶方法和二阶方法。二阶 方法很少采用。 优化算法的一般搜索迭代公式 xk+1= xk+xk xk+1= xk+kdk 注意,在搜索迭代中,由于一维搜索需增加大量计算, 因此,并不是所有优化方法都采用一维搜索。
1
5 共轭梯度法
上式表明:从 xk 开始沿 dk 方向进行一维搜索,其终点 xk+1与始点xk 两点的梯度之差 gk+1 gk与dk 的共轭方向dk+1 正交。因此,利用这个性质,不必计算矩阵G 即可求出共 轭梯度法的共轭方向。
共轭梯度法的几何说明
dk+1 Xk+2
xk
xk+1
gk
dk gk+1 gk+1 gk
5 共轭梯度法
因此
T gk 1Ggk k T g k Ggk
前面已推导出 gk+1 gk = k Gdk,即 gk+1 gk = -kGgk
或
Ggk g k 1 g k
k
代入上式得
T T T T gk Gg g g g g g g 1 k k 1 k 1 k k 1 k 1 k 1 g k k T T T T g k Ggk g k g k 1 g k g k g k 1 g k gk T T g k 1 gk gk 1 g k 1 0 1 g k 1 2 T T 0 gk gk gk gk gk 2
2 f x 0 2 0
100]T
0
0 50 0 1 50
f x
2
1
1 2 0
3 牛顿型方法
例2(续)
因为f(x1, x2)是二次型函数,用牛顿迭代公式,一步就可达到最优点:
1 T x 2 2 2 0
3 牛顿型方法
牛顿法是用目标函数二阶偏导数的间接方法,因类似 于解非线性方程的牛顿法而得名,又叫“二阶导数法”、 “拟线性法”。 将目标函数泰勒展开,保留到二次项,原目标函数就 转变为下列二次型函数: 1 f(x) (x)= f(xk)+f(xk)T(x xk)+ 2 (xxk)T2f(xk)(xxk) 2f(xk)为f(x)在xk点处的海赛矩阵。 f 为求极值点,对上式求偏导数,并 x =0,得到 令 f(xk)+2f(xk)(x* xk) = 0 对于二次型函数,从理论上来说,牛顿法从任选初始 点一步就能收敛到最优点。但对于目标函数不是二次型, 或计算机截断误差的影响,往往需要多次迭代才能得到最 优点。牛顿法的迭代公式为: xk+1 = xk [2f(xk)]-1f(xk) (k=0, 1, 2, · · · )
T
0 T 4 100 1 50
T
1 1 2 2 4 0 100 0 4 100 50 2 f x 0
0 来自百度文库
T
对照梯度法和牛顿法迭代公式,可以看出只相差一项 海赛矩阵的逆矩阵。因此,牛顿法是对梯度法的进一步修 正。事实上,梯度法是对目标函数f(x)在点xk的一阶(线性) 近似,而牛顿法是对f(x)在点xk 的二阶(二次)近似。
k 1
T g k g k 1 g k T gk 1 g k 1
5 共轭梯度法
共轭梯度法(Fletcher-Reeves)的算法
1)给定变量个数n,选取收敛精度和初始点x0,计算x0点 的梯度 g0,取第一次搜索方向d0 = -g0 ,令k = 0。 2)沿dk方向作一维搜索,得到 xk+1点,xk+1= xk+k dk 。 k k +1。 3)计算当前点的梯度 gk ,若迭代收敛准则 gk 成立, 则结束迭代,输出当前点作为最优点。否则,若k=n,dk= -gk,k0,转2)进行新一轮迭代。若k≠n,dk按下式计算: dk=-gk+k-1dk-1,其中
2 最速下降法
(1) 最速下降法以负梯度方向作为搜索方向并作一维搜索,因 此又称为“梯度法”,属于求导数的间接法。它的基本思想早 在1847年就已提出。尽管它本身不再被认为是一种有效的方法, 但它是许多优化方法尤其是二次收敛方法的基础。 各点的梯度一般各不相同,因此“最速下降方向”仅对某 一点附近而言,它具有局部性质。 当作一维搜索时,搜索方向是与目标函数等值线相切的, 而切点的梯度方向是与等值线正交的。因此,相邻两次搜索方 向相互垂直,搜索路径呈严重的“之”字形,特别是目标函数 接近二次型时更为明显。 可以利用梯度矢量在极值点为零这一重要性质设立收敛准 则 f(x*)
gk g k 1
2 2
在迭代中第一次搜索方向 d0 取 x0 的负梯度方向-g0。
5 共轭梯度法
与梯度法相比,由于修正项kdk 改进了收敛性,使搜 索方向共轭,故能以较少的迭代次数收敛到最优点。 由于计算梯度时很可能出现误差,使搜索方向不能完 全保持共轭,同时目标函数也可能不是正定的二次函数, 因此n次迭代后一般都不会达到精确的极小点。可在每n次 迭代后令 d0 = dn = -gn 作为下一轮迭代的第一次搜索方向,重新开始新一轮迭代。 上述共轭梯度法又称 Fletcher-Reeves 共轭梯度法。而 PRP(Polak-Ribiere-Poiyak)共轭梯度法按下式计算k-1:
5 共轭梯度法
共轭梯度法的迭代公式
设从xk出发,沿dk=-gk 方向作一维搜索到 xk+1点,并算 出xk+1点的梯度方向gk+1。由于gk+1 是沿等直面在该点的法 线方向,而dk是沿等直面在该点的切线方向,故(dk)Tgk+1= 0,即 gk+1Tgk=0,gk+1 与 gk 正交。 为了在 gk+1 和 gk 构成的正交系中确定共轭方向dk+1,令 dk+1 = -gk+1+k dk 即把共轭方向dk+1看成-gk+1与 dk的线性组合,k 为待定 系数。要使dk+1与dk 共轭,就应使 (dk+1)TGdk =0 而 (dk+1)TGdk =(-gk+1+kdk)TGdk =(-gk+1 kgk)TG(-gk ) =gk+1TGgk+k gkTGgk =0
f xi
i i 1,2,, n
2 最速下降法
例1 求 f(x1, x2) = x12+25x22 的极小点。
取初始点 x0 =[2 2]T,则 f(x0) =104 f(x0) =[4 100]T 沿负梯度即[-4 -100]T方向进行一维搜索,有 x1 = x0 0 f(x0) =[2 2]T 0[4 100]T = [2 40 2 1000]T 在x1点 f(x1, x2) =(2 40)2+25(2 1000)2 =(0) 令’(0) = 0,有 2(2 40) (-4)+50(2 1000) (-100) = -16+320 10000 +5000000 = 5000320 10016 = 0 0 = 0.020030718 得到第一次迭代的结果: x1 = [2 40 2 1000]T= [1.919877 -3.0718034-2]T f(x1) =3.686164 经过十次迭代,得到最优解: x* = [0 0]T f(x* ) =0
4 共轭方向及共轭方向法
共轭方向的概念
二次正定函数的一般形式为:
f x 1 T x Gx bT x c 2
式中,G为 nn 阶对称正定矩阵,b=[b1, b2, ,bn]T 为常矢 量,c为常数。
对于矩阵 G,若存在两个 n 维非零矢量 d0 和 d1,使 ( d0)TGd1=0 成立,则称 d0 和d1 是 G 共轭方向 (或 G共轭矢量 ) 。 特别地,当G为单位矩阵时,(d0)Td1=0 ,则称d0 和d1是正 交的。矢量正交是矢量共轭的特例。
5 共轭梯度法
因此,下一个搜索方向确定为
d k 1 gk 1 k d k gk 1 gk 1 gk
2 2
dk
同样 ,可以证明按上述公式确定的 dk+2 与 dk+1 为共轭方 向,依此类推而确定的 n个dk (k=0,1,2,…,n-1)方向为一组 关于G的共轭向量系。上述结论也可由数学归纳法证明。 最后,我们得到共轭梯度法的迭代公式为 x k+1 = x k+k dk 式中 dk = -gk+k-1 dk-1
2 最速下降法
或 数值微分 数值微分在优化中是一个非常重要的问题,对优化结 果影响较大。具体作法是用 f 代替 f ,其中 x x f = f f0 式中,f0 = f(x0),是计算偏导数那点 x0 处的目标函数值; f = f(x) = f(x1, x2, · · · , xi+xi, · · · , xn),是其它变量保持不变,xi 变化为 xi+xi 时的目标函数值。 f f 为使 尽可能接近 ,xi 应取得小一些,但过小又 x x 会引起舍入误差。一般可取 xi = 0.001(ui li) ui 和 li 分别为变量 xi 的估计上限和下限。
4 共轭方向及共轭方向法
共轭方向法
共轭方向是一大类方法,包括共轭梯度法,Powell法等。 其中一种产生共轭方向的方法为格拉姆-斯密特 (Gram- Schmidt)法。 比较有效的共轭方向法都尽量避免计算海赛矩阵。
5 共轭梯度法
共轭梯度法的共轭方向
二次正定函数 f x x T Gx bT x c 在 xk 点的梯度为 2 k gk = Gx + b 前面已给出优化算法的搜索迭代公式: xk+1= xk+kdk 若进行一维搜索,k 则为最优步长因子。 xk 和xk+1 两点负梯度方向的差为 gk+1 gk = G(xk+1 xk) = G(xk+kdk xk)=k Gdk 若dk+1 和 dk 是G 共轭方向,则 (dk+1)TG dk = 0 用(dk+1)T前乘 (gk+1 gk),有 (dk+1)T(gk+1 gk) = k(dk+1)TGdk = 0 即 dk+1与(gk+1 gk)正交。
4 共轭方向及共轭方向法
共轭方向的性质
二次收敛性: 如 n=2,二次函数的等值线为一同心椭圆族,它的极 小点就是椭圆中心。该椭圆族有一重要性质,即两平行线 与椭圆的两个切点的连线必过椭圆族的中心,且连线与平 行线的方向是共轭的(见下图)。
x2
x1
4 共轭方向及共轭方向法
因此,从任一点出发,沿任意方向作一维搜索找到的 极小点就是椭圆的切点,再沿共轭方向作一维搜索找到的 极小点就是椭圆中心也就是目标函数的极小点。这说明, 对二维二次正定目标函数只要沿共轭方向作两次一维搜索 就可得到其极小点。 推广到n维,若采用共轭方向作为搜索方向,任何一个 具有极小值的n维二次正定目标函数,理论上最多只要n步 就能达到极小点且与所用搜索方向的次序无关。这种性质 称为“二次收敛性”,利用这种性质的优化方法称为二次 收敛方法。
3 牛顿型方法
为防止牛顿法收敛到极大点而不是极小点,可在迭代 过程中作一维搜索,形成改进的牛顿法—“阻尼牛顿法”。 牛顿法的最大缺点是需要计算海赛矩阵,并求其逆矩阵, 计算量很大。 例2 用牛顿法求 f(x1, x2) = x12+25x22 的极小点。
取 x0 = [2 2]T f(x0) = [2x10 50x20] T = [4
第八章 无约束多维问题的 最优化方法
1 概述 2 最速下降法
3 牛顿型方法
4 共轭方向及共轭方向法 5 共轭梯度法
6 变尺度法
7 坐标轮换法
8 鲍威尔法
9 单形替换法
1 概 述
无约束优化方法只考虑搜索的适行性,结合罚函数法, 也可解约束优化问题。目前,成熟可靠的优化算法中,无 约束优化方法占多数,总体上无约束优化方法的有效性及 实用性都优于约束优化方法。 无约束优化方法可分为两大类:1)不求导数的直接法, 主要有随机方法和直接搜索方法; 2)求导数的间接法,按 所求导数的最高阶数又可分为一阶方法和二阶方法。二阶 方法很少采用。 优化算法的一般搜索迭代公式 xk+1= xk+xk xk+1= xk+kdk 注意,在搜索迭代中,由于一维搜索需增加大量计算, 因此,并不是所有优化方法都采用一维搜索。
1
5 共轭梯度法
上式表明:从 xk 开始沿 dk 方向进行一维搜索,其终点 xk+1与始点xk 两点的梯度之差 gk+1 gk与dk 的共轭方向dk+1 正交。因此,利用这个性质,不必计算矩阵G 即可求出共 轭梯度法的共轭方向。
共轭梯度法的几何说明
dk+1 Xk+2
xk
xk+1
gk
dk gk+1 gk+1 gk
5 共轭梯度法
因此
T gk 1Ggk k T g k Ggk
前面已推导出 gk+1 gk = k Gdk,即 gk+1 gk = -kGgk
或
Ggk g k 1 g k
k
代入上式得
T T T T gk Gg g g g g g g 1 k k 1 k 1 k k 1 k 1 k 1 g k k T T T T g k Ggk g k g k 1 g k g k g k 1 g k gk T T g k 1 gk gk 1 g k 1 0 1 g k 1 2 T T 0 gk gk gk gk gk 2
2 f x 0 2 0
100]T
0
0 50 0 1 50
f x
2
1
1 2 0
3 牛顿型方法
例2(续)
因为f(x1, x2)是二次型函数,用牛顿迭代公式,一步就可达到最优点:
1 T x 2 2 2 0
3 牛顿型方法
牛顿法是用目标函数二阶偏导数的间接方法,因类似 于解非线性方程的牛顿法而得名,又叫“二阶导数法”、 “拟线性法”。 将目标函数泰勒展开,保留到二次项,原目标函数就 转变为下列二次型函数: 1 f(x) (x)= f(xk)+f(xk)T(x xk)+ 2 (xxk)T2f(xk)(xxk) 2f(xk)为f(x)在xk点处的海赛矩阵。 f 为求极值点,对上式求偏导数,并 x =0,得到 令 f(xk)+2f(xk)(x* xk) = 0 对于二次型函数,从理论上来说,牛顿法从任选初始 点一步就能收敛到最优点。但对于目标函数不是二次型, 或计算机截断误差的影响,往往需要多次迭代才能得到最 优点。牛顿法的迭代公式为: xk+1 = xk [2f(xk)]-1f(xk) (k=0, 1, 2, · · · )
T
0 T 4 100 1 50
T
1 1 2 2 4 0 100 0 4 100 50 2 f x 0
0 来自百度文库
T
对照梯度法和牛顿法迭代公式,可以看出只相差一项 海赛矩阵的逆矩阵。因此,牛顿法是对梯度法的进一步修 正。事实上,梯度法是对目标函数f(x)在点xk的一阶(线性) 近似,而牛顿法是对f(x)在点xk 的二阶(二次)近似。
k 1
T g k g k 1 g k T gk 1 g k 1
5 共轭梯度法
共轭梯度法(Fletcher-Reeves)的算法
1)给定变量个数n,选取收敛精度和初始点x0,计算x0点 的梯度 g0,取第一次搜索方向d0 = -g0 ,令k = 0。 2)沿dk方向作一维搜索,得到 xk+1点,xk+1= xk+k dk 。 k k +1。 3)计算当前点的梯度 gk ,若迭代收敛准则 gk 成立, 则结束迭代,输出当前点作为最优点。否则,若k=n,dk= -gk,k0,转2)进行新一轮迭代。若k≠n,dk按下式计算: dk=-gk+k-1dk-1,其中
2 最速下降法
(1) 最速下降法以负梯度方向作为搜索方向并作一维搜索,因 此又称为“梯度法”,属于求导数的间接法。它的基本思想早 在1847年就已提出。尽管它本身不再被认为是一种有效的方法, 但它是许多优化方法尤其是二次收敛方法的基础。 各点的梯度一般各不相同,因此“最速下降方向”仅对某 一点附近而言,它具有局部性质。 当作一维搜索时,搜索方向是与目标函数等值线相切的, 而切点的梯度方向是与等值线正交的。因此,相邻两次搜索方 向相互垂直,搜索路径呈严重的“之”字形,特别是目标函数 接近二次型时更为明显。 可以利用梯度矢量在极值点为零这一重要性质设立收敛准 则 f(x*)