【补充说明】原始问题和对偶问题的简单理解如下:
- 原始问题:在确定 x x x 的情况下,求使 L ( x , α , β ) L(x,\alpha,\beta) L(x,α,β) 取得最大值的 α \alpha α 或 β \beta β;然后在所有求出来的 L ( x , α , β ) L(x,\alpha,\beta) L(x,α,β) 的最大值中,寻找取值最小值时的 x x x。
- 对偶问题:在确定 α \alpha α 和 β \beta β 的情况下,求使 L ( x , α , β ) L(x,\alpha,\beta) L(x,α,β) 取得最小值的 x x x;然后在所有求出来的 L ( x , α , β ) L(x,\alpha,\beta) L(x,α,β) 的最小值中,寻找取得最大值时的 α \alpha α 和 β \beta β。
【补充说明】仿射函数:最高次数为 1 的多项式函数,一般形式为 f ( x ) = A x + b f(x)=Ax+b f(x)=Ax+b。其中 A A A 为 m × n m×n m×n 矩阵, B B B 为 m m m 维向量。仿射函数可以将 n n n 维向量映射到 m m m 维向量上。
为什么有时规定拉格朗日乘子大于等于 0?
简单来说,这是因为拉格朗日乘子要起到的作用决定的。
引入拉格朗日乘子是为了强制要求所有的约束条件必须被满足,当 x x x 违反约束条件时, L ( x , α , β ) → + ∞ L(x,\alpha,\beta) \rightarrow + \infty L(x,α,β)→+∞,当 x x x 满足约束条件时, L ( x , α , β ) = f ( x ) L(x,\alpha,\beta) = f(x) L(x,α,β)=f(x)。
具体地,假设 f ( x ) f(x) f(x), c i ( x ) c_i(x) ci(x), h j ( x ) h_j(x) hj(x) 是定义在 R n R^n Rn 上的连续可微函数。考虑约束最优化问题(极大化问题可以简单地转换为极小化问题,这里仅讨论极小化问题):
min x ∈ R n f ( x ) s . t . c i ( x ) ≤ 0 , i = 1 , 2 , ⋯ , k h j ( x ) = 0 , j = 1 , 2 , ⋯ , l \begin{aligned} \min_{x \in R^n} \hspace{1em} & f(x)\\ s.t. \hspace{1em} & c_i(x) \le 0, \hspace{1em} i=1,2,\cdots,k\\ & h_j(x) = 0, \hspace{1em} j=1,2,\cdots,l \end{aligned} x∈Rnmins.t.f(x)ci(x)≤0,i=1,2,⋯,khj(x)=0,j=1,2,⋯,l
引入拉格朗日乘子后,得到
L ( x , α , β ) = f ( x ) + ∑ i = 1 k α i c i ( x ) + ∑ j = 1 l β j h j ( x ) L(x,\alpha,\beta) = f(x) + \sum_{i=1}^k \alpha_i c_i (x) + \sum_{j=1}^l \beta_j h_j (x) L(x,α,β)=f(x)+i=1∑kαici(x)+j=1∑lβjhj(x)
对于约束条件 c i ( x ) ≤ 0 c_i(x) \le 0 ci(x)≤0:当存在某个 i i i 使得 c i ( x ) > 0 c_i(x)>0 ci(x)>0 时,违反了约束条件;我们需要令 α i → + ∞ \alpha_i \rightarrow +\infty αi→+∞,使 α i c i → + ∞ \alpha_i c_i \rightarrow + \infty αici→+∞。而对于 c i ( x ) ≤ 0 c_i(x) \le 0 ci(x)≤0,满足约束条件;我们需要令当 α i = 0 \alpha_i = 0 αi=0 时, α i c i ( x ) \alpha_i c_i(x) αici(x) 取得最大值 0 0 0。显然, α i \alpha_i αi 不能为负数,于是我们得到了 α i ≥ 0 \alpha_i \ge 0 αi≥0 的取值范围。
对于约束条件 h j ( x ) = 0 h_j(x) = 0 hj(x)=0,当存在某个 j j j 使得 h j ( x ) > 0 h_j(x)>0 hj(x)>0 时,我们需要令 β j → + ∞ \beta_j \rightarrow +\infty βj→+∞;对于 h j ( x ) < 0 h_j(x)<0 hj(x)<0,我们需要令 β j → − ∞ \beta_j \rightarrow - \infty βj→−∞;而对于 h j ( x ) = 0 h_j(x)=0 hj(x)=0,满足约束条件, β j \beta_j βj 取得任意值时,均有 β j h j ( x ) = 0 \beta_j h_j(x) = 0 βjhj(x)=0。显然, β j \beta_j βj 可以取任意值,于是我们得到了 β j ∈ R \beta_j \in R βj∈R 的取值范围。
KKT 条件整理
- 函数各个自变量的偏导数为 0(C.21)
- 各个拉格朗日乘子与约束条件的乘积均为 0(C.22)
- 各个约束条件均满足(C.23,C.25)
- 拉格朗日乘子的定义域均满足(C.24)