在minizinc中打印完整解决方案(所有决策变量)的简便方法

锌规格说:

If no output item is present, the implementation should print all the global variables and their values in a readable format.

然而,这似乎不适用于minizinc版本1.6.0:

G12 MiniZinc evaluation driver, version 1.6.0

我已经尝试了默认命令(minizinc)和mzn-gecode.

我真的想避免重复输出表达式中的所有变量名.我真正想要的是让所有决策变量以某种结构化格式(例如YAML)输出,但我会采取某种方式来避免这种重复.

澄清一下:我的模型与CSP的典型例子不符,例如:没有大阵列或矩阵.它只是一个相当大的(相对而言)单个决策变量集.

编辑:错误created.

EDIT2:现在修复了minizinc 2.0 git存储库中的bug,因此它符合规范.

最佳答案 我所知道的,当模型中没有定义的输出项时,所有FlatZinc求解器只为每个解决方案显示“———-”.所以看来规范在这方面是错误的/过时的.

这些年来,对输出项目进行了一些(或多或少的激进)变更.在一些早期的MiniZinc版本中,它按照规范描述的方式工作,并且在建模问题时非常方便(尽管很难获得良好的输出).当行为发生变化时,这是一个真正令人讨厌的问题,因此需要一个输出项来显示结果.

有趣的是,Zinc(MiniZinc的“大哥”,http://www.minizinc.org/g12_www/zinc/)按照描述工作,即在没有输出项时显示所有全局变量.也许规范编写者忘记提及MiniZinc的不同之处.

点赞