Lawler’s algorithm is a powerful technique for solving a variety of constrained scheduling problems. The algorithm handles any precedence constraints. It schedules a set of simultaneously arriving tasks on one processor with precedence constraints to minimize maximum tardiness or lateness. Precedence constraints occur when certain jobs must be completed before other jobs can be started.
The objective function is assumed to be in the form m i n m a x 0 ≤ i ≤ n g i ( F i ) , where g i is any nondecreasing function and F i is the flow time. When g i ( F i ) = F i − d i = L i , the objective function corresponds to minimizing the maximum lateness, where d i is due time for job i and L i lateness of job i . Another expression is g i ( F i ) = m a x ( F i − d i , 0 ) , which corresponds to minimizing the maximum tardiness.
The algorithm works by planning the job with the least impact as late as possible. Starting at t = ∑ p j .
S set of already scheduled jobs (at start: S =
∅ )
J set of jobs which successors have been scheduled (at start: all jobs without successors)
t time when the next job will be completed (at start:
t = ∑ p j )
while J ≠ ∅ : select
j ∈ J such that
f j ( t ) = m i n k ∈ J f k ( t ) schedule
j such that it completes at time
t add
j to
S , delete
j from
J and update
J .
t = t − p j end whileMichael Pinedo. Scheduling: theory, algorithms, and systems. 2008. ISBN 978-0-387-78934-7Conway, Maxwell, Miller. Theory of Scheduling. 1967. ISBN 0-486-42817-6