[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