EE364b: Resources

Professor Stephen Boyd, Stanford University, Spring Quarter 2013–14

Even with a teaching staff consisting of 6 TAs and the professor, the high enrollment in the class means you are going to have to explore material for your project on your own. Of course we'll help guide you, but we do expect that you'll spend some real time exploring on your own in between consultations with course staff.

This page contains links to various interesting and useful sites that relate in some way to convex optimization. It goes without saying that you'll be periodically checking things using google, arkiv, and wikipedia. The wikipedia entry on convex optimization (and related topics) could be improved or extended (yes, for project credit). When you find something that is really interesting, please let us know and we'll add a link on this page.

  • Stephen Boyd's research page. There's a lot of material there, and you don't have to know every detail in every paper, but you should certainly take an hour or more to browse through these papers.

  • EE364a web page. We expect you to know what's in these pages.

  • EE364b web page. Yes, we know, you're already enrolled in this class. What we mean is that we expect you to know what's in future lectures in EE364b. Not all the details, of course, but at least an idea of what we will cover later. You can't wait until the 8th week, when we cover model predictive control (for example), if your project relies on model predictive control.

  • Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers, a paper that covers ADMM, which we'll also cover later in the course. This is a good method for distributed optimization. A related survey paper is Proximal Algorithms.

  • The Convex Optimization book. You're expected to know pretty well the material in this book. Unless you have a really good memory, you should be periodically browsing through this.

  • Additional Exercises for Convex Optimization, available on the book web site. These exercises are from many application areas, including finance, machine learning, networking, wireless systems, signal and image processing, circuit design, and biology, to name just a few. We expect you to have browsed these exercises.

  • Lieven Vandenberghe's page, and especially, the course pages for ee236a, ee236b, and ee236c. The last course has a lot of great material on large-scale and nondifferentiable convex optimization.

  • Emmanuel Candes’ page, which has lots of great material, including software, papers, and class notes, and especially, Math 301.

  • Athena Scientific books on optimization. Some of these books can be found online. You can also check the MIT courses that use some of these books.

  • Sanjay Lall's EE464 course on semidefinite optimization and algebraic techniques.

Here are some links to related software.

  • CVX. Be sure to check out the every extensive library of examples. Indeed, feel free to add to it (yes, for project credit).

  • CVXOPT, a Python-based library of solvers, which also includes an extensive library of examples.

  • CVXPY, a relatively new Python-based convex optimization modeling system being developed by Steven Diamond. Anyone interested in helping develop CVXPY (yes, for project credit) should contact the staff and Steven.

  • CVXGEN, a code generator for convex optimization.

  • SOSTOOLS, a toolbox for formulating and solving sums of squares (SOS) optimization problems.

  • ECOS, lightweight C source for an SOCP solver.