Optaplanner:一个计划实体中的计划变量列表?

时间:2014-08-04 08:08:56

标签: optaplanner drools-planner

我正在研究OptaPlanner的示例用例。而且我找不到任何可以在一个计划实体中解决多个计划变量的类似示例。例如,在护士排班中,一个班次的每个ShiftAssignment(PlanningEntity)可能需要多次分配Employee(PlanningVariables)。在这种情况下,我们如何使用规划器和编写规则?

1 个答案:

答案 0 :(得分:1)

不要将OneToMany方面作为计划变量,而是将ManyToOne方面作为计划变量。如果你有一个ManyToMany方面,介绍一个类(如关系数据库设计)和充当ManyToOne-OneToMany。

在护士排班示例中,ShiftShiftDate 1-JAN ShiftType早期需要4名护士。在这种情况下,ShiftrequiredEmployeeSize 4,并为该单ShiftAssignments创建了4 Shift,每个indexInShift都有不同的ShiftAssignment。这样,Employee有一个计划变量Shift,这是一个ManyToOne关系,(即使Employee和{{1}}之间存在ManyToMany关系)。