Экспресс ограничение хранилища по геокоду (Ch15 документа геокода)

Не могу понять ограничение на стр. 192 «Не превышайте емкость».

IntSetArgs c(n_warehouses);
for(int w = 0; w < n_warehouses; ++w){
c[w] = IntSet(0, capacity[w]);
//IntSet(0, 1) == {}, {0}, {1}, {0, 1}
}
count(*this, supplier, c, ICL_DOM);

В документе говорится, что функция count создает ограничение, которое равно «Не превышать емкость».
Но я не знаю почему?

1: в чем разница с ICL_DOM и без него?

2: Согласно 4.4.8 (стр. 63)

если c не является множеством, но IntArrayArgs и без ICL_DOM, это похоже на публикацию
ограничение как следующее?

int capacity[] = {1, 4, 2, 1, 3};

supplier[0] == 0  == c[0] == 1
supplier[0] == 1  == c[1] == 4
supplier[0] == 2  == c[2] == 2
supplier[0] == 3  == c[3] == 1
supplier[0] == 4  == c[4] == 3

supplier[1] == 0 == c[0] == 1 //and so on

Что если c — это множество? это означает, что ограничение станет

supplier[0] == 0 == c[0] == 0, 1
supplier[0] == 1 == c[1] == 0, 1, 2, 3, 4
//....
supplier[1] == 0 == c[0] == 0, 1
supplier[1] == 1 == c[1] == 0, 1, 2, 3, 4 //and so on?

Я не понимаю, почему это может привести к ограничению «Не превышать емкость».

по мне так и должно быть (псевдокоды)

rel(*this, sum(supplier == 0) <= 1);
rel(*this, sum(supplier == 1) <= 4);
rel(*this, sum(supplier == 2) <= 2);
rel(*this, sum(supplier == 3) <= 1);
rel(*this, sum(supplier == 4) <= 3);

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …