资源受限的项目日程安排,以便根据最高优先级安排任务



这是关于资源受限项目调度问题(RCPSP(。这涉及到根据人力的可用性在机器的时间窗口内安排某些任务。这是以整数程序的形式设置的。我使用的是一个统一的离散时间表示。

如果活动i计划在离散时间点t开始,则决策变量为x_it:x_it=1。

由于外部原因,每个任务都有一个与其关联的优先级。为了说明目标,考虑3个任务——p1、p2、p3,优先级为3,3,4。(两个优先级-3,4(要求是这样的——如果有足够的人力来安排p1&p2或p3,即使p1+p2>p3也必须选择p3。我正在寻找一种使用决策变量x_it实现这个逻辑的方法。

我尝试以以下方式实现我的需求:为每个任务分配一个新的优先级(p(:P1=3,P2=3,P3=7;从本质上讲,这包括缩放每个优先级,以使较低优先级任务的组合不能高于该优先级,并将目标函数设置为"最大化P_i*x_it">

这种方法的问题是,当扩展一大组任务(~300个任务(和多个优先级(20个级别(时,新的优先级值很快就会变成巨大的数字(~10^17(。

在整数编程范式中,有没有更稳健的方法来实现这一要求?

一种方法是:

  1. 求解优先级最高的作业(比如优先级1(。让计划的作业数为n1
  2. 添加约束:scheduled number of jobs with priority 1 = n1
  3. 解决优先级为1和2的作业。设优先级为2的计划作业数为n2
  4. 添加约束:scheduled number of jobs with priority 2 = n2等等

最新更新