【发布时间】:2020-09-05 07:30:17
【问题描述】:
我目前解决了一个(整数)LP 问题,其中包括以下数学约束作为伪代码。
Packages_T1 + Packages_T2 + Packages_T3 + RPackages = 25
它代表三辆包裹卡车(T1、T2 和 T3),每辆包裹都可以分配给其中的包裹,外加目标函数中使用的残留/溢出包裹变量。当前值 25 代表总包需求。
假设我想重新解决这个问题,但将当前 25 包的需求更改为 35 包。当我从具有 25 个包的先前解决方案热启动时,CPLEX 错误指出所提供的解决方案不可行:这非常有意义。但是,它随后无法修复以前的解决方案,即使最直接的方法是为每个约束“增加”RPackages 变量。
我的问题是,是否有可能仍将先前解决的问题中的信息用作新问题的热启动。例如,有没有办法从解决方案中删除所有 RPackages 并重新计算它们以适应新的约束右侧?我想到的“最后手段”努力是自己手动重新计算所有这些RPackages 值并将它们替换为旧解决方案,但更倾向于使用更自动化的解决方案来解决这个问题。我正在使用标准的 CPLEX Python API 作为参考。
提前谢谢你。
【问题讨论】:
标签: python linear-programming cplex