【发布时间】:2018-06-01 13:22:09
【问题描述】:
我不知道我的问题是否可行。我正在使用 ortools 来解决优化问题,并且我知道在部分条件中,参数应该定义为 double 类型,如下所示:
constraints[i] = solver.Constraint(0.0 , 10,0)
但我的问题是,我不想在创造条件时使用这种类型的论据。例如我想要一个列表。
所以我在我的代码中写了这个:
constraints[i] = solver.Constraint([1,2,3,...])
我得到了这个错误:
return _pywraplp.Solver_Constraint(self, *args)
NotImplementedError: Wrong number or type of arguments for overloaded
function 'Solver_Constraint'.
Possible C/C++ prototypes are:
operations_research::MPSolver::MakeRowConstraint(double,double)
operations_research::MPSolver::MakeRowConstraint()
operations_research::MPSolver::MakeRowConstraint(double,double,std::string
const &)
operations_research::MPSolver::MakeRowConstraint(std::string const &)
有没有办法改变条件参数的类型?
【问题讨论】:
-
希望您能在此处澄清您的更高级别目标。我知道如果你写
constraint = solver.Constraint(0.0 , 10.0),它的意思是,“我要创建一个名为constraint的表达式,表达式的值应该限制在[0, 10] 的范围内”。如果你写constraint = solver.Constraint([1,2,3,...]),你想表达什么意思? -
@CrepeGoat,正如你所说的
constraint = solver.Constraint(0.0 , 10.0)意味着你有一个名为constraint的表达式,表达式的值应该是0到10之间的界限。但我不想限制表达式的值绑定到整数,实际上因为我的表达式是一些列表的总和,所以我想将它限制为一个列表。而且也不是一个界限,完全是一个列表。
标签: python-3.x or-tools