Python Mip Versions Save

Python-MIP: collection of Python tools for the modeling and solution of Mixed-Integer Linear programs

1.9.1

4 years ago

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

1.9.0

4 years ago
  • 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

1.8.2

4 years ago
  • 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

1.8.1

4 years ago

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

1.8.0

4 years ago

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.

1.7.0

4 years ago

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.

1.6.8

4 years ago
  • 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.

1.6.7

4 years ago
  • 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

1.6.6

4 years ago

small fix: objective_value and objective_bound now return None if no optimization was performed

1.6.5

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