Согласно ограничениям, у y есть два индекса, i и j, но ваш код дает ему только один индекс.
Должно быть что-то вроде:
var y {1..njobs,1..njobs} binary;
subject to overlap
{i in 1..njobs, j in i+1..njobs: i<>j}:
xi[i] + si[i] <= xi[j]+m*y[i,j];
subject to order
{i in 1..njobs, j in i+1..njobs: i<j}:
y[i,j] + y[j,i] = 1;
В настоящее время поведениекогда i = j не определено. Вы можете либо добавить ограничение, которое определяет поведение в этом случае, либо исключить его из индексного пространства при объявлении y, например:
var y {i in 1..njobs,j in 1..njobs: i <> j} binary;