[Cbc] CoinStructuredModel crash

David Einstein deinst at gmail.com
Wed Mar 12 23:59:41 EDT 2014


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);

  ClpSolve::SolveType method = ClpSolve::usePrimalorSprint;

  ClpSolve::PresolveType presolveType = ClpSolve::presolveOn;

  int numberPasses = 5;

  int options[] = {0,2,0,1,0,0};

  int extraInfo[] = {-1,500,-1,-1,-1,-1};

  int independentOptions[] = {0,0,3};

  ClpSolve clpSolve(method,presolveType,numberPasses,

                    options,extraInfo,independentOptions);

  clpModel->initialSolve(clpSolve);
The options and extra info are mysterious.

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);

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.


On Wed, Mar 12, 2014 at 5:27 PM, John Forrest
<john.forrest at fastercoin.com>wrote:

>  David,
>
> With my trunk, I get further.  I will use problem to try and make DW more
> stable.
>
> However there are probably too many rows in master for DW to be fastest
> algorithm.
>
> Straightforward Dual and Primal are both slow.
>
> Using barrier took 28 minutes elapsed (4-way) - could be faster if I had
> used a different Cholesky.
>
> If you can bring yourself to type it in- try
>
> clp KCMO.mps.bz2 -idiot 500 -primals
>
> Took 20 minutes.
>
> John
>
>
>
> On 11/03/14 23:35, David Einstein wrote:
>
>  I have a somewhat large model
>
>  Coin0002I Problem BLANK has 157974 rows, 667812 columns and 10181088
> elements
>
>  available for the nonce at http://www.sdcorp.net/deinst/KCMO.mps.bz2
>
>  In an effort to get it solving faster with little to no work on my part,
> I tried the Dantzig-Wolfe decomposition using CoinStructuredModel (I fed
> the mps to the decomp2 example.)
>
>  Kablooey.
>
>
>  #0  0x00000000006501d7 in CoinPackedMatrix::timesMinor (this=0x4155200,
> x=0x0,
>     y=0x3d2dfa0) at
> ../../../coin-Cbc/CoinUtils/src/CoinPackedMatrix.cpp:1859
> #1  0x000000000064cf27 in CoinPackedMatrix::transposeTimes
> (this=0x4155200,
>     x=0x0, y=0x3d2dfa0)
>     at ../../../coin-Cbc/CoinUtils/src/CoinPackedMatrix.cpp:1156
> #2  0x00000000004be126 in ClpSimplex::solveDW (this=0x7fff89a70fc0, model=
>     0x7fff89a70f20) at ../../../coin-Cbc/Clp/src/ClpSolve.cpp:4747
> #3  0x00000000004ba07c in ClpSimplex::solve (this=0x7fff89a70fc0,
>     model=0x7fff89a70f20) at ../../../coin-Cbc/Clp/src/ClpSolve.cpp:4034
> #4  0x000000000040331c in main (argc=2, argv=0x7fff89a71768)
>     at ../../../coin-Cbc/Clp/examples/decomp2.cpp:33
>
>
>  (If this code is not ready, ignore me).
>
>  Thanks,
> Deinst
>
>
> _______________________________________________
> Cbc mailing listCbc at list.coin-or.orghttp://list.coin-or.org/mailman/listinfo/cbc
>
>
>
> _______________________________________________
> Cbc mailing list
> Cbc at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/cbc
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cbc/attachments/20140312/ee1223ea/attachment.html>


More information about the Cbc mailing list