[Clp] command line warm start

Meketon, Marc Marc.Meketon at oliverwyman.com
Mon Jun 23 06:07:12 EDT 2014


John, thank you very much.

For my set of problems, for the cold start the dual is much faster (40 minutes versus hours on the tougher problems).  If I don't use the command-line interface, what would be your suggestions?  Of course, it could be that the primal would work well for the warm start, but it would be nice to know the alternative, non-command line strategy in case I really need to use the dual algorithm for the warm start.

From: clp-bounces at list.coin-or.org [mailto:clp-bounces at list.coin-or.org] On Behalf Of John Forrest
Sent: Monday, June 23, 2014 3:34 AM
To: clp at list.coin-or.org
Subject: Re: [Clp] command line warm start

Marc,

A few questions:

(1)    Does anyone have experience performing a warm start using the command-line version of CLP?  If so, do you have any advice that you could share?

It should be fine.  If you do presolve on the problem then Clp tries to adjust the input basis, but does not get it right every time.  If presolve does very little you may wish to switch that off


(2)    Does anyone have specific advice on the "BasisOut/BasisIn" strategy?  For example, while the non-zero patterns will be the same, I cannot mathematically guarantee that the basis from one LP in the set will form a valid basis in another (the input basis could imply a negative variable, although that is unlikely).  Does CLP reject the basis in that case and start cold, or is it more clever?  Any other advice on this strategy will also be most welcomed.

If the basis is non-singular then Clp accepts it even if some variables are infeasible.  If the basis is singular then Clp throws some variables out of basis - it may throw out more than absolutely necessary - but not many.  The standard format of the basis on file includes primal values for variables.  If you specify the primal algorithm and if those values determine a feasible (or nearly feasible) solution then when Clp throws out a variable it keeps its input value and sets it to "superbasic".  It then goes through matrix once doing fast iterations to move these variables to a bound or into basis.  This means that nearly all the useful information is used.

If the dual algorithm is much faster for your problem (with a basis) then there are things you can do - but not with command line interface.


John Forrest

________________________________
This e-mail and any attachments may be confidential or legally privileged. If you received this message in error or are not the intended recipient, you should destroy the e-mail message and any attachments or copies, and you are prohibited from retaining, distributing, disclosing or using any information contained herein. Please inform us of the erroneous delivery by return e-mail. Thank you for your cooperation.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/clp/attachments/20140623/700adeec/attachment.html>


More information about the Clp mailing list