Teaching

Integer Optimization - ISyE/Math/CS 728  [Syllabus]  [Slides]  [YouTube]

Based on the book Integer Programming by M. Conforti, G. Cornuéjols, and G. Zambelli.

In Integer Optimization problems, our task is to find one integral point, in a given polyhedral region, that minimizes a given linear objective function. Integer Optimization is a thriving area of discrete mathematics, which is applied nowadays to a multitude of human endeavors, thanks to high quality software. It was developed over several decades and is still evolving rapidly. The goal of this course is to present the mathematical foundations of Integer Optimization. We will survey the theory behind the algorithms used in state-of-the-art solvers. Special attention is given to the polyhedral representations of these problems, and to their algebraic and geometric properties. The broad applicability of Integer Optimization is highlighted with applications in combinatorial optimization and number theory.

Course webpages:  [Spring 2015]  [Spring 2016]  [Spring 2017]  [Spring 2018]  [Spring 2019]  [Spring 2020]  [Spring 2023]  [Spring 2024]

Linear Optimization - ISyE/Math/CS/Stat 525  [Syllabus]  [Slides]  [YouTube]

Based on the book Introduction to Linear Optimization by D. Bertsimas and J.N. Tsitsiklis.

Linear Optimization is a method to achieve the best outcome (such as maximum profit or lowest cost) in a mathematical model whose requirements are represented by linear relationships. Linear programming is one of the most fundamental and practical problem classes in computational optimization. The simplex method, one of the main algorithms used to solve linear optimization problems, has been described by Computing in Science & Engineering as one of the 10 algorithms with the greatest influence on the development and practice of science and engineering in the 20th century. In this course, we take a theoretical and algorithmic approach.

Course webpages:  [Fall 2017]  [Fall 2018]  [Fall 2019]  [Fall 2020]  [Spring 2021]  [Fall 2021]  [Fall 2023]

Introduction to Combinatorial Optimization - ISyE/Math/CS 425  [Syllabus]  [Slides]

Based on the book Combinatorial Optimization by W.J. Cook, W.H. Cunningham, W.R. Pulleyblank, A. Schrijver.

Combinatorial optimization is a lively field of applied mathematics, combining techniques from combinatorics and the theory of algorithms, to solve optimization problems over discrete structures. In this course we study minimum spanning trees, shortest paths, maximum flows, and matchings. We investigate structural properties of these problems, and we study efficient exact methods for their solution. This course is proof based, and the only real prerequisite is a certain mathematical maturity.

Course webpages:  [Fall 2015]  [Fall 2016]

The Optimization group at UW-Madison offers a number of other Optimization courses:

ISyE 323: Operations Research - Deterministic Modeling

CS/ECE/ISyE 524: Introduction to Optimization

CS/ISyE 526: Advanced Linear Programming

ECE/CS/ME 532: Theory and Applications of Pattern Recognition

ISyE/CS 635: Tools and Environments for Optimization

ISyE/CS 719: Stochastic Programming

ISyE/CS 723: Dynamic Programming and Associated Topics

CS/ISyE/Stat/Math 726: Nonlinear Optimization I

ISyE/CS 727: Convex Analysis

ISyE/CS 730: Nonlinear Optimization II

CS 733: Computational Methods for Large Sparse Systems

ISyE 823: Special Topics in Operations Research