[Coin-lpsolver] CLP Presolve
Matthew Galati
magh at lehigh.edu
Mon Jul 28 22:56:35 EDT 2003
Hi CLP,
I have a series of LPs to solve which are really just feasibility
problems (null objective) - it is solved in the context of a column
generation routine - so what I need out of the LP solver are the
dualRays to create new columns. Attached, I have an example that seems
to work fine using dualSimplex. However, if I turn on presolve, it
crashes inside resolve when calling the presolve routine.
I have attached an example MPS file. The following is how I invoke. If I
comment out the setHintParam, it runs fine.
Two associated questions:
1.) Does/can presolve produce a proof of infeasibility (dual
unboundeness)? Or even if it gets through resolve, will getDualRays fail?
2.) Is there a way to return more than 1 dual ray at a time? It is
possible that many rays exist that prove dual unboundness. Does CLP
provide a way to grab several of these? Currently 'getDualRays' is
hard-coded to return just 1.
Thanks,
Matt G
int main(int argc, char* argv[]){
OsiClpSolverInterface* si = new OsiClpSolverInterface();
si->readMps(argv[1]);
si->setHintParam(OsiDoPresolveInResolve, true, OsiHintDo);
si->resolve();
vector<double *> rays = si->getDualRays(1);
cout << "Dual Ray: " << endl;
for(int i = 0; i < si->getNumRows(); i++){
if(fabs(rays[0][i]) > 0.00001)
cout << i << " : " << rays[0][i] << endl;
}
cout << "isProvenOptimal = " << si->isProvenOptimal() << endl;
cout << "isProvenPrimalInfeasible = " << si->isProvenPrimalInfeasible()
<< endl;
delete [] rays[0];
}
--
Matthew Galati
ISE Lehigh University
IBM Service Parts Solutions
610.758.4042 (Office)
610.882.0779 (Home)
magh at lehigh.edu, magal11 at us.ibm.com
http://sagan.ie.lehigh.edu/mgalati/
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: decomp.mps
URL: <http://list.coin-or.org/pipermail/clp/attachments/20030728/de5523dd/attachment.ksh>
More information about the Clp
mailing list