807补充(七)(拉格朗日乘子篇)

807补充七(拉格朗日乘子篇)

在这里插入图片描述

一.几何解释

⽬前为⽌,我们已经考虑了在形式为 g ( x ) = 0 g(\boldsymbol x) = 0 g(x)=0的等式限制(equality constraint)下最⼤化函数的问题。我们现在考虑形式为 g ( x ) ≥ 0 g(\boldsymbol x) \geq 0 g(x)0的不等式限制(inequality constraint)下最⼤化函数 f ( x ) f(x) f(x)的问题,如图所示。

在这里插入图片描述

根据受限制条件下的驻点是否位于区域 g ( x ) > 0 g(\boldsymbol{x})>0 g(x)>0 中, 有两种可能的解。如果驻点位于 g ( x ) > 0 g(\boldsymbol{x})>0 g(x)>0 的区域中, 我们说限制条件未激活(inactive)。如果驻点位于 g ( x ) = 0 g(\boldsymbol{x})=0 g(x)=0 的边界上,我们说限制条件激活 (active)。在第一种情况下, 函数 g ( x ) g(\boldsymbol{x}) g(x) 不起作用, 函数在驻点处的条件只是 ∇ f ( x ) = 0 \nabla f(\boldsymbol{x})=0 f(x)=0 。这同样对应于拉格朗日方程 L ( x , λ ) ≡ f ( x ) + λ g ( x ) L(\boldsymbol{x}, \lambda) \equiv f(\boldsymbol{x})+\lambda g(\boldsymbol{x}) L(x,λ)f(x)+λg(x)的驻点, 但是 λ = 0 \lambda=0 λ=0 。在后一种情况下, 解位于边界上, 这类似于之前讨论过的等式限制的情形, 对应于拉格朗日方程在 λ ≠ 0 \lambda \neq 0 λ=0 的条件下的驻点。但是现在, 拉格朗日乘子的符号很重要, 因为只有当梯度向量指向远离 g ( x ) > 0 g(\boldsymbol{x})>0 g(x)>0 的区域时, 函数 f ( x ) f(\boldsymbol{x}) f(x) 才会取得最大值(不然的话驻点就不会在边界上,而是在内部), 如图所示。于是对于某些 λ > 0 \lambda>0 λ>0, 我们有 ∇ f ( x ) = − λ ∇ g ( x ) \nabla f(\boldsymbol{x})=-\lambda \nabla g(\boldsymbol{x}) f(x)=λg(x)

对于两种情况中的任意一种, 乘积 λ g ( x ) = 0 \lambda g(\boldsymbol{x})=0 λg(x)=0 。因此在限制条件 g ( x ) ≥ 0 g(\boldsymbol{x}) \geq 0 g(x)0 下最大化 f ( x ) f(\boldsymbol{x}) f(x) 的问题的解可以通过下面的方式获得:关于 x \boldsymbol{x} x λ \lambda λ 最优化拉格朗日函数 ,限制条件为
g ( x ) ≥ 0 λ ≥ 0 λ g ( x ) = 0 ∇ f ( x ) + λ ∇ g ( x ) = 0 \begin{gathered} g(\boldsymbol{x}) \geq 0 \\ \lambda \geq 0 \\ \lambda g(\boldsymbol{x})=0\\ \nabla f(\boldsymbol{x})+\lambda \nabla g(\boldsymbol{x})=0 \end{gathered} g(x)0λ0λg(x)=0f(x)+λg(x)=0

这些被称为Karush-Kuhn-Tucker (KKT)条件(Karush, 1939; Kuhn and Tucker, 1951)。
注意, 如果我们想在不等式限制 g ( x ) ≥ 0 g(\boldsymbol{x}) \geq 0 g(x)0 下最小化(而不是最大化)函数 f ( x ) f(\boldsymbol{x}) f(x), 那么我们要关于 x \boldsymbol{x} x 最小化拉格朗日函数 L ( x , λ ) = f ( x ) − λ g ( x ) L(\boldsymbol{x}, \lambda)=f(\boldsymbol{x})-\lambda g(\boldsymbol{x}) L(x,λ)=f(x)λg(x), 限制条件为 λ ≥ 0 \lambda \geq 0 λ0

