【最优化基础】惩罚和障碍函数

点击【原文】阅读原文,效果更佳!

惩罚和障碍函数

为了简化表示,讨论如下等式约束问题:
min ⁡ x ∈ R n    f ( x ) s.t.   c ( x ) = 0 \begin{aligned} \min_{{\pmb x} \in \mathbb{R}^n} ~~& f({\pmb x})\\ \text{s.t.} ~~& c({\pmb x}) = \pmb{0} \end{aligned} xxxRnmin  s.t.  f(xxx)c(xxx)=000
其中, c ( x ) :   R n → R m c({\pmb x}): ~ \mathbb{R}^n \to \mathbb{R}^m c(xxx): RnRm,或不等式约束问题
min ⁡ x ∈ R n    f ( x ) s.t.   c ( x ) ≤ 0 \begin{aligned} \min_{{\pmb x} \in \mathbb{R}^n} ~~& f({\pmb x})\\ \text{s.t.} ~~& c({\pmb x}) \leq \pmb{0} \end{aligned} xxxRnmin  s.t.  f(xxx)c(xxx)000

罚函数法

动机

在求解约束不容易消去的非线性规划问题时,为了保证大范围收敛(即从任意的初始近似解都能收敛于一个局部解),必须在"减小目标值"和"保留在可行域内或临近可行域"这两个目标之间进行折衷,这就不可避免地引入了罚函数的思想。

定义

罚函数是目标 f f f 和约束 c c c 之间的某种组合,它通过惩罚控项制违反约束来极小化 f f f

Courant 罚函数

最早的罚函数由 Courant 于 1943 年提出,其采用约束违反量的平方作为惩罚项,因此也称为 Courant 二次罚函数

考虑问题
min ⁡    x s.t.   1 − x = 0 \begin{aligned} \min ~~& x\\ \text{s.t.} ~~& 1 - x = 0 \end{aligned} min  s.t.  x1x=0
的罚函数
ϕ ( x , σ ) = x + 1 2 σ ( 1 − x ) 2 \phi(x,\sigma) = x + \frac{1}{2}\sigma(1 - x)^2 ϕ(x,σ)=x+21σ(1x)2
如下图所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hGdMDbrB-1608730947586)

易得当 σ → ∞ \sigma \to \infty σ 时, ϕ ( x , σ ) \phi(x,\sigma) ϕ(x,σ) 的极小点趋近于原问题的最优解 x ∗ = 1 x^* = 1 x=1

由此,人们提出了求解一系列极小化问题的技术,成为序列最小化技术。


算法 1 序列极小化技术算法


  • 选择一个固定的序列 { σ i : i = 1 , 2 , 3 , …   } = { 10 , 1 0 2 , 1 0 3 , 1 0 4 , …   } \{\sigma_i : i = 1, 2, 3, \dots\} = \{10,10^2,10^3,10^4,\dots\} {σi:i=1,2,3,}={10,102,103,104,},使得 σ k → ∞ \sigma_k \to \infty σk

  • do 对于 ∀ σ i \forall \sigma_i σi,求解
    min ⁡ x    ϕ ( x , σ i ) \min_{\pmb x} ~~ \phi({\pmb x}, \sigma_i) xxxmin  ϕ(xxx,σi)
    的一个局部最优解 x ( σ i ) {\pmb x}(\sigma_i) xxx(σi)

    while c ( x ( σ i ) ) c({\pmb x}(\sigma_i)) c(xxx(σi)) 充分小。


事实上,算法 1 不能在有限步内求得全局解,仅是一个理想化的算法。尽管适当放松精度可以保证收敛,但还需假设

  • 局部极小点 x ( σ i ) {\pmb x}(\sigma_i) xxx(σi) 存在;
  • 得到的 x ( σ i ) {\pmb x}(\sigma_i) xxx(σi) 尽可能精确。

在实际应用中,无论是非线性问题无界还是存在局部解,该假设都是不成立的。

定理 1 假设每次得到无约束极小化问题地全局极小点,若 σ k ↿ ∞ \sigma_k \upharpoonleft \infty σk,则

  • { ϕ ( x , σ k ) } \{\phi({\pmb x}, \sigma_k)\} {ϕ(xxx,σk)} 单调递增;
  • { c ( k ) T c ( k ) } \{{c^{(k)}}^Tc^{(k)}\} {c(k)Tc(k)} 单调递减;
  • { f ( k ) } \{f^{(k)}\} {f(k)} 单调递增,

同时 c ( k ) → 0 c^{(k)} \to 0 c(k)0,且 { x ( k ) } \{{\pmb x}^{(k)}\} {xxx(k)} 的任何据点是原始问题的解。

