拉格朗日法, 对偶和 Kuhn-Tucker 条件

一般情形下的最优激励合同

  1. 委托人 (公司) 提供工资合同 w(q)w(q), 代理人 (打工人张三) 选择接受或拒绝.
  2. 张三选择行动 aAa \in A, 行动集 AA \subseteq \mathbb{R} 是有界闭集.
  3. 给定张三的行动 aa, 产出 qq 从分布 f(a)f(\cdot \mid a) 中抽样得到.
  4. 公司和张三观测到产出 qq 后, 公司按照合同 w(q)w(q) 支付工资. 博弈结束.

效用函数:

和上一讲 (线性激励合同) 的情形相比, 主要区别在于:

引入求解最优化问题的数学工具

描述委托人的最优化问题不难, 写出 IC 和 IR 条件即可. 难点在于如何求解该问题.

引入必要的数学工具:

包含等式约束的最优化问题

考虑如下包含 kk 个决策变量和 nn 个等式约束的最优化问题: maxx1,x2,,xkf(x1,x2,,xk)subject tog1(x1,x2,,xk)=0g2(x1,x2,,xk)=0gn(x1,x2,,xk)=0 \begin{split} \max_{x_1, x_2, \dots, x_k} & f(x_1, x_2, \dots, x_k) \\ \text{subject to} \quad & g_1(x_1, x_2, \dots, x_k) = 0 \\ & g_2(x_1, x_2, \dots, x_k) = 0 \\ & \qquad \vdots \\ & g_n(x_1, x_2, \dots, x_k) = 0 \end{split}

x=(x1,x2,,xk)x = (x_1, x_2, \dots, x_k)λ=(λ1,...,λn)λ = (λ_1,...,λ_n), 写出拉格朗日函数: L(x,λ)=f(x1,x2,,xk)j=1nλjgj(x1,x2,,xk) L (x, λ) = f (x_1, x_2, \dots, x_k) - \sum_{j=1}^{n} λ_j g_j (x_1, x_2, \dots, x_k)

一阶条件:

一共有 k+nk+n 个一阶条件.

命题: 若原最优化问题的目标函数 f(x)f(x) 和约束函数 {gj(x)}j=1n\{ g_j(x) \}_{j=1}^n 满足适当的要求 (光滑性, 凹凸性等), 则关于 {xi}\{ x_i \}{λj}\{ λ_j \}k+nk+n 个一阶条件是必要的.

例: 拉格朗日法

求解如下最优化问题

一阶条件

x1=x2=22x1=x2=22 \implies x_1 = x_2 = \frac {\sqrt 2}{2} \text{ 或 } x_1 = x_2 = -\frac {\sqrt 2}{2}

从等式约束到不等式约束

考虑如下包含 nn不等式约束的最优化问题 \mathcal{M}: maxx1,x2,,xkf(x1,x2,,xk)subject tog1(x1,x2,,xk)0g2(x1,x2,,xk)0gn(x1,x2,,xk)0 \begin{split} \max_{x_1, x_2, \dots, x_k} & f(x_1, x_2, \dots, x_k) \\ \text{subject to} \quad & g_1(x_1, x_2, \dots, x_k) \leq 0 \\ & g_2(x_1, x_2, \dots, x_k) \leq 0 \\ & \vdots \\ & g_n(x_1, x_2, \dots, x_k) \leq 0 \end{split}

关于不等式约束形式的两点补充说明:

  1. 所有不等式约束的不等号方向, 都是约束的左边小于等于 00.
  2. 不等式约束的情形比等式约束的情形更一般:

对问题 \mathcal{M} 做出如下假设:

  1. 目标函数 f(x1,x2,,xk)f(x_1, x_2, \dots, x_k) 是凹的,
  2. 每个约束函数 gi(x1,x2,,xk)g_i(x_1, x_2, \dots, x_k) (i=1,...,ni=1,...,n) 都是凸的,
  3. 问题 \mathcal{M} 的可行域是非空的, 并且该问题有解.

说明: 可行域为所有满足 nn 个不等式约束的 xkx \in ℝ^k 所构成的集合.

可行域的例子

  1. 圆盘 D={(x1,x2)2|x12+x221}D = \{ (x_1, x_2) \in ℝ^2 | x_1^2 + x_2^2 \le 1 \}

  2. 三角形区域 D={(x1,x2)2|x1+x21,x10,x20} D = \{ (x_1, x_2) \in ℝ^2 | x_1 + x_2 \le 1, x_1 \ge 0, x_2 \ge 0 \}

  3. 三维单纯形 (3-simplex) D={(x1,x2,x3)3|x1+x2+x31,x10,x20,x30} D = \{ (x_1, x_2, x_3) \in ℝ^3 | x_1 + x_2 + x_3 \le 1, x_1 \ge 0, x_2 \ge 0, x_3 \ge 0 \}

拉格朗日函数

对于问题 \mathcal M, 其拉格朗日函数的形式如下: L(x,λ)=f(x1,x2,,xk)j=1nλjgj(x1,x2,,xk) L (x, λ) = f (x_1, x_2, \dots, x_k) - \sum_{j=1}^{n} λ_j g_j (x_1, x_2, \dots, x_k)

对偶

问题 \mathcal M 的对偶函数: d(λ)maxxL(x,λ)d(λ) \equiv \max_x L(x, λ).

