The Clp interior point solver uses the primal form of the problem to repeatedly solve a linear system.
Depending on the number of rows and columns, as well as the sparsity and structure of the system, it would be better to solve the dual problem instead. ClpMain?.cpp contains a heuristic check and dualizes the model to exploit this already, to save memory and to speed up the solution.
It would be really nice to have this kind of check/dualization automatically put into ClpInterior?, and either automatically enabled or by means of an option in ClpModel? and exported to OsiClpSolverInterface?.
It makes a big difference for the problem class I consider right now. Without dualization the memory usage is too big and I cannot solve the problem. With dualization it only uses 25 percent of the RAM on my computer.
Moved from TRAC as part of COIN fORgery: https://projects.coin-or.org/Clp/ticket/19
The Clp interior point solver uses the primal form of the problem to repeatedly solve a linear system.
Depending on the number of rows and columns, as well as the sparsity and structure of the system, it would be better to solve the dual problem instead. ClpMain?.cpp contains a heuristic check and dualizes the model to exploit this already, to save memory and to speed up the solution.
It would be really nice to have this kind of check/dualization automatically put into ClpInterior?, and either automatically enabled or by means of an option in ClpModel? and exported to OsiClpSolverInterface?.
It makes a big difference for the problem class I consider right now. Without dualization the memory usage is too big and I cannot solve the problem. With dualization it only uses 25 percent of the RAM on my computer.