我目前是一家公司的实习生,该公司计划与Optaplanner进行任务分配问题的稍有不同的版本。因此,我认为研究Optaplanner中的示例将是有益的。
但是关于以下问题,我的教练和我的“实习生”无法帮助我:
问题: 如果我们通过Optaplanner API查看DOMAIN-MODEL:DOMAIN-MODEL for the task assignment problem
i)taskOrEmployee类代表什么?我很困惑,因为雇员和任务都继承了taskOrEmployee的属性。
ii)如果我们看代码,它说taskOrEmployee是一个规划实体(域模型中未显示),而employee是一个问题事实。为什么问题事实可以从计划实体继承?
总结:我显然不知道taskOrEmployee是什么。
亲切的问候
大卫
答案 0 :(得分:0)
TaskOrEmployee是Task和Employee都实现的接口。
这是使用链式计划变量的结果。对于将来的OptaPlanner版本,我们将支持类似
@PlanningEntity class Employee {
@PlanningVariableCollection // Not yet supported.
List<Task> taskList;
}
无论如何,现在您必须使用已链接的计划变量(请参阅文档)。
TaskOrEmployee有一个阴影变量(下一个任务),因此它需要@PlanningEntity批注。 Task具有真正的计划变量(上一个任务)(可能还有阴影变量),因此也需要@PlanningEntity批注。