最后, 将拉格朗日乘数法的技术推广到多个等式限制和不等式限制的情形是很直接的。假设我们希望在限制条件为 g j ( x ) = 0 , j = 1 , … , J g_j(\boldsymbol{x})=0, j=1, \ldots, J gj(x)=0,j=1,,J h k ( x ) ≥ 0 , k = 1 , … , K h_k(\boldsymbol{x}) \geq 0, k=1, \ldots, K hk(x)0,k=1,,K 的情况下最大化 f ( x ) f(\boldsymbol{x}) f(x),我们就会引入拉格朗日乘数 { λ j } \left\{\lambda_j\right\} {λj} { μ k } \left\{\mu_k\right\} {μk}, 然后最优化下面的拉格朗日函数
L ( x , { λ j } , { μ k } ) = f ( x ) + ∑ J λ j g j ( x ) + ∑ K μ k h k ( x ) L\left(\boldsymbol{x},\left\{\lambda_j\right\},\left\{\mu_k\right\}\right)=f(\boldsymbol{x})+\sum^J \lambda_j g_j(\boldsymbol{x})+\sum^K \mu_k h_k(\boldsymbol{x}) L(x,{λj},{μk})=f(x)+Jλjgj(x)+Kμkhk(x)
限制条件为 μ k ≥ 0 \mu_k \geq 0 μk0

由此得出原问题
maxmize f ( x ) s.t h ( x i ) ≥ 0     g ( x j ) = 0 ⇕ minmize − f ( x ) s.t − h ( x i ) ≤ 0     − g ( x j ) = 0 \begin{aligned} \text{maxmize} \qquad f(\boldsymbol x)\\ \text{s.t}\qquad h(\boldsymbol x_i)\geq0\\ \qquad \ \ \ g(\boldsymbol x_j)=0\\ \Updownarrow\\ \text{minmize} \qquad -f(\boldsymbol x)\\ \text{s.t}\qquad -h(\boldsymbol x_i)\leq0\\ \qquad \ \ \ -g(\boldsymbol x_j)=0 \end{aligned} maxmizef(x)s.th(xi)0   g(xj)=0minmizef(x)s.th(xi)0   g(xj)=0
的无约束形式是
maxmize L ( x , { λ j } , { μ k } ) = f ( x ) + ∑ J λ j g j ( x ) + ∑ K μ k h k ( x ) μ k ≥ 0 ⇕ minmize − L ( x , { λ j } , { μ k } ) = − f ( x ) − ∑ J λ j g j ( x ) − ∑ K μ k h k ( x ) μ k ≥ 0 \text{maxmize}\qquad L\left(\boldsymbol{x},\left\{\lambda_j\right\},\left\{\mu_k\right\}\right)=f(\boldsymbol{x})+\sum^J \lambda_j g_j(\boldsymbol{x})+\sum^K \mu_k h_k(\boldsymbol{x})\qquad \mu_k \geq 0\\ \Updownarrow\\ \text{minmize}\qquad -L\left(\boldsymbol{x},\left\{\lambda_j\right\},\left\{\mu_k\right\}\right)=-f(\boldsymbol{x})-\sum^J \lambda_j g_j(\boldsymbol{x})-\sum^K \mu_k h_k(\boldsymbol{x})\qquad \mu_k \geq 0 maxmizeL(x,{λj},{μk})=f(x)+Jλjgj(x)+Kμkhk(x)μk0minmizeL(x,{λj},{μk})=f(x)Jλjgj(x)Kμkhk(x)μk0
改写形式,转化为优化标准型
min ⁡ x ∈ R n f 0 ( x ) ,  s.t.  f i ( x ) ⩽ 0 , i ∈ I , h j ( x ) = 0 , j ∈ E , ⇔ minmize L ( x , λ , v ) = f 0 ( x ) + ∑ i ∈ I λ i f i ( x ) + ∑ i ∈ E v j h i ( x ) λ i ≥ 0 \begin{array}{rl} \min _{\boldsymbol x \in \mathbb{R}^n} & f_0(\boldsymbol x), \\ \text { s.t. } & f_i(\boldsymbol x) \leqslant 0, i \in \mathcal{I}, \\ & h_j(\boldsymbol x)=0, j \in \mathcal{E}, \end{array}\\ \Leftrightarrow\\ \text{minmize} \qquad L(\boldsymbol x, \lambda, v)=f_0(\boldsymbol x)+\sum_{i \in \mathcal{I}} \lambda_i f_i(\boldsymbol x)+\sum_{i \in \mathcal{E}} v_j h_i(\boldsymbol x) \qquad \lambda_i\geq0 minxRn s.t. f0(x),fi(x)0,iI,hj(x)=0,jE,minmizeL(x,λ,v)=f0(x)+iIλifi(x)+iEvjhi(x)λi0

