alexandersvozil / cvx_short_course

Materials for a short course on convex optimization.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CVXPY tutorial

CVXPY is an open source Python-embedded modeling language for convex optimization problems. It lets you express your problem in a natural way that follows the math, rather than in the restrictive standard form required by solvers. This tutorial will cover the basics of convex optimization, and how to use CVXPY to specify and solve convex optimization problems, with an emphasis on real-world applications. No prior knowledge of convex optimization is assumed.

Getting started

  1. Clone this repository.
  2. Install CVXPY following these instructions. We recommend Python 3.9 and CVXPY 1.2.
  3. Test your CVXPY installation by running test.py in the repository.

Example tutorial schedule

  1. Convex optimization overview
  • Mathematical optimization
  • Convex optimization
  • Solvers & modeling languages
  • CVXPY example
  • Real-world applications
  1. Hello world
  • Participants will install CVXPY and solve their first convex optimization problem. Participants will get experience with basic CVXPY syntax.
  • Hello world exercise
  • Extra exercise
  1. Constructive convex analysis
  • Mathematically define convex, concave, and affine functions. Give many examples.
  • Introduce the composition rule for convex, concave, and affine functions, which generates the grammar for CVXPY.
  • Introduce Disciplined Convex Programming (DCP).
  • Learn how to construct convex optimization problems using DCP in CVXPY.
  1. DCP exercises
  • Participants will solve their first convex optimization problem with CVXPY, getting experience with basic CVXPY syntax.
  • DCP exercise
  • DCP site
  • DCP quiz
  1. Applications of convex optimization
  1. If extra time, survey of advanced features
  • Quasiconvex programming.
  • Log-log convex programming.
  • Differentiation through problems.
  • Code generation.
  1. Conclusion
  • Recap.
  • References for next steps in learning about and applying convex optimization.

About

Materials for a short course on convex optimization.


Languages

Language:Jupyter Notebook 100.0%Language:Python 0.0%