凸二次规划(convex quadratic programming)

凸二次规划是一类特殊的数学优化问题,可以看作线性规划的自然延伸。简单来说,它的目标是最小化一个“二次”函数,且这个函数是“凸”的,同时要满足一些“线性”的约束条件。

它的标准数学形式是:

  • 目标函数:最小化 (1/2)xᵀQx + cᵀx
  • 约束条件:满足 Ax ≤ b(以及可能的等式约束 Ex = d

下面拆解这三个关键特征,帮你更好理解:

1. “二次”:目标函数中有平方项
与目标函数是线性的(如 cᵀx)不同,这里多了 xᵀQx 这个二次型。这意味着变量之间可以相乘,关系曲线是抛物线而非直线。

  • 例子:最小化 x² + y² 是一个二次目标。
  • 现实意义:可以用来量化风险(如投资组合方差)、能量消耗或误差平方和。

2. “凸”:问题具有良好的几何性质,保证能找到全局最优解
这是最关键的性质。一个二次函数是凸的,当且仅当矩阵 Q半正定的。

  • 几何上:目标函数的“碗口”朝上,只有一个最低点,没有崎岖的局部最低点。
  • 计算上:这保证了找到的任何局部最优解就是全局最优解,算法可以高效、可靠地求解。如果 Q 不是半正定,问题会变成非凸的,通常极难求解。

3. “规划”:在约束下寻优
问题的变量不能随意取值,必须满足一系列线性的不等式或等式约束。

  • 约束:就像资源有限或必须遵守规则,它们共同划出一个可行区域(通常是多面体)。
  • 求解:就是在这个多面体区域内,找到一个使“碗状”目标函数值最小的点。这个点可能在区域内部(碗底),也可能在边界上。

为什么凸二次规划如此重要?

它的威力在于能完美地平衡模型的表达能力和求解的可靠性

  • 表达能力比线性规划强:现实世界中,成本或风险往往是非线性的。比如,你不想只是线性地惩罚误差,而是想按“误差的平方”(最小二乘法)来更严厉地惩罚大误差。凸二次规划正适合为这种带有“边际成本递增”或“风险厌恶”特征的问题建模。

  • 求解可靠性和效率媲美线性规划:因为“凸”的性质保证了没有复杂的局部最优陷阱,所以它能被非常成熟、高效的算法(如内点法、增广拉格朗日法等)在多项式时间内精确求解,结果稳定可靠。

  • 应用极其广泛,现代科技和金融的许多核心问题都在用它:

领域 核心问题 对应为凸二次规划
金融 投资组合优化 目标:最小化风险(方差,即二次项);约束:预期收益、预算(线性约束)。Q是协方差矩阵(半正定)。
机器学习 支持向量机(SVM) 目标:最大化分类间隔,这等价于最小化权重向量的范数平方 ‖w‖²(二次项);约束:所有样本被正确分类(线性约束)。
控制工程 模型预测控制(MPC) 在每个时间步,求解一个最小化未来轨迹跟踪误差(二次目标)和能量消耗,并满足系统动态和物理限制(线性约束)的问题。
数据拟合 带约束的最小二乘法 目标:最小化误差平方和(二次项);约束:系数必须非负、和为1等(线性约束)。

与“非凸二次规划”的对比,一眼看明白凸的价值

  • 凸的 (Q 半正定):就像一个光滑的碗。无论从碗壁上的哪一点出发,往下走最终都能到达碗底的全局最优点。
  • 非凸的 (Q 不定):就像一个崎岖的马鞍面或薯片形状。不同起点可能滑向不同的局部低谷,你很难判断找到的是不是全局最低点。这类问题属于 NP-hard 问题,求解难度陡增。

简单总结,凸二次规划就是在由直线和平面围成的区域内,找到一个碗状曲面的最低点。因为它兼顾了表达力和易解性,所以成为了优化领域的基石之一。

如果想了解求解它的具体算法,比如内点法是怎么工作的,我可以继续为你讲解。

posted @ 2026-05-26 20:49  ace--碳水化合物  阅读(16)  评论(0)    收藏  举报