二.凸优化基础

对于 R n \mathbb{R}^n Rn 中的两个点 x 1 ≠ x 2 x_1 \neq x_2 x1=x2, 形如
y = θ x 1 + ( 1 − θ ) x 2 y=\theta x_1+(1-\theta) x_2 y=θx1+(1θ)x2

的点形成了过点 x 1 x_1 x1 x 2 x_2 x2 的直线. 当 0 ⩽ θ ⩽ 1 0 \leqslant \theta \leqslant 1 0θ1 时, 这样的点形成了连接点 x 1 x_1 x1 x 2 x_2 x2 的线段.

仿射集:如果过集合 C C C 中任意两点的直线都在 C C C 内, 则称 C C C 为仿射集, 即
x 1 , x 2 ∈ C ⟹ θ x 1 + ( 1 − θ ) x 2 ∈ C , ∀ θ ∈ R . x_1, x_2 \in C \Longrightarrow \theta x_1+(1-\theta) x_2 \in C, \forall \theta \in \mathbb{R} . x1,x2Cθx1+(1θ)x2C,θR.

线性方程组 A x = b A x=b Ax=b 的解集是仿射集. 反之, 任何仿射集都可以表示成一个线性方程组的解集

凸集:如果连接集合 C C C 中任意两点的线段都在 C C C 内, 则称 C C C 为凸集,即
x 1 , x 2 ∈ C ⟹ θ x 1 + ( 1 − θ ) x 2 ∈ C , ∀ 0 ⩽ θ ⩽ 1 .  x_1, x_2 \in C \Longrightarrow \theta x_1+(1-\theta) x_2 \in C, \forall 0 \leqslant \theta \leqslant 1 \text {. } x1,x2Cθx1+(1θ)x2C,∀0θ1

从仿射集的定义容易看出仿射集都是凸集。

从凸集可以引出凸组合和凸包等概念. 形如
x = θ 1 x 1 + θ 2 x 2 + ⋯ + θ k x k θ 1 + θ 2 + ⋯ + θ k = 1 , θ i ⩾ 0 , i = 1 , 2 , ⋯   , k \begin{array}{r} x=\theta_1 x_1+\theta_2 x_2+\cdots+\theta_k x_k \\ \theta_1+\theta_2+\cdots+\theta_k=1, \quad \theta_i \geqslant 0, i=1,2, \cdots, k \end{array} x=θ1x1+θ2x2++θkxkθ1+θ2++θk=1,θi0,i=1,2,,k

的点称为 x 1 , x 2 , ⋯   , x k x_1, x_2, \cdots, x_k x1,x2,,xk 的凸组合. 集合 S S S 中点所有可能的凸组合构成的集合称作 S S S 的凸包, 记作 conv ⁡ S \operatorname{conv} S convS. 实际上, conv ⁡ S \operatorname{conv} S convS 是包含 S S S 的最小的凸集. 如图所示, 左边的为离散点集的凸包, 右边的为扇形的凸包.

在这里插入图片描述

仿射包: 设 S S S R n \mathbb{R}^n Rn 的子集,称如下集合为 S S S 的仿射包:
{ x ∣ x = θ 1 x 1 + θ 2 x 2 + ⋯ + θ k x k , x 1 , x 2 , ⋯   , x k ∈ S , θ 1 + θ 2 + ⋯ + θ k = 1 } , \left\{x \mid x=\theta_1 x_1+\theta_2 x_2+\cdots+\theta_k x_k, \quad x_1, x_2, \cdots, x_k \in S, \quad \theta_1+\theta_2+\cdots+\theta_k=1\right\}, {xx=θ1x1+θ2x2++θkxk,x1,x2,,xkS,θ1+θ2++θk=1},

