深入浅出最优化(8) 拉格朗日乘子法

本文深入探讨了拉格朗日乘子法在约束优化问题中的应用,包括等式与不等式约束条件下的理论分析,以及其实战测试结果。通过详细解释拉格朗日函数、KKT条件和乘子法的构成,辅以具体实例,展示了算法的迭代过程和最终求解结果。

1 拉格朗日乘子法的数学背景

当使用前面介绍的罚函数法求解约束问题时,为获得足够好的近似解,罚参数需取足够大的值,这将导致增广目标函数的黑森矩阵出现病态,从而导致数值计算上的困难。因此提出拉格朗日乘子法。

学高数的时候我们就学过等式约束条件下的拉格朗日乘子法。延续前一节中对约束最优化问题的定义,则拉格朗日函数 L ( x , μ ) = f ( x ) − ∑ j ∈ E μ j h j ( x ) L(x,\mu)=f(x)-\displaystyle\sum_{j\in E}\mu_jh_j(x) L(x,μ)=f(x)jEμjhj(x)。局部最优解的条件是对x求梯度及对所有 μ \mu μ求导均为0

下面来讨论不等式和等式同时约束条件下的拉格朗日乘子法。拉格朗日函数 L ( x , μ ) = f ( x ) − ∑ i ∈ I λ i g i ( x ) − ∑ j ∈ E μ j h j ( x ) L(x,\mu)=f(x)-\displaystyle\sum_{i\in I}\lambda_ig_i(x)-\displaystyle\sum_{j\in E}\mu_jh_j(x) L(x,μ)=f(x)iIλigi(x)jEμjhj(x)。对 λ \lambda λ的情况需要讨论:

  1. 最优解在 D D D内部时, g ( x ∗ ) > 0 g(x^*)>0 g(x)>0,约束条件无效,有 λ i ∗ = 0 , i ∈ I \lambda^*_i=0,i\in I λi=0,iI
  2. 最优解在 D D D边界上时, g ( x ∗ ) = 0 g(x^*)=0 g(x)=0,约束条件有效。此时对x求梯度设为0,有 ∇ f ( x ∗ ) = ∑ i ∈ I λ i ∗ ∇ g i ( x ∗ ) + ∑ j ∈ E μ j ∗ ∇ h i ( x ∗ ) \nabla f(x^*)=\displaystyle\sum_{i\in I}\lambda_i^*\nabla g_i(x^*)+\sum_{j\in E}\mu^*_j\nabla h_i(x^*) f(x)=iIλigi(x)+jEμjhi(x), ∇ f ( x ∗ ) \nabla f(x^*) f(x)指向 D D D内部(因为边界处是最优解), ∇ g i ( x ∗ ) \nabla g_i(x^*) gi(x)也指向 D D D内部(因为边界处为0, D D D内大于0),所以 λ i ∗ > 0 , i ∈ I \lambda^*_i>0,i\in I λi>0,iI

可见,无论最优解在何处,都有 λ i ∗ g i ( x ∗ ) = 0 , i ∈ I \lambda_i^*g_i(x^*)=0,i\in I λigi(x)=0,iI,这个条件被称为互补松弛条件

因此针对不等式和等式同时约束条件下的拉格朗日乘子法,局部最优解的条件可以用如下的KKT条件表示:

{ ∇ x L ( x ∗ , λ ∗ , μ ∗ ) = ∇ f ( x ∗ ) − ∑ i ∈ I λ i ∗ ∇ g i ( x ∗ ) − ∑ j ∈ E μ j ∗ ∇ h j ( x ∗ ) = 0 h j ( x ∗ ) = 0 , j ∈ E g i ( x ∗ ) ≥ 0 , λ i ∗ ≥ 0 , λ i ∗ g i ( x ∗ ) = 0 , i ∈ I \begin{cases}\nabla_xL(x^*,\lambda^*,\mu^*)=\nabla f(x^*)-\displaystyle\sum_{i\in I}\lambda_i^*\nabla g_i(x^*)-\sum_{j\in E}\mu_j^*\nabla h_j(x^*)=0\\h_j(x^*)=0,j\in E\\g_i(x^*)\geq0,\lambda_i^*\geq0,\lambda_i^*g_i(x^*)=0,i\in I\end{cases} xL(x,λ,μ)=f(x)iIλigi(x)jEμjhj(x)=0hj(x)=0,jEgi(x)0,λi0,λigi(x)=0,iI

满足KKT条件的点被称为KKT点

2 拉格朗日乘子法的构成

2.1 等式约束问题的乘子法

将外点罚函数法的思想引入拉格朗日函数的最优化问题。设 S ( x ) = ∑ i ∈ E h i 2 ( x ) S(x)=\displaystyle\sum_{i\in E}h_i^2(x) S(x)=iEhi2(x),构造辅助函数 L μ ( x , λ ) = L ( x , λ ) + 1 2 μ S ( x ) = f ( x ) − ∑ i ∈ E λ i h i ( x ) + 1 2 μ ∑ i ∈ E h i 2 ( x ) L_\mu(x,\lambda)=L(x,\lambda)+\frac{1}{2}\mu S(x)=f(x)-\displaystyle\sum_{i\in E}\lambda_ih_i(x)+\frac{1}{2}\mu\sum_{i\in E}h_i^2(x) Lμ(x,λ)=L(x,λ)+21μS(x)=f(x)iEλihi(x)+2

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值