I'm working on a scheduling problem where I need to schedule a set of n weighted jobs that are partitioned into m groups, where the jobs within each group have disjoint availability intervals, a release time s, a deadline e, a weight w, and a duration t, on a single machine with k availability intervals. The goal is to maximize both the number of scheduled jobs and the sum of their weights, subject to following constraints:

  • No two scheduled jobs can overlap.
  • For each group, at most one job can be scheduled.
  • Each scheduled job must start after its release time and finish before its deadline.

I'm interested in learning more about the solution to this problem, including references to papers or textbooks that discuss it in detail, as well as any equivalent problems or different formulations that might be easier or more efficient to solve. Specifically, I'm wondering:

  • What is the best algorithm for solving this problem, and how does it work?
  • Are there any approximations or heuristics that can be used to solve this problem efficiently?
  • Are there any equivalent problems or different formulations that are easier to solve or have been studied more extensively in the literature?

I've done some research on my own, but I'm still not sure where to start. Any guidance or advice would be greatly appreciated. Thank you!

  • $\begingroup$ Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. $\endgroup$
    – Community Bot
    Apr 1, 2023 at 15:03

1 Answer 1


Your problem can be formulated as an instance of the weighted interval scheduling problem (WISP), which is a well-studied problem in the literature. In WISP, we are given a set of jobs with release times, deadlines, weights, and durations, and the goal is to schedule a maximum-weight subset of non-overlapping jobs.

Here's how you can reduce your problem to WISP: For each job in your problem, create an interval starting at its release time and ending at its deadline, with weight equal to the job's weight. Then, apply any existing algorithm for WISP to this set of intervals.

There are several efficient algorithms for WISP, including dynamic programming and greedy algorithms. One of the most well-known algorithms is the earliest deadline first (EDF) algorithm, which schedules jobs in order of their deadlines and can be implemented in O(n log n) time using a priority queue.

If you have multiple groups of jobs with disjoint availability intervals, you can solve each group separately using WISP and then combine the results. If you have multiple groups of jobs with overlapping availability intervals, you can first merge the intervals for each group and then solve the resulting instance of WISP.

There are also several approximation algorithms and heuristics for WISP, including greedy algorithms that schedule jobs based on their weights or ratios of weight to duration, and randomized rounding algorithms that round fractional solutions to integer solutions.

Finally, there are several equivalent formulations and related problems to WISP, including the interval coloring problem, which is the dual of WISP and asks for a minimum number of colors to color the intervals so that no two overlapping intervals have the same color. There are also variants of WISP with additional constraints, such as precedence constraints and resource constraints.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.