形式陈述
取正整数 ,变量 ,考虑严格凸二次规划公理库优化问题Optimization problem在可行解集合上最小化或最大化目标函数的计算问题。
二次型公理库二次型Quadratic form把向量映为二次齐次标量的函数,并通过极化与对称双线性形式相联系。的正定性保证非空可行集上存在唯一最优点。给定可行初值,令 为所有活跃约束;算法另保存一个工作集 ,其约束行线性独立。活跃集描述点的位置,工作集是本轮暂时当作等式处理的约束,它们不必相同。
在当前点记 ,求等式约束子问题
通过线性方程组公理库线性方程组System of linear equations可写为矩阵方程 Ax=b 的有限个一次方程系统。计算唯一方向与工作乘子:
迭代分成两支。
- 若 ,取内层集合为空时只取一。令 ;若某条约束达到最小比值且 ,将一个阻挡约束加入工作集。
- 若 ,检查 。若所有分量非负,令工作集外乘子为零,得到完整KKT 证书公理库KKT 条件Karush–Kuhn–Tucker conditions · KKT conditions用可行性、乘子符号、互补松弛与驻点方程刻画约束最优性的条件。并终止;否则删除一条负乘子约束,保留同一个 ,重解方向。
主算法假设工作集一直线性独立,并且每次阻挡移动具有正步长;并列可用固定索引顺序选择。实现遇到零步长、相关工作行或重复状态时,应进入明确的退化处理,而不能靠放宽可行性冒充正常进展。
直觉
先假定几面墙暂时不能离开,在这些墙的交面内寻找二次目标的最低点。若路上撞到另一面墙,就停在它前面,把它加入工作集。若已经在当前面的最低点,乘子告诉我们哪些墙是真正阻力,哪些只是错误地把自己锁住。
对于 的写法,合法乘子应非负。负乘子意味着该约束在当前等式模型里需要向错误方向“拉住”最优点;解除它,通常就有新的可行下降方向。这个符号来自统一的 Lagrangian ,改变不等式方向后必须同步改变符号约定。
工作约束的释放与加入
例子与边界
两次释放和一次阻挡
求
把三条约束依次编号为 。从 开始,。
- 两条下界都固定。 方向只能为零。梯度为 ,由 得 。删除乘子更负的约束一。
- 只固定 。 子问题给 。斜边的阻挡比值为 ,所以走完整步到 ,并将约束三加入。此时 。
- 右顶点的工作方向为零。 梯度为 。驻点方程给 ,因此释放约束二,留下 。
- 沿斜边优化。 方向满足 。解方程得 、。没有新约束提前阻挡,走到 。
- 终止核验。 重解后 ,乘子为 ,三条约束可行,互补关系成立,梯度 被斜边法向力抵消。
目标从 降到 ,再降到 ;释放约束的两轮不移动几何点。最优点位于斜边内部,并非多面体顶点,所以不能把这条轨迹说成单纯形法公理库单纯形法Simplex method沿可行多面体顶点与边枢轴移动求解线性规划的方法。的顶点换基。
紧约束可以不在工作集里
第一条下界刚被释放时,点仍为原点,所以 依然紧;它只是不再作为等式限制方向。若每轮把所有紧约束无条件放回工作集,刚才的删除立刻被撤销,算法会卡在起点。
约束冗余也需要处理。若额外加入 ,它与约束三在同一条边上同时紧,两个法向量相关,不能直接把二者都放入要求满行秩的块系统。几何可行域没变,线性代数却可能奇异;应保留独立工作行,并在最终证书中允许冗余约束的乘子为零。
推论与应用
两个不变量与终止证书
工作方程 保证旧工作约束保持紧。对其他约束,只有 才会消耗剩余裕量,最小比值检验恰好保证没有约束被穿过。因此每个接受点保持原始可行。
把方向方程左乘 ,利用 ,得到
故对 ,
这解释为什么可以沿面内方向走到第一面阻挡墙,而不需要另加普通线搜索。 且工作乘子非负时,扩展成完整乘子即可满足全部 KKT 条件;严格凸性使证书认证唯一全局解。
删去负乘子约束后,为什么会获得自由?在独立工作行下,可以选方向 使保留的工作行对它为零,被删除行满足 。由原驻点式 ,有 。若其余活跃约束不阻挡这一方向,就能作小的可行下降步;若立即被另一条紧约束以零步长阻挡,就进入退化情形。
退化与计算成本
每次删除约束之前,零方向意味着当前点是该工作面上唯一的最小点。删除负乘子后,非退化假设保证随后有正步长下降,因而不可能再以相同工作集回到同一个面最小点。两次删除之间,阻挡步骤每次增加一条独立工作行,至多增加 次;没有新阻挡的完整步则直接到达当前面最小点。工作集只有有限多种,所以非退化版本有限终止。但这些数量可以随约束数呈组合增长,不能从“每次解一个线性系统”推断总复杂度为多项式。含零步长时,任意并列规则可能反复增删约束;可采用经过证明的字典序扰动或专门的防循环工作集规则,实际程序至少应检测重复状态并报告退化。
若本轮有 条工作约束,直接稠密求解 阶块系统成本为 ;扫描阻挡约束为 。相邻工作集只改一行时可以更新分解,暖启动也能复用上次接近正确的工作集,这使该方法适合重复的小中型 QP。寻找可行初值是另一个阶段;从不可行点直接使用上述比值检验,会失去其可行性不变量。
在序列二次规划公理库序列二次规划Sequential quadratic programming · SQP将非线性约束线性化,以 Lagrangian 的曲率构造局部 QP,并通过乘子更新和罚函数验收控制真实约束误差。中,本页可以作为局部 QP 的内层求解器。非线性原约束的可行性仍需外层检查,因为 QP 只满足线性化约束。
参考资料
- Robert M. Freund, Solution Methods for Quadratic Optimization, MIT, 2004,§2,工作集、负乘子释放与非退化方向。
- Jorge Nocedal and Stephen J. Wright, Numerical Optimization, 2nd ed., 2006,§16.5,active-set methods for convex QP;作者目录。
- Dimitri P. Bertsekas, Constrained Optimization and Lagrange Multiplier Methods, 1982,§1.5,简单约束、可行方向与活跃约束策略。
- Philip E. Gill, Walter Murray and Margaret H. Wright, Practical Optimization, 1981,Ch. 5,线性约束与工作集方法。