CPSC 536M:
Optimization Theory

The convex geometry of structured optimization

Convex optimization is a key tool for analyzing and solving a range of computational problems that arise in machine learning, statistical signal and image processing, theoretical computer science, and other fields. It’s also the backbone for other areas of optimization, including algorithms for nonconvex problems. This course aims to provide a self-contained introduction to a few of the many geometric and intuitive ideas in convex analysis and their usefulness for developing and understanding computationally-efficient algorithms for a range of scientific and engineering applications.

In addition to convexity, a recurring theme in the course is the convex geometry of structured optimization, which involves problems whose solutions exhibit a latent structure, and are assembled using a prescribed set of atoms. As has been recognized in the optimization and related communities for at least the past decade, significant computational efficiencies are made available by exploiting this latent structure, coupled with the overarching structure provided by convexity. The course will emphasize the rich convex geometry that underlies atomic decomposition and its algorithmic manifestations.


Here is a broad overview of the topics covered.

Part 1: Convex sets

Part 2: Convex functions

Part 3: Convex optimization

Target Audience

This course is intended for students who wish to learn the underpinnings of optimization and are considering research related to this area. Students looking to gain more practical experience with optimization (e.g., how to use various solvers) should instead consider CPSC 406 (Computational Optimization), taught during Term 2.


Background in vector calculus, numerical linear algebra, and basic real analysis. The course is unapologetically mathematical, and a casual background in these topics will not be sufficient. Consider taking this online self-assesment on numerical linear algebra.


Auditors and Undergraduates

Auditors welcome. Graduate students who wish to audit should file a graduate registration form with the CS front office. Undergraduate students who wish to take the course for credit should request permission from the instructor and file an undergraduate registration form to the CS front office.


These references should be helpful to supplement course notes:


Sign up for the Piazza course page.