记为 affine S S S.

​ 一般而言,一个集合的仿射包实际上是包含该集合的最小的仿射集。

球和椭球也是常见的凸集. 球是空间中到某个点距离(或两者差的范数) 小于某个常数的点的集合, 并将
B ( x c , r ) = { x ∣ ∥ x − x c ∥ 2 ⩽ r } = { x c + r u ∣ ∥ u ∥ 2 ⩽ 1 } B\left(x_c, r\right)=\left\{x \mid\left\|x-x_c\right\|_2 \leqslant r\right\}=\left\{x_c+r u \mid\|u\|_2 \leqslant 1\right\} B(xc,r)={xxxc2r}={xc+ruu21}

称为中心为 x c x_c xc, 半径为 r r r 的 (欧几里得) 球. 而形如
{ x ∣ ( x − x c ) T P − 1 ( x − x c ) ⩽ 1 } \left\{x \mid\left(x-x_c\right)^{\mathrm{T}} P^{-1}\left(x-x_c\right) \leqslant 1\right\} {x(xxc)TP1(xxc)1}

的集合称为椭球, 其中 P ∈ S + + n P \in \mathcal{S}_{++}^n PS++n (即 P P P 对称正定). 椭球的另一种表示为 { x c + A u ∣ ∥ u ∥ 2 ⩽ 1 } , A \left\{x_c+A u \mid\|u\|_2 \leqslant 1\right\}, A {xc+Auu21},A 为非奇异的方阵.

在定义一个球时, 并不一定要使用欧几里得空间的距离. 对于一般的范数, 同样可以定义 “球”. 令 ∥ ⋅ ∥ \|\cdot\| 是任意一个范数,
{ x ∣ ∥ x − x c ∥ ⩽ r } \left\{x \mid\left\|x-x_c\right\| \leqslant r\right\} {xxxcr}

称为中心为 x c x_c xc, 半径为 r r r 的范数球. 另外, 我们称集合
{ ( x , t ) ∣ ∥ x ∥ ⩽ t } \{(x, t) \mid\|x\| \leqslant t\} {(x,t)xt}

范数雉. 欧几里得范数雉也称为二次雉. 范数球范数雉都是凸集.

凸函数:设函数 f f f 为适当函数, 如果 dom ⁡ f \operatorname{dom} f domf 是凸集, 且
f ( θ x + ( 1 − θ ) y ) ⩽ θ f ( x ) + ( 1 − θ ) f ( y ) f(\theta x+(1-\theta) y) \leqslant \theta f(x)+(1-\theta) f(y) f(θx+(1θ)y)θf(x)+(1θ)f(y)

对所有 x , y ∈ dom ⁡ f , 0 ⩽ θ ⩽ 1 x, y \in \operatorname{dom} f, 0 \leqslant \theta \leqslant 1 x,ydomf,0θ1 都成立, 则称 f f f 是凸函数.

直观地来看, 连接凸函数的图像上任意两点的线段都在函数图像上方,相应地, 我们也可以定义凹函数:若 − f -f f 是凸函数, 则称 f f f 是凹函

数.只要改变一下符号, 很多凸函数的性质都可以直接应用到凹函数上. 另外,如果 dom ⁡ f \operatorname{dom} f domf 是凸集, 且
f ( θ x + ( 1 − θ ) y ) < θ f ( x ) + ( 1 − θ ) f ( y ) f(\theta x+(1-\theta) y)<\theta f(x)+(1-\theta) f(y) f(θx+(1θ)y)<θf(x)+(1θ)f(y)

对所有的 x , y ∈ dom ⁡ f , x ≠ y , 0 < θ < 1 x, y \in \operatorname{dom} f, x \neq y, 0<\theta<1 x,ydomf,x=y,0<θ<1 成立, 则称 f f f 是严格凸函数.

相对内点集:给定集合 D \mathcal{D} D, 记其仿射包为 affine D \mathcal{D} D . 集合 D \mathcal{D} D 的相对内点集 定义为
 relint  D = { x ∈ D ∣ ∃ r > 0 , 使得  B ( x , r ) ∩  affine  D ⊆ D } . \text { relint } \mathcal{D}=\{x \in \mathcal{D} \mid \exists r>0 \text {, 使得 } B(x, r) \cap \text { affine } \mathcal{D} \subseteq \mathcal{D}\} .  relint D={xDr>0使得 B(x,r) affine DD}.

