Допустим, у меня есть P
человек (переменные), которые я хочу присвоить N
группам (значениям). Некоторые из этих людей несовместимы друг с другом, поэтому я sh назначу их в разные группы (эти ограничения довольно просты и не являются проблемой). Но как я могу также добавить ограничение (или ограничения), которое гарантирует, что не более чем p
(или p+1
, см. Примеры ниже) люди распределены в каждой группе (т.е. не более чем p
переменным присваивается значение n
)?
Например, для набора из P = 7
человек, которых я хочу разделить на группы по 2 человека, мне потребуются 2 группы по 2 человека и одна группа из 2 + 1 человека (в данном случае ) для размещения оставшегося человека. Для P = 8
и групп из 3 мне понадобятся N = 3
группы (одна группа из 2 и 2 группы из 3) и т. Д.
Надеюсь, это постановка задачи достаточно ясна. Я использую OR-Tools для C#, любая помощь приветствуется.