{ "cells": [ { "cell_type": "markdown", "metadata": { "toc": "true" }, "source": [ "# Table of Contents\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Disciplined Convex Programming\n", "\n", "## Convex optimization problems\n", "\n", "* A **mathematical optimization problem**, or just **optimization problem**, has the form\n", "$$\n", "\\begin{eqnarray*}\n", "\t&\\text{minimize}& f_0(\\mathbf{x}) \\\\\n", "\t&\\text{subject to}& f_i(\\mathbf{x}) \\le b_i, \\quad i = 1,\\ldots,m.\n", "\\end{eqnarray*}\n", "$$\n", "Here $f_0: \\mathbb{R}^n \\mapsto \\mathbb{R}$ is the **objective** function and $f_i:\\mathbb{R}^n \\mapsto \\mathbb{R}$, $i=1,\\ldots,m$, are the **constraint** functions.\n", "\n", "* An equality constraint $f_i(\\mathbf{x}) = b_i$ can be absorbed into inequality constraints $f_i(\\mathbf{x}) \\le b_i$ and $- f_i(\\mathbf{x}) \\le - b_i$.\n", "\n", "* If the objective and constraint functions are convex, then it is called a **convex optimization problem**. \n", "In a convex optimization problem, only linear equality constraint of form $\\mathbf{A} \\mathbf{x} = \\mathbf{b}$ is allowed (why?).\n", "\n", "* Convex programming (LS, LP, QP, GP, SOCP, SDP) is becoming a **technology** (`Mosek`, `Gurobi`, `Cplex`, `cvx`, `Convex.jl`, ...), just like numerical linear algebra libraries BLAS and LAPACK. Current technology can solve convex problems with up to thousands of variables and constraints.\n", "\n", "\n", "\n", "* A definite resource is the book _Convex Optimization_ by Boyd and Vandenberghe, which is freely available at http://stanford.edu/~boyd/cvxbook/. Same website has links to slides, code, and lecture videos. \n", " \n", "Lecture videos: \n", "