凸优化问题:凸优化问题是一类特殊的优化问题,它的定义略有不同:
minimize   f 0 ( x ) s.t   f i ( x ) ≤ 0 , i = 1 , 2 , ⋅ ⋅ ⋅ m a i T x = b i , i = 1 , 2 , ⋅ ⋅ ⋅ , p \begin{aligned} \text{minimize}\ \ &f_0(x) \\ \\ \text{s.t}\ \ &f_i(x) ≤ 0, i = 1, 2, · · ·m \\ \\ &a^T_ix = b_i, i = 1, 2, · · · , p \end{aligned} minimize  s.t  f0(x)fi(x)0,i=1,2,⋅⋅⋅maiTx=bi,i=1,2,⋅⋅⋅,p

其中 f 0 , f 1 , ⋅ ⋅ ⋅ , f m f_0, f_1, · · · , f_m f0,f1,⋅⋅⋅,fm为凸函数。可以看到,凸优化问题与一般优化问题的区别在于:

• 目标函数必须是凸的

• 不等式约束函数必须是凸的

• 等式约束函数必须是仿射的

三.slater条件

KKT条件只是取得极小值的必要条件,想要判定是否能取得极小值还需要一些额外的条件。

如果原优化问题是凸问题,即形如
minimize   f 0 ( x ) s.t   f i ( x ) ≤ 0 , i = 1 , 2 , ⋅ ⋅ ⋅ m a i T x = b i , i = 1 , 2 , ⋅ ⋅ ⋅ , p \begin{aligned} \text{minimize}\ \ &f_0(x) \\ \\ \text{s.t}\ \ &f_i(x) ≤ 0, i = 1, 2, · · ·m \\ \\ &a^T_ix = b_i, i = 1, 2, · · · , p \end{aligned} minimize  s.t  f0(x)fi(x)0,i=1,2,⋅⋅⋅maiTx=bi,i=1,2,⋅⋅⋅,p
问题中 f 0 , f 1 , ⋅ ⋅ ⋅ , f m f_0, f_1, · · · , f_m f0,f1,⋅⋅⋅,fm均为凸函数等式约束为仿射的,则KKT条件通常就是充要条件。

如果原问题是凸的且满足Slater条件:存在一点 x ∈ relint D x \in \text{relint}D xrelintD(可以简单理解为 D D D的内点集,也就是 D D D去掉边界后的部分)使得所有的不等式约束严格成立、等式约束成立,即
f i ( x ) < 0 , i = 1 , 2 , ⋅ ⋅ ⋅ , m , A x = b f_i(x)<0, i = 1, 2, · · · , m, Ax = b fi(x)<0,i=1,2,⋅⋅⋅,m,Ax=b
KKT条件就是充要条件! 如果不等式约束 f i f_i fi中前 K K K个是仿射的,则可以得到弱Slater条件,即:存在一点 x ∈ relint D x ∈ \text{relint}D xrelintD使得
f i ( x ) ≤ 0 , i = 1 , 2 , ⋅ ⋅ ⋅ , k , f i ( x ) < 0 , i = k + 1 , ⋅ ⋅ ⋅ , m , A x = b f_i(x) ≤ 0, i = 1, 2, · · · , k, f_i(x)<0, i = k + 1, · · · , m, Ax = b fi(x)0,i=1,2,⋅⋅⋅,k,fi(x)<0,i=k+1,⋅⋅⋅,m,Ax=b
KKT条件也是充要条件。

四.线性无关的约束限制

