在 SCIP 中一次创建多个 variables/constraints
Creating several variables/constraints in one shot in SCIP
我有一个 C++ 应用程序可以模糊地使用(通过多态性和虚拟方法)CPLEX
、GUROBI
或 COIN
来解决 LP,现在我正在添加支持SCIP
.
在前三个求解器中,我可以使用以下调用一次添加多个 constraints/variables:
- 约束条件
CPLEX = CPXXaddrows
GUROBI = GRBXaddconstrs
COIN = OsiSolverInterface::addRows
- 变量
CPLEX = CPXXaddcols
GUROBI = GRBXaddvars
COIN = OsiSolverInterface::addCols
但是对于SCIP
,我只是一一想出如何去做:
- 约束条件
SCIPcreateConsBasicLinear -> SCIPaddCoefLinear-> SCIPaddCons -> SCIPreleaseCons
- 变量
SCIPcreateVarBasic -> SCIPaddVar -> SCIPreleaseVar
我的问题是:在 SCIP
中有没有一种方法可以在一条指令中创建多个 variables/constraints?我问是因为,至少对于其他求解器来说,这样做比一个一个地做要快得多。
非常感谢。
在 SCIP 中,您必须一一创建变量和约束。
我有一个 C++ 应用程序可以模糊地使用(通过多态性和虚拟方法)CPLEX
、GUROBI
或 COIN
来解决 LP,现在我正在添加支持SCIP
.
在前三个求解器中,我可以使用以下调用一次添加多个 constraints/variables:
- 约束条件
CPLEX = CPXXaddrows
GUROBI = GRBXaddconstrs
COIN = OsiSolverInterface::addRows
- 变量
CPLEX = CPXXaddcols
GUROBI = GRBXaddvars
COIN = OsiSolverInterface::addCols
但是对于SCIP
,我只是一一想出如何去做:
- 约束条件
SCIPcreateConsBasicLinear -> SCIPaddCoefLinear-> SCIPaddCons -> SCIPreleaseCons
- 变量
SCIPcreateVarBasic -> SCIPaddVar -> SCIPreleaseVar
我的问题是:在 SCIP
中有没有一种方法可以在一条指令中创建多个 variables/constraints?我问是因为,至少对于其他求解器来说,这样做比一个一个地做要快得多。
非常感谢。
在 SCIP 中,您必须一一创建变量和约束。