MiniZinc

MiniZinc is a high-level constraint modelling language that allows you to easily express and solve discrete optimisation problems.

Latest release: 2.10.1 (changelog)

MiniZinc is developed at Monash University with support from OPTIMA.

AimeeAlidaArvilBeulaCiaraColonDarbyDianaDonnaDulceEliasElvieErnstEssieGreenJeradJesseJimmyJodieJulieKatieKeionKelsiKizzyLarryLeafyLloydLymanMableMartyMerleMetroMistiMykelNeliaNevinPaulaSheriTeddyWayne
Table seating allocation
MonTueWedThuFri
Aimee
Night
Evening
Day
Evening
Beula
Evening
Day
Evening
Night
Evening
Ciara
Day
Evening
Night
Darby
Evening
Evening
Night
Ernst
Night
Evening
Evening
Day
Green
Evening
Evening
Day
Night
Jesse
Day
Day
Day
Night
Katie
Day
Day
Evening
Day
Lloyd
Day
Day
Night
Evening
Mable
Night
Day
Day
Evening
Nevin
Evening
Day
Day
Evening
Day
Paula
Night
Evening
Evening
Day
Rostering
Vehicle routing

Try MiniZinc

Try one of the examples, or write your own model.

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.

deciZns

Need help with MiniZinc? deciZns provides specialist support to organisations tackling complex strategic and operational decisions using MiniZinc. From modelling and language features to solver performance, deciZns has the expertise to help you get to make real progress.

Latest Release

MiniZinc 2.10.1

Released 31 August 2026

  • Add an experimental parser using the tree-sitter grammar shared with shackle, enabled by setting the MZN_TREE_SITTER_PARSER environment variable. Syntax that is not yet supported, such as class declarations and lambdas, is rejected by name rather than as a generic syntax error. Data files are read with a separate, stricter grammar that accepts data, not all MiniZinc expressions. A warning is issued for invalid data, but will not be accepted in the future.
  • Harden how external FlatZinc solvers are launched. On POSIX, the solver is now started with posix_spawn in its own process group, using close-on-exec pipes and full error checking. On Windows, the solver inherits only the three standard I/O handles (instead of every inheritable handle) and is placed in a kill-on-close job object, so it is reliably terminated together with MiniZinc. Several descriptor and handle leaks were fixed in the process.
  • Extend the Xpress solver interface with support for lazy constraints, lexicographic multiple objectives (via the goal_hierarchy annotation), and user cuts, and enable quadratic and bilinear constraints.
  • Make built-in Gecode solver interface handle restart annotations and statistics output.
  • Greatly reduce the memory used by two-pass compilation (--two-pass, -O2 and above). The paths that identify variables between passes were stored as one string per variable, each spelling out the file name of every frame on the flattening call stack, and held several times over. They are now an interned tree of shared frames, and the text is only built when --keep-paths or --output-paths asks for it. Where an expression has picked up more than one path, the deepest one is now kept. Previously the textually longest was kept, which could prefer a shallower path that happened to run through longer file or function names (issue 1029).
  • Plus 10+ bugfixes!

See the full changelog.

Get your MiniZinc stickers, mugs, t-shirts etc. (sold at cost price)!