我工作的公司一直在开发用于实时控制下水道网络的应用程序。每 5 分钟构建或更新一个 MILP 问题,然后使用 Gurobi 解决。
对于中型城市来说,这很有效。但对于较大的城市,MILP 问题会变得更大,当然需要更多时间来找到可接受的解决方案。
我的问题:谁能建议我找到一个好的近似解决方案而不是最佳解决方案的方法?该方法必须能够快速找到解决方案,因此计算时间与解决方案的质量一样重要。
实际上,我们可以将 MILP 问题求解到最优值,或者我们可以通过这样做找到一个近似的解决方案:
- 我们用在 0 和 1 之间变化的连续变量替换一半的二元变量;
- 我们找到了这个修改后问题的第一个最优解。让我们定义作为目标函数的最优值。
- 在原始问题中,我们将二元变量设置为前一个问题的最优值;
- 通过解决最后一个问题可以找到近似解。让我们定义作为目标函数的最优值。
解决方案的质量取决于和自从 . 这种方法已经给出了相对较好的结果,但我很确定可能还有其他方法可以找到一个近似的解决方案。我用谷歌搜索了“近似解决方案 MILP”,但我不确定我的发现有多可靠,以及找到次优解决方案的速度有多快。
谢谢。