• 无约束问题与最优解
  • 最优性条件
  • 一维线性搜索
    • 精确线性搜索
    • 直接搜索法
    • 非精确一维搜索法
  • 下降算法的收敛性与收敛速度
  • 无约束规划
    • 最速下降法
    • Newton法
      • Newton-最速下降混合算法
      • 阻尼Newton法
      • 拟Newton法
    • 共轭梯度法

无约束问题与最优解

考虑如下最优化问题:

minx∈Rnf(x)minx∈Rnf(x)

\min_{x\in\mathbb{R}^{n}}f(x) 无约束最优化问题的解由局部解和全局解两种,而实际上可行的往往只有局部解(或严格局部解)。如不加说明我们讨论的都是局部解。
局部解定义
设 x∗∈Rnx∗∈Rnx^{*}\in\mathbb{R}^{n} ,若存在 x∗x∗x^{*} 的 δ(δ>0)δ(δ>0)\delta(\delta>0) 邻域

Nδ(x∗)={x|∥x−x∗∥<δ}Nδ(x∗)={x|‖x−x∗‖<δ}

N_{\delta}(x^{*})=\{x | \|x-x^{*}\|使得

f(x)≥f(x∗),∀x∈Nδ(x∗)f(x)≥f(x∗),∀x∈Nδ(x∗)

f(x)\geq f(x^{*}),\forall x\in N_{\delta}(x^{*})则称 x∗x∗x^{*} 为 f(x)f(x)f(x) 的局部解;若

f(x)>f(x∗),∀x∈Nδ(x∗)f(x)>f(x∗),∀x∈Nδ(x∗)

f(x)> f(x^{*}),\forall x\in N_{\delta}(x^{*})则称 x∗x∗x^{*} 为 f(x)f(x)f(x) 的严格局部解。

最优性条件

一阶必要条件
设 f(x)f(x)f(x) 一阶连续可微,若 x∗x∗x^{*} 是一个局部解,则:∇f(x∗)=0∇f(x∗)=0\nabla f(x^{*})=0 。即 x∗x∗x^{*} 在任何方向上的方向导数均为零,该点所处的切平面是水平的。
二阶必要条件
设 f(x)f(x)f(x) 二阶连续可微,若 x∗x∗x^{*} 是一个局部解,则:

∇f(x∗)=0,∇2f(x∗) 为半正定∇f(x∗)=0,∇2f(x∗)为半正定

\nabla f(x^{*})=0, \nabla^{2}f(x^{*})\text{ 为半正定}即在局部解 x∗x∗x^{*} 处二阶方向导数非负。满足 ∇f(x∗)=0∇f(x∗)=0\nabla f(x^{*})=0 的点 x∗x∗x^{*} 被称为函数 fff 的平稳点或驻点,不是极小点也不是极大点的平稳点被称为函数的鞍点
二阶充分条件
设 f(x)" role="presentation">f(x)f(x)f(x) 二阶连续可微,且

∇f(x∗)=0,∇2f(x∗) 为正定∇f(x∗)=0,∇2f(x∗)为正定

\nabla f(x^{*})=0, \nabla^{2}f(x^{*})\text{ 为正定}则 x∗x∗x^{*} 是无约束问题的一个严格局部解。
凸充分性定理
若 f:Rn→Rf:Rn→Rf:\mathbb{R}^{n}\to\mathbb{R} 是凸函数,且 f(x)f(x)f(x) 的一阶连续可微的,则 x∗x∗x^{*} 是全局解得充分必要条件是 ∇f(x∗)=0∇f(x∗)=0\nabla f(x^{*})=0 。

一维线性搜索

求解最优化问题的关键是构造一个点列 {xk}{xk}\{x^{k}\} 使其满足

limk→∞f(xk)=f(x∗)=minx∈Rf(x),limk→∞xk=x∗limk→∞f(xk)=f(x∗)=minx∈Rf(x),limk→∞xk=x∗

\lim_{k\to\infty}f(x^{k})=f(x^{*})=\min_{x\in\mathbb{R}}f(x),\quad \lim_{k\to\infty}x^{k}=x^{*} 称 x∗x∗x^{*} 为问题的解, 称 {xk}{xk}\{x^{k}\} 为 极小化点列,其构造方法一般采用逐步构造法:

xk+1=xk+αkdk,k=0,1,2,…xk+1=xk+αkdk,k=0,1,2,…

x^{k+1}=x^{k}+\alpha_{k}d^{k},\quad k=0,1,2,\dots 称 dkdkd^{k} 为 搜索方向, akaka_{k} 为 步长。一维搜索问题即讨论如何确定步长的问题,下面简要介绍几种搜索方法,及其特色,但对算法本身不予详细介绍。

精确线性搜索

如果有 αkαk\alpha_{k} 使得

ϕ(αk)=minα≥0{ϕ(α)=f(xk+αdk)}ϕ(αk)=minα≥0{ϕ(α)=f(xk+αdk)}

\phi(\alpha_{k})=\min_{\alpha\geq 0}\{\phi(\alpha) = f(x^{k}+\alpha d^{k})\} 则称该搜索为精确线性搜索,称 αkαk\alpha_{k} 为最优步长。该方法有重要理论价值,但除了 f(x)f(x)f(x) 是二次函数的特殊情况外,确定精确极小点是很困难的。

直接搜索法

首先介绍两个概念。
搜索区间
设 α∗α∗\alpha^{*} 是 ϕ(α)ϕ(α)\phi(\alpha) 的极小点,若存在区间 [a,b][a,b][a,b]使得 α∗∈[a.b]α∗∈[a.b]\alpha^{*}\in[a.b],则称 [a,b][a,b][a,b]为 ϕ(α)ϕ(α)\phi(\alpha) 的搜索区间。确定搜索区间可采用进退法。从一点出发确定函数值“高-低-高”的4点,一个方向不成功就退回来反方向寻找。
单峰函数
设函数 ϕ(α)ϕ(α)\phi(\alpha) 在区间 [a,b][a,b][a,b] 内存在极小点 α∗∈(a.b)α∗∈(a.b)\alpha^{*}\in(a.b),如果对于任意 α1,α2α1,α2\alpha_{1},\alpha_{2} 满足:

  1. 当 α1<α2≤α∗α1<α2≤α∗\alpha_{1}时,有 ϕ(α1)>ϕ(α2)ϕ(α1)>ϕ(α2)\phi(\alpha_{1})>\phi(\alpha_{2});
  2. 当 α∗≤α1<α2α∗≤α1<α2\alpha^{*}\leq\alpha_{1}时,有 ϕ(α1)<ϕ(α2)ϕ(α1)<ϕ(α2)\phi(\alpha_{1});

则 ϕ(α)ϕ(α)\phi(\alpha) 在区间 [a,b][a,b][a,b] 上是单峰函数。

假设 f(x)f(x)f(x) 在得到的搜索区间上是单峰函数,我们可以通过 0.618法直接搜索近似最优步长。0.618法的基本思想是通过取试探点进行函数值比较,使得包含极小点的搜索区间不断减小,每次迭代极小区间的收缩比为0.618,即以线性速度收敛的极小点附近。

非精确一维搜索法

0.618法的计算量比较大,我们可 适当放松对 αkαk\alpha_{k} 的要求,使目标函数在迭代的每一步都充分下降即可。非精确一维搜索的基本思想是求 μμ\mu 使得 ϕ(μ)<ϕ(0)ϕ(μ)<ϕ(0)\phi(\mu) ,但不希望 μμ\mu 值过大否则会引起点列的大幅度摆动,也不希望 μμ\mu 值过小,否则会使得点列在未达到 x∗x∗x^{*} 之前没有进展。常见的方法包括:Goldstein方法Armijo方法Wolfe-Powell方法

下降算法的收敛性与收敛速度

下降算法的一般迭代格式如下:

  1. 给定初始点 x1x1x^{1}, k:=1k:=1k:=1;
  2. 确定局部下降方向 dkdkd^{k} 使得
    ∇f(xk)Tdk<0∇f(xk)Tdk<0

    \nabla f(x^{k})^{T}d^{k}

  3. 确定步长 αkαk\alpha_{k}使得
    f(xk+αkdk)<f(xk)f(xk+αkdk)<f(xk)

    f(x^{k}+\alpha_{k}d^{k})

  4. 令 xk+1=xk+αkdkxk+1=xk+αkdkx^{k+1}=x^{k}+\alpha_{k}d^{k} ;
  5. 若 ∇f(xk+1)=0∇f(xk+1)=0\nabla f(x^{k+1})=0则停,否则令 k:=k+1k:=k+1k:=k+1,转步骤1。

若上述算法可行,须解决下述问题:

  1. 如何确定搜索方向?
  2. 如何进行一维搜索确定每一步步长?
  3. 如果确定当前点的终止准则?

问题2已在上一小节讨论过,另外两个问题见下文。下降算法产生极小化序列 {xk}{xk}\{x^{k}\},对应的目标函数序列 {f(xk)}{f(xk)}\{f(x^{k})\} 是单调递减的。所谓收敛,是指序列{xk}{xk}\{x^{k}\}或它的一个子列满足 limk→∞xk=x∗limk→∞xk=x∗\lim_{k\to\infty}x^{k}=x^{*} 。通常获得这样的结果很难。若对于某些算法来说,只有当初始点靠近极小点 x∗x∗x^{*} 时,才能保证序列{xk}{xk}\{x^{k}\}收敛到极小点,则称这类算法为局部收敛。反之,若对于任意初始点产生的序列收敛到极小点,这类算法则被称为全局收敛

为了使极小化序列能够收敛到一个平稳点,通常要求目标函数能够“充分”下降。由 f(x)f(x)f(x) 的一阶Taylor展开式:

f(xk+αkdk)=f(xk)+αk∇f(xk)Tdk+o(∥αkdk∥)f(xk+αkdk)=f(xk)+αk∇f(xk)Tdk+o(‖αkdk‖)

f(x^{k}+\alpha_{k}d^{k})=f(x^{k})+\alpha_{k}\nabla f(x^{k})^{T}d^{k}+o(\|\alpha_{k}d^{k}\|) 可知,当 dkdkd^{k} 与 ∇f(xk)∇f(xk)\nabla f(x^{k}) 接近于正交时, f(x)f(x)f(x) 下降很少,因此要求其二者之间的夹角远离正交方向,即存在 u¯>0u¯>0\bar{u}>0 使得:

θk≤π2−u¯,∀kθk≤π2−u¯,∀k

\theta_{k}\leq \frac{\pi}{2}-\bar{u}, \forall k其中

cosθk=−∇f(xk)Tdk∥∇f(xk)∥∥dk∥cos⁡θk=−∇f(xk)Tdk‖∇f(xk)‖‖dk‖

\cos\theta_{k}=\frac{-\nabla f(x^{k})^{T}d^{k}}{\|\nabla f(x^{k})\|\|d^{k}\|}

设序列 {xk}{xk}\{x^{k}\}收敛到 x∗x∗x^{*},若极限

limk→∞∥xk+1−x∗∥∥xk−x∗∥=βlimk→∞‖xk+1−x∗‖‖xk−x∗‖=β

\lim_{k\to\infty}\frac{\|x^{k+1}-x^{*}\|}{\|x^{k}-x^{*}\|}=\beta存在,则当 0<β<10<β<10 时,称 {xk}{xk}\{x^{k}\} 线性收敛;当 β=0β=0\beta=0时,称 {xk}{xk}\{x^{k}\} 超线性收敛;当 β=1β=1\beta =1时,称 {xk}{xk}\{x^{k}\} 次线性收敛。若存在某个 p≥1p≥1p\geq 1,有

limk→∞∥xk+1−x∗∥∥xk−x∗∥p=β≤+∞limk→∞‖xk+1−x∗‖‖xk−x∗‖p=β≤+∞

\lim_{k\to\infty}\frac{\|x^{k+1}-x^{*}\|}{\|x^{k}-x^{*}\|^{p}}=\beta\leq+\infty则称 {xk}{xk}\{x^{k}\}为 ppp 阶收敛。当 p&gt;1" role="presentation">p>1p>1p>1时,ppp 阶收敛必为超线性收敛,反之不一定成立。最优化算法中通常考虑线性收敛、超线性收敛和二阶收敛。

无约束规划

假设我们要考虑的无约束规划问题为:

minx∈Rnf(x),f∈C1" role="presentation">minx∈Rnf(x),f∈C1minx∈Rnf(x),f∈C1

\min_{x\in\mathbb{R}^{n}}f(x),\quad f\in \mathbb{C}^{1}其中 C1C1\mathbb{C}^{1} 表示一阶连续可微函数的全体。下面介绍三种规划方法,仅简述其规划思想与执行步骤,不做具体推导。

最速下降法

根据Taylor级数展开,当 f(x)f(x)f(x) 在某点 xkxkx^{k} 处连续可微,且 ∇f(xk)≠0∇f(xk)≠0\nabla f(x^{k})\neq 0 时,我们可得:

f(xk+adk)=f(xk)+a∇f(xk)Tdk+o(∥adk∥)f(xk+adk)=f(xk)+a∇f(xk)Tdk+o(‖adk‖)

f(x^{k}+ad^{k})=f(x^{k})+a\nabla f(x^{k})^{T}d^{k}+o(\|ad^{k}\|)其中 a>0a>0a>0,dkdkd^{k} 是一个确定的方向向量。若向量 dkdkd^{k} 满足∇f(xk)dk<0∇f(xk)dk<0\nabla f(x^{k})d^{k},则 dkdkd^{k} 是函数 f(x)f(x)f(x) 在 xkxkx^{k} 处的下降方向。进一步改写上式:

f(xk+adk)=f(xk)−a(−∇f(xk)Tdk)+o(∥adk∥)f(xk+adk)=f(xk)−a(−∇f(xk)Tdk)+o(‖adk‖)

f(x^{k}+ad^{k})=f(x^{k})-a(-\nabla f(x^{k})^{T}d^{k})+o(\|ad^{k}\|)可见若 −∇f(xk)Tdk−∇f(xk)Tdk-\nabla f(x^{k})^{T}d^{k} 越大,则下降幅度越大。由

−∇f(xk)Tdk=∥−∇f(xk)T∥∥dk∥cosθk−∇f(xk)Tdk=‖−∇f(xk)T‖‖dk‖cos⁡θk

-\nabla f(x^{k})^{T}d^{k}=\|-\nabla f(x^{k})^{T}\|\|d^{k}\|\cos\theta_{k} 可知取 θk=0θk=0\theta_{k}=0 时,也就是 dk=−∇f(xk)dk=−∇f(xk)d^{k}=-\nabla f(x^{k}) 时达到最大值。因此在 xkxkx^{k} 点处的搜索方向应取 dk=−∇f(xk)dk=−∇f(xk)d^{k}=-\nabla f(x^{k}) 。

步骤:

  1. 选定初始点 x1x1x^{1} 和精度要求 ϵ>1ϵ>1\epsilon >1 ,取 k=1k=1k=1。
  2. 若 ∥∇f(xk)∥<ϵ‖∇f(xk)‖<ϵ\|\nabla f(x^{k})\|,则停止,取 x∗=xkx∗=xkx^{*}=x^{k} ;否则令 dk=−∇f(xk)dk=−∇f(xk)d^{k}=-\nabla f(x^{k}) 。
  3. 在 xkxkx^{k} 处沿方向 dkdkd^{k} 做线性搜索,得 xk+1=xk+akdkxk+1=xk+akdkx^{k+1} = x^{k}+a_{k}d^{k},k=k+1k=k+1k=k+1,转步骤2。

在第3步,采用精确线性搜索,即:

ak=argminf(xk+adk)ak=arg⁡minf(xk+adk)

a_{k}=\arg\min f(x^{k}+ad^{k}),可得:

df(xk+adk)da∣∣∣a=ak=(dk)T∇f(xk+1)=0df(xk+adk)da|a=ak=(dk)T∇f(xk+1)=0

\left.\frac{\mathrm{d}f(x^{k}+ad^{k})}{\mathrm{d}a}\right|_{a=a_{k}}=(d^{k})^{T}\nabla f(x^{k+1})=0可见 dkdkd^{k} 与 dk+1dk+1d^{k+1} 正交。

Newton法

Newton法利用二次近似多项式的极值点求法给出原函数极值点的求法。本节考虑 f(x)f(x)f(x) 二次可微的情形。

利用Taylor展开,考虑在 xkxkx^{k} 点处的二次近似多项式:

f(x)≈f(xk)+∇f(xk)T(x−xk)+12(x−xk)T∇2f(xk)(x−xk)f(x)≈f(xk)+∇f(xk)T(x−xk)+12(x−xk)T∇2f(xk)(x−xk)

f(x)\approx f(x^{k})+\nabla f(x^{k})^{T}(x-x^{k})+\frac{1}{2}(x-x_{k})^{T}\nabla^{2}f(x^{k})(x-x^{k})令其导数为零,得到:

∇f(xk)+∇2f(xk)(x−xk)=0∇f(xk)+∇2f(xk)(x−xk)=0

\nabla f(x^{k})+\nabla^{2}f(x^{k})(x-x^{k})=0当 ∇2f(xk)∇2f(xk)\nabla^{2}f(x^{k})(Hesse矩阵)非奇异时:

x=xk−[∇2f(xk)]−1∇f(xk)x=xk−[∇2f(xk)]−1∇f(xk)

x=x^{k}-[\nabla^{2}f(x^{k})]^{-1}\nabla f(x^{k})上式称为 Newton 迭代公式,方便起见,我们将上式改写为

xk+1=xk+dkxk+1=xk+dk

x^{k+1}=x^{k}+d^{k}其中 dkdkd^{k} 是线性方程组

∇2f(xk)d=−∇f(xk)∇2f(xk)d=−∇f(xk)

\nabla^{2}f(x^{k})d=-\nabla f(x^{k})的解向量。

步骤:

  1. 选定初始点 x1x1x^{1} 和精度要求 ϵ>0ϵ>0\epsilon >0 ,取 k=1k=1k=1。
  2. 若 ∥∇f(xk)∥<ϵ‖∇f(xk)‖<ϵ\|\nabla f(x^{k})\|,则停止,取 x∗=xkx∗=xkx^{*}=x^{k} ;否则求解线性方程组:∇2f(xk)d=−∇f(xk)∇2f(xk)d=−∇f(xk)\nabla^{2}f(x^{k})d=-\nabla f(x^{k}) 得到 dkdkd^{k}。
  3. 置 xk+1=xk+dk,k=k+1xk+1=xk+dk,k=k+1x^{k+1}=x^{k}+d^{k},\quad k=k+1。转到步骤2。

Newton 法求解无约束优化问题会出现以下情况:

  1. 收敛到极小点;
  2. 收敛到鞍点;
  3. Hesse矩阵奇异,无法继续计算。

其优点是收敛速度快,但是每一步不能保证目标函数值总是下降的。使用Newton法时我们已经假设了初始点足够接近极小点,然而实际上我们并不知道极小点在什么地方,因此一般不直接使用。修正的Newton法有多种,这里只介绍两种方法。

Newton-最速下降混合算法

当 Hessian 矩阵正定时,采用 Newton 法得到的搜索方向搜索;当 Hessian 矩阵非正定时,采用负梯度方向搜索。
步骤:

  1. 选定初始点 x1x1x^{1} 和精度要求 ϵ>0ϵ>0\epsilon >0 ,取 k=1k=1k=1。
  2. 若 ∥∇f(xk)∥<ϵ‖∇f(xk)‖<ϵ\|\nabla f(x^{k})\|,则停止,取 x∗=xkx∗=xkx^{*}=x^{k} ;否则求解线性方程组:∇2f(xk)d=−∇f(xk)∇2f(xk)d=−∇f(xk)\nabla^{2}f(x^{k})d=-\nabla f(x^{k}) 得到 dkdkd^{k}。
  3. 若 dkdkd^{k} 有解,即 Hessian 矩阵为正定阵,且满足 ∇f(xk)dk<0∇f(xk)dk<0\nabla f(x^{k})d^{k},转下一步;否则,取 dk=−∇f(xk)dk=−∇f(xk)d^{k}=-\nabla f(x^{k}),转下一步。
  4. 置 xk+1=xk+dk,k=k+1xk+1=xk+dk,k=k+1x^{k+1}=x^{k}+d^{k},\quad k=k+1。转到步骤2。

阻尼Newton法

将非正定的 Hessian 矩阵通过加入阻尼因子编程 Hessian 矩阵,即选取参数 μkμk\mu^{k} 使得矩阵 Ak=∇2f(xk)+μkIAk=∇2f(xk)+μkIA^{k}=\nabla^{2}f(x^{k})+\mu^{k}I 正定。步骤与上一算法类似,只是步骤2有所不同,此处从略。

拟Newton法

拟Newton法用来解决Newton法中潜在的Hessian矩阵不正定、Hessian矩阵计算量过大的问题。其基本思想是不直接计算Hessian矩阵,而是通过逼近的方法寻找近似矩阵。近似矩阵的找法很多,如利用秩1矩阵秩2矩阵近似。此处暂时不做详细推导,敬请期待。

共轭梯度法

共轭梯度法用来求解正定二次规划问题,它具有如下性质:

  1. 搜素方向是下降方向;
  2. 不必计算Hesse矩阵,只计算函数值和梯度;
  3. 具有二次终止性。

这里不具体推导共轭梯度法的收敛原理,仅介绍其思想。设目标函数为

f(x)=12xTx+rTx+δf(x)=12xTx+rTx+δ

f(x)=\frac{1}{2}x^{T}x+r^{T}x+\delta 其中 x=(x1,x2,…,xn)T,r=(r1,r2,…,rn)T∈Rn,δ∈Rnx=(x1,x2,…,xn)T,r=(r1,r2,…,rn)T∈Rn,δ∈Rnx=(x_{1},x_{2},\dots,x^{n})^{T}, r=(r_{1},r_{2},\dots,r_{n})^{T}\in\mathbb{R}^{n},\delta\in\mathbb{R}^{n}。设 q1,q2,…,qkq1,q2,…,qkq^{1}, q^{2},\dots,q^{k} 是 k(k≤n)k(k≤n)k (k\leq n) 个两两正交的非零向量,从任意初始点出发,一次沿 q1,q2,…,qkq1,q2,…,qkq^{1}, q^{2},\dots,q^{k} 作精确一维搜索,得到 x2,x3,…,xk+1x2,x3,…,xk+1x^{2}, x^{3},\dots,x^{k+1} 则 xk+1xk+1x^{k+1} 是 f(x)f(x)f(x) 在仿射集

X¯k={x=x1+∑i=1kα^iqi|α^i∈R,i=1,2,…,k}X¯k={x=x1+∑i=1kα^iqi|α^i∈R,i=1,2,…,k}

\bar{X}^{k}=\{x=x^{1}+\sum_{i=1}^{k}\hat{\alpha}_{i}q^{i} | \hat{\alpha}_{i}\in\mathbb{R}, i=1,2,\dots,k\}上的唯一极小点。当 k=nk=nk=n 时,xk+1xk+1x^{k+1} 是 f(x)f(x)f(x) 在整个空间上的唯一极小点。

考虑一般正定二次函数:

f(x)=12xTGx+rTx+δf(x)=12xTGx+rTx+δ

f(x)=\frac{1}{2}x^{T}Gx+r^{T}x+\delta 其中 GGG 是正定矩阵。d1,d2,…,dk" role="presentation">d1,d2,…,dkd1,d2,…,dkd^{1}, d^{2}, \dots, d^{k} 是 GGG 的 k(k≤n)" role="presentation">k(k≤n)k(k≤n)k (k\leq n) 个非零共轭方向,从任意初始点 x1x1x^{1} 出发,一次沿 di≠0(i=1,2,…,k)di≠0(i=1,2,…,k)d^{i}\neq 0 (i=1,2,\dots,k) 作一维精确搜索,得到 x2,x3,…,xk+1x2,x3,…,xk+1x^{2}, x^{3},\dots,x^{k+1} 则 xk+1xk+1x^{k+1} 是 f(x)f(x)f(x) 在仿射集

Xk={x=x1+∑i=1kαidi|αi∈R,i=1,2,…,k}Xk={x=x1+∑i=1kαidi|αi∈R,i=1,2,…,k}

X^{k}=\{ x=x^{1}+\sum_{i=1}^{k}\alpha_{i}d^{i} | \alpha_{i}\in\mathbb{R}, i=1,2,\dots,k \} 上的唯一极小点。当 k=nk=nk=n 时,xk+1xk+1x^{k+1} 是 f(x)f(x)f(x) 在整个空间上的唯一极小点。且此时:

⟨∇f(xk+1),di⟩=0,i=1,2,…,k⟨∇f(xk+1),di⟩=0,i=1,2,…,k

\langle \nabla f(x^{k+1}), d^{i}\rangle=0, i=1,2,\dots,k 上述结论被称为扩展子空间定理

步骤:

  1. 选定初始点 x1x1x^{1} 和精度要求 ϵ>1ϵ>1\epsilon >1 ,取 k=1k=1k=1。
  2. 若 ∥∇f(xk)∥<ϵ‖∇f(xk)‖<ϵ\|\nabla f(x^{k})\|,则停止,取 x∗=xkx∗=xkx^{*}=x^{k} ;否则,置:
    dk=−∇f(xk)+βk−1dk−1dk=−∇f(xk)+βk−1dk−1

    d^{k}=-\nabla f(x^{k})+\beta_{k-1}d^{k-1}其中(Pulak-Ribiere-Polyak(PRP)公式)

    βk−1=⎧⎩⎨⎪⎪0,∥∇f(xk)∥2∥∇f(xk−1)∥2,k=1k>1βk−1={0,k=1‖∇f(xk)‖2‖∇f(xk−1)‖2,k>1

    \beta_{k-1}=\left\{\begin{aligned} &0,\quad &k=1\\ &\frac{\|\nabla f(x^{k})\|^{2}}{\|\nabla f(x^{k-1})\|^{2}},\quad &k>1 \end{aligned}\right. 或(Fletcher-Reeves(FR)公式)

    βk−1=⎧⎩⎨⎪⎪0,∇f(xk)T(∇f(xk)−∇f(xk−1))∇f(xk−1)T∇f(xk−1),k=1k>1βk−1={0,k=1∇f(xk)T(∇f(xk)−∇f(xk−1))∇f(xk−1)T∇f(xk−1),k>1

    \beta_{k-1}=\left\{\begin{aligned} &0,\quad &k=1\\ &\frac{\nabla f(x^{k})^{T}(\nabla f(x^{k})-\nabla f(x^{k-1}))}{\nabla f(x^{k-1})^{T}\nabla f(x^{k-1})},\quad &k>1 \end{aligned}\right.

  3. 一维搜索,求解一维问题:
    minϕ(α)=f(xk+αd)minϕ(α)=f(xk+αd)

    \min\phi(\alpha)=f(x^{k}+\alpha d)得到 αα\alpha,置

    xk+1=xk+αkdkxk+1=xk+αkdk

    x^{k+1}=x^{k}+\alpha_{k}d^{k}

  4. k=k+1k=k+1k=k+1 ,转到步骤2。

虽然共轭梯度法是根据二次函数导出的,但仍旧适用于一些可微函数。这里需要解决一个问题:共轭梯度法产生的搜索方向是否为下降方向?

定理:设 f(x)f(x)f(x) 具有连续的一阶偏导数,并假设一维搜索是精确的,考虑用共轭梯度法求解无约束问题 minf(x),x∈Rnminf(x),x∈Rn\min f(x), x\in\mathbb{R}^{n}。若 ∇f(xk)≠0∇f(xk)≠0\nabla f(x^{k})\neq 0,则搜索方向 dkdkd^{k} 是 xkxkx^{k} 处的下降方向。

定理:若一维搜索是精确的,则共轭梯度法具有二次终止性。
对于正定二次函数,共轭梯度法至多 nn<script type="math/tex" id="MathJax-Element-220">n</script> 步终止,否则说明目标函数不是正定二次函数,或者说目标函数没有进入一个正定二次函数的区域。

如果你想继续学习凸优化相关知识,请参考下一篇:约束规划问题与凸二次规划

无约束最优化问题的一般结构与规划方法相关推荐

  1. 机器学习之求解无约束最优化问题方法(手推公式版)

    文章目录 前言 1. 基础知识 1.1 方向导数 1.2 梯度 1.3 方向导数与梯度的关系 1.4 泰勒展开公式 1.5 Jacobian矩阵与Hessian矩阵 1.6 正定矩阵 2. 梯度下降法 ...

  2. 梯度下降【无约束最优化问题】

    目录 前言 1.无约束最优化 2.梯度下降 3.梯度下降公式 4.学习率 5.全局最优化 6.梯度下降步骤 7.代码模拟梯度下降 7.1 构建函数和导函数 7.2 函数可视化 7.3 求函数的最小值 ...

  3. 利用 MATLAB 编程实现共轭梯度法求解无约束最优化问题

    本文章包含以下内容 1.FR 共轭梯度法的算法流程图: 2.MATLAB 编写 FR 共轭梯度法求解无约束优化问题的函数,要求采用 黄金分割法精确一维搜索,用数值微分法计算梯度(函数式 M 文件,精度 ...

  4. 利用 MATLAB 编程实现最速下降法求解无约束最优化问题

    本文章包含以下内容 1.画出最速下降法的算法流程图: 2.MATLAB 编写用数值微分法的梯度计算函数(函数式 M 文件): 3.MATLAB 编写最速下降法求解无约束优化问题的函数,要求采用黄金分割 ...

  5. 把有约束最优化问题转化为无约束最优化问题之罚函数法

    与拉格朗日乘数法比较理解 惩罚因子是一个充分大的确定的数,而拉格朗日乘子是个不确定的参数,在求最小值时确定

  6. 牛顿法求解无约束最优化问题

    记泰勒公式 舍去高阶项 在导数为0时候取得极值,令,以上式子可以变形为 继续整理可以得到 通过观察上式,我们可以发现,当给出一个初始点a的时候,我们可以通过泰勒公式用a点的一阶导数与二阶导数还有a的值 ...

  7. 机器人中的数值优化(三)—— 无约束最优化方法基础、线搜索准则

       本系列文章主要是我在学习<数值优化>过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程<机器人中的数值优化>和高立编著的<数值最优化方法>等,本系列文 ...

  8. 无人驾驶汽车系统入门——基于Frenet优化轨迹的无人车动作规划方法

    作者简介:申泽邦(Adam Shan),兰州大学在读硕士研究生,主攻无人驾驶,深度学习: 动作规划动作在无人车规划模块的最底层,它负责根据当前配置和目标配置生成一序列的动作.本文介绍一种基于Frene ...

  9. 计算智能课程设计(遗传算法求解无约束单目标优化问题)

    写在前面 前天写完了基于传递闭包的模糊聚类,今天准备写"遗传算法求解无约束单目标优化问题".昨天和npy玩了一下午,去齐白石艺术学院看了画展,一起在最高处看了夕阳,并在落日前接吻. ...

最新文章

  1. 打造属于自己的underscore系列 ( 一 )
  2. 常用Linux基础命令
  3. 【数字图像处理】五.MFC图像点运算之灰度线性变化、灰度非线性变化、阈值化和均衡化处理详解
  4. 洛谷T172098 子串-substr
  5. 人工智能在线特征系统中的数据存取技术
  6. 【Python】PyMuPDF模块将PDF转换为图片
  7. ES6中 Map 数据结构
  8. Visual Studio提示——DebuggerDisplay
  9. 无需代码绘制出的热力图,0基础小白也能3分钟上手
  10. 数据结构与算法之顺序队列
  11. 程序员面试金典——5.5整数转化
  12. IBM面试题试解(关于50条狗、50个人、病狗)
  13. IOS 学习笔记(2) 视图UINavigationController
  14. HDF5 library version mismatched error
  15. springCloud之Feign rpc调用
  16. autocomplete触发事件_如何防止onSelect事件在DevBridge jQuery Autocomplete中触发两次
  17. 计算机磁盘检查,使用磁盘检查工具进行硬盘诊断
  18. 免费小说阅读小程序,仿番茄小说源码;微信小说小程序源码
  19. c语言课程设计成型代码,【图片】发几个C语言课程设计源代码(恭喜自己当上技术小吧主)【东华理工大学吧】_百度贴吧...
  20. CAD的那些装逼技巧!

热门文章

  1. 运筹学动态规划逆序解法,对于一个动态规划问题,应用顺序解法或者逆序解法可能会得出不同的最优解。...
  2. java大数据培训,如何选择适合自己的培训机构?
  3. Linux操作系统常用命令整理
  4. html设置抽奖概率,求一个可挑概率的html5抽奖 圆盘的
  5. pdo连接mysql 注入_使用PDO查询mysql避免SQL注入
  6. 堆排序(最小堆为例)
  7. 外卖系统注意功能源码
  8. 2.1 人工智能项目开发与规划
  9. openwrt怎么做ap_树莓派 + OpenWrt 实现 BT 下载机
  10. Atiitt 可视化 报表 图表之道 attilax著 Atiitt 可视化的艺术 attilax著 v2 s51.docx Atitit.可视化与报表原理与概论 1. 、什么是可视化(这一