我主要使用R和python进行数据分析。
如何使用R或python或其他通用语言为minizinc模型生成.dzn文件
答案 0 :(得分:3)
尽管.dzn
文件是MiniZinc模型的传统数据输入文件,但较新版本的MiniZinc驱动程序可以使用JSON。 R和Python都可以轻松地从数据生成JSON。为以下模型model.mzn
生成JSON数据的示例:
int: n;
array[1..n] of bool: arr;
float: f;
导出简单的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)
此python脚本将创建一个包含数据的文件data.json
。 MiniZinc现在可以直接使用生成的文件:minizinc --solver gecode model.mzn data.json
答案 1 :(得分:0)
pymzn软件包支持将python dicts转换为dzn文件:http://paolodragone.com/pymzn/reference/dzn/index.html
一个例子可能看起来像
from pymzn import dzn
data = {
"n": 4,
"arr": [True, False, False, True],
"f": 2.75,
}
with open("example.dzn", "w") as f:
f.write("\n".join(dzn.dict2dzn(data)))
example.dzn的内容将为:
n = 4;
arr = array1d(1..4, [true, false, false, true]);
f = 2.75;