MiniZinc and FlatZinc
MiniZinc is a medium-level constraint modelling language. It is high-level enough to express most constraint problems easily, but low-level enough that it can be mapped onto existing solvers easily and consistently. It is a subset of the higher-level language Zinc. We hope it will be adopted as a standard by the Constraint Programming community.
FlatZinc is a low-level solver input language that is the target language for MiniZinc. It is designed to be easy to translate into the form required by a solver.
This page holds various MiniZinc and FlatZinc resources that are of wide interest.
Specifications of Zinc, MiniZinc, and FlatZinc. The official specifications of Zinc, MiniZinc and FlatZinc.
Global constraints in the MiniZinc library. A list of the global constraints available in the MiniZinc library.
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.
Gecode/FlatZinc. The Gecode generic constraint development environment provides a FlatZinc interface. The source code for the interface stripped of all Gecode-specific code is also available.
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.
SICStus Prolog. SICStus (from version 4.0.5) includes a library for evaluating FlatZinc.
JaCoP. The JaCoP constraint solver (from version 4.2) has an interface to FlatZinc.
SCIP. SCIP, a framework for Constraint Integer Programming, has an interface to FlatZinc.
Opturion CPX. Opturion CPX, a Constraint Programming solver with eXplanation system, has an interface to FlatZinc.
MinisatID. 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.
Furthermore, any solver that supports XCSP 2.1 can be used to solve FlatZinc instances by using the fzn2xcsp converter included in the G12 MiniZinc distribution.
The MiniZinc forum is for beginners, users, and developers to discuss MiniZinc.
Hakan Kjellerstrand's MiniZinc page has lots of MiniZinc models and global constraint definitions.