python - 线性规划目标函数的微小差异使程序变得非常慢

标签 python optimization or-tools mixed-integer-programming scip

我正在使用 Google 的 OR 工具 SCIP(求解约束整数程序)求解器来使用 Python 求解混合整数规划问题。该问题是标准调度问题的一个变体,其中存在限制,即每个 worker 每天最多工作一次,并且每个类次只能由一名 worker 负责。该问题建模如下:

Mixed Integer Programming Model

其中,n 代表 worker ,d 代表当天,i 代表特定日期的具体类次。 当我更改想要最小化的目标函数时,问题就出现了

Fast Objective Function

致:

Slow Objective Function

在第一种情况下,5 秒内即可找到最佳解决方案。第二种情况,运行20分钟后,仍然没有达到最优解。对于为什么会发生这种情况有什么想法吗? 如何更改目标函数而不会对性能产生太大影响?

这里是目标函数中使用的变量tieracceptance取值的示例。 Sample data for tier and acceptance of the objective function

最佳答案

您应该询问 SCIP 团队。

您是否尝试过使用具有 8 个线程的 SAT 后端?

关于python - 线性规划目标函数的微小差异使程序变得非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68005013/

相关文章:

python - Cherrypy 返回 NotFound : (404, "The path '/' was not found.")

mysql - 如何在 AWS RDS MySQL 数据库实例上进行负载平衡或增强数据库性能

c++ - 为什么指针增量语句被优化掉了?

python - 将基数排序(和 python)推向极限

python - 使用 Google OR-tools 设置二元约束

c# - Google or-tools 库中约束的 bool 运算

python - 为什么 AddMultiplicationEquality 仅限于 2 个变量?

java - 通过 Excel 与 Python/Java/其他编程语言访问 Bloomberg 的 API

python - 使用if语句修改行值

python - TensorFlow 运算符重载