CS 525: Linear Programming - Fall 2011
Lecture: MW 2:30PM - 3:45PM Location:
Computer Sciences 1325 Mailing List: compsci525-1-f11@lists.wisc.edu (here's the archive).
Email Policy: I will respond to most questions
about logistics and homework sent to the class mailing list. I will not
repsond to any other emails. Questions about the course must be asked
during office hours, during class, or on the class mailing list.
Instructor: Ben Recht
Office: 4387 CS
Office Hours: Mondays 1:30-2:30, Tuesdays 10-11
Teaching Assistant:
Ji Liu
Office: 3393 CS
Office Hours:Tuesdays 4-5, Thursdays 4-5
Teaching Assistant: Srikrishna
Sridhar Office: 3397 CS
Office Hours:Mondays 9:30-10:30, Thursdays 11-12
General Course Infromation
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.
Course Outline
- Linear Algebra Background
- The Simplex Method
- Duality
- Revised Simplex Method
- Flows and Graph Algorithms
- Sensitivity Analysis
- Quadratic Programming
- Approximation Problems
- Complementarity Problems and Game Theory
Prerequisites
- Math 443 or 320 or 340 or consent of instructor.
Required Text:
References
- V. Chvatal, Linear Programming, Freeman, New York, 1983.
- G. B. Dantzig, Linear Programming with Extensions, Princeton
University Press, Princeton, 1963.
- 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.
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.
- 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.
- 3 CLASS PROJECTS, Each worth approximately 8% of the grade.(details below). Submit in class or to professor's office.
- 2 TESTS, Each worth approximately 25% of grade. Test 1 is on Monday, October 31, 2011, 2:30-3:45 PM,
CS 1325. Test 2 is on Monday, December 12, 2011, from
2:30PM - 3:45OPM in CS 1325. 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. The exams are not
cumulative.
Lectures
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: M 9/7
Homework Assignments
- Homework
1, for practice only; no submission required. 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, due Sep 21, 2011.
- Homework
3, due Sep 28, 2011.
- Homework
4, due Oct 12, 2011.
- Homework
5, due Oct 19, 2011.
- Homework
6, due Nov 7, 2011.
- Homework
7, due Nov 16, 2011.
- Homework
8, due Nov 30, 2011.
- Homework
9, for extra credit, due Dec 7, 2011.
Class Projects
CPLEX INFO: If you would like to use CPLEX on the CS machines,
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-11.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-11.2/license/access.ilm
Then logout and login again.
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.
- The DIET PROBLEM demo. Try it yourself!
- A routine permcols.m to rearrange the columns in a tableau.
Past Exams and Solutions
Here are some previous midterm examinations:
Here are some previous final examinations:
-
Final exam from Spring 1997 and
Solutions for Q1, Q2, Q3, Q5
-
Final exam from Fall 1999 and
Solutions for Q1, Q2, Q3
-
Final exam from Spring 2000 and
Solutions
-
Final exam from Fall 1996 and
Solutions
-
Final exam from Spring 1996 and
Solutions
-
Final exam from Spring 1998 and
Solutions
-
Final exam from Spring 1999 and
Solutions
-
Final exam from Spring 2002 and
Solutions
-
Final exam from Spring 2003 and
Solutions
-
Final exam from Spring 2004 and
Solutions
-
Final exam from Spring 2005 and
Solutions
- Final exam from Spring 2008 and Solutions (average: 85/100, median: 92/100)
- Final exam from Spring 2009 and Solutions (average: 52/80, median: 54.5/80)
- Final exam from Fall 2009 and Solutions
(average: 74.5/100, median: 75/100)
- Final exam from Fall 2010 and Solutions (average: 57/80, median: 59/80)
- Final exam from Spring 2011 and Solutions (average: 30.5/40, median: 31/40)
Computing Information
Use the CS Unix Labs on the first floor of CS: Locations
here.
For new users of Unix and the CS Unix facilities, orientation sessions will be held in
CS&S 1325 early in the semester. Schedules will be posted in the lobby of the CS
Building.
Here are some instructions for setting
up your Matlab environment on the linux machines, if you have not done this before.
|