单纯形法的复杂性、椭球法与内点法
单纯形法在实践中通常很快,但“通常快”不等于“最坏情形是多项式时间”。复杂性分析衡量的是输入位数增长时,算法最多需要多少基本运算。
输入规模不是变量个数
线性规划的输入由有理数系数构成。一个整数 的二进制编码长度约为 ,因此问题规模不仅取决于 ,也取决于系数需要多少位表示。
若算法运行时间被输入编码长度的某个多项式控制,称为多项式时间算法。若复杂度只对数值大小呈多项式、却对编码长度呈指数,则称伪多项式而非真正多项式。
单纯形法的最坏情形
Klee–Minty 立方体通过精心扰动普通立方体,使某些单纯形进基规则沿几乎所有 个顶点走一遍。课程中的递推约束例子展示:即使约束数和变量数线性增长,迭代次数也可能达到 。
因此:
这不否定它的工程价值。现代实现配合预处理、稀疏线性代数和良好定价规则,在大量实际 LP 上非常高效,还能直接给出基与灵敏度信息。
椭球法的核心想法
椭球法不沿多面体边移动,而是维护一个包含候选解的椭球。每次取椭球中心:
- 若中心满足全部约束,就得到可行点;
- 若违反某条约束,该约束给出一个分离超平面;
- 用体积更小的新椭球包住仍可能可行的半边。
椭球体积按固定比例下降,结合有理解的位数界,可在多项式次数内判断可行或逼近最优。它第一次证明一般线性规划属于多项式可解,但实际常数和数值表现通常不如单纯形或内点法。
课件重点:原始仿射尺度法
考虑已有严格内点的标准形线性规划
假设 满行秩,即
在第 次迭代,把当前点各坐标的大小收进对角矩阵
这样当前点被缩放为全 1 向量 ,而等式约束变成 。在缩放空间中,到 的正交投影为
因为 , 可逆;再结合 满行秩, 正定,所以上式中的逆存在。
把目标梯度 投到等式约束的切空间,再取负方向,映回 空间:
定义步长前必须先检查
若 ,则投影梯度与搜索方向都为零。此时 属于 的值域,等价于存在 使 ;当前严格可行点满足 LP 的最优性条件,算法应直接停止,不能继续代入步长公式造成除零。
仅当 时,课件采用的步长是
这里有两个必须会解释的性质:
- ,所以更新前后始终满足 ;
- 缩放后每个坐标的移动量不超过 1,因此从 出发不会跨出非负正交象限。
若更新后某个坐标恰好为零,按课件中的定理可判该迭代点最优;否则新的点仍在内部,重新构造 与 。仿射尺度法的直觉是:每一步都把当前内点周围“拉成近似球形”,再沿投影后的负梯度走到这个局部球的边界。
障碍内点法作为对照
内点法在可行域内部移动,不追逐极点。对不等式约束加入障碍项,例如
当 逐渐减小时,障碍问题的解沿中心路径接近原 LP 最优解。每一步通常需要解 Newton 线性方程组,但迭代次数具有多项式界,且适合大规模稀疏问题。
三类方法怎么比较
| 方法 | 迭代位置 | 理论 | 常见优势 |
|---|---|---|---|
| 单纯形 | 极点与边 | 指数最坏情形 | 热启动、基解、灵敏度 |
| 椭球 | 包围椭球中心 | 多项式 | 理论证明、分离 oracle |
| 仿射尺度 / 内点 | 可行域内部 | 现代内点法有多项式界 | 大规模稀疏 LP、稳定迭代数 |
考试要点
- “存在指数例子”不是说每个实例都慢。
- 复杂性要按输入编码长度计算,不能只数变量。
- 会写 、、 和 ,并先检查满行秩、逆存在与 的停止情形。
- 椭球法把优化与分离联系起来;障碍内点法通过中心路径逼近边界最优解。
- 被问“第一个多项式时间 LP 算法”时答椭球法;工程常用还要提单纯形与内点法。