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

时间:2018-07-03 12:25:43

标签: optaplanner

我目前是一家公司的实习生,该公司计划与Optaplanner进行任务分配问题的稍有不同的版本。因此,我认为研究Optaplanner中的示例将是有益的。

但是关于以下问题,我的教练和我的“实习生”无法帮助我:

问题: 如果我们通过Optaplanner API查看DOMAIN-MODEL:DOMAIN-MODEL for the task assignment problem

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

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

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

亲切的问候

大卫

1 个答案:

答案 0 :(得分:0)

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

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

@PlanningEntity class Employee {

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

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

TaskOrEmployee有一个阴影变量(下一个任务),因此它需要@PlanningEntity批注。 Task具有真正的计划变量(上一个任务)(可能还有阴影变量),因此也需要@PlanningEntity批注。