我想将Employee
分配给Reserve
期间或Shift
期间。
@PlanningSolution
public class RosterSolution implements Solution<HardSoftScore> {
@PlanningEntityCollectionProperty
private List<Shift> shift = new ArrayList<Shift>();
@PlanningEntityCollectionProperty
private List<Reserve> reserve = new ArrayList<Reserve>();
....
}
每个Shift and Reserve实体都有一个@PlanningVariable
@PlanningVariable(valueRangeProviderRefs={"employees"}, nullable= true)
private Employee emp;
解决方案中可以使用多个@PlanningEntityCollectionProperty批注吗?我还没有看到其用法的任何示例。 @PlanningSolution下的文档指出“每个计划解决方案必须至少具有1个PlanningEntityCollectionProperty或PlanningEntityProperty属性”,但是我不确定如何实现它。
我试图避免使用类型编码的计划实体的单一列表,除非我可以“用状态/策略模式替换类型代码”(如果可能的话)。
最佳答案
是的你可以。示例CoachShuttleGatheringSolution
和VehicleRoutingSolution
做到了。
当您有多个计划实体类(其中一些可以是影子实体类)时,此功能很有用。但是除非确实需要,否则不要去那里。
关于java - 我可以在OptaPlanner中使用多个@PlanningEntityCollectionProperty吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37264702/