Optimization
CSE 440: Introduction to Artificial Intelligence
Vishnu Boddeti
Content Credits: CMU AI, http://ai.berkeley.edu
Optimization Problem: Definition
- Optimization Problem: Determine value of optimization variable within feasible region/set to optimize optimization objective
$$
\begin{equation}
\begin{aligned}
\min_{\mathbf{x}} & f(\mathbf{x}) \\
\mbox{s.t. } & \mathbf{x} \in \mathcal{F}
\end{aligned}
\end{equation}
$$
- Optimization variable $\mathbf{x} \in \mathbb{R}^n$
- Feasible region/set $\mathcal{F} \subseteq \mathbb{R}^n$
- Optimization objective: $f:\mathcal{F} \rightarrow \mathbb{R}$
- Optimal solution: $\mathbf{x}^* = \underset{\mathbf{x}\in \mathcal{F}}{\operatorname{arg min}} f(\mathbf{x})$
- Optimal objective value $f^*= \underset{\mathbf{x} \in \mathcal{F}}{\operatorname{min}} f(\mathbf{x}) = f(\mathbf{x}^*)$
Optimization Problem: Definition
$$
\begin{equation}
\begin{aligned}
\min_{\color{cyan}{\mathbf{x}}} & f(\mathbf{x}) \\
\mbox{s.t. } & \mathbf{x} \in \mathcal{F}
\end{aligned}
\end{equation}
$$
- Optimization variable $\mathbf{x} \in \mathbb{R}^n$
- Discrete variables: Combinatorial optimization
- Continuous variables: Continuous optimization
- Mixed: Some variables are discrete, and some are continuous
Optimization Problem: Definition
$$
\begin{equation}
\begin{aligned}
\min_{\mathbf{x}} & f(\mathbf{x}) \\
\mbox{s.t. } & \mathbf{x} \in {\color{cyan}{\mathcal{F}}}
\end{aligned}
\end{equation}
$$
- Feasible region/set $\mathcal{F} \subseteq \mathbb{R}^n$
- Unconstrained optimization: $\mathcal{F}=\mathbb{R}^n$
- Constrained optimization: $\mathcal{F} \subset \mathbb{R}^n$
- Finding a feasible point $\mathbf{x} \in \mathcal{F}$ can already be difficult
Optimization Problem: Definition
$$
\begin{equation}
\begin{aligned}
\min_{\mathbf{x}} & {\color{cyan}{f(\mathbf{x})}} \\
\mbox{s.t. } & \mathbf{x} \in \mathcal{F}
\end{aligned}
\end{equation}
$$
- Optimization objective $f:\mathcal{F}\rightarrow\mathbb{R}$
- $f(\mathbf{x}) = 1$: Feasibility problem
- Simple functions
- Linear function $f(\mathbf{x})=\mathbf{a}^T\mathbf{x}$
- Convex function (next lecture)
- Complicated functions
- Can be implicitly represented through an algorithm which takes $\mathbf{x}\in\mathcal{F}$ as input, and outputs a value
Optimization Problem: Definition
$$
\begin{equation}
\begin{aligned}
\color{cyan}{\min_{\mathbf{x}}} & {f(\mathbf{x})} \\
\mbox{s.t. } & \mathbf{x} \in \mathcal{F}
\end{aligned}
\end{equation}
$$
- Minimization can be converted to maximization (and vice versa)
$$\begin{equation}
\begin{aligned}
\max_{\mathbf{x}} & \mbox{ } g(\mathbf{x}) = -f(\mathbf{x}) \\
\mbox{s.t. } & \mathbf{x} \in \mathcal{F}
\end{aligned}
\end{equation}$$
- Same optimal solution and optimal objective value $g^*=-f^*$
Optimization Problem: Example
- Example: Traveling Salesman Problem (TSP)
- Problem: $n$ cities, distance from city $i$ to city $j$ is $d(i,j)$, find a tour (a closed path that visits every city exactly once) with minimal total distance.
- Variable $\mathbf{x}$: ordered list of cities being visited
- $x_i$ is the index of the $i$-th city being visited
- Feasible set $\mathcal{F}=\{\mathbf{x}: \mbox{"each city visited exactly once"}\}$
$$\begin{equation}
\mathcal{F} = \{\mathbf{x}:\mathbf{x}\in\{1,\dots,n\}^n; \sum_{k} \mathbb{I}(x_k=i)=1, \forall i\in\{1,\dots,n\}\}
\end{equation}$$
- Objective function $f(\mathbf{x}) = \mbox{"total distance when following "} \mathbf{x}$
$$\begin{equation}
f(\mathbf{x}) = d(x_n,x_1) + \sum_{k=1}^{n-1} d(x_k,x_{k+1})
\end{equation}$$
Optimization Problem: Example
$$
\begin{equation}
\begin{aligned}
\min_{\mathbf{x}} & f(\mathbf{x}) \\ \nonumber
\mbox{s.t. } & \mathbf{x} \in \mathcal{F}
\end{aligned}
\end{equation}
$$
- Example: 8-Queens Problem (Solution 1)
- Variable $\mathbf{x}$: location of the queen in each column
- $x_i$ is the row index of the queen in $i$-th column
- Feasible set $\mathcal{F}=\{\mathbf{x}: \mbox{ "no queens in the row, col, diag" }\}$
$$\begin{equation}
\mathcal{F}=\{\mathbf{x}: \mathbf{x}\in\{1,\dots,8\}^8; x_i\neq x_j,|x_i-x_j|\neq |i-j|, \forall i, j\in\{1,\dots,8\}\} \nonumber
\end{equation}$$
- Objective function $f(\mathbf{x})=1$ (dummy)
Optimization Problem: Example
$$
\begin{equation}
\begin{aligned}
\min_{\mathbf{x}} & f(\mathbf{x}) \\ \nonumber
\mbox{s.t. } & \mathbf{x} \in \mathcal{F}
\end{aligned}
\end{equation}
$$
- Example: 8-Queens Problem (Solution 2)
- Variable $x_i,y_i$: index of row and column of the $i$-th queen
- Feasible set $F=\{x,y:\mbox{ "no queens in the row, col, diag"}\}$
$$\begin{equation}
\begin{aligned}
F&=\{x,y:x,y\in\{1,\dots,8\}^8;\sum_{i}\mathbb{I}(x_i=k)=1,\forall k\in\{1,\dots,8\}; \\
& \sum_i \mathbb{I}(y_i=k)=1 , \forall k\in\{1,\dots,8\}; |x_i-x_j| \neq |y_i-y_j|, \forall i,j\in \{1,\dots,8\}\nonumber
\end{aligned}
\end{equation}$$
- Objective function $f(x)=1$ (dummy)
Optimization Problem: Example
$x_i$ |
1.0 |
2.0 |
3.0 |
$y_i$ |
2.1 |
3.98 |
7.0 |
- Example: Linear Regression
- Problem: Find $a$ such that $y_i \approx ax_i, \forall i=\{1,2,3\}$
- Variable $a$
- Feasible region $\mathbb{R}$
- Objective function $f(a)$?
$$\begin{equation}
\begin{aligned}
\min_{a} & \sum_{i=1}^3 |y_i-ax_i| \\
\mbox{s.t. } & a \in \mathbb{R}
\end{aligned}
\end{equation}$$
$$\begin{equation}
\begin{aligned}
\min_{a} & \sum_{i=1}^3 (y_i-ax_i)^2 \\
\mbox{s.t. } & a \in \mathbb{R}
\end{aligned}
\end{equation}$$
Optimization Problem: How to Solve?
- No general way to solve
- Many algorithms developed for special classes of optimization problems (i.e., when $f(x)$ and $\mathcal{F}$ satisfy certain constraints
- Convex optimization problem (CO)
- Linear Program (LP)
- (Mixed) Integer Linear Program (MILP)
- Quadratic program (QP), (Mixed) Integer Quadratic program (MIQP), Semidefinite program (SDP), Second-order cone program (SOCP), $\dots$
- Existing solvers and code packages for these problems
- Cplex (LP, MILP, QP), Gurobi (LP, MILP, MIQP), GLPK (LP, MILP), Cvxopt (CO), DSDP5 (SDP), MOSEK (QP, SOCP), Yalmip (SDP), $\dots$
Optimization Problem: Why Useful?
- Why formulate problems as optimization problems?
- For many class of optimization problems, algorithms or algorithmic frameworks have been developed
- Decouple "representation" and "problem solving"
- Lazy mode
- Formulate a problem as an optimization problem
- Identify which class the formulation belongs to
- Call the corresponding solver
- Done !!