我正在使用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返回单个值,而不是表示目标变量与其他变量之间依存关系的完整表达式。
谢谢
答案 0 :(得分:-1)
问题在于,对于此特定约束,我忘了添加model.addCons()。令我感到困惑的是,该模型仍然可以被SCIP解决。