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

Paul Fenton PaulFenton at Dal.Ca
Mon Jul 4 09:08:25 EDT 2016


Hi John,


Thank you so much for this reply!

I am already post-processing the .sol file for reporting.. so I don't need these variables. It never occurred to me that these would be the problem!

I have removed the variables. Is the next step to invoke the obscure options, and then call CBC on each of the sub-problem MPS's that are output?


Thanks again for all of your help.


-Paul

________________________________
From: Clp <clp-bounces at coin-or.org> on behalf of John Forrest <john.forrest at fastercoin.com>
Sent: July 4, 2016 8:45:51 AM
To: clp at list.coin-or.org
Subject: Re: [Clp] Solving hundreds of separable MIP's in with CBC command line

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<mailto: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/baddf843/attachment.html>


More information about the Clp mailing list