会议会话调度算法

时间:2015-07-13 20:43:19

标签: algorithm constraints schedule capacity-planning

我正在从事个人项目工作,我需要一些帮助,让我的想法直接用于调度算法。

想象一下,您正在主持会议:

  • 参与者需要自动分配到8个可能的研讨会中的6个,并且全天3个可能的讲座中有2个。
  • 参加者只能参加一次研讨会或讲座(没有预定的重复次数)。
  • 每个人都在中午去吃午饭。
  • 参加者应在午餐前休息一下,然后休息一下。
  • 工作坊长达30分钟,讲座长达60分钟。
  • 讲座仅在上午9点,上午11点,下午1点和下午3点开放,否则与会者将参加研讨会或休息。

理想情况下,基本时间表将是两种变体之一(唯一的区别是他们参加的讲座和时间):

  • 上午9点 - 中午:3个工作坊,休息时间和讲座(A或B)
  • 下午1点 - 下午4点:3个工作坊,休息室和讲座(B或C)

OR

  • 上午9点 - 中午:讲座(A或B),休息,3个研讨会
  • 下午1点 - 下午4点:讲座(B或C),休息,3个研讨会

我有一份员工清单,我可以构建"会议"我想要的信息表。但最后我需要能够遍历员工,找出时间表然后存储,以便我们以后再打印。

你会怎么做?我非常乐意详细介绍其他约束/要求。

1 个答案:

答案 0 :(得分:0)

由于我们想要的时间表类型的参数非常简单:

  
      
  • 上午9点至中午:3个讲习班,休息和下午1点的演讲(A或B)
  •   
  • 下午4点:3个讲习班,一次休息和一次讲座(B或C)
  •   
     

OR

     
      
  • 上午9点至中午:演讲(A或B),休息,3个工作坊
  •   
  • 下午1点-下午4点:讲座(B或C),休息,3个工作坊
  •   

这意味着我们只能生成数量有限的排列。我们解决此问题的方法是为每个排列生成一个示例计划(在我们的示例中,大约是16个不同的计划),然后打印足够的副本并在员工到达时随机分发。