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.15.0

What's Changed

  • Add support for python 3.11 by @sebheger in https://github.com/coin-or/python-mip/pull/328

Full Changelog: https://github.com/coin-or/python-mip/compare/1.14.3...1.15.0

- Linear Programming
Published by sebheger about 3 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 str by @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 objective by @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.13.0

Mostly a bugfix release, all users are encourage to update:

  • updated CBC binaries; seems to fix some longstanding bugs in MacOS
  • documentation fixes
  • fix gurobi detection
  • fix query of LinExpr.violation when no solution is available

- Linear Programming
Published by h-g-s over 5 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.2

  • fix for loading MIPStart from a file
  • test for support for .gz and .bz2
  • remove mutable default arguments #93
  • tests now in github actions

- 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.2

  • fix for the addition of column contents
  • additional tests
  • make it possible to get value from LinExpr objects using the current solution #90 tks @jurasofish
  • specialized exceptions tks @jurasofish
  • use python logging facilities

- 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.8

  • this release fixes a problem that happened with gurobi when some partial update (+= operator) of the objective function was changed. No need to update if you just use cbc.

- Linear Programming
Published by h-g-s about 6 years ago

mip - 1.6.7

  • fix for slow gurobi callback
  • improved detection of gurobi library on unix like systems
  • improved automated tests: now all files in the examples directory are checked

- Linear Programming
Published by h-g-s about 6 years ago

mip - 1.6.6

small fix: objectivevalue and objectivebound now return None if no optimization was performed

- Linear Programming
Published by h-g-s about 6 years ago

mip - 1.6.5

  • return None for dual information if not available
  • updated cbc binaries with fixed to mipstart and incumbent callback

- Linear Programming
Published by h-g-s about 6 years ago

mip - 1.6.3

  • improved performance for lazy constraints and cuts: now cbc assumes that cuts and lazy constraints are globally valid, just like in gurobi
  • fix max_gap model property
  • small doc improvements

- Linear Programming
Published by h-g-s about 6 years ago

mip - 1.6.2

  • fix limit of max_solutions in cbc when specified as parameter in optimize

- Linear Programming
Published by h-g-s about 6 years ago

mip - 1.6.1

fix for lp_method in CBC

- 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.3

  • better handling of lazy constraints and fix for querying variable types before optimization in CBC (updated binaries)
  • fix query of objective function contents in cbc. thanks to @spoorendonk

- Linear Programming
Published by h-g-s over 6 years ago

mip - 1.5.2

  • fix for constraint property slack in cbc

- Linear Programming
Published by h-g-s over 6 years ago

mip - 1.5.1

Fix for status in CBC when no solution found.

- Linear Programming
Published by h-g-s over 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 - 1.4.3

Fix for repeated cuts and updated Mac binaries

- Linear Programming
Published by h-g-s over 6 years ago

mip - 1.4.2

Lazy constraints and SOS documented and working.

- Linear Programming
Published by h-g-s over 6 years ago

mip - 1.4.0

  • Hopefully fixed a bug in successive MIP reoptimizations
  • Lazy constraints support (still being documented but working !)

- Linear Programming
Published by h-g-s over 6 years ago

mip - 1.3.13

small fix for gurobi: do not call cut generator in some conditions

- Linear Programming
Published by h-g-s over 6 years ago

mip - 1.3.12

Fix for row prices in CBC and fix for comparisons of LinExpr objects. Thanks to @spoorendonk .

- Linear Programming
Published by h-g-s over 6 years ago

mip - 1.3.11

  • cut generators can now also add lazy constraints (remove integer solutions), initially on gurobi only.
  • violation property in linear expression can check how much a solution violates the current solution

- Linear Programming
Published by h-g-s over 6 years ago

mip - 1.3.10

Fix for gurobi dll path on windows

- Linear Programming
Published by h-g-s over 6 years ago

mip - 1.3.9

Fix for loading gurobi using GUROBI_HOME environment variable

- Linear Programming
Published by h-g-s over 6 years ago

mip - 1.3.8

Fix CbcgetReducedCost Fix for checking for Gurobi libraries using environment variable GUROBIHOME in other platforms

- Linear Programming
Published by h-g-s over 6 years ago

mip - 1.3.6

Since previous version: - fix query of upper bound of a variable - use GUROBI_HOME to find gurobi when available

- Linear Programming
Published by h-g-s over 6 years ago

mip - 1.3.4

Updated CBC builds for all platforms with minor bugfixes and fix for unreported out-of-memory error in Gurobi

- Linear Programming
Published by h-g-s over 6 years ago

mip - 1.3.3

Temporary fix for windows binaries

- Linear Programming
Published by h-g-s over 6 years ago

mip - 1.3.2

Options for set tolerances in both solvers. Automated tests.

- 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