0

我目前是一家公司的实习生,该公司计划用 Optaplanner 做一个稍微不同版本的任务分配问题。所以我认为,学习 Optaplanner 的例子是有益的。

但对于以下问题,我的导师和我的“实习生”帮不了我:

问题:如果我们从 Optaplanner API 中查看DOMAIN-MODEL:任务分配问题的 DOMAIN-MODEL

i) 类 taskOrEmployee 代表什么?我很困惑,因为员工和任务都继承了 taskOrEmployee 的属性。

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

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

亲切的问候

大卫

4

1 回答 1

0

TaskOrEmployee 是 Task 和 Employee 都实现的接口。

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

@PlanningEntity class Employee {

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

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

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

于 2018-07-03T15:51:27.177 回答