MiniZinc
MiniZinc is a high-level, declarative modeling language for constraint satisfaction and optimization problems. It is designed to be solver-agnostic, allowing users to express a problem once and solve it with a variety of back-end solvers. The language supports variables, arrays, sets, and enumerated types, along with user-defined predicates and functions. Constraints can be stated directly or expressed using global constraints, and problems can be posed as either satisfaction or optimization tasks with an objective to minimize or maximize.
Models can separate the problem specification from data, enabling reuse across multiple instances. Data may be
The MiniZinc toolchain translates a model and its data into FlatZinc, a solver-input language compatible with
MiniZinc is widely used in education, research, and industry due to its solver-agnostic approach and rich library