MiniZinc中沒有枚舉類型或類似。有一些提示說,在某些類型的枚舉中將包含在未來的版本中,儘管我很確定它是否可以與決策變量一起工作(「var int」),也許它只是參數(常量)變量。
這裏有一些有希望的相關旁註。
我傾向於做的是使用決策變量的數組:
int: n = 5;
array[1..n] of var int: x;
然後可以使用X [1]等。顯式陣列也經常需要 - 或者至少方便 - 在模型以簡化某些約束條件,如「all_different」等。
但是,在約束中使用命名變量通常會更好。
如果您還想在模型中使用名稱變量,則必須使用名稱定義它們並將它們連接到「x」數組。
var int: dog = x[1];
var int: cat = x[2];
var int: bird = x[3];
var int: mammal = x[4];
var int: horse = x[5];
或者以另一種方式然後連接:
int: n = 5;
var int: dog;
var int: cat;
var int: bird;
var int: mammal;
var int: horse;
array[1..n] of var int: x = [dog,cat,bird,mammal,horse];
[和我通常定義爲小域儘可能爲變量,例如「var 1..10:狗」等]