GithubHelp home page GithubHelp logo

alexandersvozil / cvx_short_course Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cvxgrp/cvx_short_course

0.0 0.0 0.0 10.55 MB

Materials for a short course on convex optimization.

Python 0.03% Jupyter Notebook 99.97%

cvx_short_course's Introduction

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.

cvx_short_course's People

Contributors

stevediamond avatar jaehyunp avatar akshayka avatar phschiele avatar enzbus avatar gitriley avatar junziz avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.