[Clp] Correct setup for individual pivots though OSI interface

Rune Møller Jensen rmj at itu.dk
Thu Jan 21 04:23:25 EST 2010


Thanks for the reply. 

 

Yes, but the fact is actually that we do a less aggressive presolve the second time with:

setDoDual(false);            

setDoSingleton(false);       

setDoDoubleton(false);       

setDoTripleton(false);       

setDoImpliedFree(false);      

setDoDupcol(false);          

setDoSingletonColumn(false);

 

This has to do with computing the non-linear objective efficiently for variables in the presolved model. We would like to keep the most aggressive presolve for initially solving the LP. My understanding is that after model.initalSolve(), model has a feasible basis ready for a warm start. Doing presolve on it maintains the optimal basis, so setting up the tableau for pivoting should be an operation with low complexity. Thus, I would expect running presolveModel->primal() or presolveModel->dual() basically just would confirm optimality and return fast. But they don’t. They behave as solving the problem from scratch with primal and dual infeasibilities. Why does this happen? Is there any way for me to setup the tableau of presolvedModel fast for pivoting?

 

Thanks a lot for any help on this!

 

Best,

Rune Møller Jensen

 

From: John J Forrest [mailto:jjforre at us.ibm.com] 
Sent: Wednesday, January 20, 2010 7:11 PM
To: Rune Møller Jensen
Subject: Re: [Clp] Correct setup for individual pivots though OSI interface

 

model.initialSolve() is probably doing presolve, solving, postsolving and then possibly doing primal to clean up any glitches.

why not omit model.initialSolve() and try presolvedModel->dual() instead. That could easily be faster as you are just doing one presolve not two and one solve not two

John Forrest

Inactive hide details for Rune Møller Jensen ---01/20/2010 10:58:02 AM---Hi,Rune Møller Jensen ---01/20/2010 10:58:02 AM---Hi,



From:


Rune Møller Jensen <rmj at itu.dk>



To:


<Clp at list.coin-or.org>



Date:


01/20/2010 10:58 AM



Subject:


[Clp] Correct setup for individual pivots though OSI interface



Sent by:


clp-bounces at list.coin-or.org

  _____  




Hi,

We first solve a Clp model to optimality

ClpSimplex model
… code loading problem
model.initalSolve()

We then want to make a couple of pivots to reduce a slightly changed non-linear objective (which we compute on the side)

We first presolve

ClpPresolve presolveInfo; 
ClpSimplex * presolvedModel = presolveInfo.presolvedModel(model); 

Then setup an Osi interface to do individual pivots

 OsiClpSolverInterface presolveModelOsi(presolvedModel);          
 presolveModelOsi.enableSimplexInterface(1);                        

And finally do individual pivots

while (running)
   …
  presolveModelOsi.pivot(colIn,colOut,outStatus);
  …

Unfortunately pivots only seems to be carried out correctly if we resolve the presolved model (e.g.,  by executing presolveModel.primal() before making the Osi interface). The problem seems to be that not all necessary status variables of the tableau are instantiated in presolveModel to do individual pivots, but is there a less time consuming way to get the tableau ready for individual pivots? 

Any help on this is greatly appreciated.     

Best,
Rune M. Jensen


_______________________________________________
Clp mailing list
Clp at list.coin-or.org
http://list.coin-or.org/mailman/listinfo/clp



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/clp/attachments/20100121/c1c547f8/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.gif
Type: image/gif
Size: 105 bytes
Desc: not available
URL: <http://list.coin-or.org/pipermail/clp/attachments/20100121/c1c547f8/attachment.gif>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image003.png
Type: image/png
Size: 168 bytes
Desc: not available
URL: <http://list.coin-or.org/pipermail/clp/attachments/20100121/c1c547f8/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image004.png
Type: image/png
Size: 166 bytes
Desc: not available
URL: <http://list.coin-or.org/pipermail/clp/attachments/20100121/c1c547f8/attachment-0001.png>


More information about the Clp mailing list