CO454 Scheduling Theory, Spring 2009

Instructor: Deeparnab Chakrabarty (Office: MC4009, Email: deepc[at]uwaterloo.ca)
          Time: Tuesday - Thrusday 11:30am - 12:50pm
          Location: MC4060
          Office Hours: Fridays 11am - 1pm

Teaching Assistant: Irene Pivotto (Office: DC3145, Email: ipivotto[at]math.uwaterloo.ca)
          Office Hours: Tuesdays 3pm - 4pm, Fridays 2pm - 3pm

Home         Course Information         Announcements         Assignments, Solutions and Notes
Lecture Notes
Lecture 1 (May 5) Introduction, Framework and Notations, Regular performance measures
Lecture 2 (May 7) Visualizing Schedules, Classes of Schedules
Lecture 3 (May 12) Reduction among problems, (1||\sum C_j), (1||\sum w_jC_j)
Lecture 4 (May 14) Average completion time with release dates, SRPT for preemptive schedules, CFP for a factor $2$ approximation algorithm.
Lecture 5 (May 19) EDD for (1||L_{max}), LCL for (1|| f_{max})
Lecture 6 (May 21) Dynamic Programming, Knapsack problem
Lecture 7 (May 26) DP for (1||\sum w_jU_j)
Lecture 8,9,10 (May 28, Jun 2,4) Polynomial time reductions, complexity classes, P, NP, NP-completeness. Prof. Koenemann's notes (1) (2)
Lecture 11 (Jun 9) NP-hard Scheduling Problems
Lecture 12 (Jun 11) Identical Parallel Machines (P||C_{max})
Lecture 13 (Jun 16) More list scheduling algorithms
Lecture 14 (Jun 18) TSP
Lecture 15,16,17 (Jun 30, Jul 2,7) LP based algorithms, factor 2 for (R||C_max)
Lecture 18 (Jul 9) LP based algorithms, factor 2 for (1|prec|\sum w_jC_j)
Lecture 19,20,21 (Jul 14,16,21) Shop Scheduling problems. This material is covered from Chapter 6,7 of the book. My handwritten notes for the shifting bottleneck rule is (here). Needless to say, this is to be complemented with your own notes in class, or from the reading of Chapter 7 from the book.

Homework Assignemnts
Homework 1 (Due: May 21st) Solution
Homework 2 (Due: June 4th) Solution
Homework 3 (Due: June 18th) Solution
Homework 4 (Due: June 30th) Solution
Homework 5 (Due: July 21st) Solution
Homework 6 (Due: July 28th) Solution

For the last homework you will need access to an LP solver. You might have been acquainted with one from your CO350 course. You can use your favorite one. Here is a java applet which should suffice for your purpose. The applet is (here) . A guide is of how to use it is given in the same page. I am attaching a sample output of solving a simple LP here (here). By the way, you should be careful that the applet might right 1.19999 for 1.2: feel free to round, and then check that everything's ok.