Learning
VOL. VI · NO. 37 · Mathematics · 01 JAN 1970

优化理论:在约束下找最优的数学语言

数学 · 01 JAN 1970 · 10 min read · 2,463 words
· · ·

芒格思维模型课 · 第37讲

优化理论:在约束下找最优的数学语言

芒格说:「所有明智的决策都是在约束下做出来的。」优化理论正是这种思维的数学化——在有限的资源、规则、目标下,找到「最好」的那个选择。


核心概念

定义:优化理论研究在约束条件下,如何找到使目标函数取最大(或最小)值的解。其核心三要素:目标函数 $f(x)$、等式约束 $h(x) = 0$、不等式约束 $g(x) \leq 0$。

优化问题的标准形式

$$\min_{x} f(x) \quad \text{s.t.} \quad h_i(x) = 0, \quad g_j(x) \leq 0$$

三类核心问题

1. 线性规划(LP) 目标函数和约束都是线性的。 $$\min c^T x \quad \text{s.t.} \quad Ax \leq b, x \geq 0$$

  • 几何:在多面体顶点上找最优
  • 算法:单纯形法、内点法

2. 凸优化(Convex Optimization) 目标函数凸,可行域凸。 $$\min f(x) \quad \text{s.t.} \quad g_i(x) \leq 0 \text{(凸)}, h_j(x) = 0 \text{(仿射)}$$

  • 关键性质:局部最优 = 全局最优
  • 没有局部极小陷阱,可被高效求解

3. 非凸优化 目标或约束非凸,可能有多个局部最优。

  • NP-hard 一般情况
  • 启发式:遗传算法、模拟退火、深度学习训练

拉格朗日乘子法与 KKT 条件

拉格朗日函数: $$L(x, \lambda, \mu) = f(x) + \sum_i \lambda_i h_i(x) + \sum_j \mu_j g_j(x)$$

KKT 条件(凸优化最优解的充要条件):

  1. 平稳性:$\nabla_x L = 0$
  2. 原始可行:$h(x) = 0$, $g(x) \leq 0$
  3. 对偶可行:$\mu_j \geq 0$
  4. 互补松弛:$\mu_j g_j(x) = 0$

直觉:最优解处,要么约束不起作用($g_j < 0$,则 $\mu_j = 0$),要么约束被绷紧($g_j = 0$,$\mu_j > 0$)。没有「半紧不松」的中间态


数学直觉

直觉一:最优在「边界」上

线性规划的最优解一定在多面体的顶点——这是单纯形法的几何基础。

为何:线性函数没有内部极值,只能在边界取极值。凸多面体的极值点就是顶点。

延伸:凸优化虽然允许内部最优,但只要目标不是常数,最优往往仍在边界或边界附近。「最优 = 边界上的切点」是普遍直觉。

直觉二:拉格朗日乘子 = 约束的「价格」

$\lambda_i$ 是等式约束 $h_i(x) = 0$ 的拉格朗日乘子,几何含义是约束的影子价格

$$\lambda_i = \frac{\partial f^*}{\partial b_i}$$

其中 $f^*$ 是最优值,$b_i$ 是约束右端项。含义:若放松约束 $h_i(x) = b_i$(让 $b_i$ 增加一点点),目标能改善多少。

应用直觉

  • $\lambda = 0$:约束不起作用,放松无收益
  • $\lambda$ 大:约束很「紧」,放松收益高
  • $\lambda$ 是「再投入一单位资源能换多少收益」的边际度量

直觉三:凸性 = 「没有陷阱」

凸函数的局部最优 = 全局最优。这是凸优化比非凸优化容易的根本原因

几何:凸函数像碗,任何局部最低点就是全局最低点。非凸函数像山脉,有多个山谷,可能困在局部最优。

为何凸性如此重要

  • 凸优化可被高效求解(多项式时间)
  • 解有唯一性(严格凸时)
  • 对偶理论成立(强对偶性)
  • 现代机器学习的「凸代理损失」(hinge loss、logistic loss)本质是把非凸问题凸化

直觉四:KKT 互补松弛 = 「绷紧或失效」

KKT 的互补松弛条件 $\mu_j g_j(x) = 0$ 有绝美直觉:

  • 若 $g_j(x) < 0$(约束松弛):$\mu_j = 0$,约束不起作用
  • 若 $\mu_j > 0$(约束有「价格」):$g_j(x) = 0$,约束绷紧

芒格式洞察:最优决策处,所有约束要么完全不限制你,要么刚好绷到极限。没有「半紧不松」的中间态——这是优化的深刻美感。


跨学科应用

商业:资源分配的线性规划

工厂生产 A、B 两种产品,利润分别为 100、150 元。消耗资源:A 用 2 单位原料 + 1 工时,B 用 1 单位原料 + 3 工时。原料 100,工时 120。

LP 模型: $$\max 100x_A + 150x_B \quad \text{s.t.} \quad 2x_A + x_B \leq 100, \quad x_A + 3x_B \leq 120$$

求解:在顶点处找最优。设两个约束都绷紧:解得 $x_A = 36, x_B = 28$,利润 7800 元。

影子价格:原料的 $\mu_1 = 30$,工时的 $\mu_2 = 20$。多 1 单位原料值 30 元,多 1 工时值 20 元——这指导原料采购和加班决策。

投资:马克维茨组合优化

$$\min \frac{1}{2} w^T \Sigma w \quad \text{s.t.} \quad w^T \mu = \bar{r}, \quad w^T \mathbf{1} = 1$$

  • 目标:最小化风险(方差)
  • 约束:期望收益 = 目标,权重和 = 1
  • 拉格朗日乘子:收益约束的乘子 = 「再多 1% 期望收益需要多承担多少风险」