证明 略。

注意 结论 2 表明 { x ( k ) } \{{\pmb x}^{(k)}\} {xxx(k)} 是从可行域外接近原问题的解,因此也是外部罚函数

Lagrange 乘子估计

定义向量 λ i ( k ) = σ k c i ( k ) , i = 1 , 2 , … , m \lambda_i^{(k)} = \sigma_k c_i^{(k)}, i = 1,2,\dots, m λi(k)=σkci(k),i=1,2,,m 为 Language 乘子的估计,有如下收敛性性质。

定理 2 假设每次得到无约束问题的局部解,若 σ k ↿ ∞ \sigma_k \upharpoonleft \infty σk x ∗ {\pmb x}^* xxx 是序列的一个聚点,且 r a n k ( A ∗ ) = m \mathrm{rank}({\pmb A}^*) = m rank(AAA)=m,则 x ∗ {\pmb x}^* xxx 是原问题的KKT点,有
λ ( k ) = λ ∗ + o ( 1 ) c ( k ) = λ ∗ σ k + o ( 1 σ ) σ k c ( k ) T c ( k ) = λ ∗ T λ ∗ σ k + o ( 1 σ ) \begin{aligned} \lambda^{(k)} & = & \lambda^* + o(1)\\ c^{(k)} & = & \frac{\lambda^*}{\sigma_k} + o(\frac{1}{\sigma}) \\ \sigma_k {c^{(k)}}^Tc^{(k)} & = & \frac{{\lambda^*}^T \lambda^*}{\sigma_k} + o(\frac{1}{\sigma}) \end{aligned} λ(k)c(k)σkc(k)Tc(k)===λ+o(1)σkλ+o(σ1)σkλTλ+o(σ1)
若在 x ∗ , λ ∗ {\pmb x}^*, \lambda^* xxx,λ 处二阶充分条件成立,则
f ∗ = ϕ ∗ = ϕ ( k ) + 1 2 σ k c ( k ) T c ( k ) + o ( 1 σ ) h ( k ) = T ∗ λ ∗ σ k + o ( 1 σ ) \begin{aligned} f^* & = & \phi^* = \phi^{(k)} + \frac{1}{2}\sigma_k {c^{(k)}}^Tc^{(k)} + o(\frac{1}{\sigma})\\ h^{(k)} & = & \frac{T^* \lambda^*}{\sigma_k} + o(\frac{1}{\sigma}) \end{aligned} fh(k)==ϕ=ϕ(k)+21σkc(k)Tc(k)+o(σ1)σkTλ+o(σ1)
其中, h ( k ) = x ( k ) − x ∗ h^{(k)} = {\pmb x}^{( k)} - {\pmb x}^* h(k)=xxx(k)xxx T ∗ T^* T 定义为

[ W ∗ A ∗ A ∗ T 0 ] = [ H ∗ T ∗ T ∗ T U ∗ ] \begin{bmatrix} W^* & A^*\\ {A^*}^T & 0 \end{bmatrix} = \begin{bmatrix} H^* & T^*\\ {T^*}^T & U^* \end{bmatrix} [WATA0]=[HTTTU]


事实上,对于二次罚函数,有
∇ 2 ϕ ( x ( k ) , σ k ) = W ( k ) + σ k A ( k ) A ( k ) T \nabla^2 \phi({\pmb x}^{(k)},\sigma_k) = W^{(k)} + \sigma_k A^{(k)} {A^{(k)}}^T 2ϕ(xxx(k),σk)=W(k)+σkA(k)A(k)T
其中, W ( k ) = ∇ x 2 L ( x ( k ) , λ ( k ) ) W^{(k)} = \nabla^2_{\pmb x} \mathcal{L}({\pmb x}^{(k)},\lambda^{(k)}) W(k)=xxx2L(xxx(k),λ(k)) λ i ( k ) = σ k c i ( k ) , i = 1 , 2 , … , m \lambda_i^{(k)} = \sigma_k c_i^{(k)}, i = 1,2,\dots,m λi(k)=σkci(k),i=1,2,,m。其特点是一阶可微,但需要满足 σ k → ∞ \sigma_k \to \infty σk

不等式约束罚函数

