python - 使用 Pulp 在 Python 中识别不可行性约束并放松/删除它?

标签 python mathematical-optimization pulp mixed-integer-programming

我尝试使用 python mud 解决 MILP 问题,但该解决方案不可行。所以,我想找到不可行的地方,并想放松它或消除它,以找到可行的解决方案。由于存在大量约束,因此很难在 LP 文件中手动检查。那么我该如何处理这个问题呢?

我浏览了一些他们提到的在 LP 文件中手动检查的文章,但对于大量变量/约束,手动执行非常困难。

这只是不可行

最佳答案

总的来说,这并不那么容易。一些提示:

  • 如果您可以为您的问题构建一个可行但不一定是最佳的解决方案,请将其插入,您将很容易找到罪魁祸首。
  • 一些高级求解器具有可以提供帮助的工具(IIS、冲突优化器)。它们可能会也可能不会指出真正的问题。
  • 请注意,模型可能是 LP 不可行的,也可能只是整数不可行的。
  • 在某些情况下,可以只放松可疑的约束 block ,看看会发生什么。
  • 我经常使用的一种更具结构性的方法是制定弹性模型:允许违反约束,但要付出代价。这通常具有一定的经济意义:雇用临时工、租用额外产能、从第三方购买等。

关于python - 使用 Pulp 在 Python 中识别不可行性约束并放松/删除它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58481385/

相关文章:

Python NLP 英式英语 vs 美式英语

python - 使用代数约束和边界最小化最小二乘法

python - PuLP:目标函数:在循环中添加多个 lpSum

python-3.x - 如何使用 PuLP 求解只有约束而没有目标函数的线性规划?

python - 将数组转换为图像

Python nxt mindstorms 连接问题

c - 单纯形算法的数值稳定性

machine-learning - 坐标下降和次梯度的解释

python - 如何在pulp、python上添加GLPK解算器

python - 解析包含大量标题信息的混合文本文件