数学优化3-拉格朗日乘数法与KKT条件

同步于Buracag的博客

主要介绍一下数学优化中的拉格朗日乘数法和KKT条件,其实在 拙文 中已经有关于KKT条件的简要介绍和自己的个人总结,这里再一起回顾一下。

拉格朗日乘数法(Lagrange Multiplier)是约束优化问题的一种有效求解方法。约束优化问题可以表示为
(1) min ⁡ x f ( x ) s u b j e c t t o h i ( x ) = 0 , i = 1 , . . . , m g j ( x ) ≤ 0 , j = 1 , . . . , n \min_{x} \qquad f(x) \\ subject \quad to \qquad h_i(x) = 0, i = 1, ... ,m \\ \qquad g_j(x) ≤ 0, j = 1, . . . , n \tag{1} xminf(x)subjecttohi(x)=0,i=1,...,mgj(x)0,j=1,...,n(1)

其中 h i ( x ) h_i(x) hi(x)为等式约束函数, g j ( x ) g_j(x) gj(x)为不等式约束函数。x的可行域为
(2) D = d o m f ∩ ⋂ i = 1 m d o m h i ∩ ⋂ j = 1 n d o m g j ⊆ R d D = domf\cap \bigcap_{i=1}^{m} domh_i \cap \bigcap_{j=1}^{n} domg_j \subseteq \Bbb{R}^d \tag{2} D=domfi=1mdomhij=1ndomgjRd(2)
其中 d o m f domf domf是函数f的定义域。

1. 等式约束优化问题

如果公式(1) 中只有等式约束,我们可以构造一个拉格朗日函数Λ(x, λ):
(3) Λ ( x , λ ) = f ( x ) + ∑ i = 1 m λ i h i ( x ) \Lambda(x, \lambda) = f(x) + \sum_{i=1}^{m}\lambda_i h_i(x) \tag{3} Λ(x,λ)=f(x)+i=1mλihi(x)(3)
其中 λ \lambda λ为拉格朗日乘数。如果 f ( x ∗ ) f(x^∗) f(x)是原始约束优化问题的局部最优值,那么存在一个 λ ∗ λ^∗ λ使得 ( x ∗ , λ ∗ ) (x^∗, λ^∗) (x,λ)为拉格朗日函数 Λ ( x , λ ) Λ(x, λ) Λ(x,λ)的平稳点(stationary point)。因此,只需要令 ∂ Λ ( x , λ ) ∂ x = 0 \frac{\partialΛ(x,λ)}{\partial x} = 0 xΛ(x,λ)=0 ∂ Λ ( x , λ ) ∂ λ = 0 \frac{\partialΛ(x,λ)}{\partial \lambda} = 0 λΛ(x,λ)=0,得到
(4) ∇ f ( x ) + ∑ i = 1 m λ i ∇ h i ( x ) = 0 \nabla f(x) + \sum_{i=1}^{m}\lambda_i \nabla h_i(x) = 0 \tag{4} f(x)+i=1mλihi(x)=0(4)

(5) h i ( x ) = 0 , i = 0 , . . . , m h_i(x) = 0, \qquad i=0, ..., m \tag{5} hi(x)=0,i=0,...,m(5)

上面方程组的解即为原始问题的可能解。在实际应用中,需根据问题来验证是否为极值点。

拉格朗日乘数法是将一个有 d d d个变量和 m m m个等式约束条件的最优化问题转换为一个有 d + m d + m d+m个变量的函数求平稳点的问题。拉格朗日乘数法所得的平稳点会包含原问题的所有极值点,但并不保证每个平稳点都是原问题的极值点。

2. 不等式约束优化问题

对于公式(1) 中定义的一般约束优化问题,其拉格朗日函数为
(6) Λ ( x , a , b ) = f ( x ) + ∑ i = 1 m a i h i ( x ) + ∑ j = 1 n b j g j ( x ) \Lambda(x, a, b) = f(x) + \sum_{i=1}^{m}a_i h_i(x) + \sum_{j=1}^{n}b_j g_j(x) \tag{6} Λ(x,a,b)=f(x)+i=1maihi(x)+j=1nbjgj(x)(6)
其中 a = [ a 1 , . . . , a m ] T a = [a_1, ... , a_m]^T a=[a1,...,am]T为等式约束的拉格朗日乘数, b = [ b 1 , . . . , b n ] T b = [b_1, ... , b_n]^T b=[b1,...,bn]T为不等式约束的拉格朗日乘数。

当约束条件不满足时,有 max ⁡ a , b Λ ( x , a , b ) = ∞ \max_{a,b} \Lambda(x, a, b) = \infty maxa,bΛ(x,a,b)=;当约束条件满足时并且 b ≥ 0 b ≥ 0 b0时, max ⁡ a , b Λ ( x , a , b ) = f ( x ) \max_{a,b} \Lambda(x, a, b) = f(x) maxa,bΛ(x,a,b)=f(x)。因此原始约束优化问题等价于
(7) min ⁡ x max ⁡ a , b Λ ( x , a , b ) \min_x \max_{a,b} \Lambda(x, a, b) \tag{7} xmina,bmaxΛ(x,a,b)(7)

