[Coin-discuss] Quick checking, if the problem is primal feasible
Daniel Stoinski
Daniel.Stoinski at nagler-company.com
Mon Jul 10 05:13:24 EDT 2006
Hi,
we only want to check, if the problem is primal feasible, without solving
the problem. And we want to be really quick, becuase the operation will be
performed for quite big problems in a loop.
At the moment we're using the following non performant code:
short isPrimalInfeasible(OsiClpSolverInterface &aSolver)
{
OsiSolverInterface *solver2;
OsiPresolve pinfo;
bool isPrimalInfeasible;
solver2 = pinfo.presolvedModel(aSolver, 0.0);
if (solver2 != NULL)
{
delete solver2;
aSolver.initialSolve();
return aSolver.isProvenPrimalInfeasible();
}
return 1;
}
If the problem is "really" infeasible, both primal and dual, we get
solver2 = NULL very quickly and this is fine. For "partially" feasible
problems we call initialSolve(), which takes a lot of time until it
states, that the problem is only dual feasible.
Is there any possibility to get rid of this initialSolve()?
Probably we could become a little bid faster, if we use ClpPresolve and
ClpSimplex instead of the Osi interface.
But my impression is, that the most time gets lost for the unnecessary
solving the problem, while only the information about the
primal feasibility is needed.
Really best thanks for any hint. Best regards
Daniel Stoinski
More information about the Coin-discuss
mailing list