CS/ISyE/Stat/Math 525 - Fall 2012

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:

11:00-11:50 MWF, 103 Brogden Psychology

Class Mailing List: compsci525-1-f12@lists.wisc.edu (here's the archive)
Mail Instructor / TA
Course URL: http://www.cs.wisc.edu/~swright/cs525-f12.html

The current lecture schedule is posted here. It's subject to modification. In particular, some lectures will be dropped or given by a guest lecturer. I'll make sure the schedule is accurate to at least a week in advance.

  • Week 1: Wed 9/5, Fri 9/7
  • Week 2: Mon 9/10, Wed 9/12, Fri 9/14
  • Week 3: Mon 9/17, Wed 9/19, Fri 9/21
  • Week 4: Mon 9/24 (Mr Sridhar), Wed 9/26 (Mr. Sridhar), Fri 9/28 (Mr. Sridhar)
  • Week 5: Mon 10/1, Wed 10/3, Fri 10/5
  • Week 6: Mon 10/8, Wed 10/10, Fri 10/12
  • Week 7: Mon 10/15, Wed 10/17, Fri 10/19 (Mr. Sridhar)
  • Week 8: Mon 10/22, Wed 10/24, Fri 10/26
  • Week 9: Mon 10/29, Wed 10/31, Fri 11/2 (NO CLASS)
  • Week 10: Mon 11/5, Wed 11/7, Fri 11/9
  • Week 11: Mon 11/12, Wed 11/14, Fri 11/16
  • Week 12: Mon 11/19, Wed 11/21, Fri 11/23 (Thankgiving Holiday)
  • Week 13: Mon 11/26, Wed 11/28, Fri 11/30
  • Week 14: Mon 12/3, Wed 12/5, Fri 12/7
  • Week 15: Mon 12/10, Wed 12/12 (NO CLASS), Fri 12/14 (NO CLASS).

Instructor: Stephen Wright

Office: 4379 CS
Phone: 262-4838
Email: swright
Office Hours: Mon 9:30-10:30, Thu 3-4pm

Teaching Assistant: Chih-Cheng Chang

Office: 3367 CS
Email: chih-che
Office Hours: Tue 3-4pm, Thu 4-5pm

 


Teaching Assistant: Srikrishna Sridhar

Mr Sridar will lecture certain classes during the semester. These will be announced by email to the class mailing list.


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 30% of grade in total.
    • 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.
  • CLASS PROJECT, 10% of grade. Due last week of class (details below). Submit in class or to professor's office.
  • MIDTERM, 20% of grade. To be held on Tuesday, October 30, 2012, 7:15p-9:15p, Location: Noland 168. 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 Monday, Dec 17, 2012, 12:25p-2:25p, Location: CS 1221. 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:


Homework Assignments

  • Homework 1, for practicing Matlab only; do not submit. Here is the data file hwk1.mat. (This file is also on the course public directory at ~cs525-1/public, which will be in your Matlab path if you're using the CS linux machines and if your path is set up correctly.)
  • Homework 2, hard copy due in class on Friday 9/14/12. Here is the data file hwk2.mat. (It is also on the course public directory at ~cs525-1/public, which will be in your Matlab path if you're using the CS linux machines and if your path is set up correctly.)
  • Homework 3, hard copy due in class on Friday 9/21/12.
  • Homework 4, hard copy due in class on Monday 10/1/10.
  • Homework 5, hard copy due in class on Monday 10/8/12.
  • Homework 6, hard copy due in class on Monday 10/15/12.
  • Homework 7, hard copy due in class on Monday 10/22/12.
  • Homework 8, hard copy due in class on Monday 10/29/12.
  • Homework 9, hard copy due in class on Monday 11/12/12. You can find the code rsm.m on this page.
  • Homework 10, hard copy due in class on Wednesday 11/21/12.
  • Homework 11, hard copy due in class on Monday 12/3/12.
  • Homework 12, For practice only - do not submit.
  • Homework 13, For practice only - do not submit.

Class Project: The Federalist Papers: Resolving the Disputed Papers with Linear Programming.

(Due 5:00pm on December 14, 2012. No Late Submissions Accepted.)

(The last two files are also available on the course web site ~/cs525-1/public.)

Here is Fung's background paper, cited in the project description. I also recommend the Wikipedia entry about the Federalist Papers.

You will need to do the project on your CS unix account, as it requires access to CPLEX, which is installed on these machines (and probably not on your laptop). To enable calling of CPLEX from your Matlab programs, you need to add the following line to the .cshrc.local file in your home directory (creating this file if necessary):

setenv ILOG_LICENSE_FILE /s/cplex-12.2/license/access.ilm

In case your account uses the bash shell you should also add the following line to the file .bashrc.local in your home directory (creating this file if necessary):

export ILOG_LICENSE_FILE=/s/cplex-12.2/license/access.ilm

Then logout and login again.

I suggest using the mumble machines in the CS instructional labs, which are 64-bit linux machines. I have not checked whether the protocol above works on other CS machines.


Computing Information

Use the CS Unix Labs on the first floor of CS&S: Locations here. Information that's particularly helpful for first-time users can be found here.

For new users of Unix and the CS Unix facilities, orientation sessions will be held in CS&S 1325 according to the following schedule.

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. The 7th edition 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