I am doing some research regarding (resource-constrained) scheduling, and in several papers I find multi-project scheduling problems. What is so special about multi-project scheduling problems compared to single-project scheduling problems?

This is what I understand the problems to be:

The single-project scheduling problem consists of a set of tasks with temporal relationships between those tasks (defining lower and/or upper bounds between start or end times of tasks), and a set of resources. Tasks require resources during execution, which are released when execution is finished. Depending on the problem that is being solved, different properties are optimized (for example makespan or tardiness).

The multi-project scheduling problem consists of several such projects, which can have different release dates or deadlines.

My intuition is that the multi-project scheduling problem can be very easily reduced to the single-project scheduling problem by combining the tasks and temporal constraints and adding some dummy tasks and constraints to create a single release time and deadline for the whole instance.

There are two reasons why this bothers me:

  1. If there is no actual difference between the two problems, why bother with having distinct problems?
  2. Having multiple projects requires extra indices (for example $e_{ijmM}$ instead of $e_{imM}$, or a[i][j][m][M] instead of a[i][m][M] in code). This makes it harder to work with and increases the probability of errors, both in notation and in code.

Therefore my question is: is there a use for the distinction between single- and multi-project scheduling?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.