Solver registrations for the 2024 MiniZinc Challenge are now open!

The MiniZinc compiler and IDE

The compiler is the heart of the MiniZinc tool chain. It translates constraint models into FlatZinc, a language that is understood by a wide range of solvers.

MiniZinc comes with a simple Integrated Development Environment, the MiniZinc IDE, which makes it easy to develop and run constraint models.

Solvers

A number of solvers are included in the official binary packages:

MiniZinc can also interface with the following solvers if installed:

Additionally, many other compatible solvers can be installed, including:

Note that if you build MiniZinc from source, you will have to install any desired solvers yourself.

The MiniZinc IDE

Reporting issues

We are grateful for feedback on MiniZinc, including bug reports, feature requests and ideas for improvements.

For general discussions about MiniZinc, please use the discussion forum.

To report an issue, please use the following issue trackers:

Releases

The latest release of MiniZinc is version 2.8.5, released 3 June 2024.

  • Add string_split function that splits a string into an array of strings based on a separator.
  • Add json_section annotation to mark an output item as a JSON section (issue 816).
  • Fix specification for constraint items and annotations in FlatZinc JSON.
  • Fix flattening of negated let expressions with constraints.
  • Fix crash when equating identifiers to tuples/records in if-then-else expressions.
  • Fix string_length function to return the number of Unicode code points rather than the number of bytes (i.e., to interpret the string as UTF-8).
  • Emit type error for opt tuples and records created through type aliases.
  • Fix evaluation of par partial functions returning arrays.
  • Fix type inference for if-then-else expressions with different tuple or record types in the branches.
  • Fix evaluation error caused by removal of fixed FlatZinc variables without fixing them in the output model.
  • Fix computed type when flattening cv comprehensions containing tuple or record types.
  • Fix unsatisfiability caused by reification in negated boolean context (issue 813).
  • Fix bug in computation of common type of incompatible record types.
  • Fix crash when type checking nested arrays of tuples or records.
  • Fix incorrect unification of flattened tuple/record fields with paths enabled.

See the full changelog.

Development builds

Unstable development builds with upcoming bugfixes and features are available on GitHub.

Documentation for the latest development version of MiniZinc is available here.
For a list of bugfixes/changes please refer to the changelog.

Previous releases

View older releases.