{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

sec21_Notes

# sec21_Notes - 21 Scheduling problems In this section we...

This preview shows pages 1–2. Sign up to view the full content.

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.

{[ snackBarMessage ]}