Math 482: Linear Programming (Fall 2019)

Mikhail Lavrov



The course grade will be calculated as follows, out of 660 points total:

You can check your grades via Moodle.

Your grade total will be converted to a letter grade according to the following scale:

A+ ≥ 630 B+ ≥ 520 C+ ≥ 450 D+ ≥ 380
A ≥ 570 B ≥ 490 C ≥ 420 D ≥ 350
A- ≥ 540 B- ≥ 470 C- ≥ 400 D- ≥ 330

It is possible to take the course for 4 credits rather than 3, at the cost of extra homework questions and more difficult exams. If you want to do this, you need to register at the math office in Altgeld Hall soon after the start of the course.


There will be 10 homework assignments, to be turned in at the beginning of class the day they are due. Of these homework assignments, the top 8 homework scores will determine your grade. Each assignment is graded out of 20 points, for a total of 160.

If you cannot attend class, you should submit a scanned copy or a photo of your homework as a single PDF file by e-mail before class begins. Please avoid doing this unless it's necessary, since it is more work for the grader.

If the homework assignment is received after class on the due date, but before the next class, it will be accepted as late, for a 2-point penalty. Homework will not be accepted after the next class for any reason.


There will be three evening midterm exams: Wednesday 9/18, Wednesday 10/16, and Wednesday 11/20 from 7pm to 8:30pm in Noyes 161. Correspondingly, three lectures will be canceled, not necessarily in the same week as the midterm exams. These are marked in the syllabus below.

The final exam will not be combined; the date and time for each section is listed at the end of the syllabus. By default, you should take the final exam for your section; if you have a good reason why you need to do something other than that, talk to me in advance.

Detailed syllabus

This course is based on several textbooks with a lot of overlap; read whichever ones help, or read my lecture notes (or both). In the syllabus, I will refer you to sections of the textbooks below that cover the relevant material.

The syllabus below will initially describe a tentative plan for what topics will be covered when. As the semester progresses, I will update the syllabus with lecture notes, adjustments to my plans for the future, and links to homework assignments.

Note: originally this page contained lecture notes for each day of class. I've taken these down because the next semester's notes fix some typos and minor errors and are generally better in every way. So if you are looking for my lecture notes, please go to the page for the Spring 2020 semester instead.

Date Chapter Details References Homework/Exams
Mon August 26 Background Intro to linear programs GM 1.1; V 1.1-1.2
Wed August 28 Constraints in LPs GM 4.1, 4.3; PS 1.5, 2.1
Fri August 30 The Simplex Method
PS Chapter 2
Basic solutions; pivoting GM 4.2; PS 2.2, 2.4; V 2.1
Mon September 2 Labor Day: no class
Wed September 4 Objective functions GM 5.1; PS 2.5-2.6; V 2.1
Fri September 6 Simplex method example GM 5.2-5.3; PS 2.9; V 2.2 HW 1 due
Mon September 9 Two-phase simplex method GM 5.4, 5.6; PS 2.8; V 2.3
Wed September 11 Pivoting rules GM 5.7-5.8; PS 2.7; V 3.1-3.4
Fri September 13 No class
Mon September 16 Corner points GM 4.2, 4.4; PS 2.2 HW 2 due
Wed September 18 Exam review (Exam topics) Exam: 7pm in Noyes 161
Fri September 20 Revised simplex method GM 5.5-5.6; PS 4.1-4.2
Mon September 23 Worst cases GM 5.9; PS 8.6; V 4.4
Wed September 25 Duality
PS Chapter 3
The dual linear program GM 6.1-6.2; PS 3.1; V 5.1-5.4
Fri September 27 Complementary slackness GM 6.4; PS 3.2; V 5.5 HW 3 due
Mon September 30 Duality in the tableau GM 6.3; PS 3.5; V 5.4
Wed October 2 The dual simplex method PS 3.6-3.7; V 5.6-5.7
Fri October 4 Sensitivity analysis I V 7.1 HW 4 due
Mon October 7 Sensitivity analysis II V 7.1
Wed October 9 Zero-sum games I GM 8.1; V 11.1
Fri October 11 Zero-sum games II GM 8.1; V 11.2-11.3 HW 5 due
Mon October 14 Other topics Fourier-Motzkin elimination GM 6.7
Wed October 16 Exam review (Exam topics) Exam: 7pm in Noyes 161
Fri October 18 Miscellaneous applications GM 2.4,2.6
Mon October 21 Graph Theory Bipartite matchings I GM 8.2; PS 10.1, 13.2; CCZ 4.2
Wed October 23 Bipartite matchings II GM 8.2; PS 10.1, 13.2; CCZ 4.2
Fri October 25 Network flows PS 4.3; V 14.1, 15.5 HW 6 due
Mon October 28 Max-flow min-cut theorem PS 6.1; V 15.5
Wed October 30 Augmenting paths PS 6.2
Fri November 1 No class
Mon November 4 Ford-Fulkerson algorithm PS 6.2-6.3; Infinite example HW 7 due
Wed November 6 Max-flow extensions external slides
Fri November 8 No class
Mon November 11 Push-relabel algorithm I external notes
Wed November 13 Push-relabel algorithm II
Fri November 15 Primal-Dual Method
PS Chapter 5
Primal-dual introduction PS 5.1-5.2 HW 8 due
Mon November 18 Augmenting the dual PS 5.3
Wed November 20 Exam review (Exam topics) Exam: 7pm in Noyes 161
Fri November 22 The restricted primal PS 5.2
Mon November 25 Fall break: no class
Wed November 27
Fri November 29
Mon December 2 Integer Programming
PS Chapter 13
Using integer constraints PS 13.1; CCZ 1.1, 2.10-2.11 HW 9 due
Wed December 4 Branch-and-bound method PS 18.1; V 23.5; CCZ 1.2.1
Fri December 6 Cutting plane method PS 14.1; CCZ 1.2.2
Mon December 9 Traveling salesman problem V 23.2; CCZ 2.7 HW 10 due
Wed December 11 Exam review (Exam topics)
Fri December 13 Final Exam 7pm-10pm for the morning (10am) section in 447 Altgeld Hall
Tue December 17 Final Exam 8am-11am for the afternoon (12pm) section in 241 Altgeld Hall

Last updated April 28, 2020. Mikhail Lavrov <>