“LP 舍入把一个分数解送回整数可行域,并分析目标损失;这里保持全部整数可行点不变,收紧的是松弛域。Chvátal–Gomory 闭包则把一整族有效取整割同时相交,研究多轮后还剩下什么几何区域…”
形式陈述
分支定界用 LP 松弛给整数子问题上界;分支切割法还会在结点中加入对其整数解有效、但能排除当前分数解的不等式,再重新求 LP。
对最大化问题,结点
每条割都必须有明确作用域:
- 全局割对原问题全部整数可行点有效,可供所有结点使用
- 局部割只在某个结点及其祖先条件下对整数点有效,可以传给其后代,不能未经证明传给兄弟结点或根
合法割不会丢掉作用域内的整数解,却可能降低 LP 上界。割的有效性、违反程度、计算成本是三个不同的问题;违反很多的错误割仍然错误,严格有效但不切当前点的割也未必值得立即加入。
直觉
分支把候选分成两个盒子,切割则在一个盒子里用整数结构削去多余分数区域。两者可以交替:先用便宜的全局割改进根松弛,遇到仍然分数的解再分支,随后利用分支已经确定的信息推导更强的局部割。
局部条件是证明的一部分。例如“在
Gomory 分数割可以由当前 LP tableau 生成;CG 取整可以从原约束与分支约束的合法组合生成。若组合用到了局部分支行,默认得到的就是局部割,除非另有证明把它提升为全局有效形式。
例子与边界
五项设备选择与一条条件容量
选择五件设备,变量
另外设备 2 的容量需求为二,基础容量为一,启用设备 0 可再增加二:
最大化收益
非负性与五圈度约束已隐含
全局奇圈割收紧根,但还没有解完
把五条冲突约束各乘
新 LP 最优点为
这次的对偶证书可以直接写成:
左支的局部取整
按分数变量
在此结点,将容量约束乘
认证,其中最后一项用到了局部割。得到 incumbent 12,这个结点可以关闭。
右支给出唯一最优解
右支加入
在
若把左支的
推论与应用
局部割可以怎样提升
本例的原容量约束其实还直接给出一个全局 CG 割:除二后左端
保留
算法保证与实际成本
每条割的有效性保证整数候选没有被误删;分支的完整性保证尚未解决的整数点仍由活结点覆盖;可行 incumbent 与对偶上界保证剪枝安全。三份证书同时成立,才能继承分支定界的精确最优性。
若在一个结点无限加割却永不分支,有限搜索域本身不能保证整个过程终止。一个简单可证明终止的策略是每结点只做有限轮分离,然后在仍分数时分支;有限整数界保证最终搜索树有限。实际成本需累计分离、重新解 LP、割管理、可行解搜索及结点处理,没有一般多项式时间保证。
删掉一条不再活跃的有效割可以让 LP 松弛变弱,但不会使原整数可行点丢失;反之,错误地跨作用域使用局部割会破坏正确性。求解器的全局割池与本地分离存储因此不能被视为仅仅两种缓存位置。
单元任务:把计划与最优性证书一起交付
先把四乘四双随机计划
分解为三份置换排班,证明每轮匹配存在、权重和为一、逐项重构,并解释分配 LP 的整数性为什么来自 TU,而不只是这份示例。
然后复算本页五项选择模型。交付根与每个孩子的原始 LP 点、对偶上界、整数 incumbent、每条割的乘子与作用域。最终报告应为:根界
最后对
下载完整题解、精确有理核验脚本、逐结点与逐轮结果。脚本使用标准库分数算术,通过小规模顶点枚举寻找 LP 点,再独立核对非负对偶乘子及目标相等;它是可复核的教学实现,不以生产整数求解器的性能为目标。
参考资料
- Stephen Boyd and Jacob Mattingley, Branch and Bound Methods, §2:Stanford 官方讲义。结点松弛界、可行解界与完整分支。
- Ricardo Fukasawa, “Gomory Cuts”, “Gomory’s Fractional Cuts” and “Chvátal–Gomory Cuts”:作者稿。整数有效割的聚合与取整机制。
- SCIP Optimization Suite, “Frequently Asked Questions”, separation store versus global cut pool:官方文档。局部割与全局割的存储和复用范围。