MiniZinc Software

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.

Both the compiler tool chain and the IDE are available as free and open source software.

Bundled binary packages (recommended)

You can download a completely self-contained package including MiniZinc 2.1.6, the MiniZinc IDE 2.1.6, and the Gecode, Chuffed, and CBC solvers, the Gurobi solver interface and the legacy G12 solvers.

This is the recommended way of installing MiniZinc for most users.

Binary packages (only compiler)

To install binary packages of the standalone MiniZinc compiler (without the IDE or bundled solvers), please follow the installation instructions for your operating system below:

MiniZinc IDE

You can install the MiniZinc IDE separately. Please follow the MiniZinc IDE installation instructions.

Source code

The source code of the compiler and the IDE is available from our GitHub project page. MiniZinc is distributed under the Mozilla Public License version 2.0. The MiniZinc IDE is developed using the Qt toolkit, which is available under several licenses including the LGPL.

Please follow the installation instructions.

Bugs

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

For general discussions about MiniZinc, please go to the discussion forum.

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

FlatZinc implementations

The MiniZinc library contains direct interfaces to COIN-OR CBC, Gurobi and IBM ILOG CPLEX. Furthermore, the following projects have developed FlatZinc interfaces:

  • Gecode/FlatZinc. The generic constraint development environment provides a FlatZinc interface. The source code for the interface stripped of all Gecode-specific code is also available.
  • Chuffed. A C++ FD solver using lazy clause generation.
  • Choco 3. A Java FD solver.
  • ECLiPSe. The ECLiPSe Constraint Programming System provides support for evaluating FlatZinc using ECLiPSe's constraint solvers. MiniZinc models can be embedded into ECLiPSe code in order to add user-defined search and I/O facilities to the models.
  • HaifaCSP. A C++ FD solver using SAT solving algorithms.
  • JaCoP. A Java-based constraint solver with an interface to FlatZinc (from version 4.2).
  • MinisatID. An implementation of a search algorithm combining techniques from the fields of SAT, SAT Module Theories, Constraint Programming and Answer Set Programming, has an interface to FlatZinc.
  • Mistral 2.0. A C++ FD solver.
  • Opturion CPX. A Constraint Programming solver with eXplanation system, has an interface to FlatZinc.
  • OR-Tools. A set of Operations Research tools developed at Google.
  • OscaR/CBLS. A FlatZinc interface to the Constraint Based Local Search component of the OscaR toolkit.
  • Picat CP/SAT.
  • SICStus Prolog. Includes a library for evaluating FlatZinc (from version 4.0.5).
  • SCIP. A framework for Constraint Integer Programming, has an interface to FlatZinc.
  • Yuck. A local search solver with an interface to FlatZinc.

MiniSearch

MiniSearch is a meta-search language that extends MiniZinc with support for (heuristic) meta-searches, such as Large Neighbourhood Search (LNS), using any FlatZinc solver. You can find more information on our MiniSearch pages.

G12 MiniZinc Distribution 1.6

The previous version of MiniZinc, version 1.6, is still available from the G12 MiniZinc Distribution. The G12 MiniZinc Distribution contains executables for the G12 MiniZinc-to-FlatZinc converter and the G12 FlatZinc interpreter. It also contains the source code for the MiniZinc-to-FlatZinc converter, a yacc-based parser for FlatZinc and lots of example models and documentation.

MiniZinc IDE screen shot