source: trunk/README.md

Last change on this file was 3028, checked in by tkr, 3 months ago

Small change in README

File size: 24.0 KB
Line 
1# CBC
2
3Cbc (*C*oin-or *b*ranch and *c*ut) is an open-source mixed integer linear programming solver written in C++.
4It can be used as a callable library or using a stand-alone executable.
5It can be called through
6AIMMS (through the [AIMMSlinks](https://github.com/coin-or/AIMMSlinks) project),
7AMPL (natively),
8[CMPL](https://github.com/coin-or/Cmpl),
9GAMS (through the [GAMSlinks](https://github.com/coin-or/GAMSlinks) project),
10[JuMP](https://github.com/JuliaOpt/JuMP.jl),
11Mathematica,
12[MiniZinc](http://www.minizinc.org/),
13MPL (through the [CoinMP](https://github.com/coin-or/CoinMP) project),
14[PuLP](https://github.com/coin-or/PuLP),
15Python (e.g., [cbcpy](https://pypi.org/project/cbcpy)), and
16[OpenSolver for Excel](http://opensolver.org), among others.
17
18Cbc links to a number of other COIN-OR projects for additional functionality, including:
19 * [Clp](https://github.com/coin-or/Clp) (the default solver for LP relaxations)
20 * [Cgl](https://github.com/coin-or/Cgl) (for cut generation)
21 * [CoinUtils](https://github.com/coin-or/CoinUtils) (for reading input files and various utilities)
22
23For more information on supported platforms, links to dependent projects, current version, and more, click [here](https://www.coin-or.org/projects/)
24
25Cbc is developed by John Forrest, now retired from IBM Research.
26The project is currently managed by John Forrest, [Ted Ralphs](http://coral.ie.lehigh.edu/~ted/), Haroldo Gambini Santos, and the rest of the Cbc team (Dan Fylstra (Frontline), Lou Hafer (SFU), Bill Hart (Sandia), Bjarni Kristjannson (Maximal), Cindy Phillips (Sandia), Matthew Saltzman (Clemson), Edwin Straver (Frontline), Jean-Paul Watson (Sandia)).
27
28Cbc is written in C++ and is released as open source code under the [Eclipse Public License (EPL)](http://www.opensource.org/licenses/eclipse-1.0) and is freely redistributable.
29All source code and documentation is Copyright IBM and others. This README may be redistributed freely.
30
31Cbc is available from the [COIN-OR initiative](http://www.coin-or.org/).
32The Cbc website is https://github.com/coin-or/Cbc.
33
34## CITE
35
36[![DOI](https://zenodo.org/badge/173509563.svg)](https://zenodo.org/badge/latestdoi/173509563)
37
38## CURRENT BUILD STATUS
39
40[![Build Status](https://travis-ci.org/coin-or/Cbc.svg?branch=master)](https://travis-ci.org/coin-or/Cbc)
41
42
43## DOWNLOAD
44
45Binaries for most platforms are available for download from [Bintray](https://bintray.com/coin-or/download/Cbc)
46
47[ ![Download](https://api.bintray.com/packages/coin-or/download/Cbc/images/download.svg?version=2.10) ](https://bintray.com/coin-or/download/Cbc/2.10/link)
48
49 * *Linux*: On Debian/Ubuntu, Cbc is available in the package `coinor-cbc` and can be installed with apt. On Fedora, Cbc is available in the package `coin-or-Cbc`.
50 * *Windows*: The easiest way to get Cbc on Windows is to download from *[Bintray](https://bintray.com/coin-or/download/Cbc)*, although an old interactive installer for the [COIN-OR Optimization Suite](http://www.coin-or.org/download/binary/CoinAll) is also still available.
51 * *Mac OS X*: The easiest way to get Cbc on Mac OS X is through [Homebrew](https://brew.sh).
52   * `brew tap coin-or-tools/coinor`
53   * `brew install cbc`
54 * AMPL also provides stand-alone [Cbc executables](http://ampl.com/products/solvers/open-source/#cbc) that can be used with (or without) AMPL.
55
56Due to license incompatibilities, pre-compiled binaries lack some functionality.
57If binaries are not available for your platform for the latest version and you would like to request them to be built and posted, feel free to let us know on the mailing list.
58
59*Source code* can be obtained either by
60
61 * Downloading a snapshot of the source code for the latest release version of Cbc from the [Cbc source code download page](http://www.coin-or.org/download/source/Cbc), or
62 * Checking out the code from [Github](https://github.com/coin-or/Cbc) or using the `coinbrew` script (recommended).
63
64Below is a quick start guide for building on common platforms. More detailed
65build instructions are
66[here](https://coin-or.github.io/user_introduction.html) (this is a work in
67progress).
68
69## BUILDING from source
70
71### Using CoinBrew
72
73To build Cbc from source, obtain the `coinbrew` script from
74https://coin-or.github.io/coinbrew/
75and run
76
77    /path/to/coinbrew fetch Cbc
78    /path/to/coinbrew build Cbc --prefix=/dir/to/install --test
79    /path/to/coinbrew install Cbc
80
81The `coinbrew` script will fetch [these](.coin-or/Dependencies) additional projects.
82
83### Without CoinBrew (Expert users)
84
85 0. Install [these Dependencies](.coin-or/Dependencies)
86 1. Obtain the source code, e.g., from https://github.com/coin-or/Cbc
87 2. Run `./configure -C` to generate makefiles
88 3. Run `make` to build the CoinUtils library
89 4. Run `make test` to build and run the CoinUtils unit test program
90 5. Run `make install` to install library and header files.
91
92### With Microsoft Visual Studio
93
94For Microsoft Visual C++ users, there are project files for version 10
95available in the `MSVisualStudio` directory. First, obtain the source code
96using either a Windows git client or download a snapshot. In MSVC++ Version
9710, open the solution file (this should be converted to whatever version of
98MSVC+ you are using) and build the Cbc project. The code should build out of
99the box with default settings.
100
101It is also possible to build Cbc with the Visual Studio compiler from the
102command line using the procedure for Unix-like environments, using the Msys2
103shell or CYGWIN. This is the recommended and best-supported way of building
104Cbc in Windows from source. To do so, make sure the `cl` compiler is in your
105path and add `--enable-msvc to build command of `coinbrew`. 
106
107If you want to build a *parallel version* of CBC using Visual Studio you can
108following instructions: (thanks to Tobias Stengel and Alexis Guigue).
109
110Assumptions:
111
112- A VS solution with all necessary projects (libCbc, libClp, libCbcSolver,
113  libCgl, libCoinUtils, libOsi, libOsiCbc, libOsiClp). The project files can
114  be found inside the "MSVisualStudio" folders.
115
116Steps (based on VS 2013):
117
1181. for each of the lib* projects do:
119   add `CBC_THREAD` under Properties -> Configuration Properties -> C/C++ ->
120   Preprocessor -> Preprocessor Definitions (a subset of the lib* projects may
121   be sufficient, but it doesn't hurt to do it for all)
122
1232. Link against a pthreads library.
124   [PThreadsWin32](https://www.sourceware.org/pthreads-win32/) works (even in
125   64 bits systems) and is distributed under the LGPL. If you decide to use
126   the precompiled binaries: both pthreadVC2 and pthreadVS2 seem to work.
127   Otherwise: third party VS project files for pthreads4win can be found on
128   github.
129
130   Note: If you use C++/Cli, make sure that no callback (eventHandlers, custom
131   cut generators, custom heuristics, ...) contains managed code. Otherwise
132   your code will crash at runtime with AssembyNotFoundExceptions inside the
133   native threads created by Cbc. Even if not, problems with the GC are
134   likely.
135
1363. If you link statically against pthreads4win, you have to define
137   PTW32_STATIC_LIB when building your program/Cbc (e.g. via Properties ->
138   C/C++/Preprocessor -> Preprocessor Definitions) AND - only if you build
139   pthreads yourself - when building pthreads. Linking pthreads dynamically
140   works without additional preprocessor definitions.
141
1424. pass "-threads" "yourNumber" to CbcMain1
143
144
145## DOCUMENTATION
146
147 * [User's Guide](https://coin-or.github.io/Cbc) (from 2005)
148 * [Doxygen generated documentation](http://www.coin-or.org/Doxygen/Cbc/hierarchy.html)
149 * Source code [examples](examples)
150 * [Cbc command-line guide](https://projects.coin-or.org/CoinBinary/export/1059/OptimizationSuite/trunk/Installer/files/doc/cbcCommandLine.pdf)
151
152
153## SUPPORT
154
155### List Serve
156
157CBC users should use the Cbc mailing list. To subscribe, go to
158http://list.coin-or.org/mailman/listinfo/cbc
159
160### Bug Reports
161
162Bug reports should be reported on the CBC development web site at
163
164https://github.com/coin-or/Cbc/issues
165
166## CHANGELOG
167
168 * Release 3.0 (in preparation)
169   * Added possibility for incomplete MIP start files.
170     The filename suffix indicates which values Cbc should choose for
171     missing variables (see change r2549)
172   * Larger renovation of the build system and a changed directory structure.
173     As a consequence, a monolithic build of Cbc, which builds Cbc with
174     all its dependencies in one run of configure and make is no longer
175     possible. Dependencies should now be build and installed before
176     building Cbc.
177     - Removed svn:externals. Dependencies (CoinUtils, Osi, Clp, Cgl, etc)
178       now need to be build and installed in advance, either manually or
179       by using coinbrew.
180     - When using a GCC-compatible compiler, the Cbc interface
181       functions are now declared with `visibility(default)`-attribute,
182       thus building Cbc with `-fvisibility=hidden` still produces a
183       usable library.
184     - When using a MSVC-compatible compiler, Cbc interface functions
185       are now declared with `dllimport`-attribute, so that a Cbc C++ DLL
186       can be used.
187     - Under Windows/Msys2, DLLs are now build by default.
188     - Cygwin and MSys1 are no longer supported.
189     - pkg-config is now mandatory. On Windows, make sure to use a
190       pkg-config version that produces Unix-style paths.
191     - "Addlibs" files have been removed, pkg-config should be used instead.
192     - Script "compile" is now used to wrap around calls of cl/icl/ifort
193       and translate GCC-style compiler flags to MSVC style.
194     - Header files are now installed in the better named
195       `$prefix/include/coin-or` instead of `$prefix/include/coin`.
196     - The default for `--prefix` is no longer the build directory, but
197       the autotools-default, probably `/usr/local`.
198     - `--enable-debug` does not imply `--disable-shared` anymore.
199     - Removed `--enable-debug-cbc`, use `--enable-debug` instead.
200     - Removed configure variables OPT/DBG_C/CXXFLAGS. Use C/CXXFLAGS instead.
201     - Silent build output is now enabled by default, use configure
202       flag `--disable-silent-rules` or call make with `V=1` to disable.
203     - Also for static builds, PIC objects are now generated by default,
204       use `--without-pic` to disable.
205     - The `--with-*-incdir` and `--with-*-lib` configure flags have been
206       replaced by corresponding `--with-*-cflags` and `--with-*-lflags`
207       flags. Note that the include directories need to be specified
208       via `-I<dir>` in `--with-*-cflags`.
209    * `--enable-cbc-parallel` is now enabled by default if a pthread library
210      is found. Use `--disable-cbc-parallel` to disable.
211    * Added a conflict graph infrastructure and conflict-based routines:
212      - `CglCliqueStrengthening`: preprocessing routine applied on set packing constraints.
213      - `CglBKClique`: clique cut separator based on an improved version of Bron-Kerbosch algorithm.
214      - `CglOddWheel`: odd-cycle separator with a lifting routine.
215      - New parameters in the command line:
216          - `clqstr`: sets the method to extend cliques in CglCliqueStrengthening (0=off; 1=random; 2=degree; 3=modified degree; 4=reduced cost; 5=reduced cost + modified degree); default = 4.
217          - `clique`: sets the use of CglBKClique (on, root, ifmove, forceOn, onglobal); default = ifmove.
218          - `bkpivot`: pivoting strategy used by Bron-Kerbosch algorithm in CglBKClique (0 = off; 1 = random; 2 = degree; 3 = weight; 4= modified degree; 5 = modified weight; 6 = modified degree + modified weight); default = 3.
219          - `bkmaxcalls`: maximum number of recursive calls that can be made by Bron-Kerbosch algorithm in CglBKClique; default = 1000.
220          - `bkclqext`: strategy used to extend violated cliques found by CglBKClique (0=off; 1=random; 2=degree; 3=modified degree; 4=reduced cost; 5=reduced cost + modified degree); default = 4.
221          - `oddwheel`: sets the use of CglOddWheel (on, root, ifmove, forceOn, onglobal); default = ifmove.
222          - `oddwext`: strategy used to search for wheel centers for the cuts found by CglOddWheel (0 = off; 1 = one variable; 2 = clique); default = 2.
223      - CglClique was replaced by CglBKClique as the default clique separator in CbcSolver.cpp.
224
225 * Release 2.10.5
226   * revert fix that stopped Clp when timelimit reached, as that lead to
227     all cleanup solves afterwards to stop without proper finishing and
228     giving wrong results
229
230 * Release 2.10.4
231   * Allow .lp files to be read from stdin.
232   * Fix parsing of optional arguments to AMPL interface.
233   * More bugfixes.
234
235 * Release 2.10.3
236   * Improve performance of some primal heuristics, incl. feasibility pump, by making integer slacks continuous
237   * Added additional timelimit checks
238   * Fixed initialization of Cbc_clone result
239   * Additional bugfixes
240
241 * Release 2.10.2
242   * Bugfixes
243
244 * Release 2.10.1
245   * Fixed Cbc_clone in C interface
246   * Fixed CbcMain1() call in examples/driver3.cpp
247   * Fixed possible issue with MIPstart if presolve added variables
248   * More minor bugfixes
249
250 * Release 2.10.0
251   * Improved handling of SOS, starting point, and symmetries
252   * Improved performance of primal heuristics regarding the handling of
253     implicit integer variables
254   * Mini-B&B is now disabled when solving with multiple threads
255   * Changed default value for zero half cuts parameter from off to ifmove
256   * Added CbcModel::postProcessedSolver() to obtained LP after presolve
257   * New option "PrepNames" to indicate whether column names should be
258     kept in the pre-processed model
259   * New option "sosPrioritize" to determine how to prioritize SOS
260   * Added new event "generatedCuts"
261   * CbcSolver can now read compressed .lp files (GZIP, BZIP2)
262   * New functions in the C interface: Cbc_readLp, Cbc_writeLp,
263     Cbc_addCol, Cbc_addRow, Cbc_getNumIntegers, Cbc_bestSolution,
264     Cbc_getObjValue, Cbc_getRowNz, Cbc_getRowIndices, Cbc_getRowCoeffs,
265     Cbc_getRowRHS, Cbc_getRowSense, Cbc_getColNz, Cbc_getColIndices,
266     Cbc_getColCoeffs, Cbc_getReducedCost, Cbc_numberSavedSolutions,
267     Cbc_savedSolution, Cbc_savedSolutionObj, Cbc_setMIPStart,
268     Cbc_setMIPStartI, Cbc_addCutCallback, Osi_getNumCols, Osi_getColName,
269     Osi_getColLower, Osi_getColUpper, Osi_isInteger, Osi_getNumRows,
270     Osi_getRowNz, Osi_getRowIndices, Osi_getRowCoeffs, Osi_getRowRHS,
271     Osi_getRowSense, Osi_getColSolution, OsiCuts_addRowCut,
272     Cbc_getAllowableGap, Cbc_setAllowableGap, Cbc_getAllowableFractionGap,
273     Cbc_setAllowableFractionGap, Cbc_getAllowablePercentageGap,
274     Cbc_setAllowablePercentageGap, Cbc_getCutoff, Cbc_setCutoff,
275     Cbc_getMaximumNodes, Cbc_setMaximumNodes, Cbc_getMaximumSolutions,
276     Cbc_setMaximumSolutions, Cbc_getLogLevel, Cbc_setLogLevel,
277     Cbc_getMaximumSeconds, Cbc_setMaximumSeconds
278   * New action "guess" checks properties of the model to decide the best
279     parameters for solving the LP relaxation.
280   * New example inc.cpp to illustrate solution callback
281   * New example driver5.cpp to illustrate user-defined branching rule
282   * New example clpdriver.cpp to illustrate use of ClpEventHandler
283   * Added support for using OsiHiGHS with CbcGeneric
284   * Added MSVC 14 project files
285   * Bugfixes
286
287 * Release 2.9.10
288   * Fix a numerical issue
289   * Fix some memory leaks
290   * Fix issue when root node is obviously infeasible
291   * Performance improvements for mini-B&B
292   * Fix name of bound in final message
293   * Fix names in preprocessed problem
294
295 * Release 2.9.9
296
297   * Fixes for SOS2
298   * Updates to mipstart
299   * Switching to new build system
300   * Updates for CI
301
302 * Release 2.9.8
303
304   * Update to most current releases of dependencies
305   * Small bug fixes
306   * Add support for automatic build and test with Travis and Appveyor
307
308 * Release 2.9.7
309
310   * Small bug fixes
311   * Option to switch to line buffered output
312
313 * Release 2.9.6
314
315   * Small bug fixes
316
317 * Release 2.9.5
318
319   * Small bug fixes
320
321 * Release 2.9.4
322
323   * Small fixes for stability
324   * Fixes for Doygen documentation generation
325
326 * Release 2.9.3
327
328   * Minor bug fixes
329
330 * Release 2.9.2
331
332   * Fix for proper installation with ```DESTDIR```
333
334 * Release 2.9.1
335
336   * Fix for dependency linking
337   * Minor bug fixes
338
339 * Release 2.9.0
340
341   * Introduced specialized branching methods for dealing with "big Ms".
342   * Introduced new methods for dealing with symmetry (requires installation of [nauty](http://pallini.di.uniroma1.it/))
343   * Introduction of conflict cuts (off by default, turn on with `-constraint conflict`)
344
345 * Release 2.8.13
346
347   * Improved message handling
348   * Miscellaneous bug fixes.
349
350 * Release 2.8.12
351
352   * Update for dependencies.
353
354 * Release 2.8.11
355
356   * Major overhaul of C interface
357   * Fixes to SOS
358   * Miscellaneous bug fixes
359
360 * Release 2.8.10
361
362   * More changes related to thread safety.
363   * Fix bug in build system with Visual Studio compiler.
364   * Miscellaneous bug fixes.
365
366 * Release 2.8.9
367
368   * Attempt to make Cbc thread safe.
369   * Add parallel examples.
370   * Add CbcSolverUsefulInfo.
371   * Bug fixes.
372
373 * Release 2.8.8
374
375   * Added example to show how to use Cbc with installed libraries in MSVC++
376   * Fixed inconsistency in addition of libCbcSolver to dependencies in
377     {{{cbc_addlibs.txt}}}.
378
379 * Release 2.8.7
380
381   * Changed so that Doxygen builds LaTex
382   * Fixes for build system
383
384 * Release 2.8.6
385
386   * Added option to explicitly link dependencies to comply with packaging
387     requirements on Fedora and Debian, as well as allow building of MinGW
388     DLLs.
389
390 * Release 2.8.5
391
392   * Minor fixes to build system
393
394 * Release 2.8.4
395
396   * Small bug fixes
397   * Upgrades to build system
398
399 * Release 2.8.3:
400
401   * Fix for handling SOS.
402
403 * Release 2.8.2:
404
405   * Fixed recognition of Glpk source in main configure.
406   * Minor bug fixes in CoinUtils, Clp, and Cbc.
407
408 * Release 2.8.1:
409
410   * Minor bug fixes
411
412 * Release 2.8.0:
413
414   * Introduced new secondaryStatus 8 to indicate that solving stopped due to
415     an iteration limit.
416   * Solution pool is now accessible via the command line and the CbcMain*
417     interface.
418   * New mipstart option to read an initial feasible solution from a file.
419     Only values for discrete variables need to be provided.
420
421   * Added Proximity Search heuristic by Fischetti and Monaci (off by
422     default): The simplest way to switch it on using stand-alone version is
423     ```-proximity on```.
424
425     Proximity Search is the new "No-Neighborhood Search" 0-1 MIP refinement
426     heuristic recently proposed by Fischetti and Monaci (2012). The idea is
427     to define a sub-MIP without additional constraints but with a modified
428     objective function intended to attract the search in the proximity of the
429     incumbent. The approach works well for 0-1 MIPs whose solution landscape
430     is not too irregular (meaning the there is reasonable probability of
431     finding an improved solution by flipping a small number of binary
432     variables), in particular when it is applied to the first heuristic
433     solutions found at the root node.
434
435   * An implementation of Zero-Half-Cuts by Alberto Caprara is now available.
436     By default, these cuts are off. To use add to your command line
437     -zerohalfCuts root (or other options) or just -zero. So far, they may
438     help only on a small subset of problems and may need some tuning.
439
440     The implementation of these cuts is described in G. Andreello, A.
441     Caprara, and M. Fischetti "Embedding Cuts in a Branch and Cut Framework:
442     a Computational Study with {0,1/2}-Cuts" INFORMS Journal on Computing
443     19(2), 229-238, 2007 http://dx.doi.org/10.1287/ijoc.1050.0162
444
445   * An alternative implementation of a reduce and split cut generator by
446     Giacomo Nannicini is now available. By default, these cuts are off. To
447     use add to your command line -reduce2AndSplitCuts root (or other
448     options).
449
450     The implementation of these cuts is described in G. Cornuejols and G.
451     Nannicini "Practical strategies for generating rank-1 split cuts in
452     mixed-integer linear programming" Mathematical Programming Computation
453     3(4), 281-318, 2011 http://dx.doi.org/10.1007/s12532-011-0028-6
454
455   * An alternative robust implementation of a Gomory cut generator by Giacomo
456     Nannicini is now available. By default, these cuts are off. To use add to
457     your command line -GMI root (or other options).
458
459     The implementation of these cuts is described in G. Cornuejols, F.
460     Margot, and G. Nannicini "On the safety of Gomory cut generators"
461     http://faculty.sutd.edu.sg/~nannicini/index.php?page=publications
462
463   * To encourage the use of some of the more exotic/expensive cut generators
464     a parameter -slowcutpasses has been added. The idea is that the code does
465     these cuts just a few times - less than the more usual cuts. The default
466     is 10. The cut generators identified by "may be slow" at present are just
467     Lift and project and ReduceAndSplit (both versions).
468
469   * Allow initialization of random seed by user. Pseudo-random numbers are
470     used in Cbc and Clp. In Clp they are used to break ties in degenerate
471     problems, while in Cbc heuristics such as the Feasibility Pump use them
472     to decide whether to round up or down. So if a different pseudo-random
473     seed is given to Clp then you may get a different continuous optimum and
474     so different cuts and heuristic solutions. This can be switched on by
475     setting randomSeed for Clp and/or randomCbcSeed for Cbc. The special
476     value of 0 tells code to use time of day for initial seed.
477
478   * Building on this idea, Andrea Lodi, Matteo Fischetti, Michele Monaci,
479     Domenico Salvagnin, Yuji Shinano, and Andrea Tramontani suggest that this
480     idea be improved by running at the root node with multiple copies of
481     solver, each with its own different seed and then passing in the
482     solutions and cuts so that the main solver has a richer set of solutions
483     and possibly stronger cuts. This is switched on by setting
484     -multipleRootPasses. These can also be done in parallel.
485
486   * Few changes to presolve for special variables and badly scaled problems
487     (in CoinUtils).
488
489   * New option -extraVariables <number> which switches on a trivial
490    re-formulation that introduces extra integer variables to group together
491    variables with same cost.
492
493   * For some problems, cut generators and general branching work better if
494     the problem would be infeasible if the cost is too high. If the new
495     option -constraintFromCutoff is set, the objective function is added as a
496     constraint which rhs is set to the current cutoff value (objective value
497     of best known solution).
498
499 * Release 2.7.8:
500
501   * Change message when LP simplex iteration limit is hit from "Exiting on
502     maximum nodes" to "Exiting on maximum number of iterations"
503   * Fix for using overlapping SOS.
504   * Fixes in buildsystem.
505
506 * Release 2.7.7:
507
508   * Fix to report interruption on user event if SIGINT is received by
509     CbcSolver. model->status() should now be 5 if this event happened. Added
510     method CbcModel::sayEventHappened() to make cbc stop due to an 'user
511     event'.
512
513   * Other minor fixes.
514
515 * Release 2.7.6:
516
517   * Fixes to build system.
518
519   * Other minor fixes.
520
521 * Release 2.7.5:
522
523   * Fixes to get AMPL interface working again.
524
525   * More fixes to MSVC++ files.
526
527 * Release 2.7.4:
528
529   * Minor bugfixes.
530
531 * Release 2.7.3:
532
533   * Minor bugfixes.
534
535   * Fixes to MSVC++ files.
536
537 * Release 2.7.2:
538
539   * Allow row/column names for GMPL models.
540
541   * Added CbcModel::haveMultiThreadSupport() to indicate whether Cbc library
542     has been compiled with multithread support.
543
544   * Added CbcModel::waitingForMiniBranchAndBound() to indicate whether
545     sub-MIP heuristic is currently running.
546
547   * Cbc shell should work with readline if configured with
548     ```--enable-gnu-packages```.
549
550   * Support for compressed input files (.gz, .bz2) is now enabled by default.
551
552   * Fix problems with relative gap tolerance > 100% and further bugs.
553
554   * Fixes for MSVC++ Version 9 files.
555
556   * Minor fixes in buildsystem; update to BuildTools 0.7.1.
557
558 * Release 2.7.1:
559
560   * Fixes to MSVC++ files
561
562 * Release 2.7.0:
563
564   * License has been changed to the EPL.
565
566   * Support for MSVC++ version 10 added.
567
568   * Support for BuildTools version 0.7 to incorporate recent enhancements,
569     including proper library versioning in Linux, prohibiting installation of
570     private headers, etc.
571
572   * Updated externals to new stable versions of dependent projects.
573
574   * Improvements to heuristics.
575
576   * New options for cut generation.
577
578   * Improved reporting of results.
579
Note: See TracBrowser for help on using the repository browser.