Skip to content

算法Algorithm

Gomory 分数割

Gomory fractional cut

从纯整数单纯形表的一行提取分数部分,用非负性和整数同余推出一条排除当前分数基点的有效割。

形式陈述 ​

单纯形法已经求出 LP 最优基,但某个应当取整数的基本变量却是分数。能否只看这一行,就自动构造一条保留全部整数解、却切掉当前基点的不等式?

考虑纯整数标准型:所有基本与非基本变量都要求非负整数。若原模型含整数系数不等式和整数右端,其松弛变量也必须一并视为整数变量。设当前一行写成

xB=β−∑j∈Najxj,β∉Z.

定义分数部分 f(t)=t−⌊t⌋∈[0,1)。对应的 Gomory 分数割是

∑j∈Nf(aj)xj≥f(β).

所有系数从精确的有理 tableau 行计算。公式中的 aj 是写在减号后面的系数,不能把等式右侧显示的带符号项不经转换就套入另一种约定。

当前基点令所有非基本变量为零,割左侧为零,右侧严格为正,所以必被切除。与此同时,原行的每个非负整数解都满足此割。

直觉

把系数拆成整数部分与分数部分,并把原行移项,可得

xB+∑j⌊aj⌋xj−⌊β⌋=f(β)−∑jf(aj)xj.

左边是整数,因此右边也是整数。令 s=∑jf(aj)xj;由于 f(aj)≥0、xj≥0,有 s≥0,而 s−f(β) 是整数。既然 0<f(β)<1,s 不可能落在 [0,f(β)) 中,只能满足 s≥f(β)。

这个推理有两根支柱:整数变量使分数余数只能按整步改变,非负变量阻止左侧落到负的一支。割并没有猜测某个未知整数最优解在哪里,而是对原行的全部整数解同时成立。

tableau 分数部分给出割
例子与边界

一行、一个分数基点、一条新边界 ​

取

xB=32−12x1−14x2,xB,x1,x2∈Z≥0.

当前基点为 (xB,x1,x2)=(3/2,0,0)。分数割为

12x1+14x2≥12,即 2x1+x2≥2.

原行乘四后是 4xB+2x1+x2=6。例如 (xB,x1,x2)=(1,1,0),(1,0,2),(0,3,0),(0,2,2),(0,1,4),(0,0,6) 都合法,并满足割。当前非基本原点 (0,0) 却违反 2x1+x2≥2,所以重新求 LP 时不能再停在原分数基点。

这条割对当前行所允许的整数点有效,因而也对满足全部原约束的整数点有效。它可能没有描述完整整数包;排除一个基点之后,其他分数顶点仍可能留下。

负系数必须向下取整 ​

若某个 aj=−1/4,其分数部分是

f(−1/4)=−1/4−(−1)=3/4,

不是 −1/4,也不是零。向零截断会破坏 f(aj)≥0,原证明的关键一步随之失效。实现中应使用数学 floor,尤其注意编程语言的整数除法在负数上的约定。

若 f(β)>0,却所有 f(aj)=0,所得割是 0≥f(β),直接证明该行没有整数解。这不是一条“太强”的错误割,而是整数等式右端与左端的同余冲突。

连续变量为何不能照搬 ​

考虑 xB=3/2−(3/2)z,其中 xB 要求非负整数,但 z 允许非负实数。取 z=1/3,得到合法点 xB=1。若误用纯整数分数割,会要求 (1/2)z≥1/2,即 z≥1,反而删掉这个合法点。

失效原因是 ⌊3/2⌋z=z 不再是整数,前面的整数同余推理不能成立。混合整数问题需要 Gomory mixed-integer 或其他适配连续变量的割,不能仅把纯整数公式里的变量类型注释改掉。

推论与应用

一条含 q 个非基本系数的行,提取割需要 O(q) 次分数部分计算和写出操作;有理数的位成本另计。把割加入 LP 后还要重新优化,其成本不能记作这 O(q) 的一部分。新割往往使当前基失去原始可行性,而可以利用对偶单纯形等方法重优化,具体仍取决于选取的标准型和基状态。

反复“选一行、加一刀”并不自动附带有限终止或多项式时间保证。Gomory 的有限算法需要规定选行、枢轴与防循环策略;只给出有效割公式,证明的是本次删点正确,而不是任意割序列都会快速到达整数最优。

LP 舍入把一个分数解送回整数可行域,并分析目标损失;这里保持全部整数可行点不变,收紧的是松弛域。Chvátal–Gomory 闭包则把一整族有效取整割同时相交,研究多轮后还剩下什么几何区域。分支切割法在搜索树中选择性加入这些割,还必须记录它们是否依赖当前分支条件。

参考资料
  • Ralph E. Gomory, “Outline of an Algorithm for Integer Solutions to Linear Programs”, Bulletin of the American Mathematical Society 64(5), 1958, pp. 275–278,尤其 pp. 276–277 的分数行构造和有效性证明:原论文副本。
  • Ricardo Fukasawa, “Gomory Cuts”, 2010 encyclopedia author proof, pp. 1–2, “Gomory’s Fractional Cuts”:作者稿。非负纯整数条件、分数部分推导以及与混合整数割的区别。
关系图谱6 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系