洞察:有效前沿上的每一点都对应 KKT 条件下的最优组合。风险预算、Black-Litterman 模型、风险平价都是凸优化的应用。

决策:多目标与约束思维

多目标优化:$\max (f_1, f_2, …, f_k)$

  • 帕累托最优:不存在另一解在所有目标上都更好
  • 加权标量化:$\max \sum w_i f_i$,权重 $w_i$ 是各目标的「相对价格」

约束思维的智慧

  • 把「目标」转化为「约束」:不是「最大化收益」,而是「在风险约束下求收益」
  • 把「硬约束」放松为「软约束」:允许违反但加惩罚
  • 用对偶变量评估约束的「价值」——什么约束放松收益最大

芒格洞察:「反过来想」= 对偶思维。不问「怎么成功」,而问「怎么避免失败」——把失败设为约束,求最大化生存空间。


课后测验

题目 1(单选)

「凸优化的局部最优就是全局最优」——这一性质的根原因是:

A. 凸函数没有边界 B. 凸函数上任意两点的连线在函数图像上方 C. 凸函数一定可微 D. 凸函数一定单调

查看答案与解析

答案:B

凸函数的定义:对任意 $x_1, x_2$ 和 $\theta \in [0,1]$,

$$f(\theta x_1 + (1-\theta) x_2) \leq \theta f(x_1) + (1-\theta) f(x_2)$$

几何含义:任意两点间的连线在函数图像上方(函数图像在连线下方)。

为什么保证全局最优:若 $x^$ 是局部极小,则它附近没有更小的点。若存在另一全局极小 $x^{}$ 使 $f(x^{}) < f(x^)$,由凸性,连接 $x^$ 和 $x^{**}$ 的线段上的函数值都 $\leq \max(f(x^), f(x^{})) = f(x^)$,**在 $x^$ 附近就能找到更小的点——矛盾。

A 错(凸函数可有边界);C 错(凸函数不一定可微,如 $|x|$);D 错(凸函数不单调)。

题目 2(案例分析)

某对冲基金优化投资组合:$\max \mu^T w - \frac{\lambda}{2} w^T \Sigma w$ s.t. $\sum w_i = 1$。其中 $\lambda = 2$ 是风险厌恶系数。

求解后发现拉格朗日乘子 $\nu^* = 0.08$(对应等式约束 $\sum w_i = 1$)。

问题:$\nu^* = 0.08$ 的经济学含义是什么?如果允许加杠杆(即 $\sum w_i$ 可大于 1),你预期基金如何调整?

查看答案与解析

经济学含义

$\nu^* = \partial f^* / \partial b$,其中 $b$ 是约束右端(原为 1)。$\nu^* = 0.08$ 意味着:若约束放松为 $\sum w_i = 1.01$(多投入 1% 资金),目标函数能改善 0.08%

允许加杠杆后的调整

  • 基金会增加杠杆,因为约束有正的影子价格——放松有收益
  • 调整幅度:直到 $\nu^*$ 降为 0(约束自然松弛)或撞到新约束(杠杆上限、保证金要求)
  • 实务中:杠杆不是免费的,融资成本会抵消部分收益,最优杠杆取决于融资利率与 $\nu^*$ 的比较

洞察:影子价格是「再投资一单位资金值多少」的边际度量——这是杠杆决策、融资决策、资金分配的统一数学语言。

题目 3(反事实)

假设 KKT 条件中的「互补松弛」性质不成立(即约束可以「半紧不松」,$\mu_j > 0$ 但 $g_j(x) < 0$ 同时成立),优化理论和实务会失去什么?

查看答案与解析

失去的能力

  1. 失去识别「有效约束」的能力:互补松弛告诉我们哪些约束真正起作用($g_j = 0$ 且 $\mu_j > 0$)。失去它,无法判断哪些约束是「绷紧的」,资源分配决策失去依据。

  2. 失去影子价格的清晰含义:$\mu_j$ 只在约束绷紧时才有非零值,对应「放松这个约束的边际收益」。失去互补松弛,所有 $\mu_j$ 都可能非零,无法识别真正限制系统的瓶颈。

  3. 失去对偶间隙的几何解释:互补松弛是强对偶性的关键。失去它,原问题与对偶问题可能不等价,整个对偶优化框架失效。

  4. 实务影响

    • 投资组合优化无法判断哪个约束(行业暴露、单股权重、换手率)真正限制收益
    • 资源分配无法识别「再投入一点资源最值钱」的环节
    • 机制设计无法判断哪些约束需要放松

核心洞察:互补松弛是「最优解处没有浪费」的数学表达——每个起作用的约束都绷到极限,每个不起作用的约束都不消耗「注意力」。这是效率的几何化身。


本课要点

  1. 最优在边界:线性规划在顶点,凸优化在边界或内部切点
  2. 拉格朗日乘子 = 影子价格:约束的边际价值
  3. 凸性 = 没有陷阱:局部最优 = 全局最优
  4. 互补松弛 = 绷紧或失效:最优解处没有半紧不松
  5. 应用三连:资源分配 LP、马克维茨组合、多目标决策

延伸阅读

  • Boyd & Vandenberghe, 《Convex Optimization》 — 凸优化圣经,免费 PDF
  • Luenberger & Ye, 《Linear and Nonlinear Programming》 — 经典教材
  • Markowitz, 《Portfolio Selection》 — 现代投资组合理论开山之作

下一步

下一课:梯度下降与迭代优化 — 蒙眼下山:从梯度下降到随机优化的算法谱系。