A minimal FlatZinc interpreter in Picat that just meets the requirements for MiniZinc Challenge.
by Neng-Fa Zhou and Hakan Kjellerstrand, June 2020.
The MiniZinc library located in mznlib/
can be used to compile FlatZinc
models compatible with this interpreter. You can compile these models directly
by including the mznlib/
folder in your compilation command:
minizinc --solver mzn-fzn -I $PWD/mznlib zebra.mzn
Another option is to instantiate the picat.msc.in
file (as picat.msc
) by
replacing the correct locations for the executable and the MiniZinc library.
You can then use the picat.msc
file as your solver:
minizinc --solver picat.msc zebra.mzn
Or include the folder that contains picat.msc
on your MZN_SOLVER_PATH
and
use the identifier:
minizinc --solver picat zebra.mzn
The following examples illustrate the two different ways to use the interpreter to solve "zebra.fzn":
1. load and run
Picat> load(fzn_picat_sat).
Picat> main(["zebra"]).
2. run as a command-line
picat fzn_picat_sat zebra