variables - 找出Pyomo模型不可行的原因

标签 variables constraints pyomo feasibility

我得到了一个包含大量变量和约束的 pyomo 具体模型。

不知何故,我的模型中的一个变量违反了一个约束,这使得我的模型不可行:

WARNING: Loading a SolverResults object with a warning status into model=xxxx;
    message from solver=Model was proven to be infeasible.

有没有办法询问求解器不可行的原因?

例如,假设我有一个名为 x 的变量,如果我定义了以下 2 个约束,模型将是 ofc。不可行。
const1:
    x >= 10

const2:
    x <= 5

我想要实现的是指出导致这种不可行性的约束和变量,以便我可以修复它。否则,对于我的大模型,很难知道是什么导致了这种不可行性。
IN: write_some_comment
OUT: variable "x" cannot fulfill "const1" and "const2" at the same time.

最佳答案

许多求解器(包括IPOPT)会在求解器终止时将变量的值交还给您,即使发现问题不可行。那时,您确实有一些选择。

pyomo.util.infeasible 中有贡献的代码这可能会帮助你。 https://github.com/Pyomo/pyomo/blob/master/pyomo/util/infeasible.py

用法:

from pyomo.util.infeasible import log_infeasible_constraints
...
SolverFactory('your_solver').solve(model)
...
log_infeasible_constraints(model)

关于variables - 找出Pyomo模型不可行的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51044262/

相关文章:

c - for循环内外变量初始化的区别

c# - 从文本文件命名变量

javascript - 获取表单的值并使用它们在 Javascript 中进行比较

ios - 为不同屏幕尺寸设置约束的问题

xcode - 我如何让 Xcode 8.0 准确地告诉我哪个约束被打破(或如何调试 xcode <private>?)

python - pyomo 中的无效索引/值错误,有什么提示吗?

pyomo - 使用 PYOMO 和 BONMIN 求解 MINLP

cplex - 如何用 cplex 热启动 pyomo?

javascript - 如何将变量从函数传递到 react 中的渲染函数

haskell - 为什么我不能在类型族声明中使用 Constraint 类型?