我被分配了一个项目,该项目要求安排(制定时间表)约 30 个资源,每天 2 个班次,为期 6 个月,具有非常复杂的硬约束,例如
- 没有连续的天班
- 对于每个资源:总夜班(和白班)总和,精细分布....SumShifts(Mondays)=SumShifts(Tuesdays)....
- 对于所有资源:SumTotalDayShifts(和夜班)分发
- 无法使用 resource_y 为 day_x 上的各种其他约束(如 resource_a)分配班次。
最初,我决定构建数学模型,对其进行编码并用 GA 求解。然后我发现了 Drools,它看起来很有前途……但有一个学习期。
选择哪种方式?有任何想法吗?