会议 Session 调度算法
Conference Session Scheduling Algorithm
我正在做一个个人项目,我需要一些帮助来让我的想法直接关于调度算法。
假设您正在主持一个会议:
- 全天需要将与会者自动分配到 8 个可能的研讨会中的 6 个,以及 3 个可能的讲座中的 2 个。
- 与会者只能参加一次研讨会或讲座(没有预定的重复)。
- 大家中午去吃午饭。
- 与会者应在午餐前休息一会,午餐后休息一会。
- 研讨会时长 30 分钟,讲座时长 60 分钟。
- 讲座仅在上午 9 点、上午 11 点、下午 1 点和下午 3 点开放,否则与会者正在研讨会或休息时间。
理想情况下,基本时间表将是以下两种变体之一(唯一的区别是他们参加的讲座和时间):
- 上午 9 点 - 中午:3 个工作坊、休息时间和一次讲座(A 或 B)
- 下午 1 点 - 4 点:3 个工作坊、休息时间和一个讲座(B 或 C)
或
- 上午 9 点 - 中午:讲座(A 或 B)、休息、3 个工作坊
- 下午 1 点 - 4 点:讲座(B 或 C)、休息、3 个工作坊
我有一份员工名单,我可以根据需要构建 "session" 信息表。但最后我需要能够遍历员工,找出一个时间表,然后存储它,以便我们稍后打印。
你会怎么做?我非常乐意详细介绍其他限制/要求。
因为我们想要的时间表类型的参数非常简单:
- 9am - noon: 3 workshops, a break, and a lecture (either A or B) 1pm
- 4pm: 3 workshops, a break, and a lecture (either B or C)
OR
- 9am - noon: Lecture (either A or B), a break, 3 workshops
- 1pm - 4pm: Lecture (either B or C), a break, 3 workshops
这意味着我们可以生成的排列数量有限。我们解决这个问题的方法是为每个排列生成一个示例时间表(在我们的例子中,大约有 16 个不同的时间表),然后打印足够的副本并在员工到达时随机分发。
我正在做一个个人项目,我需要一些帮助来让我的想法直接关于调度算法。
假设您正在主持一个会议:
- 全天需要将与会者自动分配到 8 个可能的研讨会中的 6 个,以及 3 个可能的讲座中的 2 个。
- 与会者只能参加一次研讨会或讲座(没有预定的重复)。
- 大家中午去吃午饭。
- 与会者应在午餐前休息一会,午餐后休息一会。
- 研讨会时长 30 分钟,讲座时长 60 分钟。
- 讲座仅在上午 9 点、上午 11 点、下午 1 点和下午 3 点开放,否则与会者正在研讨会或休息时间。
理想情况下,基本时间表将是以下两种变体之一(唯一的区别是他们参加的讲座和时间):
- 上午 9 点 - 中午:3 个工作坊、休息时间和一次讲座(A 或 B)
- 下午 1 点 - 4 点:3 个工作坊、休息时间和一个讲座(B 或 C)
或
- 上午 9 点 - 中午:讲座(A 或 B)、休息、3 个工作坊
- 下午 1 点 - 4 点:讲座(B 或 C)、休息、3 个工作坊
我有一份员工名单,我可以根据需要构建 "session" 信息表。但最后我需要能够遍历员工,找出一个时间表,然后存储它,以便我们稍后打印。
你会怎么做?我非常乐意详细介绍其他限制/要求。
因为我们想要的时间表类型的参数非常简单:
- 9am - noon: 3 workshops, a break, and a lecture (either A or B) 1pm
- 4pm: 3 workshops, a break, and a lecture (either B or C)
OR
- 9am - noon: Lecture (either A or B), a break, 3 workshops
- 1pm - 4pm: Lecture (either B or C), a break, 3 workshops
这意味着我们可以生成的排列数量有限。我们解决这个问题的方法是为每个排列生成一个示例时间表(在我们的例子中,大约有 16 个不同的时间表),然后打印足够的副本并在员工到达时随机分发。