Administrator
发布于 2026-09-09 / 0 阅读
0
0

优化理论(七):拉格朗日乘数法

课程背景与目标

本节课的核心是学习拉格朗日乘数法这一数学工具。课程目标有两个方面:首先是掌握拉格朗日乘数法的使用方法,其次是理解在什么情况下可以用必要条件或充分条件来刻画问题的最小化器。这里需要明确的是,必要条件和充分条件在优化问题中扮演不同角色:必要条件帮助我们找到候选解,而充分条件确保这些候选解确实是我们要找的最优解。

从一个直观例子开始

在正式引入理论框架之前,先看一个具体问题来建立直觉。问题是:最小化 x_1 + 2x_2 并且满足约束条件 x_1^2 + x_2^2 \leq 1

面对这个约束优化问题,拉格朗日方法的核心思想是构造一个新的函数,把约束条件融入到目标函数中。具体做法是引入拉格朗日函数:

\mathcal{L}(x, \nu) = x_1 + 2x_2 + \nu(x_1^2 + x_2^2 - 1)

这里 \nu 就是拉格朗日乘子。这个函数的构造看似简单,但背后的逻辑是:通过引入乘子 \nu,我们把约束条件"惩罚化"到目标函数中。当约束被满足时,括号内的项为零或负(因为是不等式约束 \leq 1),而当约束被违反时,这一项变大。

接下来对 \mathcal{L} 关于 x_1x_2 求偏导并令其为零:

\begin{cases} \frac{\partial \mathcal{L}}{\partial x_1} = 1 + \nu \cdot 2x_1 = 0 \\ \frac{\partial \mathcal{L}}{\partial x_2} = 2 + \nu \cdot 2x_2 = 0 \end{cases}

这两个方程给出了临界点的必要条件。从这两个方程可以解出:

\begin{cases} \hat{x}_1 = -\frac{1}{2\nu} \\ \hat{x}_2 = -\frac{1}{\nu} \end{cases}

这里的 \hat{x} 表示候选的最优解。注意这些解都依赖于 \nu 的取值。接下来需要确定 \nu 的值,这通过代入约束条件来完成。将上述解代入拉格朗日函数,得到:

\mathcal{L}(\hat{x}, \nu) = -\frac{5}{2\nu} + \nu\left(\frac{5}{4\nu^2} - 1\right) = -\frac{5}{4\nu} - \nu

对这个关于 \nu 的函数求导,我们要找使其达到极值的 \nu。对 \frac{5}{4\nu^2} - 1 关于 \nu 求导并令其为零,可以得到 \hat{\nu} = \sqrt{\frac{5}{4}}

\hat{\nu} 代回到 \hat{x} 的表达式中:

\begin{cases} \hat{x}_1 = -\frac{1}{2\hat{\nu}} = -\frac{1}{\sqrt{5}} \\ \hat{x}_2 = -\frac{1}{\hat{\nu}} = -\frac{2}{\sqrt{5}} \end{cases}

这就得到了具体的数值解。但这里引出三个关键问题:这个方法虽然是常规做法,但为什么它是合法的?这个方法在什么条件下才能保证有效?在不同的数学背景下(比如凸优化和非凸优化),这个方法的表现如何?这些问题将在后续内容中逐步解答。

约束优化问题的数学框架

现在建立一般性的理论框架。设 \mathcal{H} 是一个希尔伯特空间,这为我们提供了一个抽象但完备的数学环境。目标函数定义为 f: \mathcal{H} \to ]-\infty, +\infty],这个定义域的写法表明函数值可以取到正无穷,这在优化理论中用来表示某些点是"不可行的"。

问题涉及两类约束:等式约束和不等式约束。记 (m, q) \in \mathbb{N}^2,对于每个 i \in \{1, \ldots, m\},定义等式约束函数 g_i: \mathcal{H} \to \mathbb{R};对于每个 j \in \{1, \ldots, q\},定义不等式约束函数 h_j: \mathcal{H} \to \mathbb{R}

可行集定义为:

C = \{x \in \mathcal{H} \mid (\forall i \in \{1, \ldots, m\}) \, g_i(x) = 0 \text{ 且 } (\forall j \in \{1, \ldots, q\}) \, h_j(x) \leq 0\}

这个集合刻画了所有满足约束条件的点。等式约束要求某些函数在可行点处精确为零,而不等式约束要求某些函数值不超过零。这里将不等式写成 \leq 0 而不是 \leq 1 的形式是标准化处理,任何不等式约束都可以通过移项转化为这种形式。

优化问题的目标是:

\text{找到 } \hat{x} \in \underset{x \in C}{\text{Argmin}} \, f(x)

这里 \text{Argmin} 表示使目标函数达到最小值的所有点的集合。需要注意的是,一个向量 x \in \mathcal{H} 被称为可行的(feasible),当且仅当 x \in \text{dom } f \cap C。这个定义说明可行点不仅要满足约束条件,还必须在目标函数的定义域内。

拉格朗日函数的定义与结构

