[Coin-discuss] OsiClp branchAndBound changes state of model

John Forrest john.forrest at fastercoin.com
Thu Feb 12 03:48:32 EST 2015


Matt,

Initially - at any rate - I would use something like 
Cbc/examples/driver4.cpp.  This acts like the stand-alone Cbc but with 
user modifications (for initial testing you may wish to use the 
stand-alone Cbc itself).  This allows commands like knapsack on,off,root 
etc.  It also gives timings.

addCutGenerator in CbcModel so e.g.

     CglKnapsackCover knapsackCover;
       knapsackCover.setTiming(true);
       cbcModel.addCutGenerator(&knapsackCover, .....

John


On 12/02/15 02:00, Matthew Galati wrote:
> A related question -- how do I shut off one cut or another (which I 
> would base off the cut timings I see)?
>
> I don't see any options about cuts in CbcModel.hpp.
>
> On Wed, Feb 11, 2015 at 8:28 PM, Matthew Galati 
> <matthew.galati at gmail.com <mailto:matthew.galati at gmail.com>> wrote:
>
>     I changed to CbcModel. How do I get the cut timings?
>
>     On Wed, Feb 11, 2015 at 12:53 PM, Matthew Galati
>     <matthew.galati at gmail.com <mailto:matthew.galati at gmail.com>> wrote:
>
>         Thanks John.
>
>         I'll switch to CbcModel and will let you know how it goes.
>
>         On Wed, Feb 11, 2015 at 10:33 AM, John Forrest
>         <john.forrest at fastercoin.com
>         <mailto:john.forrest at fastercoin.com>> wrote:
>
>             Matt,
>
>             If line 1 is actually
>
>             OsiClpSolverInterface o;
>
>             you are in trouble anyway -
>             OsiClpSolverInterface:branchAndBound() was only written to
>             satisfy requirements.  OsiCbcSolverInterface is also not
>             so good.
>
>             So many things will have changed in a CbcModel after
>             search - cutoffs, number of nodes etc.  I would set up
>             whatever cuts, heuristics and initial model in CbcModel
>             baseModel and then
>
>             baseModel.solver()-.addRow();
>             CbcModel workingModel = baseModel;
>                 workingModel.branchAndBound();
>
>             On another of your questions - for flexibility I would
>             pass in a Derived message handler (see for example
>             Clp/examples/driver2.cpp) and then do exactly what you
>             want in "print".
>
>             You can get timings for cut generators, but for strong
>             branching you are going to have to use profiling e.g. gprof.
>
>             John Forrest
>
>
>             On 10/02/15 22:23, Matthew Galati wrote:
>>             The following workflow is not doing what I expected.
>>
>>             1 OsiClp o;
>>             2 o.loadProblem(...)
>>             3 o.branchAndBound();
>>             4 o.addRow();
>>             5 o.branchAndBound();
>>
>>             After 3, the model seems to be changed - for example, a
>>             bunch of columns are fixed to 0 and some are fixed to 1.
>>             Presumably presolve or the reduced model in the tree at
>>             the end of solve.
>>
>>             So, when I add my row, I am no longer working with the
>>             original model.
>>
>>             Bug? Expected behavior?
>>
>>             How does one go about doing what I want - which is:
>>             solve, add a row, solve again.
>>
>>
>>
>>             _______________________________________________
>>             Coin-discuss mailing list
>>             Coin-discuss at list.coin-or.org  <mailto:Coin-discuss at list.coin-or.org>
>>             http://list.coin-or.org/mailman/listinfo/coin-discuss
>
>
>             _______________________________________________
>             Coin-discuss mailing list
>             Coin-discuss at list.coin-or.org
>             <mailto:Coin-discuss at list.coin-or.org>
>             http://list.coin-or.org/mailman/listinfo/coin-discuss
>
>
>
>
>
>
> _______________________________________________
> Coin-discuss mailing list
> Coin-discuss at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/coin-discuss

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/coin-discuss/attachments/20150212/bf1f20e3/attachment.html>


More information about the Coin-discuss mailing list