source: stable/2.9/README.md

Last change on this file was 2505, checked in by stefan, 11 hours ago

merge r2504 from trunk

File size: 10.8 KB
Line 
1# CBC Version 2.9.10 README
2
3Welcome to the README for the COIN Branch and Cut Solver (CBC). CBC is
4distributed under the Eclipse Public License and is freely redistributable.
5All source code and documentation is Copyright IBM and others. This README may
6be redistributed freely.
7
8## CURRENT BUILD STATUS
9
10[![Build Status](https://travis-ci.org/coin-or/Cbc.svg?branch=master)](https://travis-ci.org/coin-or/Cbc)
11
12[![Build status](https://ci.appveyor.com/api/projects/status/l2hwifsxwhswng8y/branch/master?svg=true)](https://ci.appveyor.com/project/tkralphs/cbc/branch/master)
13
14## DOWNLOAD
15
16[ ![Download](https://api.bintray.com/packages/coin-or/download/Cbc/images/download.svg) ](https://bintray.com/coin-or/download/Cbc/2.9)
17
18Binaries for most platforms are available for download from [Bintray](https://bintray.com/coin-or/download/Cbc)
19
20## CITE
21
22[![DOI](https://zenodo.org/badge/30382416.svg)](https://zenodo.org/badge/latestdoi/30382416)
23
24## DOCUMENTATION
25
26For a quick start guide, please see the INSTALL file in this distribution. A
27(somehwat outdated) user's manual is available here:
28
29http://www.coin-or.org/Cbc
30
31More up-to-date automatically generated documentation of the source code can
32be found here:
33
34http://www.coin-or.org/Doxygen/Cbc/
35
36Further information can be found here:
37
38http://projects.coin-or.org/Cbc
39
40## SUPPORT
41
42### List Serve
43
44CBC users should use the Cbc mailing list. To subscribe, go to
45http://list.coin-or.org/mailman/listinfo/cbc
46
47### Bug Reports
48
49Bug reports should be reported on the CBC development web site at
50
51https://projects.coin-or.org/Cbc/newticket
52
53## CHANGELOG
54
55 * Release 2.9.10
56   * Fix a numerical issue
57   * Fix some memory leaks
58   * Fix issue when root node is obviously infeasible
59   * Performance improvements for mini-B&B
60   * Fix name of bound in final message
61   * Fix names in preprocessed problem
62
63 * Release 2.9.9
64
65   * Fixes for SOS2
66   * Updates to mipstart
67   * Switching to new build system
68   * Updates for CI
69
70 * Release 2.9.8
71
72   * Update to most current releases of dependencies
73   * Small bug fixes
74   * Add support for automatic build and test with Travis and Appveyor
75
76 * Release 2.9.7
77
78   * Small bug fixes
79   * Option to switch to line buffered output
80
81 * Release 2.9.6
82
83   * Small bug fixes
84
85 * Release 2.9.5
86
87   * Small bug fixes
88
89 * Release 2.9.4
90
91   * Small fixes for stability
92   * Fixes for Doygen documentation generation
93
94 * Release 2.9.3
95
96   * Minor bug fixes
97
98 * Release 2.9.2
99
100   * Fix for proper installation with ```DESTDIR```
101
102 * Release 2.9.1
103
104   * Fix for dependency linking
105   * Minor bug fixes
106
107 * Release 2.9.0
108
109   * Introduced specialized branching methods for dealing with "big Ms".
110   * Introduced new methods for dealing with symmetry (requires installation of [nauty](http://pallini.di.uniroma1.it/))
111   * Introduction of conflict cuts (off by default, turn on with `-constraint conflict`)
112
113 * Release 2.8.13
114
115   * Improved message handling
116   * Miscellaneous bug fixes.
117
118 * Release 2.8.12
119
120   * Update for dependencies.
121
122 * Release 2.8.11
123
124   * Major overhaul of C interface
125   * Fixes to SOS
126   * Miscellaneous bug fixes
127
128 * Release 2.8.10
129
130   * More changes related to thread safety.
131   * Fix bug in build system with Visual Studio compiler.
132   * Miscellaneous bug fixes.
133
134 * Release 2.8.9
135
136   * Attempt to make Cbc thread safe.
137   * Add parallel examples.
138   * Add CbcSolverUsefulInfo.
139   * Bug fixes.
140
141 * Release 2.8.8
142
143   * Added example to show how to use Cbc with installed libraries in MSVC++
144   * Fixed inconsistency in addition of libCbcSolver to dependencies in
145     {{{cbc_addlibs.txt}}}.
146
147 * Release 2.8.7
148
149   * Changed so that Doxygen builds LaTex
150   * Fixes for build system
151
152 * Release 2.8.6
153
154   * Added option to explicitly link dependencies to comply with packaging
155     requirements on Fedora and Debian, as well as allow building of MinGW
156     DLLs.
157
158 * Release 2.8.5
159
160   * Minor fixes to build system
161
162 * Release 2.8.4
163
164   * Small bug fixes
165   * Upgrades to build system
166
167 * Release 2.8.3:
168
169   * Fix for handling SOS.
170
171 * Release 2.8.2:
172
173   * Fixed recognition of Glpk source in main configure.
174   * Minor bug fixes in CoinUtils, Clp, and Cbc.
175
176 * Release 2.8.1:
177
178   * Minor bug fixes
179
180 * Release 2.8.0:
181
182   * Introduced new secondaryStatus 8 to indicate that solving stopped due to
183     an iteration limit.
184   * Solution pool is now accessible via the command line and the CbcMain*
185     interface.
186   * New mipstart option to read an initial feasible solution from a file.
187     Only values for discrete variables need to be provided.
188
189   * Added Proximity Search heuristic by Fischetti and Monaci (off by
190     default): The simplest way to switch it on using stand-alone version is
191     ```-proximity on```.
192
193     Proximity Search is the new "No-Neighborhood Search" 0-1 MIP refinement
194     heuristic recently proposed by Fischetti and Monaci (2012). The idea is
195     to define a sub-MIP without additional constraints but with a modified
196     objective function intended to attract the search in the proximity of the
197     incumbent. The approach works well for 0-1 MIPs whose solution landscape
198     is not too irregular (meaning the there is reasonable probability of
199     finding an improved solution by flipping a small number of binary
200     variables), in particular when it is applied to the first heuristic
201     solutions found at the root node.
202   
203   * An implementation of Zero-Half-Cuts by Alberto Caprara is now available.
204     By default, these cuts are off. To use add to your command line
205     -zerohalfCuts root (or other options) or just -zero. So far, they may
206     help only on a small subset of problems and may need some tuning.
207
208     The implementation of these cuts is described in G. Andreello, A.
209     Caprara, and M. Fischetti "Embedding Cuts in a Branch and Cut Framework:
210     a Computational Study with {0,1/2}-Cuts" INFORMS Journal on Computing
211     19(2), 229-238, 2007 http://dx.doi.org/10.1287/ijoc.1050.0162
212
213   * An alternative implementation of a reduce and split cut generator by
214     Giacomo Nannicini is now available. By default, these cuts are off. To
215     use add to your command line -reduce2AndSplitCuts root (or other
216     options).
217
218     The implementation of these cuts is described in G. Cornuejols and G.
219     Nannicini "Practical strategies for generating rank-1 split cuts in
220     mixed-integer linear programming" Mathematical Programming Computation
221     3(4), 281-318, 2011 http://dx.doi.org/10.1007/s12532-011-0028-6
222
223   * An alternative robust implementation of a Gomory cut generator by Giacomo
224     Nannicini is now available. By default, these cuts are off. To use add to
225     your command line -GMI root (or other options).
226
227     The implementation of these cuts is described in G. Cornuejols, F.
228     Margot, and G. Nannicini "On the safety of Gomory cut generators"
229     http://faculty.sutd.edu.sg/~nannicini/index.php?page=publications
230
231   * To encourage the use of some of the more exotic/expensive cut generators
232     a parameter -slowcutpasses has been added. The idea is that the code does
233     these cuts just a few times - less than the more usual cuts. The default
234     is 10. The cut generators identified by "may be slow" at present are just
235     Lift and project and ReduceAndSplit (both versions).
236   
237   * Allow initialization of random seed by user. Pseudo-random numbers are
238     used in Cbc and Clp. In Clp they are used to break ties in degenerate
239     problems, while in Cbc heuristics such as the Feasibility Pump use them
240     to decide whether to round up or down. So if a different pseudo-random
241     seed is given to Clp then you may get a different continuous optimum and
242     so different cuts and heuristic solutions. This can be switched on by
243     setting randomSeed for Clp and/or randomCbcSeed for Cbc. The special
244     value of 0 tells code to use time of day for initial seed.
245   
246   * Building on this idea, Andrea Lodi, Matteo Fischetti, Michele Monaci,
247     Domenico Salvagnin, Yuji Shinano, and Andrea Tramontani suggest that this
248     idea be improved by running at the root node with multiple copies of
249     solver, each with its own different seed and then passing in the
250     solutions and cuts so that the main solver has a richer set of solutions
251     and possibly stronger cuts. This is switched on by setting
252     -multipleRootPasses. These can also be done in parallel.
253 
254   * Few changes to presolve for special variables and badly scaled problems
255     (in CoinUtils).
256
257   * New option -extraVariables <number> which switches on a trivial
258    re-formulation that introduces extra integer variables to group together
259    variables with same cost.
260
261   * For some problems, cut generators and general branching work better if
262     the problem would be infeasible if the cost is too high. If the new
263     option -constraintFromCutoff is set, the objective function is added as a
264     constraint which rhs is set to the current cutoff value (objective value
265     of best known solution).
266
267 * Release 2.7.8:
268
269   * Change message when LP simplex iteration limit is hit from "Exiting on
270     maximum nodes" to "Exiting on maximum number of iterations"
271   * Fix for using overlapping SOS.
272   * Fixes in buildsystem.
273
274 * Release 2.7.7:
275
276   * Fix to report interruption on user event if SIGINT is received by
277     CbcSolver. model->status() should now be 5 if this event happened. Added
278     method CbcModel::sayEventHappened() to make cbc stop due to an 'user
279     event'.
280
281   * Other minor fixes.
282
283 * Release 2.7.6:
284
285   * Fixes to build system.
286
287   * Other minor fixes.
288
289 * Release 2.7.5:
290
291   * Fixes to get AMPL interface working again.
292
293   * More fixes to MSVC++ files.
294
295 * Release 2.7.4:
296
297   * Minor bugfixes.
298
299 * Release 2.7.3:
300
301   * Minor bugfixes.
302
303   * Fixes to MSVC++ files.
304
305 * Release 2.7.2:
306
307   * Allow row/column names for GMPL models.
308
309   * Added CbcModel::haveMultiThreadSupport() to indicate whether Cbc library
310     has been compiled with multithread support.
311
312   * Added CbcModel::waitingForMiniBranchAndBound() to indicate whether
313     sub-MIP heuristic is currently running.
314
315   * Cbc shell should work with readline if configured with
316     ```--enable-gnu-packages```.
317
318   * Support for compressed input files (.gz, .bz2) is now enabled by default.
319
320   * Fix problems with relative gap tolerance > 100% and further bugs.
321
322   * Fixes for MSVC++ Version 9 files.
323
324   * Minor fixes in buildsystem; update to BuildTools 0.7.1.
325
326 * Release 2.7.1:
327
328   * Fixes to MSVC++ files
329
330 * Release 2.7.0:
331
332   * License has been changed to the EPL.
333
334   * Support for MSVC++ version 10 added.
335
336   * Support for BuildTools version 0.7 to incorporate recent enhancements,
337     including proper library versioning in Linux, prohibiting installation of
338     private headers, etc.
339
340   * Updated externals to new stable versions of dependent projects.
341
342   * Improvements to heuristics.
343
344   * New options for cut generation.
345
346   * Improved reporting of results.
347
348   * Improvements to documentation.
349
350   * Minor bug fixes.
351
352
Note: See TracBrowser for help on using the repository browser.