drools - 在任务分配 Optaplanner 中每天将一项任务分配给一位客户
问题描述
我需要有关 Optaplanner 任务分配更改的帮助,以下是相同的完整信息:-
我有 70 个任务,每个任务需要 2 到 8 个小时,这是为每个任务定义的,每个任务的优先级低,员工和客户之间的亲和力低,这些任务与 37 个客户相关联。
我的问题是,我如何将这些任务分配给员工,以便如果客户的任务分配给员工,那么在那一天,该客户的另一项任务不应分配给同一名员工或另一名员工。有人可以帮助解决 drl 规则或 java 约束吗?
解决方案
不知道您的数据模型,我将对可用字段进行一些假设。约束可能如下所示:
.from(Task.class)
.ifExistsOther(Task.class,
Joiners.equal(Task::getCustomer),
Joiners.equal(Task::getDay))
.penalize("Two tasks for the same customer on the same day", ...)
由你决定惩罚的力度。如果你想消除这种情况,你应该把它变成一个硬约束——打破这个约束的解决方案是不可行的。
(编辑)还有另一种选择,那就是使数据模型中的情况变得不可能。如果您为每个客户+天组合创建一个计划实体,那么单个客户绝对不可能在一天内完成更多任务。
推荐阅读
- aws-device-farm - 为什么 Appium python find_element_by_id 在 AWS 设备场中失败但在本地工作?
- github - 创建 github 站点/自定义页面/多个项目
- python - one_shot_iterator,占位符,无法捕获占位符
- c - 如何在不输入命令提示符的情况下将光标移动到下一行?
- c++ - 将一个类的对象声明为另一个类的成员 (C++)
- spring - xwEx 对 log4j2 的含义?
- c# - C#:通过单例类访问类的实例时如何修复 System.TypeInitializationException?
- python - 试图在 Python 中获取 .wav 文件的频率
- arrays - 将2个数组乘以第三个空白数组范围VBA(Excel)
- python - ImportError:没有名为 controller.api python 的模块?