不等式约束问题,可以等价地转化为等式约束
c ( x ) ≤ 0    ⟺    max ⁡ { c ( x ) , 0 } = 0 c({\pmb x}) \leq 0 \iff \max\{c({\pmb x}),0\} = 0 c(xxx)0max{c(xxx),0}=0
从而,不等式约束问题地罚函数为
ϕ ( x , σ ) = f ( x ) + 1 2 σ ∑ i ∈ I max ⁡ { c i ( x ) , 0 } \phi({\pmb x}, \sigma) = f({\pmb x}) + \frac{1}{2}\sigma\sum_{i \in \mathcal{I}} \max\{c_i({\pmb x}),0\} ϕ(xxx,σ)=f(xxx)+21σiImax{ci(xxx),0}

障碍函数

由于该方法适合可行域外无定义的约束问题,因为得到的序列极小化问题也是可行的,因此该方法也被成为内点法

定义

障碍函数法是一种求解不等式约束问题的序列极小化方法,其旨在障碍项在边界上取值为无穷大,从而在任何时候都能满足约束。

对数障碍函数

1955 年,Frisch 提出对数障碍函数
ϕ ( x , μ ) = f ( x ) − μ ∑ i log ⁡ ( − c i ( x ) ) \phi({\pmb x}, \mu) = f({\pmb x}) - \mu \sum_i \log(-c_i({\pmb x})) ϕ(xxx,μ)=f(xxx)μilog(ci(xxx))
对于不等式约束问题
min ⁡    x s.t.   1 − x ≤ 0 \begin{aligned} \min ~~& x\\ \text{s.t.} ~~& 1 - x \leq 0 \end{aligned} min  s.t.  x1x0
其对数障碍函数 ϕ ( x , μ ) = x − μ log ⁡ ( x − 1 ) \phi({ x},\mu) = { x} - \mu \log ({ x - 1}) ϕ(x,μ)=xμlog(x1) 图像如下,可以看出当 μ k → 0 \mu_k \to 0 μk0 时, x ( μ k ) → x ∗ x(\mu_k) \to x^* x(μk)x

障碍函数中递增的病态性

特点:原问题是凸规划时,障碍函数时凸函数。一阶可微,需要满足 μ → 0 \mu \to 0 μ0

倒数障碍函数

1961 年,Carroll 提出倒数障碍函数
ϕ ( x , μ ) = f ( x ) − μ ∑ i = 1 m [ c i ( x ) ] − 1 \phi({\pmb x}, \mu) = f({\pmb x}) - \mu \sum_{i = 1}^m [c_i({\pmb x})]^{-1} ϕ(xxx,μ)=f(xxx)μi=1m[ci(xxx)]1
一般来说,倒数障碍函数比二次罚函数和对数障碍函数要差。

内点法(路径跟踪法)

对数障碍函数法也称为原始内点法,其中乘子由原始变量确定。

C ( x ) = d i a g ( c 1 ( x ) , c 2 ( x ) , ⋯   , c m ( x ) ) C(x) = \mathrm{diag} (c_1(x), c_2(x),\cdots,c_m(x)) C(x)=diag(c1(x),c2(x),,cm(x)) A ( x ) = [ a 1 ( x ) , a 2 ( x ) , … , a m ( x ) ] A(x) = [a_1(x), a_2(x),\dots,a_m(x)] A(x)=[a1(x),a2(x),,am(x)],则

KKT 条件

g ( x ) + A ( x ) λ = 0 C ( x ) λ = 0 c ( x ) ≤ 0 λ ≥ 0 \begin{aligned} g(x) + A(x) \lambda &=& 0 \\ C(x) \lambda & = & 0\\ c(x) & \leq & 0 \\ \lambda & \geq & 0 \end{aligned} g(x)+A(x)λC(x)λc(x)λ==0000

扰动的 KKT 条件

g ( x ) + A ( x ) λ = 0 C ( x ) λ = − μ c ( x ) < 0 λ > 0 \begin{aligned} g(x) + A(x) \lambda &=& 0 \\ C(x) \lambda & = & \color{blue}{- \mu}\\ c(x) & \color{blue}{<} & 0 \\ \lambda & \color{blue}{>} & 0 \end{aligned} g(x)+A(x)λC(x)λc(x)λ==<>0μ00

动机

μ → 0 \mu \to 0 μ0,跟踪方程组
g ( x ) + A ( x ) λ = 0 C ( x ) + μ = 0 \begin{aligned} g(x) + A(x) \lambda & = & 0 \\ C(x) + \mu & = & 0 \end{aligned} g(x)+A(x)λC(x)+μ==00
保存 c ( x ) < 0 , λ > 0 c(x) < 0,\lambda>0 c(x)<0,λ>0 的解,直至 μ \mu μ 逐渐递减至零。

参考资料

[1] 刘红英,夏勇,周永生. 数学规划基础,北京,北京航空航天大学出版社,2012.

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值