建模顺序会影响 Pulp 中整数规划问题的计算速度吗?

问题描述 投票:0回答:1

我目前正在使用 Pulp 解决整数规划问题。我知道 Pulp 建模中的语句顺序会影响计算结果。然而,我很想知道特定的建模顺序是否也可以提高计算速度。寻找特定顺序来提高计算速度的做法常见吗?

此外,我已经实现了优化,例如尽可能消除不必要的变量,将流程分为预处理和后处理阶段。

就我而言,我注意到更改建模顺序后计算时间有了显着改善:

更改顺序前:约50秒 更改顺序后:约30秒 是否有任何一般建议或指南来确定 Pulp 中建模的最佳顺序以实现更快的计算速度?

python pulp integer-programming
1个回答
1
投票

建模顺序会影响 Pulp 中整数规划问题的计算速度吗?

是的。但这是一件坏事,求解器会努力减少这种影响。

它也不限于纸浆,而是普遍适用于离散优化。请参阅下面的资源(重点关注整数编程)!

寻找特定顺序来提高计算速度的做法常见吗?

绝对不是!

如果像位置这样的一些实体是按国家/地区排序的,那么以相同的方式迭代它绝对没问题(也是个好主意)。

但是积极调整不会自动可用的东西......我不会这样做。

两点备注:

  • 这就像调整随机种子,这是绝对不应该做的
  • 在不同但相似的社区(SAT 求解器;类似于“自动搜索”),在先前未知的实例上评估不同求解器的竞赛随机排列模型行!

更改顺序前:约50秒更改顺序后:约30秒

这听起来像是样本量为 1 的统计评估。这并不能说明什么。它甚至可能无法在解算器中使用不同的种子重新运行。


如果您的问题像您声称的那样敏感,通常表明您的模型不够好。这基本上意味着,你的求解器很大程度上取决于运气

其他公式(不是顺序)可能会更好,但这始终取决于问题。

如果有一些见解可以帮助求解器,也有更强大的给出提示的方法(分支启发式等),尽管我不确定这里有多少纸浆支持。


一些背景:

© www.soinside.com 2019 - 2024. All rights reserved.