任务分配示例的域模型推理不清楚

Reasoning of the Domain Model for the task assignement example not clear

我目前是一家公司的实习生,该公司计划使用 Optaplanner 解决任务分配问题的一个稍微不同的版本。所以我想,学习一下 Optaplanner 的例子会很有帮助。

但是关于下面的问题,我的导师和我的"co-intern"帮不了我:

问题: 如果我们从 Optaplanner API:DOMAIN-MODEL for the task assignment problem

查看 DOMAIN-MODEL

i) class taskOrEmployee 代表什么?我很困惑,因为employee和task都继承了taskOrEmployee的属性。

ii) 如果我们看一下代码,它说 taskOrEmployee 是一个规划实体(领域模型中没有显示),但是 employee 是一个问题事实。为什么问题事实可以继承自规划实体?

总结:我显然不知道taskOrEmployee是什么

亲切的问候

大卫

TaskOrEmployee 是Task 和Employee 共同实现的接口。

这是使用链式规划变量的结果。对于未来的 OptaPlanner 版本,我们将支持类似

的内容
@PlanningEntity class Employee {

     @PlanningVariableCollection // Not yet supported.
     List<Task> taskList;
}

无论如何,现在您必须使用链式计划变量(请参阅文档)进行到期。

TaskOrEmployee 有一个影子变量(下一个任务),所以它需要一个@PlanningEntity 注解。任务有一个真正的计划变量(前一个任务)(也可能是一个影子变量),所以也需要一个@PlanningEntity 注释。