Jikipedia
概念笔记

数学规划(优化问题与分类)

量化数学规划优化线性规划二次规划凸优化

一句话

数学规划(= 数学优化)研究「在资源与条件限制下,最大化或最小化某个目标」。量化里的组合配置——固定收益下最小化方差(MPT)——就是一个数学规划问题;问题属于哪一类(线性/二次/凸/非线性)决定能用什么算法。

当前理解

标准形式与折算技巧(量化课堂 33)

  • 一般形式:最小化 f(x),满足 cᵢ(x) ≤ bᵢ,x ∈ Rⁿ。f 是目标函数;cᵢ(x) ≤ bᵢ 是约束;满足约束的点集是可行区域。
  • 一切都能折算成这个格式:max f = min −f;≥ 约束乘 −1;等式约束 = 两个不等式交集。
  • 入门例:本金 100、两类资产(年收益 10%/最坏亏 20%;年收益 5%/最坏亏 5%),要求最坏损失 ≤10 → max 0.1x₁+0.05x₂,满足 x₁+x₂≤100、0.2x₁+0.05x₂≤10。

四类问题的包含关系与难度

  • 线性规划 LP:目标与约束全线性 → 多项式时间可解(最简单)。
  • 二次规划 QP:目标含 ½xᵀQx。难度看 Q:正定(特征值全正)→ 多项式;不定 → 一般 NP-难。任何 LP 都是 QP。
  • 凸规划:f 与约束都凸(图像上任意两点连线不跑到图下方)。凸保证「局部极小 = 全局极小」,但很多凸问题仍 NP-难。QP 在 Q 半正定时是凸规划。
  • 非线性规划 NLP:只要求连续,覆盖面极大(很多未解难题都能写成 NLP),通常要加光滑/凸性等条件才好处理。其余三类都是它的子集。
  • 排序(装得下的问题从少到多、难度从易到难):LP ⊂ QP ⊂ 凸规划 ⊂ NLP——分类 = 预告该用哪档算法。

与量化的接点

来源

常见混淆

  • 数学规划不是「编程」:programming 指「规划/安排」,与写代码无关。
  • 四类不是并列:LP、QP、凸规划都是 NLP 的子集;「非」字指「线性以外」,不是说 LP 不属于 NLP。
  • 凸 ≠ 简单:凸只保证局部=全局(好找底),但很多凸问题仍是 NP-难。
  • QP 的难度看 Q 的特征值,不看问题「长得像不像二次」;同是二次目标,Q 正定与不定是两个世界。
  • 无约束 vs 有约束是两族问题:34 篇解无约束、35 篇处理等式约束;组合优化的不等式约束(不做空等)还需 KKT,不在本库。

开放问题

  • 分类的严格谱系、各档的复杂度证明与具体算法(单纯形/内点/KKT)没展开,33 篇只到断言级别 [需要验证]。
  • 组合优化的不等式约束(w≥0、上限)的专用算法(如二次规划求解器)未入素材;A 股做空受限下的落地解法待补。
  • 数值求解器(scipy 等)在聚宽环境的具体用法不在本库。
  • 非凸问题的全局优化(多起点、退火、遗传)未覆盖。

更新 2026-09-06

检索知识库

按标题、类型或正文检索