对于不等式约束 f i ( x ) ⩽ 0 , i = 1 , ⋯   , m f_i(\boldsymbol{x}) \leqslant 0, i=1, \cdots, m fi(x)0,i=1,,m, 若在点 x ‾ \overline{\boldsymbol{x}} x f i ( x ‾ ) = 0 f_i(\overline{\boldsymbol{x}})=0 fi(x)=0, 则称第 i i i 个约束是在 x ‾ \overline{\boldsymbol{x}} x 点的积极约束 (active constraint); 若 f i ( x ‾ ) < 0 f_i(\overline{\boldsymbol{x}})<0 fi(x)<0, 则称第 i i i 个约束是在 x ‾ \overline{\boldsymbol{x}} x 点的非积极约束 (inactive constraint)。若 f i ( x ‾ ) > 0 f_i(\overline{\boldsymbol{x}})>0 fi(x)>0, 则称第 i i i 个约束是在 x ‾ \overline{\boldsymbol{x}} x 点的违法约束 (violated constraint) x ‾ \overline{\boldsymbol{x}} x 点的所有积极约束的指标集 A ( x ‾ ) = { i ∣ f i ( x ‾ ) = 0 } \mathcal{A}(\overline{\boldsymbol{x}})=\left\{i \mid f_i(\overline{\boldsymbol{x}})=0\right\} A(x)={ifi(x)=0} 称为 x ‾ \overline{\boldsymbol{x}} x 点的作用集 (active set)。

m m m 个不等式约束 f i ( x ) , i = 1 , ⋯   , m f_i(\boldsymbol{x}), i=1, \cdots, m fi(x),i=1,,m 在某个 K K T \mathrm{KKT} KKT x ⋆ \boldsymbol{x}^{\star} x 共有 k k k 个积极约束 f A 1 ( x ⋆ ) , ⋯   , f A k ( x ⋆ ) f_{\mathcal{A} 1}\left(\boldsymbol{x}^{\star}\right), \cdots, f_{\mathcal{A} k}\left(\boldsymbol{x}^{\star}\right) fA1(x),,fAk(x) m − k m-k mk 个非积极约束。

为了满足 K K T \mathrm{KKT} KKT 条件中的互补性 λ i f i ( x ⋆ ) = 0 \lambda_i f_i\left(\boldsymbol{x}^{\star}\right)=0 λifi(x)=0, 与非积极约束 f i ( x ⋆ ) < 0 f_i\left(\boldsymbol{x}^{\star}\right)<0 fi(x)<0 对应的 Lagrangian 乘子 λ i ⋆ \lambda_i^{\star} λi 必须等于零。这意味着, 式 中的最后一个 KKT 条件变为
∇ f 0 ( x ⋆ ) + ∑ i ∈ A λ i ⋆ ∇ f i ( x ⋆ ) + ∑ i = 1 q ν i ⋆ ∇ h i ( x ⋆ ) = 0 \nabla f_0\left(\boldsymbol{x}^{\star}\right)+\sum_{i \in \mathcal{A}} \lambda_i^{\star} \nabla f_i\left(\boldsymbol{x}^{\star}\right)+\sum_{i=1}^q \nu_i^{\star} \nabla h_i\left(\boldsymbol{x}^{\star}\right)=\mathbf{0} f0(x)+iAλifi(x)+i=1qνihi(x)=0

