Я строю модель CP-SAT, используя Google OR Tools в C #, чтобы решить вариацию задачи планирования медсестры, в которой есть переменное количество смен в день и переменное количество медсестер, доступных для работы в любой день эти сдвиги.
Следуя этому примеру из ShiftSchedulingSat.cs , я вижу, что есть способ легко реализовать это, если известно число смен в день и количество работников в день. Как я могу изменить это для работы с моими требованиями?
var model = new CpModel();
IntVar[,,] work = new IntVar[numEmployees, numShifts, numDays];
foreach (int e in Range(numEmployees))
{
foreach (int s in Range(numShifts))
{
foreach (int d in Range(numDays))
{
work[e, s, d] = model.NewBoolVar($"work{e}_{s}_{d}");
}
}
}