- Add support for
elseif
inif then elseif endif
expressions without anelse
branch. - Make
sort
functions return array of enum when input is array of enum (issue 853). - Make the
mzn_in_root_context
function (which is used only internally and should not be used in user models) more flexible in where it can be called. - Update packaged version of the HiGHS solver to version 1.8.1.
- Update Gurobi interface to be compatible with Gurobi 12.0.0.
- Address compiler warnings concerning unsafe signed/unsigned comparisons and implicit casts between different integer types.
- BREAKING: The usage of
--compile
(or-c
) flag now requires the user to explicitly specify the solver for which the MiniZinc instance is being compiled, using--solver
. To select the default solver (and keep the previous behaviour) you can use--solver default
. - Add the
--fzn-format
flag to influence whether the generated FlatZinc from--compile
or--fzn
is given in the traditional FlatZinc format or the new JSON-based format. (issue 868) - Comments regarding the compilation invocation are now included in user-facing
FlatZinc (
.fzn
) files, created by the--compile
or--fzn
flags. - Add
par
version of theamong
function. - Add support for arrays containing arrays (which only support access using
par
indices). - Add
diversity.mzn
library to be used with the diverse solutions toolchain included in MiniZinc Python. - Ensure the MiniZinc directory is added to the DLL search path when running child processes on Windows (issue 206).
- Add
par
implementations for thearg_val
andarg_val_weak
functions. - Add support for calling enum constructors without arguments to return the set of all constructed values.
- Deprecate and emit warning for implicit coercion of enums to integers. The
enum2int
function should be used to perform the coercion where required.
MiniZinc
MiniZinc is a high-level constraint modelling language that allows you to easily express and solve discrete optimisation problems.
Latest release: 2.9.0 (changelog)
MiniZinc is developed at Monash University with support from OPTIMA.
Why choose MiniZinc?
High-level language
Model constraint satisfaction and optimisation problems using readable, intuitive logical constructs, with full type safety.
Solver independent
Run the same model using a variety of different solver technologies, without being locked into a particular solver.
Pre-defined constraints
MiniZinc features a large library of pre-defined constraints, making modelling complex relationships simple.
Fully featured development environment
Use the MiniZinc IDE to write and run models, visualise search and solutions, profile performance and more.
In-depth learning materials
MiniZinc has comprehensive documentation, including the tutorial, several courses, the user manual, and library documentation.
Integrate MiniZinc into your project
MiniZinc can be embedded into Python and JavaScript programs, and can even be used entirely from within the browser.
Latest Release
MiniZinc 2.9.0
Released 11 February 2025
Get your MiniZinc stickers, mugs, t-shirts etc. (sold at cost price)!