我正在做一个个人项目,我需要一些帮助才能将我的想法直接用于调度算法。
想象一下你正在主持一个会议:
- 与会者需要被自动分配到全天 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 个工作坊
我有一个员工列表,我可以根据需要构建“会话”信息表。但最后我需要能够遍历员工,找出一个时间表,然后将其存储起来,以便我们以后打印。
你会怎么做?我非常乐意详细介绍其他限制/要求。