- 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.
MiniZinc
MiniZinc is a high-level constraint modelling language that allows you to easily express and solve discrete optimisation problems.
Latest release: 2.8.5 (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.8.5
Released 3 June 2024
Get your MiniZinc stickers, mugs, t-shirts etc. (sold at cost price)!