4

锌规格是这样说的:

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

但是,这似乎不适用于 minizinc 版本 1.6.0:

G12 MiniZinc 评估驱动程序,1.6.0 版

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

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

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

编辑:错误创建

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

4

1 回答 1

2

据我所知,当模型中没有定义的输出项时,所有 FlatZinc 求解器都会为每个解决方案显示一个“----------”。因此,这部分的规范似乎是错误/过时的。

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

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

于 2014-08-16T19:03:48.717 回答