仅在数据文件中指定一维数组的单个索引

时间:2019-04-25 11:29:18

标签: minizinc

考虑以下玩具模型,将其命名为foo.mzn

int: n = 2;
array[1..n] of var 0..2: vert;

constraint vert[1] != vert[2];

solve satisfy;

The documentation (Listing 2.2.3)显示了一个示例,其中数据文件指定了整个数组。也就是说,您可以这样做:

./minizinc -D "vert=[0,1]" foo.mzn

但是,如果我只想指定数组的一个索引怎么办?能够做到的感觉很合理:

./minizinc -D "vert[1]=0" foo.mzn

但这会导致

Error: syntax error, unexpected =, expecting ':'

是否可以仅在数据文件中指定数组的单个索引?一种替代方法是不使用数组而删除,但这也许不是必需的。

1 个答案:

答案 0 :(得分:3)

一种方法是将第二个元素定义为未知/未分配的值(_),例如

./minizinc -D "vert[0,_]" foo.mzn

这产生两个解决方案:

vert: [0, 1]
vert: [0, 2]