CS/ISyE/Stat/Math 525 - Spring 2017

Linear Programming

 

Linear programming is one of the most fundamental and practical problem classes in computational optimization. In this course, we take an algorithmic approach, describing the simplex algorithm and its variants, using Matlab to program the various elements of the algorithm. We discuss the concept of duality and its practical applications, and extensions to other important problem classes such as quadratic programming and linear complementarity problems. Applications such as classification problems and game theory are covered.

 

 

Schedule

Lecture:

8:40-9:40 MWF, Computer Sciences 1221. Note that we start 10 minutes early!

Course URL: http://www.cs.wisc.edu/~swright/cs525-s17.html
Piazza Home Page: https://piazza.com/wisc/spring2017/cs525/home
Learn@UW Course Page: https://uwmad.courses.wisconsin.edu/d2l/home/3590929

In general, there will be three 60-minute lectures each week, starting at 8:40am and finishing at 9:40am. The start is 10 minutes eariler than the time in the official schedule. By extending most lectures to 60 minutes, we can cancel about 5 classes during semester as needed.

The current lecture schedule is posted here. The schedule is subject to modification. In particular, some lectures will be given by guest lecturers, or cancelled.

  • Week 1: 1/18 (50 min), 1/20 (50 min)
  • Week 2: 1/23 (50 min), 1/25 (50 min), 1/27 (50 min)
  • Week 3: 1/30 (60 min), 2/1 (60 min), 2/3 (60 min)
  • Week 4: 2/6 (60 min), 2/8 (60 min), 2/10 (NO CLASS)
  • Week 5: 2/13 (60 min), 2/15 (60 min), 2/17 (60 min)
  • Week 6: 2/20 (60 min), 2/22 (60 min), 2/24 (60 min)
  • Week 7: 2/27 (60 min), 3/1 (60 min), 3/3 (60 min)
  • Week 8: 3/6 (60 min), 3/8 (60 min), 3/10 (60 min)
  • Week 9: 3/13 (60 min), 3/15 (60 min), 3/17 (60 min)
  • SPRING BREAK
  • Week 10: 3/27 (60 min), 3/29 (60 min), 3/31 (60 min)
  • Week 11: 4/3 (60 min), 4/5 (60 min), 4/7 (60 min)
  • Week 12: 4/10 (60 min), 4/12 (60 min), 4/14 (60 min)
 
 

Instructor: Steve Wright

Office: 4379 CS
Phone: 262-4838
Email: swright at cs
Office Hours: Mon 3-4, Thu 3-4
 
 

Teaching Assistant: Qisi Wang

Office: 1308 CS
Email: qisi.wang at wisc
Office Hours: Wed 2-3, Thu 10-11

 

 

Teaching Assistant: Huilin Hu

Office: 3363 CS
Email: hhu28 at wisc
Office Hours: Wed 3-4

 

 
 

General Course Information

Prerequisites

  • Math 443 or 320 or 340 or consent of instructor.

Text

References

  • V. Chvatal, Linear Programming, Freeman, New York, 1983.
  • G. B. Dantzig, Linear Programming with Extensions, Princeton University Press, Princeton, 1963.
  • S. J. Wright, Primal-Dual Interior-Point Methods, SIAM, 1997.
  • J. M. Ortega, Numerical Analysis: A Second Course, SIAM Classics in Applied Mathematics 3, SIAM, Philadelphia, 1990.
  • K. G. Murty, Linear Programming, Wiley, New York, 1983.
  • H. Karloff, Linear Programming, Birkhauser, Boston, 1991.
  • R. Saigal, Linear Programming, Kluwer, 1995.
  • M. N. Thapa and G. B. Dantzig, Linear Programming I: Introduction, Springer, 1997.
 
 

Course Outline

  • Linear Algebra Background
  • The Simplex Method
  • Duality
  • Revised Simplex Method
  • Interior Point Methods
  • Sensitivity Analysis
  • Approximation Problems
  • The Linear Complementarity Problem
  • Quadratic Programming

 
 

Assessment

Keep track of your grades through the learn@uw system. Log on, click through to the page for this course, and click the Grades tab at the top of the page.

  • Approximately one homework assignment per week, approximately 25% of grade in total.
    • Homeworks will be assigned through the Piazza page.
    • The Dropbox facility of learn@uw will be used for some homeworks. You can access this by clicking the "Dropbox" tab at the top of the course page on learn@uw. Details of submission procedures will be indicated on each homework.
    • Homework is due at the beginning of class on the designated date.
    • No homeworks will be accepted by TAs, in mailbox or in person.
    • No homework or project is accepted in mailbox of instructor.
    • You may discuss homework with classmates, but the submitted version must be worked out, written, and submitted alone.
    • Submitting someone else's work as your own is academic misconduct. Cheating and plagiarism will be dealt with in accordance with University procedures (see this information on Academic Misconduct at UW-Madison).
    • Many assignments will require you to do Matlab programming using the Matlab routines described in the book. Here is some basic information about setting up your MATLAB environment for this course on the instructional CS linux machines. (Most of you will probably use your own local version of Matlab.)
  • CLASS PROJECT, 10% of grade. Due last week of class (details below). Submit in class or to professor's office.
  • MIDTERM, 25% of grade. To be held on Wednesday, 15 March 2017, 7:15pm-9:15pm, Location: PSYCHOLOGY 113. You may bring into the exam one page of handwritten notes (written both sides). No other books or notes, and no calculators or other electronic devices.
  • FINAL, 40% of grade. To be held on 10 May 2017, 10:05am-12:05pm, Location:Chamberlin 2241. You may bring into the exam one page of handwritten notes (written both sides). No other books or notes, and no calculators or other electronic devices.

 

 
 
 

Past Exams and Solutions

Here are some previous midterm examinations:

Here are some previous final examinations:

 
 

Computing Information

Use the CS Unix Labs on the first floor of Computer Sciences.

Here is some basic information about setting up your MATLAB environment for this course. In particular, there are instructions for setting up a startup file that defines a search path for Matlab that includes the public directory for the course.

 

 
 

Handouts and Examples

  • Introduction to MATLAB by Mark S. Gockenbach: html and postscript
  • The 3rd edition of Kermit Sigmon's Matlab Primer. Later editions of this book, by Timothy Davis and Kermit Sigmon, can be purchased online.
  • A routine permcols.m to rearrange the columns in a tableau.
  • Using phase I-phase II simplex to solve the primal and dual problems simultaneously, for the problem of Section 4.3.
  • Example of revised simplex applied "manually" to a problem with upper and lower bounds: rsm-bounded.txt
  • Solving QPs in nonstandard form using "Scheme II" pivots and Lemke's method: handout_lcp.pdf
 
 

Miscellaneous