Chapter 3: Single Machine Models
Download
Report
Transcript 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 12 ... 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
1l 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
12 34 and 567
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
]
jJ
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
jJ '
kJ c
Add j* to J
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<minlJ(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