# Chapter 3: Single Machine Models

IOE/MFG 543
Chapter 3: Single machine models
(Sections 3.1 and 3.2)
1
Sec. 3.1: The total weighted
completion time 1||S wjCj

Criteria for scheduling
– Shorter jobs processed first => more jobs finish
early
– The higher the weight the earlier a job should
finish


Weighted shortest processing time first rule
(WSPT)
– order the jobs in decreasing order of wj /pj
Theorem 3.1.1
– The WSPT is optimal for 1||S wjCj
2
Precedence constraints


Chains 12 ... k
r -factor (largest ratio of weight and
processing times)

r (1,2,..., k ) 

l*
j 1
l*
wj
p
j 1 j

 max

l
1l  k
j 1
l
j 1
wj
pj
3
Algorithm 3.1.4 for chains
1. Whenever a machine is freed, schedule
among the remaining chains the one with
the highest r –factor
2. Process this chain without interruption up
to and including the job l* that determines
the r –factor
Do example on slide 7
4
1|| Σwj(1-e-rCj)

Weighted discounted shortest
processing time first rule (WDSPT)
– Order jobs in non-increasing order of
wje-rpj
1-e-rpj
– Gives the optimal schedule (Thm. 3.1.6)

Algorithms for chains also exist
5
Summary of other
completion time models
1 | prec | wjCj with
strongly NP-hard
arbitrary precedence
relation
1 | rj, prmp | wjCj
NP-hard
1 | rj, prmp | Cj
SRPT rule
1 | rj | Cj
NP-hard
6
Example 3.1.5


There are 2 chains
12 34 and 567
The weights and processing times are
job j
wj
pj

1
6
3
2
18
6
3
12
6
4
8
5
5
8
4
6
17
8
7
18
10
Determine the schedule that minimizes the
total weighted completion time
7
Section 3.2
The maximum lateness


Due date related
The problem 1 || Lmax is easy
– For a single machine problem with
regular objective functions Cmax=Spj
– Lmax=maxi{1,…,n} Li (Li =Ci-di)
– Select jobs in increasing order of their
due dates => earliest due date first rule
(EDD)
8
Backward algorithm for
1|prec|hmax

hmax=max(h1(C1),…,hn(Cn))
– The functions hi are nondecreasing

J is the set of jobs already scheduled
– Jobs in J are processed in the interval
[


Cmax-
pj, Cmax
S
]
jJ
Jc is the set of jobs still to be scheduled
J' is the set of jobs that can be
scheduled (schedulable jobs)
9
Algorithm 3.2.1 for
1|prec|hmax
1. Set J=, Jc={1,…,n} and let J' be all jobs
that have no successors
2. Determine


j*  arg min h j   pk 
jJ '
kJ c


Delete j* from Jc
Modify J' to represent the new set of
schedulable jobs (have no successors)
3. If Jc=  STOP, otherwise go to 2
10
Example 3.2.3

Use Algorithm 3.2.1 to determine the
schedule that minimizes hmax and
compute the optimal value
job j
1
2
3
pj
2
3
5
1+ C1 1.2 C2
10
hj (Cj)
11
Theorem 3.2.2.


Algorithm 3.2.1. yields an optimal
schedule for 1 | prec | hmax
Proof:
12
Release dates
1 | rj | Lmax



Significantly harder than 1 | prec | Lmax
It may be optimal to keep the machine
idle to wait for the release of a new
job (not a nondelay schedule)
Theorem 3.2.4.
– The problem 1 | rj | Lmax is strongly NPhard
– Reduces from 3-PARTITION
13
Branch and bound

A method of effective enumeration
– Generate a node tree



Compute the objective of a feasible
schedule (feasible node)
Compute lower bounds for a class of
schedules (node)
The node can be eliminated if the lower
bound is higher than the cost of a schedule
obtained earlier
14
Branch and bound for
1 | rj | Lmax

Branching
– Level 0: single node and no jobs have
been scheduled
– Level 1: n nodes such that job j is
scheduled first at node j
– Level k: jobs in the first k positions have
been specified
15
Branch and bound for
1 | rj | Lmax (2)

Branching
– At a node let J be the set of jobs that
have not been scheduled
– Also let t be the time when a job can
start processing at the node
– Only create a node for job j at the node if
rj<minlJ(max(t,rl)+pl)
16
Branch and bound for
1 | rj | Lmax (3)

Bounding
– At each node compute the optimal value
using 1 | rj , prmp | Lmax for the remaining
jobs
– Preemptive EDD rule is optimal for 1 | rj ,
prmp | Lmax
– If the preemptive solution gives a nonpreemptive schedule then it is feasible
17
Example 3.2.5

Use branch and bound to determine
the schedule for 1 | rj | Lmax and
compute the optimal value for
job j
1
2
3
4
pj
4
2
6
5
rj
0
1
3
5
dj
8
12
11
10
18