KKT条件

  • 等式约束的优化问题:使用拉格朗日乘数法构建拉格朗日函数,利用求取极值的必要性,转换为无约束优化问题,可以使用梯度下降法牛顿法共轭梯度法等方法进行迭代求解。

  • 带有不等式约束的优化问题:构建广义拉格朗日函数,然后使用KKT条件进行求解。

1. 基本原理


对于带约束的优化问题(不一定是凸问题)测试:

$$ \begin{array}{ll} \min & f_0(\boldsymbol{x}), \boldsymbol{x} \in \mathbb{R}^n \\ & f_i(\boldsymbol{x}) \leq 0 \text {, 其中 } \mathrm{i}=1,2,3 \ldots \mathrm{m} \\ \text { s.t. } & h_i(\boldsymbol{x})=0 \text {, 其中 } \mathrm{i}=1,2,3 \ldots q \end{array} $$

1.1 首先构建拉格朗日函数,将原问题进行等价转换:

image.png

问题:为什么拉格朗日乘子$\lambda \geq 0$? 答:为了使得原函数 $f_{0}(x)$ 等价为 极大的拉格朗日函数。也就是上面的当 x 在可行域和不在可行域时需要满足的条件,从而将原问题等价为极小极大拉格朗日问题。

1.2 将原问题转换为对偶问题,就是最大最小过程进行交换:

image.png

这里,对偶问题进行进一步转化:

$$ \begin{array}{ll} 对偶问题: &\max _{\lambda, v} L(x,\lambda, v) \\ \text { s.t. } & \nabla_{\boldsymbol{x}} L(\boldsymbol{x}, \boldsymbol{\lambda}, \boldsymbol{v})=\mathbf{0} \\ & \boldsymbol{\lambda} \geq \mathbf{0} \end{array} $$

注意对偶函数 $g(\lambda,v)$的变量为 $\lambda,v$ ,然后分析对偶函数:

  • $g(\lambda,v)$ 是关于变量的线性函数,因此既是凸函数也是凹函数;
  • 对偶问题可行域为 $\lambda \geq 0$ ,是半空间,因此为凸空间。

所以无论原问题是不是凸问题,对偶问题一定是凸问题。 image.png

1.3 对偶问题于原问题之间解的关系

  • 对偶问题的解是原问题解的下界,这是弱对偶关系,即 $P* \geq D*$
  • 对偶问题的解是原问题的解,这是强对偶关系,即 $P* = D*$

image.png

1.4 原始问题要是一个强对偶问题

需要满足:

  • 原始问题为凸问题;
  • 满足 Slack 条件; image.png

1.5 最终,如何求解一个带约束的凸优化问题

使用 KKT 条件求解,KKT 条件是原始问题为强对偶问题的必要条件,也就是说原始问题如果是强对偶,那么一定满足KKT条件,但满足KKT条件,不一定是强对偶。

互补松弛是构建拉格朗日函数时需要满足的,就是松弛条件和紧致条件的特性的统一表示。

image.png

2. 补充


  • 松弛条件和紧致条件

image.png

3. 参考