[Cbc] CoinStructuredModel crash

David Einstein deinst at gmail.com
Thu Mar 13 13:14:20 EDT 2014


Thanks.  The hints in ClpSolver.hpp make sense now.
Despite its name, idiot seems to be doing a pretty good job, at least on
the small number of examples I have tried.


On Thu, Mar 13, 2014 at 5:53 AM, John Forrest
<john.forrest at fastercoin.com>wrote:

>  David,
>
>
> On 13/03/14 03:59, David Einstein wrote:
>
> Thanks.  I was doing the moral equivalent of button mashing, having only
> the faintest memory of how Dantzig-Wolfe worked, and no idea of its
> applicability. (also apologies for posting this to Cbc instead of Clp)
>
>  Running
>
>  clp KCMO.mps.bz2 -idiot 500 -primals
>
>  takes 44 minutes on my machine, about three times as fast as the default
> (dual) computation.
>
>  If I want to do this with an instance of ClpSimplex, the cpp dump says
>
>    clpModel->setPerturbation(50);
>
>      You may need to set perturbation on
>
>
> The options and extra info are mysterious.
>
>     ClpSolve.hpp gives hints - so setting options[1] says use idiot with
> the associated extraInfo of 500
>
>
>  Would the following accomplish about the same thing?
>
>    ClpSolve clpSolve;
>   clpSolve.setPresolveType(ClpSolve::presolveOn, 5);
>   clpSolve.setSolveType(ClpSolve::usePrimalorSprint);
>   clpSolve.setSpecialOption(1,2,500);
>   clpModel->initialSolve(clpSolve);
>
>   Should be OK
>
>  That I can almost understand. I think.
>
>  Why is starting out with the barrier method entitled 'idiot'?  I assume
> that 'idiot 500' does 500 interior point steps before passing to the primal
> simplex.
>
>  Thank you again.
>
>
>  "idiot" is not the barrier method but a cheap imitation - so bad that I
> called it the Idiot algorithm and gave a bad talk on it years ago - any bad
> heuristic followed by an algorithm is an algorithm.  The simplified basic
> idea is that you minimize mu*objective + sum of squared primal
> infeasibilities.  This is done on a very local basis i.e. column by column
> where you just solve a quadratic to get new value.  Periodically you reduce
> mu.  For many problems you finish with a small sum of infeasibilities and
> an objective a bit higher than the optimal one.  You then finish with
> primal.
>
> John
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cbc/attachments/20140313/deb038de/attachment.html>


More information about the Cbc mailing list