如何在 Minizinc 中读取没有变量名的 .dzn 文件

How to read from .dzn file without variable names in Minizinc

我是 Minizinc 的新手,我遇到了一个问题。我有包含这个的 .dzn 文件

10 7
4
3 2
3 5
4 3
5 5

我希望将此读入我的文件,第一行 10 7 保存为 h=10w=7,下一行 4 保存为 n=4 和最后一行作为数组 dims=[[3,2],[3,5],[4,3],[5,5]]。然而,我还没有找到如何做到这一点,因为在我读过的教程中,.dzn 文件中的变量已经命名,因此可以在 .mzn 文件中轻松调用,即使用命令 int: w;。有没有什么方法可以在不更改 .dzn 文件的情况下命名 MiniZinc 文件中的整数?

非常感谢

dzn 文件不是任何包含 MiniZinc 模型数据的文件。这些文件遵循严格的格式,所有数据都以

的形式给出
<ident> = <expression>;

这就是为什么您的文件不是 dzn 文件的原因。目前 MiniZinc 仅支持 dzn 格式或 json 格式的直接数据。编译器无法读取其他格式。 MiniZinc 语言目前没有能力为自定义数据文件创建解析器。

如果您的数据仅以这种格式提供,那么有两种方法可以将它们与 MiniZinc 一起使用:

  1. 您可以编写一个小脚本,将描述的格式转换为 jsondzn。这可以用任何编程语言完成。
  2. 您可以使用 MiniZinc Python 脚本前端:使用 Python 您可以解析数据,MiniZinc 模块将允许您直接将数据分配给实例。