Recent Releases of mip
mip - 1.16.0 pre
This release includes:
- Initial support for the HiGHS solver, a contribution from Robert Schwarz
- Initial support for Mac M1/M2/M3
- Linear Programming
Published by h-g-s about 2 years ago
mip - 1.14.2
What's Changed
- fix #303 thread parameter setting using setter by @Sceriffo in https://github.com/coin-or/python-mip/pull/304
- Update os and python versions as well as pyproject.toml (#319) by @sebheger in https://github.com/coin-or/python-mip/pull/320
- Update install.rst by @kasperdokter in https://github.com/coin-or/python-mip/pull/315
- Add support for gurobi v10 (#316) by @sebheger in https://github.com/coin-or/python-mip/pull/321
New Contributors
- @Sceriffo made their first contribution in https://github.com/coin-or/python-mip/pull/304
- @kasperdokter made their first contribution in https://github.com/coin-or/python-mip/pull/315
Full Changelog: https://github.com/coin-or/python-mip/compare/1.14.1...1.14.2
- Linear Programming
Published by sebheger about 3 years ago
mip - Release 1.14.1
What's Changed
- Introduce pyproject.toml by @sebheger in https://github.com/coin-or/python-mip/pull/283
- Fix for
TypeError: can only concatenate str (not "type") to strby @Markus28 in https://github.com/coin-or/python-mip/pull/288 - Pin pypy version for CI by @sebheger in https://github.com/coin-or/python-mip/pull/295
- Update macos version in CI by @sebheger in https://github.com/coin-or/python-mip/pull/298
- Added pre-commit by @Markus28 in https://github.com/coin-or/python-mip/pull/293
- Fix Gurobi
objectiveby @Markus28 in https://github.com/coin-or/python-mip/pull/290 - Fix removal of variables (#294) by @sebheger in https://github.com/coin-or/python-mip/pull/296
- Update version of numpy by @sebheger in https://github.com/coin-or/python-mip/pull/301
- Remove and untrack mip/version.py to make setuptoolsscm work correctly by @sebheger in https://github.com/coin-or/python-mip/pull/302
New Contributors
- @Markus28 made their first contribution in https://github.com/coin-or/python-mip/pull/288
Full Changelog: https://github.com/coin-or/python-mip/compare/1.14.0...1.14.1
- Linear Programming
Published by sebheger over 3 years ago
mip - 1.14.0
What's Changed
- Fix typo in quickstart by @dzhou343 in https://github.com/coin-or/python-mip/pull/177
- Fix line numbers on 0/1 Knapsack Problem example. by @Silventino in https://github.com/coin-or/python-mip/pull/212
- Remove repetition in docs by @fortierq in https://github.com/coin-or/python-mip/pull/232
- Fix broken link in docs by @fortierq in https://github.com/coin-or/python-mip/pull/231
- Make black happy again by @sebheger in https://github.com/coin-or/python-mip/pull/259
- fix: handle objective constant with gurobi by @peterlietz in https://github.com/coin-or/python-mip/pull/214
- Add some more tests and fix a rare case at failed optimization of unbounded model by @sebheger in https://github.com/coin-or/python-mip/pull/241
- Make black happy again by @sebheger in https://github.com/coin-or/python-mip/pull/261
- Update arithmetic of VAR entity and fixes attribute query by @sebheger in https://github.com/coin-or/python-mip/pull/244
- Fix missing starts by @aphi in https://github.com/coin-or/python-mip/pull/242
- Update CI for windows by @sebheger in https://github.com/coin-or/python-mip/pull/265
- LinExpr update and added tests by @sebheger in https://github.com/coin-or/python-mip/pull/264
- Add support for gurobi installed via gurobipy from pip (#185) by @sebheger in https://github.com/coin-or/python-mip/pull/271
- fixed closing bracket typo by @brmanuel in https://github.com/coin-or/python-mip/pull/243
- Reactivate all os / python version combinations in CI by @sebheger in https://github.com/coin-or/python-mip/pull/278
New Contributors
- @dzhou343 made their first contribution in https://github.com/coin-or/python-mip/pull/177
- @Silventino made their first contribution in https://github.com/coin-or/python-mip/pull/212
- @fortierq made their first contribution in https://github.com/coin-or/python-mip/pull/232
- @sebheger made their first contribution in https://github.com/coin-or/python-mip/pull/259
- @peterlietz made their first contribution in https://github.com/coin-or/python-mip/pull/214
- @aphi made their first contribution in https://github.com/coin-or/python-mip/pull/242
- @brmanuel made their first contribution in https://github.com/coin-or/python-mip/pull/243
Full Changelog: https://github.com/coin-or/python-mip/compare/1.13.0...1.14.0
- Linear Programming
Published by sebheger over 3 years ago
mip - 1.12.0
- ability to read and write LP optimal basis files (.bas extension)
- speedup gurobi initialization, thanks @jurasofish
- fix for querying column contents in callbacks, thanks @rodoufu
- fix for mip gap, thanks @nick-gorman
- fix for cbc in dense conflict graphs
- Linear Programming
Published by h-g-s over 5 years ago
mip - 1.11.0
Python-MIP 1.11.0
Two additional parameters, three depth and pass number, are now informed to the generage_constrs method in ConstrsGenerator class (which is used for cut/lazy constraints callbacks). Thus, strategies that generate more/less cuts at a given depth can use this information. See here .
Cut generators: additional cut generators can now be called at the root node in customized cutting planes algorithms, see here .
Instance features: it is now possible to query a vector of instance features. These features can be used in machine learning algorithms, for example, to decide the best parameter settings. Basic features are just the problems dimensions, e.g.: columns, rows, non-zeros. The current implementation extracts 208 instance features. To see an implementation of algorithm selection that is used in the COIN-OR Linear Programming Solver (CLP) check: Vilas Boas, M.G., Santos, H.G., Merschmann, L.H.C. and Vanden Berghe, G. Optimal Decision Trees for the Algorithm Selection Problem: Integer Programming Based Approaches. International Transactions in Operational Research, DOI 10.1111/itor.12724. 2019.
- Linear Programming
Published by h-g-s over 5 years ago
mip - 1.10.0
This release release adds a new model method: clique_merge, which merges constraints of conflicting variables (usually set packing) to produce a more compact and stronger formulation.
Two new stopping criteria were added: max nodes/seconds without improving the incumbent solution.
We also added more tests and fixed some bugs in the Cbc C Interface.
- Linear Programming
Published by h-g-s over 5 years ago
mip - 1.9.1
Additions - Possible to query solution value of a variable v with float(v), besides the traditional v.x, tks to @jurasofish Fixes: - for models with only continuous variables and SOS, branch and bound should be executed Documentation - Much improved documentation for Special Ordered Sets - SOS - Example including SOS of types 1 and 2
- Linear Programming
Published by h-g-s over 5 years ago
mip - 1.9.0
- The conflict graph of a MIP, indicading conflicting assignments for binary variables, can now be queried
- Initial (optional) support for numpy tensors
- Compatibility fixes for the MacOS binaries
- Speedup for querying solutions in the callbacks
- Documentation improvements
- Linear Programming
Published by h-g-s almost 6 years ago
mip - 1.8.1
This release contains some small fixes: - do not throw exception if objective_value is not available and it is queried, just return None (this could give trouble in some debuggers that tried to query all properties of a model) - updated binaries contain some small fixes to cbc - speedup queries of reduced cost and dual variable values
- Linear Programming
Published by h-g-s almost 6 years ago
mip - 1.8.0
The most important change in this version is that we now use the automatically built CBC binaries (https://bintray.com/coin-or/download/Cbc/) for Linux and for Windows. This has several advantages, the first one is that now it will be much easier to release new versions of Python-MIP. The second one is that for Windows, we can now use MingW builds. Different from the standard Visual Studio builds, these builds include support for parallel processing and efficient routines for the factorization of dense matrixes (using lapack, blas, cholmod and AMD). Thus, this is the first Python-MIP release where the windows build should perform as well as the Linux builds. I would like to thank @tkralphs and @svigerske for helping to improve these builds.
Another important change is related to performance. Some users observed that querying the solution values for variables was slow. I identified that this was due to some checks that were performed in Python. I moved these checks to the CBC C Interface. The result is that querying the solutions values is now ~30 times faster.
It is now possible to specify a random seed for a model. This introduces small perturbations in the solution process so that executing the solution process many times with different seeds you can obtain different performances. This is a good approach for those who have computer with many cores and would like to use the "bet and run" approach: start several search threads in parallel and pick the result of the one that finishes first. Details of this approach can be found here:
Fischetti, Matteo, and Michele Monaci. "Exploiting erraticism in search." Operations Research 62.1 (2014): 114-122.
- Linear Programming
Published by h-g-s almost 6 years ago
mip - 1.7.0
New features: Now specific generators can be called outside the tree search to strengthen your formulation with the generate_cuts method. This is a CBC only feature (Gurobi does not allow access to its cut generators).
Fixes: A stability fix for CBC is included: in some cases an incorrect solution/optimization status was produced in searches truncated by time.
- Linear Programming
Published by h-g-s about 6 years ago
mip - 1.6.0
selection of which linear programming method (Primal Simplex, Dual Simplex or Barrier) will be used to solve the root node relaxation (lp_method attribute of Model)
read/write property RHS in Constraint
do not throw exception when querying an unavailable solution: just return None instead, to fix problem in some debuggers
improved documentation - specially for the examples
pytest for tests - thanks @pmla
continuous integration with travis
- Linear Programming
Published by h-g-s about 6 years ago
mip - 1.5.0
WARNING: this version requires some small changes for cut generators: since now Python-MIP fully supports both Cut Generators and Lazy constraints, we decided to add a base class
ConstrsGenerator with the method generate_constrs
cut generators and lazy constraints generators should derive from this class
the Model class has how two attributes: cutsgenerator and lazyconstrs_generator
an object of type ConstrsGenerator can be added to one of these (or both), defining when the constraint generator will be called: in the first case it will be called when a fractional solution is found and in the second case it will be called when an integer solution is found.
- Linear Programming
Published by h-g-s over 6 years ago
mip -
Fix for gurobi detection. Thanks to @Crissal1995 for the fix.
- Linear Programming
Published by h-g-s over 6 years ago
mip -
More information available at cut callback (the entire model), check the updated branch and cut example more examples progress log more options
- Linear Programming
Published by h-g-s over 6 years ago
mip -
Faster creation of models in CBC.
Fix parallel CBC with user cuts.
Fix Gurobi time limit.
Option to store log with bound improvements.
- Linear Programming
Published by h-g-s over 6 years ago