(8) s u b j e c t t o b ≥ 0 subject \quad to \qquad b ≥ 0 \tag{8} subjecttob0(8)

这个min-max优化问题称为主问题(Primal Problem)

对偶问题 主问题的优化一般比较困难,我们可以通过交换min-max 的顺序来简化。定义拉格朗日对偶函数为
(9) Γ ( a , b ) = inf ⁡ x ∈ D Λ ( x , a , b ) \Gamma(a, b) = \inf_{x \in D}\Lambda (x, a, b) \tag{9} Γ(a,b)=xDinfΛ(x,a,b)(9)

Γ ( a , b ) \Gamma(a, b) Γ(a,b)是一个凹函数,即使 f ( x ) f(x) f(x)是非凸的。

b ≥ 0 b \geq 0 b0时,对于任意的KaTeX parse error: Expected 'EOF', got '\cal' at position 15: \tilde{x} \in \̲c̲a̲l̲{D},有
(10) Γ ( a , b ) = inf ⁡ x ∈ D Λ ( x , a , b ) ≤ Λ ( x ~ , a , b ) ≤ f ( x ~ ) \Gamma(a, b) = \inf_{x\in D}\Lambda(x, a, b) \leq \Lambda(\tilde{x}, a, b) ≤ f(\tilde{x}) \tag{10} Γ(a,b)=xDinfΛ(x,a,b)Λ(x~,a,b)f(x~)(10)
p ∗ p^∗ p是原问题的最优值,则有
(11) Γ ( a , b ) ≤ p ∗ \Gamma(a, b) \leq p^∗ \tag{11} Γ(a,b)p(11)
即拉格朗日对偶函数 Γ ( a , b ) Γ(a, b) Γ(a,b)为原问题最优值的下界。

优化拉格朗日对偶函数 Γ ( a , b ) Γ(a, b) Γ(a,b)并得到原问题的最优下界,称为拉格朗日对偶问题(Lagrange Dual Problem)
(12) max ⁡ a , b Γ ( a , b ) s u b j e c t t o b ≥ 0 \max_{a,b} \qquad \Gamma(a, b) \\ subject \quad to \qquad b ≥ 0 \tag{12} a,bmaxΓ(a,b)subjecttob0(12)
拉格朗日对偶函数为凹函数,因此拉格朗日对偶问题为凸优化问题

d ∗ d^∗ d表示拉格朗日对偶问题的最优值,则有 d ∗ ≤ p ∗ d^∗ \leq p^∗ dp,这个性质称为弱对偶性(Weak Duality)。如果 d ∗ = p ∗ d^∗ = p^∗ d=p,这个性质称为强对偶性(Strong Duality)

当强对偶性成立时,令 x ∗ x^∗ x a ∗ , b ∗ a^∗, b^∗ a,b分别是原问题和对偶问题的最优解,那么它们满足以下条件:
(13) ∇ f ( x ∗ ) + ∑ i = 1 m a i ∗ ∇ h i ( x ∗ ) + ∑ j = 1 n b j ∗ ∇ g j ( x ∗ ) = 0 h i ( x ∗ ) = 0 , i = 0 , . . . , m g j ( x ∗ ) ≤ 0 , j = 0 , . . . , n b j ∗ g j ( x ∗ ) = 0 , j = 0 , . . . , n b j ∗ ≥ 0 , j = 0 , . . . , n \nabla f(x^∗) + \sum_{i=1}^ma_i^∗ \nabla h_i(x^∗) + \sum_{j=1}^{n}b_j^∗\nabla g_j(x^∗) = 0 \\ h_i(x^∗) = 0, \quad i = 0, ... ,m \\ g_j(x^∗) \leq 0, \quad j = 0, ... , n \\ b_j^∗ g_j(x^∗) = 0, \quad j = 0, ... , n \\ b_j^∗ \geq 0, \quad j = 0, ... , n \tag{13} f(x)+i=1maihi(x)+j=1nbjgj(x)=0hi(x)=0,i=0,...,mgj(x)0,j=0,...,nbjgj(x)=0,j=0,...,nbj0,j=0,...,n(13)
称为不等式约束优化问题的KKT条件(Karush-Kuhn-Tucker Conditions)。KKT条件是拉格朗日乘数法在不等式约束优化问题上的泛化。当原问题是凸优化问题时,满足KKT条件的解也是原问题和对偶问题的最优解。

KKT条件中需要关注的是公式(13)中的等式 b j ∗ g j ( x ∗ ) = 0 , j = 0 , . . . , n b_j^∗ g_j(x^∗) = 0, \quad j = 0, ... , n bjgj(x)=0,j=0,...,n,称为互补松弛条件(Complementary Slackness)。如果最优解 x ∗ x^∗ x出现在不等式约束的边界上 g j ( x ) = 0 g_j(x) = 0 gj(x)=0,则 b j ∗ &gt; 0 b_j^∗ &gt; 0 bj>0;如果 x ∗ x^∗ x出现在不等式约束的内部 g j ( x ) &lt; 0 g_j(x) &lt; 0 gj(x)<0,则 b j ∗ b_j^∗ bj= 0$。互补松弛条件说明当最优解出现在不等式约束的内部,则约束失效。

主要参考https://github.com/nndl/nndl.github.io

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值