我正在使用C#中的Google OR工具构建一个CP-SAT模型,以解决护士排班问题的一个变体,其中每天有可变数量的轮班,并且在任何给定的一天都有可变数量的护士可以工作这些班次。
按照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}");
}
}
}发布于 2019-01-14 05:47:44
创建护士的最大值,并强制非班次的数量,或强制一些护士进行非班次。
https://stackoverflow.com/questions/54172763
复制相似问题