35-5 Parallel machine scheduling

In the parallel-machine-scheduling problem, we are given nn jobs, J1,J2,,JnJ_1, J_2, \dots, J_n, where each job JkJ_k has an associated nonnegative processing time of pkp_k. We are also given mm identical machines, M1,M2,,MmM_1, M_2, \dots, M_m. Any job can run on any machine. A schedule specifies, for each job JkJ_k, the machine on which it runs and the time period during which it runs. Each job JkJ_k must run on some machine MiM_i for pkp_k consecutive time units, and during that time period no other job may run on MiM_i. Let CkC_k denote the completion time of job JkJ_k, that is, the time at which job JkJ_k completes processing. Given a schedule, we define Cmax=max1jnCjC_{\max} = \max_{1 \le j \le n} C_j 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 M1M_1 and M2M_2 and that we have four jobs J1,J2,J3,J4J_1, J_2, J_3, J_4, with p1=2p_1 = 2, p2=12p_2 = 12, p3=4p_3 = 4, and p4=5p_4 = 5. Then one possible schedule runs, on machine M1M_1, job J1J_1 followed by job J2J_2, and on machine M2M_2, it runs job J4J_4 followed by job J3J_3. For this schedule, C1=2C_1 = 2, C2=14C_2 = 14, C3=9C_3 = 9, C4=5C_4 = 5, and Cmax=14C_{\max} = 14. An optimal schedule runs J2J_2 on machine M1M_1, and it runs jobs J1J_1, J3J_3, and J4J_4 on machine M2M_2. For this schedule, C1=2C_1 = 2, C2=12C_2 = 12, C3=6C_3 = 6, C4=11C_4 = 11, and Cmax=12C_{\max} = 12.

Given a parallel-machine-scheduling problem, we let CmaxC_{\max}^* 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,

Cmaxmax1knpk.C_{\max}^* \ge \max_{1 \le k \le n} p_k.

b. Show that the optimal makespan is at least as large as the average machine load, that is,

Cmax1m1knpk.C_{\max}^* \ge \frac 1 m \sum_{1 \le k \le n} p_k.

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

Cmax1m1knpk+max1knpk.C_{\max} \le \frac 1 m \sum_{1 \le k \le n} p_k + \max_{1 \le k \le n} p_k.

Conclude that this algorithm is a polynomial-time 22-approximation algorithm.

(Omit!)