Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

University of Colorado Boulder

Linear and Integer Programming

University of Colorado Boulder via Coursera

This course may be unavailable.

Overview

Linear Programming (LP) is arguably one of the most important optimization problems in applied mathematics and engineering. The Simplex algorithm to solve linear programs is widely regarded as one among the "top ten" algorithms of the 20th century. Linear Programs arise in almost all fields of engineering including operations research, statistics, machine learning, control system design, scheduling, formal verification and computer vision. It forms the basis for numerous approaches to solving hard combinatorial optimization problems through randomization and approximation.


The primary goals of this course will be to:

1. Understand the basic theory behind LP, algorithms to solve LPs, and the basics of (mixed) integer programs (ILP).

2. Understand important and emerging applications of LP and ILPs to economic problems (optimal resource allocation, scheduling problems), machine learning (SVM), and combinatorial optimization problems.

At the end of the course, the successful student will be able to cast various problems that may arise in her research as optimization problems, understand the cases where the optimization problem will be linear, choose appropriate solution methods and interpret results appropriately. This is generally considered a useful ability in many research areas.


Syllabus

Introductory Material 

  • Introduction to Linear Programming.
Week #1: 
  • The Diet Problem.
  • Linear Programming Formulations.
  • Tutorials on using GLPK (AMPL), Matlab, CVX and Microsft Excel.
  • The Simplex Algorithm (basics).
Week #2: 
  • Handling unbounded problems
  • Degeneracy
  • Geometry of Simplex
  • Initializing Simplex.
  • Cycling and the Use of Bland's rule.
Week #3:
  • Duality: dual variables and dual linear program.
  • Strong duality theorem.
  • Complementary Slackness. 
  • KKT conditions for Linear Programs.
  • Understanding the dual problem: shadow costs.
  • Extra: The revised simplex method.
Week #4: 
  • Advanced LP formulations: norm optimization.
  • Least squares, and quadratic programming.
  • Applications #1: Signal reconstruction and De-noising.
  • Applications #2: Regression.
Week #5: 
  • Integer Linear Programming.
  • Integer vs. Real-valued variables.
  • NP-completeness: basic introduction.
  • Reductions from Combinatorial Problems (SAT, TSP and Vertex Cover).
  • Approximation Algorithms: Introduction.
Week #6:
  • Branch and Bound Method
  • Cutting Plane Method
Week #7:
  • Applications: solving puzzles (Sudoku), reasoning about systems and other applications.
  • Classification and Machine Learning

Taught by

Sriram Sankaranarayanan

Reviews

3.9 rating, based on 9 Class Central reviews

Start your review of Linear and Integer Programming

  • Linear and Integer Programming is a 7-week course covering linear programming in detail. The course focuses on teaching the simplex method for optimizing systems linear equations with constraints for the first 4 weeks and then covers integer program…
  • Anonymous
    Excellent introductory course to LPs and ILPs. The lectures were very clear, and a lot by patient repetition and emphasis helped to reinforce the ideas. While the main lectures flow well and in a structured way, the several supplementary lectures se…
  • Mark Wilbur
    This course is very useful for solving various optimization problems. I enjoyed the lectures and got quite a bit out of them. I found the quizzes easy since they were heavily math-based and I understood the math from the lectures, but I really struggled on the programming assignments. I chose to use Python since, of the suggested languages, it was the one I had the most familiarity with. I ran into some problems with libraries and since what I was using wasn’t the most common choice I had limited help. A lot of students were using Matlab, and in retrospect that might have been the better way to go since it was more supported by the instructor. Enrollment in the course does come with 3 free months of Matlab usage.
  • Anonymous
    Instructors teach us details about Lp problems. Slides are excelent. Weekly homeworks helped me to understand details about simplex method. Course contains three programming homeworks for solving simplex and ILP with amazing unit tests. Instructor answers to lot of post forum.
  • Anonymous
    Not very hard course with very good and detailed explanations and very active and helpful staff in the forums. Really worthy and fun :-)
  • I have to agree that this is one of the best courses offered. I knew I was in love with it when the first quiz was like "how many As are there in professor Sankaranarayanan's surname?". I always wanted to learn more about the Simplex algorithm, and the lectures and the quizzes helped a lot in visualizing the problems, and with learning interesting new optimizations. Great job, and a huge recommendation!
  • Olivia Jaida Marie Ames
  • Anonymous
    Horribly slow going course. The slides are low quality, not ready for presentation. Not interesting at all: most time is spent on lengthy explanations about trivialities related to the simplex algorithm. Don't take the class, it's a waste of your time. Instead, go to wikipedia, and read the relevant articles.

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.