You are on page 1of 3

IEOR 4405: Production Scheduling

Assignment 6
Deadline: 3/30/2022, 11:59pm

• The completed homework must be submitted online on gradescope (latexed, or scan/photo of


hand-written solutions).
• You are encouraged to work in groups on the problems sets. However, each person should write
up and code their answers individually. You are required to clearly indicate on the first page of
your assignment who you worked with.

Question 1 [25 points]. Consider P4 | prec | Cmax with 12 jobs.

j 1 2 3 4 5 6 7 8 9 10 11 12
pj 10 10 10 12 11 10 12 12 10 10 10 10

The jobs are subject to the precedence constraints depicted below

a) Apply the generalized version of the critical path rule: every time a machine is freed select the job
at the head of the path with the largest total amount of processing.
b) Apply the generalized version of the largest number of successors rule: every time a machine is
freed select the job that precedes the largest total amount of processing.
c) Is either one of these two schedules optimal?

Question 2 [25 points]. Consider P | | Cmax . Give an example of a set of jobs such that greedy on
m machines (you choose the order of priority of the jobs) gives a schedule such that
2m X
Cmax = · max{pmax , pj /m}.
m+1
P
Thus, for this schedule, Cmax is close to 2 times the lower bound max{pmax , pj /m} on OPT.
Hint: Find a set of jobs that is such that (1) one job has a long processing time p = m and (2) the
number of jobs depends on m.

1
Question 3 [25 points]. Consider P | rj , prec | Cmax . The greedy algorithm is the algorithm that,
when a machine becomes available, schedules an arbitrary job, among all the jobs ready for processing,
on that machine. A job is ready for processing if it has been released and if all its predecessors have
been completed.
Given an arbitrary instance with n jobs, consider the sequence of jobs q = (jk , jk−1 , . . . , j1 ) and
time t? defined inductively as follows. We define j1 = argmaxj Cj to be the job that is completed last
according to the greedy schedule on that instance. For ` > 1:
1. define sj`−1 to be the time at which job j`−1 starts being processed according to the greedy schedule.
2. define t` to be the maximum time in the time interval [0, sj`−1 ] such that at least one machine is
not currently processing a job. If there are no such time in [0, sj`−1 ] (meaning that all the machines
are busy from time 0 to time sj`−1 ), then define k = ` − 1 (meaning q = (j`−1 , . . . , j1 ) and we are
done defining the sequence) and t? = 0.
3. If there is a predecessor j of j`−1 running on a machine at time t` , then define j` = j (meaning we
add job j to the front of the sequence defined so far).
4. If there is not a predecessor j of j`−1 running on a machine at time t` :
(a) If t` < rj`−1 , then define k = ` − 1 (meaning we are done defining the sequence) and t? = t` .
(b) Otherwise, there must exist a predecessor j of j`−1 such that t` < rj , and we define j` = j,
k = `, and t? = t` .
This construction has the following interpretation. At time t` , there is a machine available but job
j`−1 is not yet being processed. There are three potential reasons for why the available machine cannot
start processing job j`−1 at that time: either j`−1 is blocked by a predecessor j that is currently running
(step 3), or j`−1 has not yet been released (step 4.a), or there is a predecessor of j`−1 that has not yet
been released (step 4.b).
Let R be the total time where all the machines are processing jobs.

a) Explain why there must exist a predecessor j of j`−1 such that t` < rj if (1) there is not a
predecessor j of j`−1 running on a machine at time t` and (2) t` ≥ rj`−1
b) Show that Cmax (greedy) ≤ R + t? + j∈q pj
P

c) Show that t? + j∈q pj ≤ OP T .


P

d) Conclude that greedy is a 2-approximation algorithm for P | rj , prec | Cmax .

Question 4 [Project, 25 points]. Your project for the course consists of implementing an algorithm
that solves a scheduling problem and running it on a dataset. You can choose the dataset, scheduling
problem, and scheduling algorithm of your choice. You can pick a scheduling problem seen in class, a
scheduling problem that you found online, or create your own scheduling problem. The only requirement
is that the problem you choose must have a collection of jobs, a collection of machines, and an objective
function.
In each of the remaining assignments, one question will be devoted to the project. For this assignment,
a) choose who you want to complete your project with and report their name. Projects must be
completed in groups of two,
b) choose a dataset that you will use for the project, which can be one of the example datasets below
or any other dataset of your choice, and
c) write a program to load your dataset in python. Here is an example of how data can be loaded in
python: https://pythonspot.com/read-file/. Report a screenshot with your loaded data.

2
In Assignment 7, you will have to choose a scheduling problem for the dataset that you have chosen
this week.

• NYC taxi trip records dataset. https://www.nyc.gov/site/tlc/about/tlc-trip-record-data.


page
• Street cleaning schedule managed by San Francisco Public Works. https://data.sfgov.org/
City-Infrastructure/Street-Sweeping-Schedule/yhqp-riqs

• Metro operating schedule at San Francisco. https://data.sfgov.org/Transportation/Meter-Operating-Schedu


6cqg-dxku
• Mobile food delivery schedule managed by San Francisco. https://data.sfgov.org/Economy-and-Community/
Mobile-Food-Schedule/jjew-r69b

• Healthcare dataset on nurse rostering problem. http://mobiz.vives.be/inrc2/?page_id=20


• Alibaba data center dataset. https://github.com/alibaba/clusterdata
• Checkin information of the social network BrightKite. Each checkin data includes the checkin time
and checkin location. http://snap.stanford.edu/data/loc-brightkite.html

You might also like