如何在 minizinc 中使用 R 或 python 生成 .dzn 文件

jan*_*eon 2 minizinc

我主要使用 R 和 python 进行数据分析。

如何使用 R 或 python 或其他通用语言为 minizinc 模型生成 .dzn 文件

Dek*_*er1 5

尽管.dzn文件是 MiniZinc 模型的传统数据输入文件,但较新版本的 MiniZinc 驱动程序可以使用 JSON。R 和 Python 都可以轻松地从数据生成 JSON。为以下模型生成 JSON 数据的示例model.mzn

int: n;
array[1..n] of bool: arr;
float: f;
Run Code Online (Sandbox Code Playgroud)

导出简单的Python数据:

import json

data = {
    "n": 4,
    "arr": [True, False, False, True],
    "f": 2.75,
}

with open('data.json', 'w') as outfile:
    json.dump(data, outfile)
Run Code Online (Sandbox Code Playgroud)

此 python 脚本将创建一个data.json包含数据的文件。MiniZinc 现在可以直接使用生成的文件:minizinc --solver gecode model.mzn data.json

  • 您可以将其写为数组的数组,例如: `{ "x": [[1,2,3],[3,4,5]]}` (2认同)