由对偶 d(λ)d(λ) 的定义可知: d(λ)L(x,λ) 对任意 xkλ0 成立. d(λ) \ge L (x, λ) \quad \text{ 对任意 $x \in ℝ^k$ 和 $λ \ge 0$ 成立.} 进一步可知, d(λ)f(x) 对任意 xDλ0 成立. d(λ) \ge f (x) \quad \text{ 对任意 $x \in D$ 和 $λ \ge 0$ 成立.}

因此, 对偶 d(λ)d(λ) 是问题 \mathcal M 中目标函数的上界.

对偶性的思想: 可以通过最小化上界 (即 minλ0d(λ)\min_{λ \ge 0} d(λ)) 来求解原问题 \mathcal M.

Kuhn-Tucker 定理

定理 (Kuhn-Tucker). 若存在 x*=(x1*,,xk*)x^* = (x_1^*, \dots, x_k^*)λ*=(λ1*,,λn*)λ^* = (λ_1^*, \dots, λ_n^*) 使得 minλ0d(λ)=minλ0maxxL(x,λ)=L(x*,λ*) \min_{λ \ge 0} d(λ) = \min_{λ \ge 0}\, \max_x L (x, λ) = L(x^*, λ^*) x*x^* 为原最优化问题的解.

重要的内容说两次: 定义对偶 d(λ)d(λ) 时没有要求 xx 必须落在可行域内

互补松弛条件

  1. 如果 λj*>0λ_j^* > 0, 则约束 gj(x)g_j(x) 一定是紧的 (即 gj(x*)=0g_j(x^*) = 0).
  2. 如果 λj*=0λ_j^* = 0, 则约束 gj(x)g_j(x) 可以是不紧的 (即 gj(x*)<0g_j(x^*) < 0).

Kuhn-Tucker 条件

实际应用中, 我们通常不需要每次都去计算对偶 d(λ)d(λ) 或鞍点 (x*,λ*)(x^*, λ^*), 而是直接检查一组被称为 Kuhn-Tucker 条件的一阶必要条件.

历史趣闻:

针对优化问题 maxf(x)\max f(x) 和约束 gj(x)0g_j(x) \leq 0, j=1,...,nj=1,...,n.
写出拉格朗日函数 L(x,λ)=f(x)λjgj(x)L(x, \lambda) = f(x) - \sum \lambda_j g_j(x) 后, 其 Kuhn-Tucker 条件由以下四个部分组成:

  1. 一阶条件: f(x*)xi=j=1nλj*gj(x*)xi(i=1,,k) \frac{\partial f(x^*)}{\partial x_i} = \sum_{j=1}^{n} \lambda_j^* \frac{\partial g_j(x^*)}{\partial x_i} \quad (i = 1, \dots, k)

  2. 可行性: x*x^* 必须是可行的, 即满足所有不等式约束: gj(x*)0,j=1,,n g_j(x^*) \leq 0, \quad j = 1, \dots, n

  1. 拉格朗日乘子非负条件 (也叫对偶可行性条件): λ0λ \ge 0

  2. 互补松弛条件: λj*gj(x*)=0(j=1,,n)\lambda_j^* g_j(x^*) = 0 \quad (j = 1, \dots, n)

Kuhn-Tucker 条件: 算例

目标函数 maxf(x1,x2,x3)=x1+x2+x3 \max f(x_1, x_2, x_3) = x_1 + x_2 + x_3

不等式约束: g(x1,x2,x3)=x12+2x22+3x3210. g(x_1, x_2, x_3) = x_1^2 + 2x_2^2 + 3x_3^2 - 1 \le 0.

拉格朗日函数: L(x1,x2,x3,λ)=x1+x2+x3λ(x12+2x22+3x321), L(x_1, x_2, x_3, \lambda) = x_1 + x_2 + x_3 - \lambda (x_1^2 + 2x_2^2 + 3x_3^2 - 1),

KKT 条件:

由梯度为零可知 λ0λ \ne 0, 因此 λ>0λ > 0x12+2x22+3x321=0x_1^2 + 2x_2^2 + 3x_3^2 - 1=0 (边界解).

x1,x2,x3x_1, x_2, x_3 的表达式代入边界方程: (12λ)2+2(14λ)2+3(16λ)2=1. \left(\frac{1}{2\lambda}\right)^2 + 2\left(\frac{1}{4\lambda}\right)^2 + 3\left(\frac{1}{6\lambda}\right)^2 = 1. λ=1124. \Rightarrow\quad \lambda = \sqrt{\frac{11}{24}}.

代回得: x1*=12λ=611,x2*=14λ=322,x3*=16λ=233. x_1^* = \frac{1}{2\lambda} = \sqrt{\frac{6}{11}}, \, x_2^* = \frac{1}{4\lambda} = \sqrt{\frac{3}{22}}, \, x_3^* = \frac{1}{6\lambda} = \sqrt{\frac{2}{33}}.

最优值: f(x*)=116. f(x^*) = -\sqrt{\frac{11}{6}}.

拉格朗日法: 无穷维情形

本讲介绍的拉格朗日法 (以及 Kuhn-Tucker 条件) 只考虑了有限维情形的最优化问题.

经济学模型中的最优化问题经常是无穷维的.

对于无穷维问题, 我们仍然可以通过构造拉格朗日函数, 并仿照有限维情形写出一阶条件 (或 Kuhn-Tucker 条件) 来求解.

尽管无穷维分析本身是一个很有意思的话题 (它在求解最优合同问题时也会很自然地出现), 我们暂时选择回避关于它的讨论.