我一直在寻找一个明显比我最初想象的更不寻常的问题的解决方案。Optaplanner 看起来很有前途,但相对缺乏 Java 经验,我想在深入研究之前调查这是否完全不可能。
我正在尝试为 n 名员工安排任务。这里的主要区别在于,目的是让所有员工在任何特定时间都保持忙碌。完成任务所需的时间在很大程度上是次要的。这形成了具有以下变体的装箱/作业车间问题:
- 一维
- 任务之间的“相互关系”。例如,一项任务在开始之前可能依赖于另一项完成,而该任务可能归属于不同的工作人员
- 每个任务只能归于某些人
- 在任何给定时间跨箱的最小值将被最大化
据此,我认为任务所需的输入将是“最早开始时间”、“最晚完成时间”、“持续时间”、“与其他任务的链接”、“合适的工作人员”。然后任务应该落入每个员工的垃圾箱 - 就像俄罗斯方块一样!
这显然是我阅读的调度示例的一个转折点。你认为这是可以实现的吗?您是否会推荐任何预先存在的示例(手册中没有一个完全匹配)?
任何朝着正确方向的轻推将不胜感激 - 为这个问题的新手性质道歉。