-
Notifications
You must be signed in to change notification settings - Fork 87
Description
Hello!
I'm working with various models in the domain of Energy Markets. Some of my models are quite large (tens of millions of variables, millions of constraints) and I'm constantly looking for ways to improve the solving time. I would love to experiment with SCIP but I couldn't find a way to pass the entire problem to the solver with a single function call (well, 3-4 would be ok too but not millions ;)
I developed a generic solver interface for my kind of models, such that at the high level takes network objects (such as Supply/Transport/Demand nodes and Edges) and at the low level passes corresponding variables and constraints down to a solver in the form of ordered lower_bound/upper_bound/cost arrays for variables, and CSC matrix and bounds arrays for constraints.
So far, I managed to integrate my library with
- Gurobi via GRBloadmodel
- CBC via Cbc_loadProblem
- HiGHS via Highs_passLp/Highs_passMip
I'm sure a similar method exists in Mosek but I haven't had a chance to integrate with it just yet.
These methods allow me to quickly integrate different solvers through thin driver libraries as my generic library outputs almost exactly what these methods accept. But I can't find any similar function in the C API of SCIP and the need to pass every variable and constraint with a function call holds me back.
I saw this struct_matrix.h in the docs but it seems this structure can only be read from the model once it is all set up and never used to actually create/load a problem.
I hope to be wrong, or let this be a feature request otherwise =)
Thank you!