我目前正在使用 Pulp 解决整数规划问题。我知道 Pulp 建模中的语句顺序会影响计算结果。然而,我很想知道特定的建模顺序是否也可以提高计算速度。寻找特定顺序来提高计算速度的做法常见吗?
此外,我已经实现了优化,例如尽可能消除不必要的变量,将流程分为预处理和后处理阶段。
就我而言,我注意到更改建模顺序后计算时间有了显着改善:
更改顺序前:约50秒 更改顺序后:约30秒 是否有任何一般建议或指南来确定 Pulp 中建模的最佳顺序以实现更快的计算速度?
建模顺序会影响 Pulp 中整数规划问题的计算速度吗?
是的。但这是一件坏事,求解器会努力减少这种影响。
它也不限于纸浆,而是普遍适用于离散优化。请参阅下面的资源(重点关注整数编程)!
寻找特定顺序来提高计算速度的做法常见吗?
绝对不是!
如果像位置这样的一些实体是按国家/地区排序的,那么以相同的方式迭代它绝对没问题(也是个好主意)。
但是积极调整不会自动可用的东西......我不会这样做。
两点备注:
更改顺序前:约50秒更改顺序后:约30秒
这听起来像是样本量为 1 的统计评估。这并不能说明什么。它甚至可能无法在解算器中使用不同的种子重新运行。
如果您的问题像您声称的那样敏感,通常表明您的模型不够好。这基本上意味着,你的求解器很大程度上取决于运气!
其他公式(不是顺序)可能会更好,但这始终取决于问题。
如果有一些见解可以帮助求解器,也有更强大的给出提示的方法(分支启发式等),尽管我不确定这里有多少纸浆支持。
一些背景: