繁体   English   中英

Choco求解器班次调度

[英]Choco solver shift scheduling

ima在Choco Solver中的总初学者。 我想做一个简单的排班表。 我设置了这样的整数变量

IntVar day1 = model.intVar("day1", new int[] {0,1,2,3,4,5});  

其中0,1,... 5是员工的参考ID。

我总共有30个变量(每个月的每天一个),因为这是每月一次的轮班时间表。 我设置了约束,例如不允许连续两天不上班。

我的问题是,我如何设置约束,以使每个雇主至少有5个班次,即 域中的每个值在所有30个变量中至少出现5次?

谢谢!

有几种方法可以做到这一点。 让我们看一下model.globalCardinality和model.count,这些约束使您能够计算一组变量使用值的次数。

http://choco-solver.org/apidocs/org/chocosolver/solver/constraints/IConstraintFactory.html

例如,model.count(3,vars,model.intVar(5,10))。post(); 表示vars中的5到10之间的变量应等于3,因此雇员3应该在5到10之间进行轮班。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM