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

时间:2014-08-16 10:43:03

标签: minizinc

锌规格说明了这一点:

  

如果没有输出项,则实现应以可读格式打印所有全局变量及其值。

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

  

G12 MiniZinc评估驱动程序,版本1.6.0

我尝试过默认命令(minizinc)和mzn-gecode。

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

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

编辑:错误created

EDIT2:现在在minizinc 2.0 git存储库中修复了错误,因此它符合规范。

1 个答案:

答案 0 :(得分:2)

据我所知,当模型中没有定义的输出项时,所有FlatZinc解算器都会为每个解决方案显示“----------”。所以看来规范在这方面是错误的/过时的。

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

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