Я думаю, что-то подобное может помочь:
forall (i in IndexSetForAssign)
Assign[i] == (sum (p in People) (startingWeekChanges[p] == i) >= 1);
Устанавливает Assign[i]
в 1, если хотя бы один startingWeekChanges[p]
имеет значение i
.Если нет, тогда для Assign[i]
устанавливается значение 0.
Вышеприведенные выражения используют тот факт, что вы можете использовать значение истинности (1, если истинно, 0 в противном случае) ограничения для моделирования.