#  source: trunk/README.md @ 2493   


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