У меня есть программа MiniZinc с 3 массивами переменных следующего вида:MiniZinc объединить массивы переменных индекса
array[NbLines] of var Domain: vars1;
array[NbLines, NbRows] of var Domain: vars2;
array[NbLines, NbRows] of var Domain: vars3;
мне нужно указать свой поиск переменную порядок следующим образом, но я не успех правильно построить массив. Существует код MiniZinc:
varsOrder = [[vars1[i]] ++ row(vars2, i) ++ row(vars3, i) | i in NbLines]
MiniZinc указывает, что массивы не допускаются в выражениях распознавания массива. Как мне это сделать?
Благодарим за помощь.
Как вы думаете, что Minizinc может быть озадачен тем фактом, что ваш vars1 имеет только одно измерение и поэтому полностью определяется один индекс, но vars2 и 3 - 2-мерные массивы, поэтому только один индекс, как представляется, указывает на 1-мерный массив в результате? –
Я пропустил скобки вокруг [vars1 [i]] (отредактирован) в моем примере. Тем не менее, это дает ошибку: «MiniZinc: ошибка типа: выражение понимания массива не может быть массивом». – Bach62