MiniZinc 'ВНИМАНИЕ: обнаружено несоответствие модели'

Я уже довольно давно получаю ошибку несогласованности модели из-за этого ограничения и не могу понять, почему она появляется. Я понимаю, как возникает ошибка несоответствия модели, но не могу понять, почему это происходит здесь. Любая помощь горячо приветствуется.

int: n;
set of int: TEAMS=1..n;
array[int,int] of int: games;
set of int: pt={0,1,3};
set of int: numberOfGames=1..(length(games) div 2);
array[TEAMS] of var numberOfGames: num_losses;
array[numberOfGames, 1..2] of var pt: points;

constraint forall(i in TEAMS)(
  num_losses[i] = sum(j in numberOfGames where i=games[j,1]\/i=games[j,2])(
    if i=games[j,1] then
      (points[j,2] > 0)
    else
      (points[j,1] > 0)
    endif
  )
);

person Jack Wall    schedule 20.01.2020    source источник


Ответы (1)


Проблема возникает из-за того, что num_losses не может принимать значение 0. Вы можете определить новый набор с нулевым включением как set of int: numberOfGames0=0..(length(games) div 2) и переопределить num_losses как array[TEAMS] of var numberOfGames0: num_losses;

person Magnus Åhlander    schedule 20.01.2020