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

时间:2018-11-08 13:30:12

标签: project-planning integer-programming resource-scheduling

这与资源受限的项目计划问题(RCPSP)有关。这涉及到在可用人力的机器上的时间窗口中安排某些任务。这是以整数程序的形式设置的。我正在使用统一的离散时间表示。

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

由于外部原因,每个任务都具有与之关联的优先级。为了说明该目标,请考虑3个任务-优先级3、3、4的p1,p2,p3。 (两个优先级-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)。

在Integer编程范式中是否存在更强大的方法来实现此要求?

1 个答案:

答案 0 :(得分:0)

一种方法是:

  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 等等