I taught this course in Spring 2008 at McMaster University.

Course contents

  • How to model different engineering problems?
  • How to choose between the various models?
  • How to exploit the structure of the problem?
  • What solver to use for a given model?
  • Various applications and modelling tools


Assignment 1

Assignment 2

Assignment 3

Final project

Each student will be required to prepare a project, which investigates a certain optimization problem, possible approaches to solve it, different models, etc. You can come up with a problem of your own or can consult me for some ideas. It can also be something you worked on before. A brief one page sketch of what you want to do is due by February 29. The final project paper (around 10 pages) is due by April 22.

Marking scheme

Assignments:40% altogether

Project: 60%

No midterm.

Course material

Lectures 1-5 follow the lecture slides of Boyd and Vandenberghe. Lecture 6 is from me, about optimization software. Lecture Lecture 7 is the 6th Lecture of Boyd and Vandenberghe. Lecture 8 include slides from Ben-Tal and Nemirovski and a few from Boyd and Vandenberghe. Lecture 9 is based on several sources.

Lecture 1: Introduction

Lecture 2: Convex sets

Lecture 3: Convex functions

Lecture 4: Convex optimization problems

Lecture 5: Duality

Lecture 6: Forming and Solving Optimization Problems

Lecture 7: Approximation and fitting

Lecture 8: Optimization under uncertainty: robust optimization

Lecture 9: Modelling with semidefinite and second order cones

Lecture 10: Software demonstrations

Further readings

S. Boyd and L. Vandenberghe: Convex Optimization. Cambridge University Press, 2004.

A. Ben-Tal and A. Nemirovskii: Lectures on Modern Convex Optimization, Analysis, Algorithms, And Engineering Applications. MPS-SIAM Series on Optimization, SIAM Publications, 2001.

Transparencies for this book are here in PDF.

SeDuMi: Software for linear/second order/semidefinite optimization.

CVX: Matlab Software for Disciplined Convex Programming