Opened 16 years ago
Closed 16 years ago
#204 closed enhancement (done)
CBC MIP solver interface
Reported by: | Tapolcai János | Owned by: | Balazs Dezso |
---|---|---|---|
Priority: | major | Milestone: | LEMON 1.1 release |
Component: | core | Version: | hg main |
Keywords: | MIP solver CBC | Cc: | Akos Ladanyi |
Revision id: |
Description
See the attached files with the lp/mip codes for CBC solver. CBC (https://projects.coin-or.org/Cbc) was the fatest opensource solver in H. Mittelmann expirements, see also http://plato.asu.edu/ftp/milpf.html.
CBC can use CLP for LP solving.
PS. sorry, the attached code is far from a fully finished/nicely polished code.
Attachments (4)
Change History (18)
Changed 16 years ago by
Attachment: | mip_cbc.zip added |
---|
comment:1 Changed 16 years ago by
Owner: | changed from Alpar Juttner to Balazs Dezso |
---|
comment:2 Changed 16 years ago by
Status: | new → assigned |
---|
comment:4 Changed 16 years ago by
Replying to deba:
The [8c2913a5830a] is the patch for CBC support.
Looks very good! My only comment so far is that I'm not very happy with the white space changes in general.
comment:5 follow-up: 6 Changed 16 years ago by
Cc: | Akos Ladanyi added |
---|
Replying to deba:
The [8c2913a5830a] is the patch for CBC support.
Some more comments:
- The CBC source tarball also contains the source CLP, therefore - I guess - CLP is always installed along with CBP. But if I give the path of CBC with
--enable-cbc=...
, LEMON will find only CBC, not CLP. For CLP I must give the same path for--enable-clp=...
, too. On the other hand, giving here a different version of CLP will lead to serious problems I guess. Solutions:- if
--enable-cbc
is given, then this would also look for CLP. - (probably even better) instead of
--enable-clp
and--enable-cbc
there would be a--enable-coin
option and both CLP and CBC would use this.
- if
mip_test
writes a lot to thestdout
. It shouldn't. The best is to write nothing if it is possible.- The first line of the output is especially worrying, being it is
Crashing...
- The first line of the output is especially worrying, being it is
comment:6 follow-ups: 7 8 Changed 16 years ago by
Replying to alpar:
Replying to deba:
The [8c2913a5830a] is the patch for CBC support.
Some more comments:
- The CBC source tarball also contains the source CLP, therefore - I guess - CLP is always installed along with CBP. But if I give the path of CBC with
--enable-cbc=...
, LEMON will find only CBC, not CLP. For CLP I must give the same path for--enable-clp=...
, too. On the other hand, giving here a different version of CLP will lead to serious problems I guess. Solutions:
- if
--enable-cbc
is given, then this would also look for CLP.- (probably even better) instead of
--enable-clp
and--enable-cbc
there would be a--enable-coin
option and both CLP and CBC would use this.
I do not support this idea, it assumes that if you have coin, then you have also clp and cbc, but it not sure. For example, the debian contains already the clp as standard package, but cbc is not contained yet. In addition, the coin contains more lp and mip interfaces.
mip_test
writes a lot to thestdout
. It shouldn't. The best is to write nothing if it is possible.
- The first line of the output is especially worrying, being it is
Crashing...
See ticket #255.
comment:7 Changed 16 years ago by
I do not support this idea, it assumes that if you have coin, then you have also clp and cbc, but it not sure. For example, the debian contains already the clp as standard package, but cbc is not contained yet.
It is not a problem. If you use --enable-coin
and you don't have CBC, the configure script will not find it therefore it won't be switched on.
In addition, the coin contains more lp and mip interfaces.
Good. Once we will have interfaces to them, --enable-coin
will switch them on, too (assuming they are available). What's wrong with it?
comment:8 Changed 16 years ago by
Replying to deba:
I do not support this idea, it assumes that if you have coin, then you have also clp and cbc, but it not sure. For example, the debian contains already the clp as standard package, but cbc is not contained yet. In addition, the coin contains more lp and mip interfaces.
We checked the COIN-OR build system with Akos and we found that it is virtually impossible to properly link LEMON to more than one COIN-OR packages with different prefixes.
Thus --with-coin=...
has no drawback compared to the current or any other approaches on the horizon.
Actually, the situation is even worse: it is also dangerous to try to install two COIN-OR packages to the same prefix and use it in that way. As far as I see, the best thing we can do is to create a COIN-OR meta project including each supported COIN-OR project as a subpproject and suggest installing and using this.
Another approach would be to adopt the COIN-OR build environment, but it would be a big step backward in many-many other aspects.
comment:9 follow-up: 10 Changed 16 years ago by
comment:10 Changed 16 years ago by
comment:12 follow-up: 13 Changed 16 years ago by
As of [3314f58e7b25] and [b53a9068e3e4], all the changes when to the main (with some modification in the commit logs and in the INSTALL file).
The Cbc solver still put a lot of rubbish to the stdout in mip_test
. It would be nice to switch it off if possible.
comment:13 follow-up: 14 Changed 16 years ago by
Replying to alpar:
As of [3314f58e7b25] and [b53a9068e3e4], all the changes when to the main (with some modification in the commit logs and in the INSTALL file).
The Cbc solver still put a lot of rubbish to the stdout in
mip_test
. It would be nice to switch it off if possible.
See ticket #9.
comment:14 Changed 16 years ago by
Resolution: | → done |
---|---|
Status: | assigned → closed |
Replying to jtapolcai:
Don't worry. May I ask you to create a patch from this changes? You can find some hints here on how to do that.