或者
[ ∂ f 0 ( x ⋆ ) ∂ x 1 ⋆ ⋮ ∂ f 0 ( x ⋆ ) ∂ x n ⋆ ] + [ ∂ h 1 ( x ⋆ ) ∂ x 1 ⋆ ⋯ ∂ h q ( x ⋆ ) ∂ x 1 ⋆ ⋮ ⋱ ⋮ ∂ h 1 ( x ⋆ ) ∂ x n ⋆ ⋯ ∂ h q ( x ⋆ ) ∂ x n ⋆ ] [ ν 1 ⋆ ⋮ ν q ⋆ ] = − [ ∂ f A 1 ( x ⋆ ) ∂ x 1 ⋆ ⋯ ∂ f A k ( x ⋆ ) ∂ x 1 ⋆ ⋮ ⋱ ⋮ ∂ f A 1 ( x ⋆ ) ∂ x n ⋆ ⋯ ∂ f A k ( x ⋆ ) ∂ x n ⋆ ] [ λ A 1 ⋆ ⋮ λ A k ⋆ ] \left[\begin{array}{c} \frac{\partial f_0\left(\boldsymbol{x}^{\star}\right)}{\partial x_1^{\star}} \\ \vdots \\ \frac{\partial f_0\left(\boldsymbol{x}^{\star}\right)}{\partial x_n^{\star}} \end{array}\right]+\left[\begin{array}{ccc} \frac{\partial h_1\left(\boldsymbol{x}^{\star}\right)}{\partial x_1^{\star}} & \cdots & \frac{\partial h_q\left(\boldsymbol{x}^{\star}\right)}{\partial x_1^{\star}} \\ \vdots & \ddots & \vdots \\ \frac{\partial h_1\left(\boldsymbol{x}^{\star}\right)}{\partial x_n^{\star}} & \cdots & \frac{\partial h_q\left(\boldsymbol{x}^{\star}\right)}{\partial x_n^{\star}} \end{array}\right]\left[\begin{array}{c} \nu_1^{\star} \\ \vdots \\ \nu_q^{\star} \end{array}\right]=-\left[\begin{array}{ccc} \frac{\partial f_{\mathcal{A} 1}\left(\boldsymbol{x}^{\star}\right)}{\partial x_1^{\star}} & \cdots & \frac{\partial f_{\mathcal{A} k}\left(\boldsymbol{x}^{\star}\right)}{\partial x_1^{\star}} \\ \vdots & \ddots & \vdots \\ \frac{\partial f_{\mathcal{A} 1}\left(\boldsymbol{x}^{\star}\right)}{\partial x_n^{\star}} & \cdots & \frac{\partial f_{\mathcal{A} k}\left(\boldsymbol{x}^{\star}\right)}{\partial x_n^{\star}} \end{array}\right]\left[\begin{array}{c} \lambda_{\mathcal{A} 1}^{\star} \\ \vdots \\ \lambda_{\mathcal{A} k}^{\star} \end{array}\right] x1f0(x)xnf0(x) + x1h1(x)xnh1(x)x1hq(x)xnhq(x) ν1νq = x1fA1(x)xnfA1(x)x1fAk(x)xnfAk(x) λA1λAk

既有
∇ f 0 ( x ⋆ ) + ( J h ( x ⋆ ) ) T ν ⋆ = − ( J A ( x ⋆ ) ) T λ A ⋆ \nabla f_0\left(\boldsymbol{x}^{\star}\right)+\left(\boldsymbol{J}_h\left(\boldsymbol{x}^{\star}\right)\right)^{\mathrm{T}} \boldsymbol{\nu}^{\star}=-\left(\boldsymbol{J}_{\mathcal{A}}\left(\boldsymbol{x}^{\star}\right)\right)^{\mathrm{T}} \boldsymbol{\lambda}_{\mathcal{A}}^{\star} f0(x)+(Jh(x))Tν=(JA(x))TλA
式中 J h ( x ⋆ ) \boldsymbol{J}_h\left(\boldsymbol{x}^{\star}\right) Jh(x) 是等式约束 h i ( x ) = 0 , i = 1 , ⋯   , q h_i(\boldsymbol{x})=0, i=1, \cdots, q hi(x)=0,i=1,,q 在点 x ⋆ \boldsymbol{x}^{\star} x 的 Jacobian 矩阵, 而
J A ( x ⋆ ) = [ ∂ f A 1 ( x ⋆ ) ∂ x 1 ⋆ ⋯ ∂ f A 1 ( x ⋆ ) ∂ x n ⋆ ⋮ ⋱ ⋮ ∂ f A k ( x ⋆ ) ∂ x 1 ⋆ ⋯ ∂ f A k ( x ⋆ ) ∂ x n ⋆ ] ∈ R k × n λ A ⋆ = [ λ A 1 ⋆ , ⋯   , λ A k ⋆ ] ∈ R k \begin{aligned} \boldsymbol{J}_{\mathcal{A}}\left(\boldsymbol{x}^{\star}\right) & =\left[\begin{array}{ccc} \frac{\partial f_{\mathcal{A} 1}\left(\boldsymbol{x}^{\star}\right)}{\partial x_1^{\star}} & \cdots & \frac{\partial f_{\mathcal{A} 1}\left(\boldsymbol{x}^{\star}\right)}{\partial x_n^{\star}} \\ \vdots & \ddots & \vdots \\ \frac{\partial f_{\mathcal{A} k}\left(\boldsymbol{x}^{\star}\right)}{\partial x_1^{\star}} & \cdots & \frac{\partial f_{\mathcal{A} k}\left(\boldsymbol{x}^{\star}\right)}{\partial x_n^{\star}} \end{array}\right] \in \mathbb{R}^{k \times n} \\ \lambda_{\mathcal{A}}^{\star} & =\left[\lambda_{\mathcal{A} 1}^{\star}, \cdots, \lambda_{\mathcal{A} k}^{\star}\right] \in \mathbb{R}^k \end{aligned} JA(x)λA= x1fA1(x)x1fAk(x)xnfA1(x)xnfAk(x) Rk×n=[λA1,,λAk]Rk

