【发布时间】: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 返回单个值,而不是表示感兴趣变量与其他变量之间依赖关系的完整表达式。
谢谢
【问题讨论】:
-
欢迎来到 StackOverflow。您能否提供一个 MCVE 来重现您的问题 (stackoverflow.com/help/mcve)?