35-5 Parallel machine scheduling
In the parallel-machine-scheduling problem, we are given jobs, , where each job has an associated nonnegative processing time of . We are also given identical machines, . Any job can run on any machine. A schedule specifies, for each job , the machine on which it runs and the time period during which it runs. Each job must run on some machine for consecutive time units, and during that time period no other job may run on . Let denote the completion time of job , that is, the time at which job completes processing. Given a schedule, we define to be the makespan of the schedule. The goal is to find a schedule whose makespan is minimum.
For example, suppose that we have two machines and and that we have four jobs , with , , , and . Then one possible schedule runs, on machine , job followed by job , and on machine , it runs job followed by job . For this schedule, , , , , and . An optimal schedule runs on machine , and it runs jobs , , and on machine . For this schedule, , , , , and .
Given a parallel-machine-scheduling problem, we let denote the makespan of an optimal schedule.
a. Show that the optimal makespan is at least as large as the greatest processing time, that is,
b. Show that the optimal makespan is at least as large as the average machine load, that is,
Suppose that we use the following greedy algorithm for parallel machine scheduling: whenever a machine is idle, schedule any job that has not yet been scheduled.
c. Write pseudocode to implement this greedy algorithm. What is the running time of your algorithm?
d. For the schedule returned by the greedy algorithm, show that
Conclude that this algorithm is a polynomial-time -approximation algorithm.
(Omit!)