21
Scheduling problems
In this section we consider a very important class of problems involving
integer variables, arising from scheduling. We suppose we have
n
jobs, where
job
j
takes time
p
j
≥
0 to process, to schedule on a single machine.
We
cannot process two or more jobs simultaneously. We must choose an order in
which to schedule the jobs, and our goal is minimize the average completion
time for the jobs. (Why is this problem trivial if the goal is to minimize the
maximum completion time?)
For example, consider five jobs with the processing times shown below.
j
1
2
3
4
5
p
j
13
4
19
20
3
If we chose the scheduled order 5
,
2
,
1
,
3
,
4, then the completion times would
be 3
,
7
,
20
,
39
,
59, giving an average completion time of
128
5
.
Suppose we now add the following “precedence” constraints:
(1
,
3)
,
(1
,
4)
,
(2
,
4)
,
(2
,
5)
,
(4
,
5)
.
The pair (1
,
3), for example, means that job 1 must be finished before job
3 starts. We will try to model such problems as
mixed integer programming
problems
: some variables must be integers.
As a first try, for each job
j
we introduce a variable
c
j
that specifies the
completion time for that job. Our objective is then clear:
minimize
1
n
n
j
=1
c
j
.
We can also model the precedence constraints:
c
j
+
p
k
≤
c
k
for all precedence pairs (
j, k
)
.
However, to ensure jobs are never processed simultaneously, we need “dis
junctive” constraints: for each pair of jobs
j
=
k
,
either
j
comes before
k
or
k
comes before
j
. To keep track of this requirement we introduce binary
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
This is the end of the preview.
Sign up
to
access the rest of the document.
 Fall '08
 TODD
 Linear Programming, Optimization, Book of Job, cj yjk yjk, yjk yjk

Click to edit the document details