Henry Adams

Math 510: Linear Programming and Network Flows

                        

Colorado State University, Fall 2020

Instructor: Henry Adams
Email: henry dot adams at colostate dot edu
Office: Weber 120 (but not coming to campus Fall 2020)
Office Hours: At the end of class, or by appointment

Lectures: TR 9:30-10:45am online.
Textbook: Understanding and Using Linear Programming by Jiří Matoušek and Bernd Gärtner. This book is freely available as a PDF to CSU students if you login on the CSU library webpage.

Overview: Optimization methods, linear programming, simplex algorithm, duality, sensitivity analysis, minimal cost network flows, transportation problem.

Mode of instruction: This class will be 100% online.

Syllabus: Here is the course syllabus.

Course notes: Here are Henry's course notes as a PDF (or as a Notability source code file).

Homework

Homework 1 (LaTeX Source) is due Tuesday, September 22.
Homework 2 (LaTeX source) is due Tuesday, October 27.
Homework 3 (LaTeX source) is due Tuesday, December 8.

Exams

The optional midterm (LaTeX Source) is due Friday, October 16.
Here are the midterm solutions.
The optional final is on Monday, December 14.

Videos



Linear Programming 1: An introduction


Linear Programming 2: An analogy between linear programming and linear algebra


Linear Programming 3: Polytopes, cubes, and cross-polytopes


Linear Programming 4: Example application - Healthy diet


Linear Programming 5: Example application - Fitting a line


Linear Programming 6: Example application - Separation of points


Linear Programming 7: Example application - Cutting paper rolls


Linear Programming 8: Example application - Largest disk in a polygon


Linear Programming 9: An introduction to integer linear programming


Linear Programming 10: Integer linear programming remarks


Linear Programming 11: Maximum weight matching


Linear Programming 12: Minimum vertex cover


Linear Programming 13: Maximum independent set


Linear Programming 14: Equational form


Linear Programming 15: Basic feasible solutions - Algebra


Linear Programming 16: Basic feasible solutions - Geometry


Linear Programming 17: The simplex method


Linear Programming 18: The simplex method - Unboundedness


Linear Programming 19: The simplex method - Degeneracy


Linear Programming 20: The simplex method - Infeasibility


Linear Programming 21: The simplex method - In general


Linear Programming 22: The simplex method - Computational remarks


Linear Programming 23: The simplex method - Pivot rules


Linear Programming 24: The simplex method - Efficiency


Linear Programming 25: Duality of linear programming


Linear Programming 26: Proof of weak duality


Linear Programming 27: Optimality is no harder than feasibility


Linear Programming 28: Dualization recipe


Linear Programming 29: A physical interpretation of strong duality


Linear Programming 30: Farkas lemma


Linear Programming 31: A variant of the Farkas lemma


Linear Programming 32: Proof of strong duality from the Farkas lemma


Linear Programming 33: Other algorithms besides the simplex method


Linear Programming 34: Polynomial and strongly polynomial algorithms


Linear Programming 35: Ellipsoid Method I


Linear Programming 36: Ellipsoid Method II


Linear Programming 37: Interior point methods


Linear Programming 38: Interior point methods - The central path


Linear Programming 39: Interior point methods - The primal-dual central path


Linear Programming 40: Matchings and Hall's theorem


Linear Programming 41: Vertex covers and König's theorem


Linear Programming 42: Totally unimodular matrices


Linear Programming 43: Total unimodularity and König's theorem


Linear Programming 44: Maximum flow


Linear Programming 45: Minimum cut


Linear Programming 46: Minimum cut and total unimodularity


Linear Programming 47: Optimal transport


Linear Programming 48: Optimal transport and linear programming


Linear Programming 49: Optimal transport and Kantarovich-Rubenstein duality


Linear Programming 50: The sparsity-promoting L1 norm


Linear Programming 51: The sparsity-promoting L1 norm and neighborly polytopes


Linear Programming 52: Cutting planes


Linear Programming 53: Branch and bound

Schedule

Date Class Topic Remark

Aug 25 Class overview [Logistical notes]
Aug 27 Introduction to linear programming

Sep 1 Polytopes, cubes, and cross-polytopes
Sep 3 Examples

Sept 8 Examples
Sept 10 Examples

Sept 15 Integer linear programming
Sept 17 Integer linear programming

Sept 22 Basic feasible solutions, Convex polyhedra
Sept 24 The simplex method

Sept 29 The simplex method
Oct 1 The simplex method

Oct 6 Duality of linear programming
Oct 8 Duality of linear programming

Oct 13 Optional Midterm
Oct 15 Farkas lemma

Oct 20 Class cancelled
Oct 22 The ellipsoid method

Oct 27 The ellipsoid method
Oct 29 Interior point methods

Nov 3 Maximum matchings and minimum vertex covers
Nov 5 Totally unimodular matrices and König's theorem

Nov 10 Max-flow and min-cut
Nov 12 Optimal transport

Nov 17 Coffee with grandpa!
Nov 19 Applications: Optimal transport and Kantarovich-Rubenstein duality [Associated blog post]

Fall Recess, Nov 23-27
Dec 1 The sparsity-promoting L1 norm [Associated notes]
Dec 3 Class cancelled

Dec 8 A cutting-plane algorithm for integer linear programs [Associated notes]
Dec 10 Branch-and-bound and dynamic programming [Associated notes]

Optional Final Exam, Monday December 14
9:40-11:40am, Online