Lukas' Notes

computation scheduling

Definition

Graham's List Scheduling Algorithm

Graham’s list scheduling algorithm is a greedy algorithm for scheduling jobs on identical parallel machines with precedence constraints.
For an instance of

the jobs are given in an ordered list. Whenever a machine becomes available, the algorithm scans the list and assigns the first ready job to it. A job is ready if all its predecessors have already completed.

Algorithm

List rule

Given identical machines and a fixed list of jobs:

while (some job is unscheduled) {
    wait until some machine is available;
 
    scan L from left to right;
    choose the first unscheduled job j whose predecessors are complete;
    assign j to the available machine;
}

The list order is arbitrary input to the algorithm. The approximation guarantee holds for every list.

Approximation

Approximation ratio

For on identical machines, Graham’s list scheduling algorithm produces a schedule with makespan satisfying

where is the optimal makespan.

Idle-time argument be the job that finishes last in the schedule produced by the algorithm. Let be the predecessor of that finishes last. Continue backwards in the same way to obtain a chain

Let

This chain is a precedence path, so every feasible schedule must process it in this order. Therefore

Let be the total time during the algorithm’s schedule in which at least one machine is idle. A machine can be idle only while some job on the chain is being processed. Otherwise, the next chain job would have been ready and the algorithm would have assigned it earlier. Hence

Let be the total processing time. During the time units in which all machines are busy, jobs are processed in parallel. During the remaining time units, at least one machine may be idle. Equivalently, the average load per machine gives

Since every feasible schedule needs at least the average load,

Together with , this yields

Intuition

The proof separates the schedule into two kinds of time. Busy time is controlled by the total processing work . Idle time is controlled by one precedence chain leading to the last job. Both quantities are lower bounds on the optimal makespan.

Complexity

With a priority queue of machine availability times and explicit predecessor counts, the algorithm can be implemented in polynomial time. The exact running time depends on how the ordered list and precedence graph are represented.