【发布时间】:2014-02-07 23:15:11
【问题描述】:
正如我在上一个问题中提到的,我正在使用出色的 OptaPlanner 库来创建一个应用程序,该应用程序可以帮助自定义作业车间进行项目调度。该应用程序具有以下要求:
“除非经理特别批准,否则应用程序不得在任何给定的周末或节假日安排工作。”
我很好奇如何更改我的域模型或评分函数以纳入此要求。一个基本想法是将全球可再生资源(即员工)的产能从每月 30 天减少到每月 22 天(包括周末)。但是,我已经可以看出这是一种幼稚的方法。如果经理想要安排员工在某个特定的星期六来上班,那么将员工的工作时间增加到 23 天并不意味着他们将被安排在那个星期六。事实上,据我所知,由于容量只是我们 GlobalResource 模型中的一个简单整数,因此它不会根据上下文知道这些日期是哪一天。在我看来,我正在寻找的解决方案并未将“容量”定义为整数,而是将二进制值数组定义为:
容量[d] = x,其中 d 是一个月中的第几天, x 是资源的可用性(1 或 0)。假设没有经理想在给定的星期六安排工作,那么每个全球可再生资源在该特定星期六的容量都将为 0。
这可能与 OptaPlanner 示例中给出的护士排班问题重叠。或者,也许我从完全错误的角度来处理这个问题。非常感谢任何有关解决此问题的提示。
【问题讨论】:
标签: java optaplanner