我想转换Minizinc文件(mzn或Flatzinc格式),并将其转换为CNF。 我了解到Picat能够在加载约束后“转储”CNF文件。此外,Picat有一个聪明的模块,可以解释基本的Flatzinc文件。我修改了模块fzn_picat_sat.pi以“转储”CNF文件。我想要的:我希望Picat能加载Flatzinc文件并转储一个合适的CNF文件。如果原始问题有X个解,我希望相应的CNF也有X个解。 结果:我尝试过的大多数Flatzin型文件都工作得很好。例如,the following mzn translate to this <e
satisfy;
show(i), "\n", show(y), "\n",使用标准库执行的mzn2fzn命令输出以下FlatZinc9_):: domain;在这里,请注意,最初y在MiniZinc模型中被声明为set of 1..100,但是mzn2fzn正确地将数组x元素的界限传播到y上,因此FlatZincset of int: y,