Optaplanner:如何管理列表的PlanningVariable?

时间:2016-12-05 16:36:17

标签: optaplanner

我从MeetingScheduling示例开始我的问题。

我有参与者分组,每个参与者都有一个他不在的插槽列表:

public class Participant {
    private Group group;
    private List<Slot> unavailabilityList;
}

我在小组之间进行会议,对于每次会议,计划员必须分配: - 一个时间段 - 对于每个组,此选定位置的可用参与者

@PlanningEntity()
public class Meeting {
    private List<Group> groupList;

    /** @PlanningVariable ? */
    private List<Participant> participantList;

    private Slot slot;

    @PlanningVariable(valueRangeProviderRefs = {"slotRange"}, nullable = true)
    public Slot getSlot() {
        return slot;
    }
}

目标是最大化分配的会议号码。

会议参加者名单需要是一个计划变量。 我在stackOverflow上的其他问题中读到,List上不可能有PlanningVariable。

如何解决此问题?

1 个答案:

答案 0 :(得分:2)

创建一个MeetingAssignment类,您可以在其中将单个参与者分配给会议。然后让会议只有小组名单和房间。

简要UML图:

Brief UML diagram