分别是积极约束的 Jacobian 矩阵和 Lagrangian 乘子向量。
上式表明, 若积极约束在可行点 x ‾ \overline{\boldsymbol{x}} x 的 Jacobian 矩阵 J A ( x ‾ ) \boldsymbol{J}_{\mathcal{A}}(\overline{\boldsymbol{x}}) JA(x) 满行秩(存在右伪逆), 则积极约束的 Lagrangian 乘子向量可由
λ A ⋆ = − ( J A ( x ‾ ) J A ( x ‾ ) T ) − 1 J A ( x ‾ ) [ ∇ f 0 ( x ‾ ) + ( J h ( x ‾ ) ) T ν ⋆ ] \boldsymbol{\lambda}_{\mathcal{A}}^{\star}=-\left(\boldsymbol{J}_{\mathcal{A}}(\overline{\boldsymbol{x}}) \boldsymbol{J}_{\mathcal{A}}(\overline{\boldsymbol{x}})^{\mathrm{T}}\right)^{-1} \boldsymbol{J}_{\mathcal{A}}(\overline{\boldsymbol{x}})\left[\nabla f_0(\overline{\boldsymbol{x}})+\left(\boldsymbol{J}_h(\overline{\boldsymbol{x}})\right)^{\mathrm{T}} \boldsymbol{\nu}^{\star}\right] λA=(JA(x)JA(x)T)1JA(x)[f0(x)+(Jh(x))Tν]

唯一确定。为此, 对积极约束的梯度向量有以下规定。

考虑不等式约束 f i ( x ) ⩽ 0 f_i(\boldsymbol{x}) \leqslant 0 fi(x)0 。称线性无关约束规定 (LICQ: linear independence constraint qualification) 在可行点 x ‾ \overline{\boldsymbol{x}} x 成立, 若积极约束的梯度 ∇ f A i ( x ‾ ) , i ∈ A \nabla f_{\mathcal{A} i}(\overline{\boldsymbol{x}}), i \in \mathcal{A} fAi(x),iA 线性无关, 或积极约束的 Jacobian 矩阵 J A ( x ˉ ) J_{\mathcal{A}}(\bar{x}) JA(xˉ) 满行秩。

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
拉格朗日乘子法是一种优化算法,应用于具有约束条件的优化问题。它的原理是基于拉格朗日乘子的概念,在求解有约束问题的时候,将约束条件转化为目标函数的一部分,通过求解该新的目标函数,得到问题的最优解。 在使用拉格朗日乘子法时,首先根据问题的约束条件构造拉格朗日函数。拉格朗日函数是由目标函数和约束条件组成的,目标函数会被调整为加入拉格朗日乘子与约束条件的乘积,同时每个约束条件都会有一个对应的拉格朗日乘子。然后,通过求取拉格朗日函数的偏导数,将其等于0,可以得到一组方程,包括目标函数的梯度和约束条件的梯度。将这些方程联立求解,就可以得到问题的最优解。 对于拉格朗日函数的求解,可以采用数值方法,例如使用fmincon算法。fmincon是一种非线性约束最小化算法,可以求解具有非线性约束的优化问题。它的实现基于拉格朗日乘子法,通过迭代的方式逼近最优解。在每一次迭代中,通过求解一组子问题,不断调整拉格朗日乘子的值,直到找到最优解为止。 总之,拉格朗日乘子法是一种基于拉格朗日函数的优化算法,通过将约束条件转化为目标函数的一部分,再利用数值方法求解最优解。而fmincon算法则是一种具体的数值方法实现,可以应用于求解具有非线性约束的优化问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值