Я хотел бы выполнить простую операцию приращения для определенных элементов массива:
Пример минимального неработающего:
array[1..2] of var 0..1: a = [0, 0];
constraint forall (i in 1..2) (
a[i] = a[i] + 1
);
output ["\(a)"];
solve satisfy;
Это дает результат minizinc
WARNING: model inconsistency detected
stack.mzn:3:
in call 'forall'
in array comprehension expression
with i = 1
stack.mzn:4:
in binary '=' operator expression
=====UNSATISFIABLE=====
% stack.fzn:1: warning: model inconsistency detected before search.
Почему это несоответствие модели - почему я не могу ссылаться на старое значение текущего элемента массива? Есть ли другой способ увеличить текущий элемент массива на 1?
Я новичок в решении ограничений, поэтому надеюсь, что это не такой уж и глупый вопрос.
x+1=x
- person Erwin Kalvelagen   schedule 15.03.2018