gpt4 book ai didi

java - Optaplanner项目作业调度: weekends and holidays

转载 作者:太空宇宙 更新时间:2023-11-04 15:12:07 24 4
gpt4 key购买 nike

正如我在上一个问题中提到的,我正在使用优秀的 OptaPlanner库来创建一个应用程序,帮助自定义作业车间进行项目调度。该应用程序有以下要求:

“除非经理明确批准,否则应用程序不得在任何给定的周末或假期安排工作。”

我很好奇如何更改我的域模型或评分函数以纳入此要求。一个基本想法是将全局可再生资源(即员工)的工作能力从每月 30 天减少到每月 22 天(其中包括周末)。然而,我已经看出这是一种幼稚的做法;如果经理想要安排一名员工在某个特定的周六来,将员工的容量增加到 23 天并不意味着他们会被安排在该周六。事实上,据我所知,由于容量只是我们的 GlobalResource 模型中的一个简单整数,因此它无法根据上下文了解具体是哪一天。在我看来,我正在寻找的解决方案并未将“容量”定义为整数,而是一个二进制值数组,其中:

容量[d] = x,其中d是月份中的第几天, x 是资源的可用性(1 或 0)。假设没有经理愿意在某个周六安排作业,则该周六全局所有可再生资源的产能将为 0。

这可能与 OptaPlanner 示例中给出的护士排类问题重叠。或者,也许我是从完全错误的角度来处理这个问题的。非常感谢任何有关解决此问题的提示。

最佳答案

我首先添加一个域类 ManagerApproval 来捕获额外的数据输入,即作业和周末日期之间的批准关系。

对于周四至周二未经批准的作业,周末不会计入完成作业。对于周四到周二批准的工作,情况会比较棘手,因为理论上,计划者可以决定使用或不使用周六(这将影响工作在周二或周一结束)。因此,听起来您需要一个额外的计划变量来捕获该差异......

至于约束,我希望使用周末日期会造成(高于正常情况)软约束权重。

关于java - Optaplanner项目作业调度: weekends and holidays,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21205981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com