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

Specifying only a single index of a 1D array in a data file

考虑以下玩具模型,将其命名为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 ':'

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

一种方法是将第二个元素定义为 unknown/unassigned 值 (_),例如

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

这会产生两个解决方案:

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