[Clp] Solving hundreds of separable MIP's in with CBC command line

John Forrest john.forrest at fastercoin.com
Mon Jul 4 07:45:51 EDT 2016


Paul,

There is an option (which was meant for debugging) in Clp which gives 
statistics on a problem - and with some obscure options can write out 
decomposed matrices as individual mps files.

However your model, as formulated, does not totally decompose into 
blocks.  The model you sent me has 6 blocks and we get -

3 master rows 1152 <= < 1155
**Useful 6 blocks (largest 192,456), 3 master rows (0 empty) out of 
1155, 3 master columns (0 empty, 0 integer) out of 2739
Block 0 has 192 rows and 456 columns (920 elements, 88 integers)
Block 1 has 192 rows and 456 columns (920 elements, 88 integers)
Block 2 has 192 rows and 456 columns (920 elements, 88 integers)
Block 3 has 192 rows and 456 columns (920 elements, 88 integers)
Block 4 has 192 rows and 456 columns (920 elements, 88 integers)
Block 5 has 192 rows and 456 columns (920 elements, 88 integers)

So there remain 3 variables and rows.  Each row has entries in all six 
blocks and so we can't go any further.

The 3 variables are just there to report on the objective values. If we 
move those row entries to objective and get rid of the variables and 
rows, then the problem does decompose and the 6 files are solved in 
seconds.  All values are correct, but we have lost the reporting variables.

So it looks as if you will have to do some coding.  It may be easiest to 
leave the model generator as is and write a driver - a day's work?

John Forrest
On 24/06/16 16:01, Paul Fenton wrote:
>
> Hi Everyone,
>
>
> This is my first post on the CBC mailing list. I have been using the 
> CBC command line tool for the past two years with great success 
> (v2.7.7 - AMPL build but using GMPL). Thanks to everyone who has 
> contributed to this open source project!
>
>
> Within my MIP model, there is a specific index, where for each 
> different value of this index, there is an entirely separable 
> subproblem, with no shared decision variables or constraints. It is 
> desirable for me to package them all up as one model to save on coding 
> overhead.
>
>
> The problem is, my data sets have grown to the point where my full 
> problem now has hundreds of sub-problems. It seems that as the number 
> of sub problems grows,  the time taking to solve is highly non-linear 
> and becoming hard to wait for.
>
>
> My fallback solution is to send each sub-problem to CBC in series, and 
> collect the outputs together, but I was hoping someone may be able to 
> suggest a simple command line option to help CBC "see" the problem 
> separability.
>
>
> I appreciate any help anyone can provide on this topic, and am 
> available to provide more detail or an example file if it would be 
> helpful.
>
>
> Thanks,
>
>
> Paul
>
>
>
> _______________________________________________
> 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/20160704/f5025a54/attachment.html>


More information about the Clp mailing list