针对上述约束优化问题,拉格朗日函数(或称拉格朗日量)定义为:对任意 x \in \mathcal{H},对任意 \nu = (\nu^{(i)})_{1 \leq i \leq m} \in \mathbb{R}^m,对任意 \lambda = (\lambda^{(j)})_{1 \leq j \leq q} \in [0, +\infty[^q,有

\mathcal{L}(x, \nu, \lambda) = f(x) + \sum_{i=1}^{m} \nu^{(i)} g_i(x) + \sum_{j=1}^{q} \lambda^{(j)} h_j(x)

向量 \nu\lambda 被称为拉格朗日乘子。这个定义包含几个关键点需要理解。首先,为什么等式约束的乘子 \nu^{(i)} 可以取任意实数,而不等式约束的乘子 \lambda^{(j)} 必须非负?这是因为等式约束 g_i(x) = 0 是双向的约束,而不等式约束 h_j(x) \leq 0 只在一个方向上起作用。非负的 \lambda^{(j)} 确保当约束被违反(即 h_j(x) > 0)时,拉格朗日函数会增大,从而"惩罚"这种违反。

其次,拉格朗日函数的定义域是 \text{dom } \mathcal{L} = \text{dom } f \times \mathbb{R}^m \times [0, +\infty[^q。这个定义域的结构反映了拉格朗日函数是原始变量 x、等式约束乘子 \nu 和不等式约束乘子 \lambda 的函数。这种构造将约束优化问题转化为在扩展空间中寻找拉格朗日函数的鞍点的问题,这是拉格朗日方法的核心思想。

拉格朗日函数的特殊情况

在定义了一般的拉格朗日函数后,需要理解两种特殊但常见的情况。当问题中只有等式约束而没有不等式约束时,即 q = 0,拉格朗日函数简化为:

(\forall x \in \mathcal{H})(\forall \nu = (\nu^{(i)})_{1 \leq i \leq m} \in \mathbb{R}^m) \quad \mathcal{L}(x, \nu) = f(x) + \sum_{i=1}^{m} \nu^{(i)} g_i(x)

此时不需要考虑不等式约束的乘子 \lambda,问题变得相对简单。这种情况在许多实际问题中出现,比如在物理中的守恒定律约束下的优化问题,约束通常都是等式形式。

另一种对称的情况是当 m = 0 时,即问题中只有不等式约束而没有等式约束。此时拉格朗日函数简化为:

(\forall x \in \mathcal{H})(\forall \lambda = (\lambda^{(j)})_{1 \leq j \leq q} \in [0, +\infty[^q) \quad \mathcal{L}(x, \lambda) = f(x) + \sum_{j=1}^{q} \lambda^{(j)} h_j(x)

这种情况下只需要处理非负的乘子 \lambda。许多凸优化问题就属于这一类,比如线性规划和某些二次规划问题。

拉格朗日对偶理论的核心概念

在理解了拉格朗日函数的基本形式后,现在引入对偶理论的两个核心函数:原始拉格朗日函数和对偶拉格朗日函数。这两个函数揭示了原始优化问题和它的对偶问题之间的深刻联系。

原始拉格朗日函数

定义原始拉格朗日函数 \overline{\mathcal{L}} 为:

(\forall x \in \mathcal{H}) \quad \overline{\mathcal{L}}(x) = \sup_{\nu \in \mathbb{R}^m, \lambda \in [0, +\infty[^q} \mathcal{L}(x, \nu, \lambda)

这个定义看似复杂,实际上在做一件关键的事情:对于固定的 x,在所有可能的拉格朗日乘子 (\nu, \lambda) 中寻找使 \mathcal{L}(x, \nu, \lambda) 达到上确界的值。这个上确界有一个非常漂亮的性质:对于可行集 C 中的任意点 x,都有 \overline{\mathcal{L}}(x) = f(x)

这个结论背后的原因需要仔细理解。对于任意 (x, \nu, \lambda) \in C \times \mathbb{R}^m \times [0, +\infty[^q,拉格朗日函数可以写成:

\mathcal{L}(x, \nu, \lambda) = f(x) + \sum_{i=1}^{m} \nu^{(i)} g_i(x) + \sum_{j=1}^{q} \lambda^{(j)} h_j(x) \leq f(x)

这个不等式成立是因为:当 x \in C 时,根据可行集的定义,所有等式约束满足 g_i(x) = 0(因此 \sum_{i=1}^{m} \nu^{(i)} g_i(x) = 0 无论 \nu 取什么值),所有不等式约束满足 h_j(x) \leq 0(而 \lambda^{(j)} \geq 0,所以 \sum_{j=1}^{q} \lambda^{(j)} h_j(x) \leq 0)。因此对于可行点,约束项要么为零,要么为非正数,从而 \mathcal{L}(x, \nu, \lambda) \leq f(x)

但同时,这个上确界又能够达到 f(x),因为当我们选择特定的乘子值(比如让所有乘子都为零或者取适当的值),约束项会消失或者达到零,使得 \mathcal{L}(x, \nu, \lambda) = f(x)。因此取上确界后正好得到 \overline{\mathcal{L}}(x) = \sup_{\nu, \lambda} \mathcal{L}(x, \nu, \lambda) = f(x)

对偶拉格朗日函数

现在考虑相反的操作:固定拉格朗日乘子 (\nu, \lambda),对原始变量 x 取下确界。这就引出了对偶拉格朗日函数 \underline{\mathcal{L}}

(\forall (\nu, \lambda) \in \mathbb{R}^m \times [0, +\infty[^q) \quad \underline{\mathcal{L}}(\nu, \lambda) = \inf_{x \in \mathcal{H}} \mathcal{L}(x, \nu, \lambda)

这个函数有一个关键性质:-\underline{\mathcal{L}} 是凸函数且半连续的(s.c.i.,即下半连续)。这个性质从何而来?证明的思路是利用凸分析中的一个基本事实:凸函数可以表示为仿射函数族的上确界。

具体来说,对于任意 (\nu, \lambda) \in \mathbb{R}^m \times [0, +\infty[^q,我们有:

-\underline{\mathcal{L}}(\nu, \lambda) = \sup_{x \in \text{dom } f} (-\mathcal{L}(x, \nu, \lambda))

这里 -\mathcal{L}(x, \nu, \lambda) 对于固定的 x 来说是 (\nu, \lambda) 的仿射函数(线性函数加常数)。仿射函数本身是凸函数,而凸函数族的上确界(逐点取最大值)仍然保持凸性。因此 -\underline{\mathcal{L}} 是凸的。半连续性也源于这一点:仿射函数是连续的,连续函数族的上确界是下半连续的。

原始拉格朗日函数和对偶拉格朗日函数的定义揭示了一个对称的结构:一个是先对乘子取上确界再对变量操作,另一个是先对变量取下确界再对乘子操作。这种对称性是拉格朗日对偶理论的基础,它允许我们从不同角度研究同一个优化问题,有时求解对偶问题比求解原始问题更容易。

弱对偶性定理

在建立了原始拉格朗日函数和对偶拉格朗日函数后,现在可以揭示它们之间的一个基本关系。对于任意 (x, \nu, \lambda) \in \mathcal{H} \times \mathbb{R}^m \times [0, +\infty[^q,都有:

\underline{\mathcal{L}}(\nu, \lambda) \leq \overline{\mathcal{L}}(x)

这个不等式被称为弱对偶性。它的证明思路直接来源于上确界和下确界的定义。对于任意给定的 (x, \nu, \lambda),我们有:

\inf_{x'} \mathcal{L}(x', \nu, \lambda) \leq \mathcal{L}(x, \nu, \lambda) \leq \sup_{\nu', \lambda'} \mathcal{L}(x, \nu', \lambda')

这个不等式链的逻辑是:左边是对所有 x' 取下确界,中间是具体点 (x, \nu, \lambda) 处的函数值,右边是对所有 (\nu', \lambda') 取上确界。显然中间的值必定大于等于左边(因为它是取下确界的众多候选值之一),同时必定小于等于右边(因为它也是取上确界的众多候选值之一)。由定义,左边正是 \underline{\mathcal{L}}(\nu, \lambda),右边正是 \overline{\mathcal{L}}(x),因此得到弱对偶性。

进一步,可以得到一个更强的结果:

\sup_{\nu \in \mathbb{R}^m, \lambda \in [0, +\infty[^q} \underline{\mathcal{L}}(\nu, \lambda) \leq \mu = \inf_{x \in C} f(x)

这里 \mu 是原问题的最优值。这个不等式告诉我们,对偶问题的最优值不会超过原问题的最优值。证明的关键在于:对于任意可行点 x \in C,我们已经知道 \overline{\mathcal{L}}(x) = f(x)。结合弱对偶性 \underline{\mathcal{L}}(\nu, \lambda) \leq \overline{\mathcal{L}}(x),我们得到 \underline{\mathcal{L}}(\nu, \lambda) \leq f(x) 对所有可行的 x 和所有 (\nu, \lambda) 成立。对左边取关于 (\nu, \lambda) 的上确界,对右边取关于 x 的下确界,就得到了这个不等式。

这个结果在优化理论中具有深远意义:它说明对偶问题提供了原问题最优值的一个下界。即使我们无法精确求解原问题,通过求解对偶问题也能得到原问题最优值的估计。当这个不等式取等号时(即对偶间隙为零),我们就进入了强对偶性的情况。

鞍点的概念与性质

现在引入鞍点的概念,这是连接原问题、对偶问题和最优性条件的关键桥梁。称 (\hat{x}, \hat{\nu}, \hat{\lambda}) \in \mathcal{H} \times \mathbb{R}^m \times [0, +\infty[^q 是拉格朗日函数 \mathcal{L} 的鞍点,如果对所有 (x, \nu, \lambda) \in \mathcal{H} \times \mathbb{R}^m \times [0, +\infty[^q,都有:

\mathcal{L}(\hat{x}, \nu, \lambda) \leq \mathcal{L}(\hat{x}, \hat{\nu}, \hat{\lambda}) \leq \mathcal{L}(x, \hat{\nu}, \hat{\lambda})

鞍点的几何直觉来自于马鞍的形状:在某些方向上函数达到最小值,在另一些方向上达到最大值。具体来说,左边的不等式表示固定 \hat{x},在所有 (\nu, \lambda) 中,(\hat{\nu}, \hat{\lambda}) 使函数达到最大;右边的不等式表示固定 (\hat{\nu}, \hat{\lambda}),在所有 x 中,\hat{x} 使函数达到最小。

这里有一个重要的注记:如果存在一个可行点,且 (\hat{x}, \hat{\nu}, \hat{\lambda})\mathcal{L} 的鞍点,那么由右边的不等式可以推出 \hat{x} \in \text{dom } f。这是因为右边不等式要求 \hat{x} 最小化 \mathcal{L}(x, \hat{\nu}, \hat{\lambda}),而这要求 \hat{x} 必须在目标函数的定义域内。

鞍点的等价刻画定理

鞍点可以用原始和对偶拉格朗日函数来等价刻画。(\hat{x}, \hat{\nu}, \hat{\lambda}) \in \mathcal{H} \times \mathbb{R}^m \times [0, +\infty[^q\mathcal{L} 的鞍点,当且仅当以下三个条件同时成立:

(\forall x \in \mathcal{H}) \quad \overline{\mathcal{L}}(\hat{x}) \leq \overline{\mathcal{L}}(x)
(\forall (\nu, \lambda) \in \mathbb{R}^m \times [0, +\infty[^q) \quad \underline{\mathcal{L}}(\nu, \lambda) \leq \underline{\mathcal{L}}(\hat{\nu}, \hat{\lambda})
\overline{\mathcal{L}}(\hat{x}) = \underline{\mathcal{L}}(\hat{\nu}, \hat{\lambda})

这三个条件分别说明:第一个条件表示 \hat{x} 是原始拉格朗日函数的最小化器,第二个条件表示 (\hat{\nu}, \hat{\lambda}) 是对偶拉格朗日函数的最大化器,第三个条件表示原始问题和对偶问题的最优值相等(强对偶性)。

证明的核心思路是:假设 (\hat{x}, \hat{\nu}, \hat{\lambda}) 是鞍点,那么对任意 (x', \nu', \lambda') \in \mathcal{H} \times \mathbb{R}^m \times [0, +\infty[^q,有:

\mathcal{L}(\hat{x}, \nu', \lambda') \leq \mathcal{L}(\hat{x}, \hat{\nu}, \hat{\lambda}) \leq \mathcal{L}(x', \hat{\nu}, \hat{\lambda})

对左边的不等式关于 (\nu', \lambda') 取上确界,对右边的不等式关于 x' 取下确界,得到:

\sup_{\nu', \lambda'} \mathcal{L}(\hat{x}, \nu', \lambda') \leq \inf_{x'} \mathcal{L}(x', \hat{\nu}, \hat{\lambda})

这正好是 \overline{\mathcal{L}}(\hat{x}) \leq \underline{\mathcal{L}}(\hat{\nu}, \hat{\lambda})。但从前面的弱对偶性我们知道,一般情况下有反向的不等式 \underline{\mathcal{L}}(\hat{\nu}, \hat{\lambda}) \leq \overline{\mathcal{L}}(\hat{x})。因此在鞍点处,这两个不等式必须同时成立,从而得到 \overline{\mathcal{L}}(\hat{x}) = \underline{\mathcal{L}}(\hat{\nu}, \hat{\lambda})

继续分析,我们有不等式链:

\inf_x \overline{\mathcal{L}}(x) \leq \overline{\mathcal{L}}(\hat{x}) \leq \underline{\mathcal{L}}(\hat{\nu}, \hat{\lambda}) \leq \sup_{\nu, \lambda} \underline{\mathcal{L}}(\nu, \lambda)

结合前面证明的弱对偶性 \sup_{\nu, \lambda} \underline{\mathcal{L}}(\nu, \lambda) \leq \inf_x \overline{\mathcal{L}}(x),这个不等式链中的所有不等号必须全部取等号。因此得到:\inf_x \overline{\mathcal{L}}(x) = \sup_{\nu, \lambda} \underline{\mathcal{L}}(\nu, \lambda),且 \overline{\mathcal{L}}(\hat{x}) = \inf_x \overline{\mathcal{L}}(x)\underline{\mathcal{L}}(\hat{\nu}, \hat{\lambda}) = \sup_{\nu, \lambda} \underline{\mathcal{L}}(\nu, \lambda),以及 \overline{\mathcal{L}}(\hat{x}) = \underline{\mathcal{L}}(\hat{\nu}, \hat{\lambda})

这个定理的价值在于:它将鞍点的直接定义(一个涉及所有点的不等式条件)转化为三个独立的、更易验证的条件。在实践中,验证这三个条件通常比直接验证鞍点定义更加可行。

约束最小值的充分条件

在理解了鞍点的定义和等价刻画后,现在可以建立鞍点与原问题最优解之间的直接联系。这个结果回答了一个核心问题:如果我们找到了拉格朗日函数的鞍点,它与原约束优化问题的解有什么关系?

假设存在至少一个可行点。如果 (\hat{x}, \hat{\nu}, \hat{\lambda}) \in \mathcal{H} \times \mathbb{R}^m \times [0, +\infty[^q\mathcal{L} 的鞍点,那么 \hat{x} 就是 f 在可行集 C 上的最小化器。同时,原问题的最优值满足 \mu = f(\hat{x}) = \underline{\mathcal{L}}(\hat{\nu}, \hat{\lambda}),这说明原问题和对偶问题的最优值相等,对偶间隙为零。此外,还有一个被称为互补松弛条件的关系成立:

(\forall j \in \{1, \ldots, q\}) \quad \hat{\lambda}_j h_j(\hat{x}) = 0

这个条件的直观含义非常清晰:对于每个不等式约束,要么约束是紧的(即 h_j(\hat{x}) = 0,约束取等号),要么对应的拉格朗日乘子为零(即 \hat{\lambda}_j = 0,这个约束"不起作用")。换句话说,只有那些在最优点处真正起约束作用的不等式(即紧约束)才会有非零的拉格朗日乘子。这反映了拉格朗日乘子的经济学解释:它度量了约束对目标函数最优值的影响程度。

证明思路

证明分为两个主要部分。首先证明 \hat{x} 确实是可行的,且所有约束都被满足。从前面关于鞍点的结果,我们知道 \hat{x} \in \text{dom } f。现在利用鞍点的左侧不等式:对所有 (\nu, \lambda) \in \mathbb{R}^m \times [0, +\infty[^q,都有 \mathcal{L}(\hat{x}, \nu, \lambda) \leq \mathcal{L}(\hat{x}, \hat{\nu}, \hat{\lambda})

选择特殊的乘子来测试这个不等式。对于任意 \nu' = (\nu'^{(i)})_{1 \leq i \leq m} \in \mathbb{R}^m,设置 \nu = \hat{\nu} + \nu'\lambda = \hat{\lambda},代入得到:

\sum_{i=1}^{m} \nu'^{(i)} g_i(\hat{x}) \leq 0

由于 \nu' 是任意的,这个不等式能对所有 \nu' 成立的唯一可能是每个 g_i(\hat{x}) = 0。类似地,对于任意 \lambda' = (\lambda'^{(j)})_{1 \leq j \leq q} \in [0, +\infty[^q,设置 \nu = \hat{\nu}\lambda = \hat{\lambda} + \lambda',得到:

\sum_{j=1}^{q} \lambda'^{(j)} h_j(\hat{x}) \leq 0

再次由于 \lambda' 的任意性且要求非负,这意味着每个 h_j(\hat{x}) \leq 0。因此我们推导出:对所有 i \in \{1, \ldots, m\}g_i(\hat{x}) = 0,对所有 j \in \{1, \ldots, q\}h_j(\hat{x}) \leq 0,这正是 \hat{x} \in C 的定义。

接下来证明互补松弛条件。我们已经证明了所有等式约束在 \hat{x} 处满足 g_i(\hat{x}) = 0,所有不等式约束满足 h_j(\hat{x}) \leq 0。因此拉格朗日函数在 \hat{x} 处可以写成:

\mathcal{L}(\hat{x}, \hat{\nu}, \hat{\lambda}) = f(\hat{x}) + \sum_{i=1}^{m} \hat{\nu}^{(i)} \underbrace{g_i(\hat{x})}_{=0} + \sum_{j=1}^{q} \hat{\lambda}^{(j)} \underbrace{h_j(\hat{x})}_{\leq 0}

由于鞍点的定义,(\hat{\nu}, \hat{\lambda}) 必须最大化 \mathcal{L}(\hat{x}, \nu, \lambda)。但注意到第一项(等式约束项)已经为零,而第二项(不等式约束项)是 \hat{\lambda}^{(j)} h_j(\hat{x}),其中 \hat{\lambda}^{(j)} \geq 0h_j(\hat{x}) \leq 0,所以每一项都非正。现在考虑鞍点的左侧不等式,特别是取 \nu = \hat{\nu}\lambda = 0,我们得到:

\mathcal{L}(\hat{x}, \hat{\nu}, 0) \leq \mathcal{L}(\hat{x}, \hat{\nu}, \hat{\lambda})

展开左边,由于 \lambda = 0,不等式约束项消失,只剩下 f(\hat{x})。展开右边得到 f(\hat{x}) + \sum_{j=1}^{q} \hat{\lambda}^{(j)} h_j(\hat{x})。因此:

f(\hat{x}) \leq f(\hat{x}) + \sum_{j=1}^{q} \hat{\lambda}^{(j)} h_j(\hat{x})

这意味着 \sum_{j=1}^{q} \hat{\lambda}^{(j)} h_j(\hat{x}) \geq 0。但我们已经知道每一项 \hat{\lambda}^{(j)} h_j(\hat{x}) \leq 0(因为 \hat{\lambda}^{(j)} \geq 0h_j(\hat{x}) \leq 0),所以和也必定非正。结合这两个不等式,必有 \sum_{j=1}^{q} \hat{\lambda}^{(j)} h_j(\hat{x}) = 0。由于每一项都非正且和为零,每一项必须都等于零,即对所有 j 都有 \hat{\lambda}^{(j)} h_j(\hat{x}) = 0,这就是互补松弛条件。

最后,要证明 \hat{x} 确实是 fC 上的最小化器。由于 \hat{x} \in C 且互补松弛条件成立,我们有 \mathcal{L}(\hat{x}, \hat{\nu}, \hat{\lambda}) = f(\hat{x})(因为所有约束项都为零)。现在对任意 x \in C,利用鞍点的右侧不等式:

\mathcal{L}(\hat{x}, \hat{\nu}, \hat{\lambda}) \leq \mathcal{L}(x, \hat{\nu}, \hat{\lambda})

展开右边,对于可行点 x \in C,我们有 g_i(x) = 0h_j(x) \leq 0,因此:

\mathcal{L}(x, \hat{\nu}, \hat{\lambda}) = f(x) + \sum_{i=1}^{m} \hat{\nu}^{(i)} g_i(x) + \sum_{j=1}^{q} \hat{\lambda}^{(j)} h_j(x) \leq f(x)

最后一个不等号是因为第一项为零,第二项非正(\hat{\lambda}^{(j)} \geq 0h_j(x) \leq 0)。结合前面的不等式,得到 f(\hat{x}) = \mathcal{L}(\hat{x}, \hat{\nu}, \hat{\lambda}) \leq \mathcal{L}(x, \hat{\nu}, \hat{\lambda}) \leq f(x)。这对所有 x \in C 成立,因此 \hat{x} 确实是最小化器。作为前面结果的直接推论,我们有 f(\hat{x}) = \overline{\mathcal{L}}(\hat{x}) = \underline{\mathcal{L}}(\hat{\nu}, \hat{\lambda})

这个定理的价值在于:它提供了一个充分条件来判断一个点是否为约束优化问题的解。如果能找到拉格朗日函数的鞍点,就自动得到了原问题的解。同时,互补松弛条件为我们提供了关于哪些约束在最优解处"起作用"的信息,这在实际应用中对理解问题结构很有帮助。

凸情况下的充要条件定理

前面我们建立了充分条件:如果存在鞍点,那么就能找到原问题的最优解。但这只是单向的保证。在凸优化的框架下,我们可以得到一个更强的结果:鞍点的存在性与最优解之间有完美的双向对应关系,这是一个充分必要条件。

凸情况的基本假设与定理

假设目标函数 f 是凸函数,等式约束函数 (g_i)_{1 \leq i \leq m} 是仿射函数(即线性函数加常数),不等式约束函数 (h_j)_{1 \leq j \leq q} 是凸函数。这些假设构成了凸优化问题的标准框架。在这个框架下,可行集 C 本身也是凸集,因为它是仿射集(由等式约束定义)和凸集(由不等式约束定义)的交集。

关键的技术假设是Slater条件:存在一个点 \overline{x} \in \text{int}(\text{dom } f) 位于目标函数定义域的内部,使得所有等式约束在该点处精确满足 g_i(\overline{x}) = 0,而所有不等式约束在该点处严格满足 h_j(\overline{x}) < 0。这里"严格"二字至关重要:Slater条件要求不等式约束不仅被满足,而且留有余地。这个条件的几何意义是:可行集的内部非空,存在一个"严格可行"的点,它不在任何不等式约束的边界上。Slater条件保证了约束的良好性质,避免了约束退化的情况。

在这些假设下,核心定理断言:\hat{x}fC 上的最小化器,当且仅当存在 \hat{\nu} \in \mathbb{R}^m\hat{\lambda} \in [0, +\infty[^q 使得 (\hat{x}, \hat{\nu}, \hat{\lambda}) 是拉格朗日函数的鞍点。

这个"当且仅当"的表述意味着两个方向都成立。一个方向我们已经知道:如果有鞍点,则有最优解(这是前面的充分条件定理)。另一个方向是新的:如果有最优解,那么必然存在拉格朗日乘子使得三元组构成鞍点。这个逆向的保证在实践中极其重要,因为它告诉我们:对于凸优化问题,寻找鞍点和寻找最优解是等价的任务。证明只需要结合前面的两个结果:充分条件定理给出了一个方向,而凸优化理论中的对偶理论(在Slater条件下强对偶性成立)给出了另一个方向。

实用性注记

在定理的假设下,如果 \hat{x} 是最小化器,那么函数 \mathcal{L}(\cdot, \hat{\nu}, \hat{\lambda})(即固定了拉格朗日乘子后关于 x 的函数)是凸函数,并且在 \hat{x} 处达到最小值。这个性质在实际计算中非常有用:为了找到 \hat{x},我们可以利用凸函数最小化的各种算法和技术。通常的做法是结合三个条件来计算最优解:拉格朗日函数关于 x 的最优性条件(比如梯度为零),等式约束 g_i(\hat{x}) = 0,以及互补松弛条件 \hat{\lambda}_j h_j(\hat{x}) = 0。这三组条件形成了一个方程组,在很多情况下可以解析或数值求解。

只有等式约束的特殊情况

当问题中只有等式约束而没有不等式约束时,定理简化为:假设 f 是凸函数,(g_i)_{1 \leq i \leq m} 是仿射函数,且Slater条件成立(即存在 \overline{x} \in \text{int}(\text{dom } f) 使得所有 g_i(\overline{x}) = 0)。那么 \hat{x}fC 上的最小化器,当且仅当存在 \hat{\nu} \in \mathbb{R}^m 使得 (\hat{x}, \hat{\nu}) 是拉格朗日函数的鞍点。

在这种情况下,拉格朗日函数只涉及 \nu 而不涉及 \lambda,形式为:

\mathcal{L}(x, \nu) = f(x) + \sum_{i=1}^{m} \nu^{(i)} g_i(x)

由于只有等式约束,不需要考虑互补松弛条件和非负性约束。鞍点条件简化为:对所有 x\mathcal{L}(\hat{x}, \nu)\nu 取得最大值,对所有 \nu\mathcal{L}(x, \hat{\nu})\hat{x} 处取得最小值。这种情况在很多经典优化问题中出现,比如在线性等式约束下的二次规划。

只有不等式约束的特殊情况

另一个重要的特殊情况是当问题中只有不等式约束而没有等式约束。此时定理陈述为:假设 f 是凸函数,(h_j)_{1 \leq j \leq q} 是凸函数,且Slater条件成立(即存在 \overline{x} \in \text{dom } f 使得所有 h_j(\overline{x}) < 0,注意这里不需要内部点条件,因为没有等式约束)。那么 \hat{x}fC 上的最小化器,当且仅当存在 \hat{\lambda} \in [0, +\infty[^q 使得 (\hat{x}, \hat{\lambda}) 是拉格朗日函数的鞍点。

此时拉格朗日函数的形式为:

\mathcal{L}(x, \lambda) = f(x) + \sum_{j=1}^{q} \lambda^{(j)} h_j(x)

这种情况涵盖了大量实际问题,包括线性规划(当 f 和所有 h_j 都是线性时)和凸二次规划。在这种设定下,KKT条件(Karush-Kuhn-Tucker条件)成为最优性的充要条件,它们包括:拉格朗日函数关于 x 的梯度为零,原始可行性(所有 h_j(\hat{x}) \leq 0),对偶可行性(所有 \hat{\lambda}_j \geq 0),以及互补松弛条件(所有 \hat{\lambda}_j h_j(\hat{x}) = 0)。

应用实例:工厂生产成本最小化问题

现在通过一个具体例子来展示如何应用拉格朗日乘数法求解实际优化问题。问题背景是一个工厂需要最小化生产成本。工厂生产两种产品:数量为 x_1 的汽车和数量为 x_2 的卡车。生产汽车需要 \psi_1(x_1) 个机器工具,生产卡车需要 \psi_2(x_2) 个机器工具,而工厂可用的机器工具总数受限于 c。汽车和卡车的生产成本函数分别为 \varphi_1(x_1)\varphi_2(x_2)

问题的具体形式

在这个问题中,成本函数和资源消耗函数的具体形式为:

\varphi_1(x_1) = (x_1 - 100)^2
\varphi_2(x_2) = 2(x_2 - 50)^2
\psi_1(x_1) = x_1
\psi_2(x_2) = x_2
c = 90

第一个成本函数 (x_1 - 100)^2 表明当生产100辆汽车时成本最低,偏离这个数量会导致成本增加,这可能反映了规模经济效应。类似地,第二个成本函数 2(x_2 - 50)^2 的系数2表明卡车生产成本对偏离最优产量更加敏感。机器工具的消耗函数都是线性的,每生产一个单位产品就消耗一个单位工具。

将这些具体函数代入优化问题,我们需要求解:

\inf_{x_1 \geq 0, x_2 \geq 0} f(x) \quad \text{s.t.} \quad h(x) \leq 0

其中目标函数和约束函数定义为:

f(x) = (x_1 - 100)^2 + 2(x_2 - 50)^2 + \iota_{[0,\infty[^2}(x)
h(x) = x_1 + x_2 - 90

这里 \iota_{[0,\infty[^2}(x) 是非负象限的示性函数,它在 x_1 \geq 0x_2 \geq 0 时取值为0,否则取值为 +\infty。这个技巧将非负性约束嵌入到目标函数中,使问题形式更加统一。约束 h(x) = x_1 + x_2 - 90 \leq 0 表示机器工具总消耗不能超过90个单位。

验证凸性和Slater条件

在应用凸情况下的充要条件定理之前,需要验证问题满足必要的假设。首先,目标函数 f 是凸的,因为它是两个凸的二次函数之和(二次项系数都是正的),加上一个凸集的示性函数。约束函数 h(x) = x_1 + x_2 - 90 是仿射函数,因此也是凸的。

接下来验证Slater条件。目标函数的定义域是 \text{dom } f = [0, \infty[^2,这是一个闭集。考虑点 x = (10, 10),这个点位于 \text{int}(\text{dom } f) 中(因为两个分量都严格为正),并且在这个点处约束被严格满足:h(10, 10) = 10 + 10 - 90 = -70 < 0。因此Slater条件成立。

由于 f 是凸函数,h 是凸函数,且Slater条件成立,根据凸情况下的充要条件定理,点 \hat{x} 是最小化器当且仅当存在 \hat{\lambda} 使得 (\hat{x}, \hat{\lambda}) 是拉格朗日函数的鞍点。这意味着我们可以通过寻找鞍点来求解原问题。

构造拉格朗日函数并求解

拉格朗日函数为:

\mathcal{L}(x, \lambda) = (x_1 - 100)^2 + 2(x_2 - 50)^2 + \iota_{[0,\infty[^2}(x) + \lambda(x_1 + x_2 - 90)

对应的对偶拉格朗日函数是对原始变量 x 取下确界:

\underline{\mathcal{L}}(\lambda) = \inf_{x_1 \geq 0, x_2 \geq 0} \left[(x_1 - 100)^2 + 2(x_2 - 50)^2 + \lambda(x_1 + x_2 - 90)\right]

为了找到这个下确界,对 \mathcal{L} 关于 x 求偏导并令其为零。注意这里我们暂时忽略非负性约束,后续会验证解确实满足 x_1, x_2 \geq 0。求偏导得到:

\frac{\partial \mathcal{L}}{\partial x}(x, \lambda) = 0 \implies \begin{cases} 2(x_1 - 100) + \lambda = 0 \\ 4(x_2 - 50) + \lambda = 0 \end{cases}

解这个方程组:

\begin{cases} x_1 = 100 - \frac{\lambda}{2} \\ x_2 = 50 - \frac{\lambda}{4} \end{cases}

将这些表达式代回拉格朗日函数,得到对偶函数关于 \lambda 的表达式。首先计算各项:

(x_1 - 100)^2 = \left(-\frac{\lambda}{2}\right)^2 = \frac{\lambda^2}{4}
2(x_2 - 50)^2 = 2\left(-\frac{\lambda}{4}\right)^2 = \frac{\lambda^2}{8}
\lambda(x_1 + x_2 - 90) = \lambda\left(100 - \frac{\lambda}{2} + 50 - \frac{\lambda}{4} - 90\right) = \lambda\left(60 - \frac{3\lambda}{4}\right) = 60\lambda - \frac{3\lambda^2}{4}

将这些项相加:

\underline{\mathcal{L}}(\lambda) = \frac{\lambda^2}{4} + \frac{\lambda^2}{8} + 60\lambda - \frac{3\lambda^2}{4} = \frac{2\lambda^2 + \lambda^2 - 6\lambda^2}{8} + 60\lambda = -\frac{3\lambda^2}{8} + 60\lambda

最大化对偶函数

现在需要最大化对偶函数 \underline{\mathcal{L}}(\lambda)。这个函数是关于 \lambda 的二次函数,且二次项系数为负,因此它是凹函数(注意是凹不是凸),有唯一的最大值点。对 \lambda 求导:

\frac{d\underline{\mathcal{L}}}{d\lambda}(\lambda) = -\frac{6\lambda}{8} + 60 = -\frac{3\lambda}{4} + 60

令导数为零求临界点:

-\frac{6\hat{\lambda}}{8} + 60 = 0 \implies \hat{\lambda} = 80

\hat{\lambda} = 80 代回到 x 的表达式中:

\begin{cases} \hat{x}_1 = 100 - \frac{80}{2} = 60 \\ \hat{x}_2 = 50 - \frac{80}{4} = 30 \end{cases}

验证解的唯一性和最优性

需要验证这个解确实满足所有约束。首先,\hat{x}_1 = 60 > 0\hat{x}_2 = 30 > 0,满足非负性约束。其次,\hat{x}_1 + \hat{x}_2 = 90,正好达到机器工具的上限,说明约束是紧的(互补松弛条件自动满足,因为 \hat{\lambda} = 80 > 0h(\hat{x}) = 0)。

由于原目标函数 f 是严格凸函数(二次项系数都严格为正),且是强制的(当 \|x\| \to \inftyf(x) \to +\infty)、适当的(存在点使得函数值有限)、下半连续的,根据凸优化理论,最小化器存在且唯一。因此 (\hat{x}_1, \hat{x}_2) = (60, 30) 就是问题的唯一最优解。

从几何角度理解,图中的等高线展示了目标函数的水平集,颜色从蓝到黄表示函数值从小到大。可行集 C 由直线 x_1 + x_2 = 90 和非负象限的交集定义,是一个三角形区域的边界。最优点 \hat{x} = (60, 30) 位于这条直线上,是目标函数在可行集上的最低点。如果没有约束,目标函数的最小值点应该在 (100, 50)(通过令梯度为零可得),但这个点不可行(需要140个机器工具)。约束迫使我们在可行域内寻找次优解,而拉格朗日乘数 \hat{\lambda} = 80 正好量化了这个约束的"代价":它告诉我们如果能多获得一个单位的机器工具,目标函数值大约能改善80个单位。

练习2:二次规划与等式约束

现在考察另一个经典问题:带线性等式约束的二次规划。这类问题在机器学习、控制理论和经济学中广泛出现。

问题设定

给定函数:

(\forall x \in \mathbb{R}^N) \quad f(x) = \frac{1}{2}x^T Qx + c^T x

其中 Q \in \mathbb{R}^{N \times N} 是正定矩阵,c \in \mathbb{R}^N 是给定向量。目标是在满足线性等式约束 Ax = b 的条件下最小化 f,这里 A \in \mathbb{R}^{m \times N} 是秩为 m 的矩阵(即满秩矩阵),b \in \mathbb{R}^m。问题分为两部分:首先证明问题有唯一解,然后用拉格朗日乘数法求出解的显式表达式。

解的存在性和唯一性

问题可以正式表述为:

\inf_{x \in \mathbb{R}^N} f(x) \quad \text{s.t.} \quad g(x) = 0

其中 f(x) = \frac{1}{2}x^T Qx + c^T xQ 正定,g(x) = Ax - bA 满秩。要证明解的存在性和唯一性,需要验证三个条件。

第一个条件:由于 Q 是正定矩阵,对任意非零向量 x,都有 x^T Qx > 0。这意味着目标函数 f 是严格凸的。进一步,正定二次型在 \|x\| \to \infty 时趋向无穷,因此 f 是强制的(coercive)。严格凸性保证了最多有一个最小化器,而强制性结合凸性保证了至少有一个最小化器在闭凸集上存在。

第二个条件:可行集定义为 C = \{x \in \mathbb{R}^N : Ax = b\}。由于等式约束 Ax = b 定义了一个仿射子空间(线性子空间平移后的结果),这个集合是闭的且凸的。闭性来自于连续函数的水平集是闭集,凸性来自于仿射函数保持凸性。

第三个条件:目标函数的定义域是 \text{dom } f = \mathbb{R}^N,而可行集 C\mathbb{R}^N 的子集。只要 A 满秩且方程组 Ax = b 有解(即 bA 的列空间中),就有 C \cap \text{dom } f \neq \emptyset,即存在可行点。由于 A 满秩且 b 是给定的,这个条件自然满足。

根据凸优化理论中的基本定理(严格凸且强制的函数在非空闭凸集上有唯一最小化器),问题的最小化器存在且唯一。

应用拉格朗日乘数法

由于问题满足凸性条件,且Slater条件自动满足(因为只有等式约束),根据前面的充要条件定理,最小化器 \hat{x} 的存在等价于存在拉格朗日乘子 \hat{\nu} 使得 (\hat{x}, \hat{\nu}) 是鞍点。这为我们提供了求解的途径。

拉格朗日函数为:

\mathcal{L}(x, \nu) = \frac{1}{2}x^T Qx + c^T x + \nu^T(Ax - b)

这里 \nu \in \mathbb{R}^m 是与 m 个等式约束对应的拉格朗日乘子向量。对 x 求梯度:

\frac{\partial \mathcal{L}}{\partial x} = Qx + c + A^T \nu

鞍点的必要条件要求这个梯度为零,得到:

Qx + c + A^T \nu = 0

由于 Q 正定,它是可逆的。解出 x

x = -Q^{-1}(A^T \nu + c)

这给出了 x 关于拉格朗日乘子 \nu 的表达式。现在构造对偶拉格朗日函数,即将上述 x 的表达式代回拉格朗日函数:

\underline{\mathcal{L}}(\nu) = \inf_x \mathcal{L}(x, \nu)

\hat{x} = -Q^{-1}(A^T \nu + c) 代入,需要计算各项。首先:

\frac{1}{2}\hat{x}^T Q\hat{x} = \frac{1}{2}(A^T \nu + c)^T Q^{-1} Q Q^{-1}(A^T \nu + c) = \frac{1}{2}(A^T \nu + c)^T Q^{-1}(A^T \nu + c)

其次:

c^T \hat{x} = -c^T Q^{-1}(A^T \nu + c)

第三项:

\nu^T(A\hat{x} - b) = \nu^T(-AQ^{-1}(A^T \nu + c) - b) = -\nu^T AQ^{-1}(A^T \nu + c) - \nu^T b

将这些项合并,利用 c^T Q^{-1} 的对称性简化,最终得到:

\underline{\mathcal{L}}(\nu) = -\frac{1}{2}(A^T \nu + c)^T Q^{-1}(A^T \nu + c) - \nu^T b

为了找到最优的拉格朗日乘子,需要最大化对偶函数。对 \nu 求导并令其为零:

-AQ^{-1}(A^T \hat{\nu} + c) - b = 0

整理得到:

AQ^{-1}A^T \hat{\nu} = -b - AQ^{-1}c

由于 A 满秩且 Q 正定,矩阵 AQ^{-1}A^T 是可逆的。因此:

\hat{\nu} = (AQ^{-1}A^T)^{-1}(-b + AQ^{-1}c)

将这个 \hat{\nu} 代回到 x 的表达式中,得到最优解:

\hat{x} = -Q^{-1}(A^T \hat{\nu} + c)

这就是问题的显式解。整个推导展示了拉格朗日方法如何将约束优化问题转化为求解线性方程组的问题。

具体数值例子

考虑一个二维例子:Q = \begin{bmatrix} 1 & 1 \\ 1 & 2 \end{bmatrix}c = \begin{bmatrix} -1 \\ 0 \end{bmatrix}A = [1 \quad 2]b = 1。应用上述公式可以求得最优解 (\hat{x}_1, \hat{x}_2) = (2, -0.5)。图形展示了目标函数的等高线(椭圆形)和线性约束 x_1 + 2x_2 = 1(直线)。可行集就是这条直线,最优点 \hat{x} 位于直线上,是目标函数在该直线上的最小值点。等高线的颜色从蓝到黄表示函数值递增。

练习3:熵最小化问题

第三个练习涉及一个来自信息论和统计物理的经典问题。定义函数:

(\forall x = (x^{(i)})_{1 \leq i \leq N} \in [0, +\infty[^N) \quad f(x) = \sum_{i=1}^{N} x^{(i)} \ln(x^{(i)})

其中 N > 1。这个函数被称为(负)熵函数,在概率论中 -f(x) 度量了概率分布的不确定性。约定 0 \ln(0) = 0(通过连续性延拓)。目标是在 [0, +\infty[^N 上找 f 的最小化器,满足两个等式约束:

\sum_{i=1}^{N} x^{(i)} = 1
\sum_{i=1}^{P} x^{(i)} = q

其中 P \in \{1, \ldots, N-1\} 是固定的整数,q \in ]0, 1[ 是给定的参数。第一个约束确保 x 的分量和为1,类似概率分布的归一化条件。第二个约束要求前 P 个分量的和等于 q,这限制了分布在前 P 个位置上的总"质量"。

问题的结构表明这是一个凸优化问题(熵函数是凸的),只有等式约束(都是线性的),因此可以直接应用拉格朗日乘数法。由于存在两个约束,将有两个拉格朗日乘子。求解过程将涉及对数函数的导数和指数函数,最终解将具有指数分布的形式,这在统计力学中的最大熵原理中经常出现。

可微情况下的最优性条件

在前面的讨论中,我们建立了基于鞍点的充分必要条件,但这些条件往往难以直接验证。当问题中的函数具有可微性时,可以得到更加实用的最优性条件,这些条件以梯度的形式表达,更便于实际计算和验证。

Fritz-John条件

假设目标函数 f、等式约束函数 (g_i)_{1 \leq i \leq m} 以及不等式约束函数 (h_j)_{1 \leq j \leq q} 都在 \mathcal{H} = \mathbb{R}^N 上连续可微。如果 \hat{x}f 在可行集 C 上的局部最小值,那么Fritz-John条件成立。具体来说,存在一个非零向量:

(\alpha_0, \alpha_1, \ldots, \alpha_m, \alpha_{m+1}, \ldots, \alpha_{m+q}) \in [0, +\infty[ \times \mathbb{R}^m \times [0, +\infty[^q

使得以下条件满足:

\alpha_0 \nabla f(\hat{x}) + \sum_{i=1}^{m} \alpha_i \nabla g_i(\hat{x}) + \sum_{j=1}^{q} \alpha_{m+j} \nabla h_j(\hat{x}) = 0
(\forall j \in \{1, \ldots, q\}) \quad \alpha_{m+j} h_j(\hat{x}) = 0

这个条件的含义需要仔细理解。第一个等式说明在最优点处,目标函数的梯度可以表示为约束函数梯度的某个加权组合。这些权重 \alpha_i\alpha_{m+j} 就是广义的拉格朗日乘子。注意到 \alpha_0 也是非负的,这是Fritz-John条件的特殊之处:它允许 \alpha_0 = 0 的退化情况。第二个条件是互补松弛条件,它要求对于每个不等式约束,要么约束不起作用(h_j(\hat{x}) < 0\alpha_{m+j} = 0),要么约束是紧的(h_j(\hat{x}) = 0\alpha_{m+j} 可以非零)。

Fritz-John条件的一个问题在于它是必要条件但可能不够"强"。特别是,当 \alpha_0 = 0 时,第一个等式变成纯粹约束梯度的组合等于零,与目标函数无关。这种情况通常发生在约束不够"规范"的时候,比如约束梯度线性相关。为了排除这种退化情况,需要引入约束规范条件。

Karush-Kuhn-Tucker定理

KKT定理在Fritz-John条件的基础上加入了约束规范条件,从而保证 \alpha_0 > 0,进而可以归一化得到标准的拉格朗日乘子。约束规范条件有多种形式,这里采用的是Mangasarian-Fromovitz条件,它包含两个部分。

第一个条件要求等式约束的梯度族 \{\nabla g_i(\hat{x}) \mid i \in \{1, \ldots, m\}\} 是线性独立的。这保证了等式约束之间没有冗余,每个等式约束都提供了独立的限制。线性独立性是约束良好性的基本要求。

第二个条件更加精细。定义活跃不等式约束集合 J(\hat{x}) = \{j \in \{1, \ldots, q\} \mid h_j(\hat{x}) = 0\},这是在 \hat{x} 处取等号的那些不等式约束的指标集。条件要求存在一个向量 z \in \mathbb{R}^N 使得:对所有 i \in \{1, \ldots, m\},有 \langle \nabla g_i(\hat{x}) \mid z \rangle = 0;对所有 j \in J(\hat{x}),有 \langle \nabla h_j(\hat{x}) \mid z \rangle < 0

这个条件的几何意义是:从 \hat{x} 出发,存在一个方向 z 使得沿着这个方向,所有等式约束保持不变(梯度正交),而所有活跃的不等式约束都有"松弛"的趋势(内积为负意味着沿 z 方向约束函数值减小)。这确保了可行集在 \hat{x} 附近不是"尖锐"的,具有一定的"厚度"。

在这些条件下,KKT定理断言:存在 \hat{\nu} \in \mathbb{R}^m\hat{\lambda} \in [0, +\infty[^q 使得 \hat{x} 是拉格朗日函数 \mathcal{L}(\cdot, \hat{\nu}, \hat{\lambda}) 的临界点,并且互补松弛条件成立。这等价于说存在拉格朗日乘子使得以下条件满足:

\nabla f(\hat{x}) + \sum_{i=1}^{m} \hat{\nu}_i \nabla g_i(\hat{x}) + \sum_{j=1}^{q} \hat{\lambda}_j \nabla h_j(\hat{x}) = 0
(\forall j \in \{1, \ldots, q\}) \quad \hat{\lambda}_j h_j(\hat{x}) = 0

注意这里 \alpha_0 = 1,所以可以将其归一化掉。这就是标准的KKT条件。

证明思路

证明从Fritz-John条件出发。我们知道存在非零向量 (\alpha_0, \alpha_1, \ldots, \alpha_m, \alpha_{m+1}, \ldots, \alpha_{m+q}) 满足Fritz-John条件。利用互补松弛条件,对于不在活跃集 J(\hat{x}) 中的指标 j,有 h_j(\hat{x}) < 0,因此必有 \alpha_{m+j} = 0。这样第一个等式可以简化为:

\alpha_0 \nabla f(\hat{x}) + \sum_{i=1}^{m} \alpha_i \nabla g_i(\hat{x}) + \sum_{j \in J(\hat{x})} \alpha_{m+j} \nabla h_j(\hat{x}) = 0

与 Mangasarian-Fromovitz 条件中的向量 z 做内积:

\alpha_0 \langle \nabla f(\hat{x}) \mid z \rangle + \sum_{i=1}^{m} \alpha_i \langle \nabla g_i(\hat{x}) \mid z \rangle + \sum_{j \in J(\hat{x})} \alpha_{m+j} \langle \nabla h_j(\hat{x}) \mid z \rangle = 0

由于 z 满足对所有 i\langle \nabla g_i(\hat{x}) \mid z \rangle = 0,中间项消失。对于活跃约束,有 \langle \nabla h_j(\hat{x}) \mid z \rangle < 0。因此:

\alpha_0 \langle \nabla f(\hat{x}) \mid z \rangle + \sum_{j \in J(\hat{x})} \alpha_{m+j} \langle \nabla h_j(\hat{x}) \mid z \rangle = 0

现在用反证法证明 \alpha_0 > 0。假设 \alpha_0 = 0,那么上式变成:

\sum_{j \in J(\hat{x})} \alpha_{m+j} \langle \nabla h_j(\hat{x}) \mid z \rangle = 0

由于每项 \alpha_{m+j} \geq 0\langle \nabla h_j(\hat{x}) \mid z \rangle < 0,每一项都非正。和为零意味着每项都必须为零,因此所有 \alpha_{m+j} = 0(因为内积严格为负)。回到原来的等式,当 \alpha_0 = 0 且所有 \alpha_{m+j} = 0(对 j \in J(\hat{x}))时,得到:

\sum_{i=1}^{m} \alpha_i \nabla g_i(\hat{x}) = 0

但根据Mangasarian-Fromovitz条件的第一部分,梯度 \{\nabla g_i(\hat{x})\} 是线性独立的,因此必须所有 \alpha_i = 0。这与非零向量的假设矛盾。所以必有 \alpha_0 > 0

由于 \alpha_0 > 0,可以归一化所有系数。定义 \hat{\nu}_i = \alpha_i / \alpha_0\hat{\lambda}_j = \alpha_{m+j} / \alpha_0,将原Fritz-John条件除以 \alpha_0,得到:

\nabla f(\hat{x}) + \sum_{i=1}^{m} \hat{\nu}_i \nabla g_i(\hat{x}) + \sum_{j=1}^{q} \hat{\lambda}_j \nabla h_j(\hat{x}) = 0

同时互补松弛条件保持不变(因为只是乘以正数)。设 \hat{\nu} = (\hat{\nu}_i)_{1 \leq i \leq m}\hat{\lambda} = (\hat{\lambda}_j)_{1 \leq j \leq q},那么第一个等式正好是 \nabla_x \mathcal{L}(\hat{x}, \hat{\nu}, \hat{\lambda}) = 0,即 \hat{x} 是拉格朗日函数关于 x 的临界点。这就完成了从Fritz-John条件到KKT条件的转换,证明了在约束规范条件下,局部最小值必定满足KKT条件。

Mangasarian-Fromovitz条件的验证

在实际应用KKT定理时,需要验证Mangasarian-Fromovitz条件是否满足。这里提供了一个充分条件来简化验证过程。如果约束梯度的集合 \{\nabla g_i(\hat{x}) \mid i \in \{1, \ldots, m\}\} \cup \{\nabla h_j(\hat{x}) \mid j \in J(\hat{x})\} 构成线性独立向量族,那么Mangasarian-Fromovitz条件自动满足。

这个充分条件的证明思路如下。如果这些梯度线性独立,首先可以立即得出等式约束梯度族 \{\nabla g_i(\hat{x})\} 是线性独立的(因为它是更大的独立族的子集)。其次,需要证明存在满足第二个条件的向量 z。构造一个矩阵:

A = \begin{bmatrix} (\nabla g_i(\hat{x})^T)_{1 \leq i \leq m} \\ (\nabla h_j(\hat{x})^T)_{j \in J(\hat{x})} \end{bmatrix} \in \mathbb{R}^{(m+|J(\hat{x})|) \times N}

这个矩阵的行向量正是等式约束梯度和活跃不等式约束梯度的转置。由于假设这些梯度线性独立,矩阵 A 的秩为 m + |J(\hat{x})|。现在考虑方程组:

Az = \begin{bmatrix} 0 \\ -\mathbf{1} \end{bmatrix}

其中 \mathbf{1} 是维数为 |J(\hat{x})| 的全1向量,z \in \mathbb{R}^N。这个方程组的前 m 个方程要求 \nabla g_i(\hat{x})^T z = 0(即 \langle \nabla g_i(\hat{x}) \mid z \rangle = 0),后面的方程要求 \nabla h_j(\hat{x})^T z = -1 < 0(即 \langle \nabla h_j(\hat{x}) \mid z \rangle < 0)。由于 A 满秩,这个方程组有解,该解正是满足Mangasarian-Fromovitz条件第二部分要求的向量 z。因此线性独立性确实是一个更强但更容易验证的充分条件。

只有等式约束的简化情况

当优化问题只涉及等式约束而没有不等式约束时,KKT条件显著简化。假设目标函数 f 和等式约束函数 (g_i)_{1 \leq i \leq m}\mathbb{R}^N 上连续可微,\hat{x}f 在可行集 C 上的局部最小值,并且等式约束梯度族 \{\nabla g_i(\hat{x}) \mid i \in \{1, \ldots, m\}\} 线性独立。那么存在 \hat{\nu} \in \mathbb{R}^N 使得 \hat{x} 是拉格朗日函数 \mathcal{L}(\cdot, \hat{\nu}) 的临界点。

此时拉格朗日函数为:

\mathcal{L}(x, \nu) = f(x) + \nu^T g(x) = f(x) + \sum_{i=1}^{m} \nu^{(i)} g_i(x)

临界点条件简化为:

\nabla f(\hat{x}) + \sum_{i=1}^{m} \hat{\nu}^{(i)} \nabla g_i(\hat{x}) = 0

这个条件表明在最优点处,目标函数的梯度可以表示为等式约束梯度的线性组合。从几何角度理解,\nabla f(\hat{x}) 必须位于由约束梯度张成的子空间中,这正是等式约束定义的切空间的法空间。只有等式约束的情况在经典力学中的Lagrange方程、以及经济学中的效用最大化问题(预算约束)中经常出现。由于没有不等式约束,不需要考虑互补松弛条件和乘子的非负性,理论和计算都更加简洁。

只有不等式约束的简化情况

另一个重要的特殊情况是问题只包含不等式约束。假设目标函数 f 和不等式约束函数 (h_j)_{1 \leq j \leq q}\mathbb{R}^N 上连续可微,\hat{x}f 在可行集 C 上的局部最小值,并且存在向量 z \in \mathbb{R}^N 使得对所有活跃约束 j \in J(\hat{x}) = \{j \in \{1, \ldots, q\} \mid h_j(\hat{x}) = 0\},都有 \langle \nabla h_j(\hat{x}) \mid z \rangle < 0。那么存在 \hat{\lambda} \in [0, +\infty[^q 使得 \hat{x} 是拉格朗日函数 \mathcal{L}(\cdot, \hat{\lambda}) 的临界点,并且互补松弛条件成立。

拉格朗日函数现在是:

\mathcal{L}(x, \lambda) = f(x) + \lambda^T h(x) = f(x) + \sum_{j=1}^{q} \lambda^{(j)} h_j(x)

最优性条件包括:

\nabla f(\hat{x}) + \sum_{j=1}^{q} \hat{\lambda}^{(j)} \nabla h_j(\hat{x}) = 0

以及互补松弛条件:对所有 j\hat{\lambda}^{(j)} h_j(\hat{x}) = 0。这个条件的充分性验证也有简化形式:如果活跃约束的梯度族 \{\nabla h_j(\hat{x}) \mid j \in J(\hat{x})\} 线性独立,那么约束规范条件自动满足。只有不等式约束的问题涵盖了线性规划和许多工程优化问题,这些问题中通常要求设计变量满足上下界或资源限制等单边约束。

可微情况下KKT条件的总结

综合以上讨论,可以得到可微情况下最优性条件的完整形式。假设Mangasarian-Fromovitz条件的两个部分都满足:等式约束梯度 \{\nabla g_i(\hat{x}) \mid i \in \{1, \ldots, m\}\} 线性独立,且存在 z \in \mathbb{R}^N 使得对所有 i\langle \nabla g_i(\hat{x}) \mid z \rangle = 0,对所有 j \in J(\hat{x})\langle \nabla h_j(\hat{x}) \mid z \rangle < 0

那么存在拉格朗日乘子 \hat{\nu}\hat{\lambda} 使得 \hat{x} 是拉格朗日函数 \mathcal{L}(x, \hat{\nu}, \hat{\lambda}) 的临界点。回顾拉格朗日函数的定义:

\mathcal{L}(x, \nu, \lambda) = f(x) + \nu^T g(x) + \lambda^T h(x)

临界点条件 \nabla_x \mathcal{L}(\hat{x}, \hat{\nu}, \hat{\lambda}) = 0 展开为:

\nabla f(\hat{x}) + \hat{\nu}^T \nabla g(\hat{x}) + \hat{\lambda}^T \nabla h(\hat{x}) = 0

用分量形式写出就是:

\nabla f(\hat{x}) + \sum_{i=1}^{m} \hat{\nu}^{(i)} \nabla g_i(\hat{x}) + \sum_{j=1}^{q} \hat{\lambda}^{(j)} \nabla h_j(\hat{x}) = 0

这是一个向量方程,在 \mathbb{R}^N 中提供了 N 个标量方程。这些方程连同等式约束 g_i(\hat{x}) = 0(提供 m 个方程)、不等式约束 h_j(\hat{x}) \leq 0(提供 q 个不等式)、互补松弛条件 \hat{\lambda}^{(j)} h_j(\hat{x}) = 0(提供 q 个方程)、以及乘子非负性 \hat{\lambda}^{(j)} \geq 0(提供 q 个不等式),共同构成了KKT系统。这个系统在理论上刻画了最优解的必要条件,在实践中为数值算法提供了求解目标。当问题进一步具有凸性时,这些必要条件也变成充分条件,KKT点就是全局最优解。

KKT条件的几何意义

为了更深入理解KKT条件,需要从几何角度观察这些条件在最优点处的表现。

等式约束下的几何解释

考虑一个简单的二维问题:在等式约束 g(x) = 0 下最小化目标函数 f(x)。图中展示了目标函数的等高线(红色曲线,标记为 f_1 < f_2 < f_3)和约束曲线 g(x) = 0(蓝色曲线)。在最优点处,目标函数的梯度 \nabla f(红色向量)和约束函数的梯度 \nabla g(蓝色向量)必须共线但方向相反。

这个几何事实的原因是:如果 \nabla f\nabla g 不共线,那么存在一个沿着约束曲面的切方向,使得沿着这个方向目标函数可以进一步减小,这与最优性矛盾。KKT条件 \nabla f(\hat{x}) + \hat{\nu} \nabla g(\hat{x}) = 0 正是这个几何关系的代数表达:目标函数梯度是约束梯度的倍数,系数就是拉格朗日乘子 \hat{\nu}

不等式约束下的几何解释

对于不等式约束问题,几何图像更加丰富。考虑在两个不等式约束 h_1(x) \leq 0h_2(x) \leq 0 下最小化 f。可行域是满足这两个不等式的区域(图中阴影部分)。约束边界 h_1(x) = 0h_2(x) = 0 将空间分成不同区域。

在最优点 \hat{x} 处,假设两个约束都是活跃的(即都取等号)。KKT条件要求 \nabla f(\hat{x}) 可以表示为活跃约束梯度 \nabla h_1(\hat{x})\nabla h_2(\hat{x}) 的非负线性组合:\nabla f(\hat{x}) + \hat{\lambda}_1 \nabla h_1(\hat{x}) + \hat{\lambda}_2 \nabla h_2(\hat{x}) = 0,其中 \hat{\lambda}_1, \hat{\lambda}_2 \geq 0

几何意义在于:-\nabla f(\hat{x}) 必须落在由活跃约束梯度张成的锥内。图中通过向量 y 表示可行方向(即沿着这个方向移动仍保持在可行域内或其边界上)。对于任何可行方向 y,必须有 \langle \nabla f(\hat{x}) \mid y \rangle \geq 0,否则沿 y 方向移动可以减小目标函数值。等价地,\langle -\nabla f(\hat{x}) \mid y \rangle \leq 0。这正是KKT条件保证的性质:目标函数梯度的反方向与可行方向的夹角不小于90度,确保无法通过可行移动进一步改进。

练习4:单位球上的优化问题

最后一个练习涉及在单位球约束下最大化一个特殊函数,这个问题综合运用了前面学习的所有技术。

问题陈述

问题要求在单位球 B 上最大化函数:

\max_{x = (x^{(i)})_{1 \leq i \leq N} \in B} \left[(x^{(N)})^3 - \frac{1}{2}(x^{(N)})^2\right]

其中单位球定义为 B = \{x \in \mathbb{R}^N : \|x\| \leq 1\},即所有欧几里得范数不超过1的点的集合。注意这里是最大化问题,可以转化为最小化问题:

\inf_{x \in B} \left[\frac{1}{2}x_n^2 - x_n^3\right]

其中 x_n = x^{(N)} 是向量的最后一个分量。约束条件可以写成不等式形式 h(x) = \|x\|^2 - 1 \leq 0

解的存在性

首先验证解的存在性。目标函数 f(x) = \frac{1}{2}x_n^2 - x_n^3 是连续函数(实际上是 C^\infty 的),且单位球 B 是紧集(闭且有界)。根据Weierstrass定理,连续函数在紧集上必定达到最小值。因此问题的解存在。

验证Mangasarian-Fromovitz条件

在应用KKT定理之前,需要检查约束规范条件。目标函数和约束函数都是连续可微的。具体计算梯度:

\nabla f(x) = \begin{pmatrix} 0 \\ \vdots \\ 0 \\ x_n - 3x_n^2 \end{pmatrix}

N-1 个分量为零,最后一个分量是 x_n - 3x_n^2。约束函数的梯度为:

\nabla h(x) = 2x

由于只有一个不等式约束且没有等式约束,Mangasarian-Fromovitz条件要求:如果约束在 \hat{x} 处活跃(即 \|\hat{x}\|^2 = 1),则需要存在方向 z 使得 \langle \nabla h(\hat{x}) \mid z \rangle < 0。由于 \nabla h(\hat{x}) = 2\hat{x} \neq 0(假设 \hat{x} \neq 0),这个条件容易满足:任何指向球心的方向都可以。

因此,如果 \hat{x} 是局部最小值且 \hat{x} \neq 0,那么根据KKT定理,存在 \hat{\lambda} \geq 0 使得:

\nabla f(\hat{x}) + \hat{\lambda} \nabla h(\hat{x}) = 0

特殊情况:\hat{x} = 0

首先考虑候选点 \hat{x} = 0(球心)。这个点位于可行域的内部 \text{int}(B),即 \|0\| < 1。在内部点处,约束不起作用,最优性条件简化为无约束问题的条件:\nabla f(0) = 0。计算得:

\nabla f(0) = \begin{pmatrix} 0 \\ \vdots \\ 0 \\ 0 \end{pmatrix} = 0

确实梯度为零,所以0是临界点。为了判断是否为局部最小值,计算Hessian矩阵:

\nabla^2 f(x) = \begin{pmatrix} 0 & \cdots & 0 & 0 \\ \vdots & & \vdots & \vdots \\ 0 & \cdots & 0 & 0 \\ 0 & \cdots & 0 & 1 - 6x_n \end{pmatrix}

x = 0 处,Hessian为:

\nabla^2 f(0) = \begin{pmatrix} 0 & \cdots & 0 & 0 \\ \vdots & & \vdots & \vdots \\ 0 & \cdots & 0 & 0 \\ 0 & \cdots & 0 & 1 \end{pmatrix}

这个矩阵是半正定的(所有特征值非负),但不是正定的(有零特征值)。虽然二阶条件不能直接判定,但可以验证存在邻域使得Hessian半正定,因此 x = 0 是局部最小值。在 x = 0 处,目标函数值为 f(0) = 0

应用KKT条件:\hat{x} \neq 0

现在考虑约束边界上的候选点,即满足 \|\hat{x}\|^2 = 1 的点。KKT条件给出:

\nabla f(\hat{x}) + \hat{\lambda} \nabla h(\hat{x}) = 0

展开为分量形式。对于 i \in \{1, \ldots, N-1\},有:

0 + \hat{\lambda} \cdot 2\hat{x}_i = 0 \implies \hat{x}_i = 0

对于 i = N,有:

\hat{x}_n - 3\hat{x}_n^2 + \hat{\lambda} \cdot 2\hat{x}_n = 0 \quad (*)

因此在最优点处,前 N-1 个分量都为零,只有最后一个分量 \hat{x}_n 可能非零。结合约束 \|\hat{x}\|^2 = 1,得到 \hat{x}_n^2 = 1,即 \hat{x}_n = \pm 1

互补松弛条件要求 \hat{\lambda}(\|\hat{x}\|^2 - 1) = 0。由于我们现在考虑边界点 \|\hat{x}\|^2 = 1,互补松弛条件自动满足。

从方程 (*) 解出 \hat{\lambda}

\hat{x}_n - 3\hat{x}_n^2 + 2\hat{\lambda}\hat{x}_n = 0 \implies \hat{\lambda} = \frac{3\hat{x}_n^2 - \hat{x}_n}{2\hat{x}_n} = \frac{3\hat{x}_n - 1}{2}

求解方程组

现在需要分三种情况讨论:

情况1:\hat{x}_n = 0。这已经在前面讨论过,对应 \hat{x} = 0f(0) = 0

情况2:\hat{\lambda} = 0\hat{x}_n \neq 0。从 \hat{\lambda} = \frac{3\hat{x}_n - 1}{2} = 0 得到 \hat{x}_n = \frac{1}{3}。但这与约束 \hat{x}_n^2 = 1 矛盾(因为 \hat{x}_n 必须在球面上),所以这种情况不产生可行解。计算一下:如果强行取 \hat{x}_n = \frac{1}{3},则 f(\hat{x}) = \frac{1}{2}(\frac{1}{3})^2 - (\frac{1}{3})^3 = \frac{1}{18} - \frac{1}{27} = \frac{5}{27}。但这不是我们要的解,因为不满足约束。

情况3:\hat{\lambda} > 0\hat{x}_n = \frac{1 + 2\hat{\lambda}}{3}。从 (*) 式整理得 \hat{x}_n(1 + 2\hat{\lambda}) = 3\hat{x}_n^2,即 \hat{x}_n = \frac{1 + 2\hat{\lambda}}{3}(假设 \hat{x}_n \neq 0)。结合约束 \hat{x}_n^2 = 1,得到:

\left(\frac{1 + 2\hat{\lambda}}{3}\right)^2 = 1

解得 1 + 2\hat{\lambda} = \pm 3,即 \hat{\lambda} = 1\hat{\lambda} = -2。由于要求 \hat{\lambda} \geq 0,只能取 \hat{\lambda} = 1,对应 \hat{x}_n = 1

此时 \hat{x} = (0, \ldots, 0, 1)^T,目标函数值为:

f(\hat{x}) = \frac{1}{2}(1)^2 - (1)^3 = \frac{1}{2} - 1 = -\frac{1}{2}

如果 1 + 2\hat{\lambda} = -3,则 \hat{\lambda} = -2 < 0,不满足KKT条件。这对应 \hat{x}_n = -1。虽然不是KKT点,但仍然是可行点。计算 \hat{x} = (0, \ldots, 0, -1)^T 处的函数值:

f(\hat{x}) = \frac{1}{2}(-1)^2 - (-1)^3 = \frac{1}{2} + 1 = \frac{3}{2}

结论

比较所有候选点的函数值:在 x = 0f = 0,在 x = (0, \ldots, 0, 1)^Tf = -\frac{1}{2},在 x = (0, \ldots, 0, -1)^Tf = \frac{3}{2}。由于原问题是最小化,全局最小值在:

\hat{x} = \begin{pmatrix} 0 \\ \vdots \\ 0 \\ 1 \end{pmatrix}

处达到,最小值为 -\frac{1}{2}。这个解满足KKT条件(情况3),并且通过比较所有候选点验证了它确实是全局最优解。这个例子展示了KKT条件如何将约束优化问题归结为求解非线性方程组的问题,以及如何通过分类讨论找到所有候选解并比较它们的优劣。


评论