【问题标题】:Retreive optimization variables values with expression使用表达式检索优化变量值
【发布时间】:2019-03-26 13:58:26
【问题描述】:

我正在使用 PySCIPOpt 解决 ILP 问题。我使用的变量类型是二进制或整数。

使用model.getVal(VariableName) 检索变量时,某些变量出现此错误:

TypeError: Argument 'var' has incorrect type (expected pyscipopt.scip.Variable, got pyscipopt.scip.Expr)

这是因为对于这些变量,PySCIPOpt 返回一个表达式而不是一个值。表达式如下:

{1: Expr({Term(): 0.0, Term(W(14,10)): 0.0,
 Term(W(14,9)): 0.0, Term(W(1,2)): 0.0,
 Term(W(13,10)): 0.0, Term(W(4,3)): 0.0,
 Term(W(13,9)): 0.0, Term(W(5,3)): 0.0,
 Term(W(12,10)): 0.0, Term(W(12,9)): 0.0,
 Term(W(2,2)): 0.0, Term(W(9,7)): 0.0,
 Term(W(11,10)): 0.0, Term(W(2,1)): 1.0}

是否可以强制 PySCIPOpt 返回一个值?

我尝试将变量类型从整数更改为连续,但这并没有改变返回表达式而不是值的事实。

我希望 PySCIPOpt 返回单个值,而不是表示感兴趣变量与其他变量之间依赖关系的完整表达式。

谢谢

【问题讨论】:

标签: python scip


【解决方案1】:

问题在于,对于这个特定的约束,我忘记添加 model.addCons()。让我感到困惑的是,该模型仍然有效并且可以通过 SCIP 解决。

【讨论】:

  • 这并不能回答您的问题。如果没有 MCVE,我们将无法为您提供帮助。
  • 感谢您的回复 - 我刚刚了解了“最小完整可验证示例”的概念,并将在我的下一篇文章中包含一个
猜你喜欢
  • 1970-01-01
  • 2017-04-07
  • 1970-01-01
  • 2011-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多