Fundamentos de optimización numérica

IE3041 - Sistemas de Control 2

La tecnología oculta detrás de la ingeniería contemporánea

Sistemas de control

Ingeniería mecánica

Ingeniería eléctrica

Machine learning

Geofísica

Investigación de operaciones

Economía y finanzas

Ingeniería civil

Biología computacional

propuesta 1

propuesta 2

propuesta \(n\)

\(\cdots\)

¿Qué es optimización?

métrica de evaluación

propuesta 1

propuesta 2

propuesta \(n\)

\(\cdots\)

¿Qué es optimización?

métrica de evaluación

propuesta 1

propuesta 2

propuesta \(n\)

mejor

propuesta

\(\cdots\)

¿Qué es optimización?

métrica de evaluación

propuesta 1

propuesta 2

propuesta \(n\)

mejor propuesta

óptima

\(\cdots\)

por esto la perspectiva puede aplicarse en una amplia variedad de casos (!)

¿Qué es optimización?

¿Qué es optimización?

métrica de evaluación

propuesta 1

propuesta 2

propuesta \(n\)

mejor propuesta

óptima

\(\cdots\)

por esto la perspectiva puede aplicarse en una amplia variedad de casos (!)

Un poco de historia...

\begin{aligned} & \quad \displaystyle\min_{\mathbf{x}} & f\left(\mathbf{x}\right) \qquad \\ & \text{subject to} & \mathbf{g}_i\left(\mathbf{x}\right) \le\mathbf{0} \quad \forall i \\ & & \mathbf{h}_j\left(\mathbf{x}\right)=\mathbf{0} \quad \forall j \end{aligned}

Planteamiento general

\begin{aligned} & \quad \displaystyle\min_{\mathbf{x}} & f\left(\mathbf{x}\right) \qquad \\ & \text{subject to} & \mathbf{g}_i\left(\mathbf{x}\right) \le\mathbf{0} \quad \forall i \\ & & \mathbf{h}_j\left(\mathbf{x}\right)=\mathbf{0} \quad \forall j \end{aligned}

s.t.

Planteamiento general

\begin{aligned} & \quad \displaystyle\min_{\mathbf{x}} & f\left(\mathbf{x}\right) \qquad \\ & \text{subject to} & \mathbf{g}_i\left(\mathbf{x}\right) \le\mathbf{0} \quad \forall i \\ & & \mathbf{h}_j\left(\mathbf{x}\right)=\mathbf{0} \quad \forall j \end{aligned}

            \(\mathbf{x} \in \mathbb{R}^n\)

variables de decisión

[las cantidades que se pueden cambiar | ajustar]

Planteamiento general

s.t.

\begin{aligned} & \quad \displaystyle\min_{\mathbf{x}} & f\left(\mathbf{x}\right) \qquad \\ & \text{subject to} & \mathbf{g}_i\left(\mathbf{x}\right) \le\mathbf{0} \quad \forall i \\ & & \mathbf{h}_j\left(\mathbf{x}\right)=\mathbf{0} \quad \forall j \end{aligned}

función objetivo | función de costo [escalar]

s.t.

\(\mathbf{x} \in \mathbb{R}^n\)

variables de decisión

Planteamiento general

\begin{aligned} & \quad \displaystyle\min_{\mathbf{x}} & f\left(\mathbf{x}\right) \qquad \\ & \text{subject to} & \mathbf{g}_i\left(\mathbf{x}\right) \le\mathbf{0} \quad \forall i \\ & & \mathbf{h}_j\left(\mathbf{x}\right)=\mathbf{0} \quad \forall j \end{aligned}

función objetivo | función de costo [escalar]

s.t.

\(\mathbf{x} \in \mathbb{R}^n\)

variables de decisión

restricciones de desigualdad

Planteamiento general

\begin{aligned} & \quad \displaystyle\min_{\mathbf{x}} & f\left(\mathbf{x}\right) \qquad \\ & \text{subject to} & \mathbf{g}_i\left(\mathbf{x}\right) \le\mathbf{0} \quad \forall i \\ & & \mathbf{h}_j\left(\mathbf{x}\right)=\mathbf{0} \quad \forall j \end{aligned}

función objetivo | función de costo [escalar]

s.t.

\(\mathbf{x} \in \mathbb{R}^n\)

variables de decisión

restricciones de desigualdad

restricciones de igualdad

Planteamiento general

\begin{aligned} & \quad \displaystyle\min_{\mathbf{x}} & f\left(\mathbf{x}\right) \qquad \\ & \text{subject to} & \mathbf{g}_i\left(\mathbf{x}\right) \le\mathbf{0} \quad \forall i \\ & & \mathbf{h}_j\left(\mathbf{x}\right)=\mathbf{0} \quad \forall j \end{aligned}

función objetivo | función de costo [escalar]

s.t.

\(\mathbf{x} \in \mathbb{R}^n\)

variables de decisión

restricciones de desigualdad

restricciones de igualdad

x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)

Programa No Lineal (general)

Planteamiento general

\begin{aligned} & \quad \displaystyle\min_{\mathbf{x}} & f\left(\mathbf{x}\right) \qquad \\ & \text{subject to} & \mathbf{g}_i\left(\mathbf{x}\right) \le\mathbf{0} \quad \forall i \\ & & \mathbf{h}_j\left(\mathbf{x}\right)=\mathbf{0} \quad \forall j \end{aligned}

función objetivo | función de costo [escalar]

s.t.

\(\mathbf{x} \in \mathbb{R}^n\)

variables de decisión [lo que se puede cambiar | ajustar]

restricciones de desigualdad

restricciones de igualdad

Planteamiento general

\begin{aligned} & \displaystyle\min_{\mathbf{x}} & \mathbf{c}^\top\mathbf{x} \qquad \\ & \text{ s.t.} & \mathbf{A}\mathbf{x}\le\mathbf{b} \quad \\ & & \mathbf{A}_{\mathrm{eq}}\mathbf{x}=\mathbf{b}_{\mathrm{eq}} \\ & & \mathbf{lb} \le \mathbf{x} \le \mathbf{ub} \end{aligned}

lower bounds

upper bounds

Programas Lineales (LP)

\begin{aligned} & \displaystyle\min_{\mathbf{x}} & \mathbf{c}^\top\mathbf{x} \qquad \\ & \text{ s.t.} & \mathbf{A}\mathbf{x}\le\mathbf{b} \quad \\ & & \mathbf{A}_{\mathrm{eq}}\mathbf{x}=\mathbf{b}_{\mathrm{eq}} \\ & & \mathbf{lb} \le \mathbf{x} \le \mathbf{ub} \end{aligned}
\equiv \displaystyle \max_\mathbf{x} -\mathbf{c}^\top\mathbf{x}

lower bounds

upper bounds

\displaystyle \max_{\mathbf{x}} f(\mathbf{x})= \min_{\mathbf{x}} -f(\mathbf{x})

en general

Programas Lineales (LP)

\begin{aligned} & \displaystyle\min_{\mathbf{x}} & \mathbf{c}^\top\mathbf{x} \qquad \\ & \text{ s.t.} & \mathbf{A}\mathbf{x}\le\mathbf{b} \quad \\ & & \mathbf{A}_{\mathrm{eq}}\mathbf{x}=\mathbf{b}_{\mathrm{eq}} \\ & & \mathbf{lb} \le \mathbf{x} \le \mathbf{ub} \end{aligned}
\equiv \displaystyle \max_\mathbf{x} -\mathbf{c}^\top\mathbf{x}

lower bounds

upper bounds

x = linprog(c,A,b,Aeq,beq,lb,ub)

SIMPLEX

\displaystyle \max_{\mathbf{x}} f(\mathbf{x})= \min_{\mathbf{x}} -f(\mathbf{x})

en general

Programas Lineales (LP)

Mínimos Cuadrados (Lineales)

\begin{aligned} & \displaystyle\min_{\mathbf{x}} & \dfrac{1}{2} \left\| \mathbf{C}\mathbf{x}-\mathbf{d} \right\|_2^2 \\ & \text{ s.t.} & \mathbf{A}\mathbf{x}\le\mathbf{b} \quad \\ & & \mathbf{A}_{\mathrm{eq}}\mathbf{x}=\mathbf{b}_{\mathrm{eq}} \\ & & \mathbf{lb} \le \mathbf{x} \le \mathbf{ub} \end{aligned}
x = lsqlin(C,d,A,b,Aeq,beq,lb,ub)
\begin{aligned} & \displaystyle\min_{\mathbf{x}} & \dfrac{1}{2}\mathbf{x}^\top\mathbf{Q}\mathbf{x}+\mathbf{c}^\top\mathbf{x} \\ & \text{ s.t.} & \mathbf{A}\mathbf{x}\le\mathbf{b} \quad \\ & & \mathbf{A}_{\mathrm{eq}}\mathbf{x}=\mathbf{b}_{\mathrm{eq}} \\ & & \mathbf{lb} \le \mathbf{x} \le \mathbf{ub} \end{aligned}
x = quadprog(Q,c,A,b,Aeq,beq,lb,ub)

Programas Cuadráticos (QP)

\begin{aligned} & \displaystyle\min_{\mathbf{x}} & \dfrac{1}{2}\mathbf{x}^\top\mathbf{Q}\mathbf{x}+\mathbf{c}^\top\mathbf{x} \\ & \text{ s.t.} & \mathbf{A}\mathbf{x}\le\mathbf{b} \quad \\ & & \mathbf{A}_{\mathrm{eq}}\mathbf{x}=\mathbf{b}_{\mathrm{eq}} \\ & & \mathbf{lb} \le \mathbf{x} \le \mathbf{ub} \end{aligned}

producto cuadrático

x = quadprog(Q,c,A,b,Aeq,beq,lb,ub)

Programas Cuadráticos (QP)

Programas Cuadráticos (QP)

\begin{aligned} & \displaystyle\min_{\mathbf{x}} & \dfrac{1}{2}\mathbf{x}^\top\mathbf{Q}\mathbf{x}+\mathbf{c}^\top\mathbf{x} \\ & \text{ s.t.} & \mathbf{A}\mathbf{x}\le\mathbf{b} \quad \\ & & \mathbf{A}_{\mathrm{eq}}\mathbf{x}=\mathbf{b}_{\mathrm{eq}} \\ & & \mathbf{lb} \le \mathbf{x} \le \mathbf{ub} \end{aligned}

producto cuadrático

x = quadprog(Q,c,A,b,Aeq,beq,lb,ub)

Entre otros casos específicos.

 

Sin embargo, la clasificación más importante entre programas | algoritmos ha sido:

 

convexos vs. no convexos

La revolución convexa

programa no lineal + función objetivo y restricciones convexas

Programas Convexos

programa no lineal + función objetivo y restricciones convexas

f\left(tx_1+(1-t)x_2\right) \\ \le tf(x_1)+(1-t)f(x_2) \\ \forall t\in[0,1]

Programas Convexos

Programas Convexos

\square, \ \triangle \ \to t\square + (1-t)\triangle

combinación convexa

programa no lineal + función objetivo y restricciones convexas

Programas Convexos

todo programa convexo tiene una única solución óptima

slack variables

valor mínimo de \(f\)

\displaystyle \min_{\mathbf{x}} f(\mathbf{x})
\displaystyle \arg \min_{\mathbf{x}} f(\mathbf{x})

variables de decisión que generan el valor mínimo de \(f\)

variables de "holgura", cambian restricciones de desigualdad (complejas) a restricciones de igualdad, las cuales son más sencillas para los solvers

Algunos detalles adicionales

slack variables

valor mínimo de \(f\)

\displaystyle \min_{\mathbf{x}} f(\mathbf{x})
\displaystyle \arg \min_{\mathbf{x}} f(\mathbf{x})

variables de decisión que generan el valor mínimo de \(f\)

variables de "holgura", cambian restricciones de desigualdad (complejas) a restricciones de igualdad, las cuales son más sencillas para los solvers

Algunos detalles adicionales

slack variables

valor mínimo de \(f\)

\displaystyle \min_{\mathbf{x}} f(\mathbf{x})
\displaystyle \arg \min_{\mathbf{x}} f(\mathbf{x})

variables de decisión que generan el valor mínimo de \(f\)

variables de "holgura", cambian restricciones de desigualdad (complejas) a restricciones de igualdad, las cuales son más sencillas para los solvers

Algunos detalles adicionales

slack variables

valor mínimo de \(f\)

\displaystyle \min_{\mathbf{x}} f(\mathbf{x})
\displaystyle \arg \min_{\mathbf{x}} f(\mathbf{x})

variables de decisión que generan el valor mínimo de \(f\)

Algunos detalles adicionales

ax\le b
\Rightarrow y + ax - b, \ y \le 0

Una compañía de manufactura produce dos modelos A y B de un producto. Cada unidad del modelo A requiere 9 horas de labor para fabricarlo y 1 hora de labor para darle los acabados finales. Para el modelo B estos tiempos son de 12 y 3 horas respectivamente. Para fabricación y acabados finales, el número máximo de horas laborales por semana son de 180 y 30 respectivamente. La compañía percibe una ganancia de Q.8,000.00 por cada unidad del modelo A y Q.12,000.00 por cada unidad del modelo B. ¿Cuántas unidades del modelo A y B deben manufacturarse por semana para obtener una máxima ganancia? ¿Cuál es la ganancia máxima por semana?

Ejemplo: manufactura

\begin{aligned} & \displaystyle\min_{\mathbf{x}} & -\begin{bmatrix} 8000 & 12000 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} \\ & \text{ s.t.} & \begin{bmatrix} 3 & 4 \\ 1 & 3 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} \le \begin{bmatrix} 60 \\ 30 \end{bmatrix} \\ & & \begin{bmatrix} 0 \\ 0 \end{bmatrix} \le \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} \le \begin{bmatrix} +\infty \\ +\infty \end{bmatrix} \end{aligned}

Ejemplo: manufactura

\begin{aligned} & \displaystyle\min_{\mathbf{x}} & -\begin{bmatrix} 8000 & 12000 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} \\ & \text{ s.t.} & \begin{bmatrix} 3 & 4 \\ 1 & 3 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} \le \begin{bmatrix} 60 \\ 30 \end{bmatrix} \\ & & \begin{bmatrix} 0 \\ 0 \end{bmatrix} \le \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} \le \begin{bmatrix} +\infty \\ +\infty \end{bmatrix} \end{aligned}
\begin{bmatrix} 3 & 4 \\ 1 & 3 \\ -1 & 0 \\ 0 & -1 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} \le \begin{bmatrix} 60 \\ 30 \\ 0 \\ 0 \end{bmatrix}

Ejemplo: manufactura

\begin{aligned} & \displaystyle\min_{\mathbf{x}} & -\begin{bmatrix} 8000 & 12000 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} \\ & \text{ s.t.} & \begin{bmatrix} 3 & 4 \\ 1 & 3 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} \le \begin{bmatrix} 60 \\ 30 \end{bmatrix} \\ & & \begin{bmatrix} 0 \\ 0 \end{bmatrix} \le \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} \le \begin{bmatrix} +\infty \\ +\infty \end{bmatrix} \end{aligned}
\begin{bmatrix} 3 & 4 \\ 1 & 3 \\ -1 & 0 \\ 0 & -1 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} \le \begin{bmatrix} 60 \\ 30 \\ 0 \\ 0 \end{bmatrix}

>> ejemplo_manufactura.m

Ejemplo: manufactura

Suponga que se quieren invertir $.1,000.00 en las compañías A, B y C, por un período de un mes. Se compra a inicio de mes cierta cantidad de acciones por dólar y se venden a otra cantidad de acciones por dólar al final del mes. La tasa de retorno de cada inversión es una variable aleatoria con cierto valor esperado/media \(r_i\). El objetivo es invertir tal que el retorno esperado a final del mes sea por lo menos $.50.00 (5% de la inversión inicial total).

Ejemplo: portfolio optimization

\begin{aligned} & \displaystyle\min_{\mathbf{x}} & \dfrac{1}{2}\mathbf{x}^\top\mathbf{Q}\mathbf{x}+\mathbf{0}^\top\mathbf{x} \qquad \qquad \\ & \text{ s.t.} & \begin{bmatrix} 1 & 1 & 1 \\ -r_1 & -r_2 & -r_3 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} \le \begin{bmatrix} 1000 \\ -50 \end{bmatrix} \\ & & \begin{bmatrix} 0 \\ 0 \\ 0 \end{bmatrix} \le \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} \le \begin{bmatrix} 1000 \\ 1000 \\ 1000 \end{bmatrix} \end{aligned}

dada

Ejemplo: portfolio optimization

\begin{aligned} & \displaystyle\min_{\mathbf{x}} & \dfrac{1}{2}\mathbf{x}^\top\mathbf{Q}\mathbf{x}+\mathbf{0}^\top\mathbf{x} \qquad \qquad \\ & \text{ s.t.} & \begin{bmatrix} 1 & 1 & 1 \\ -r_1 & -r_2 & -r_3 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} \le \begin{bmatrix} 1000 \\ -50 \end{bmatrix} \\ & & \begin{bmatrix} 0 \\ 0 \\ 0 \end{bmatrix} \le \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} \le \begin{bmatrix} 1000 \\ 1000 \\ 1000 \end{bmatrix} \end{aligned}

dada

Ejemplo: portfolio optimization

>> ejemplo_inversion.m

minimizar la función de Himmelblau:

f(\mathbf{x})=\left(x_1^2+x_2-11\right)^2+\left(x_1+x_2^2-7\right)^2
  1. dentro de la región: \(0\le x_1\le 10\), \(0\le x_2\le 10\) 
  2. dentro del círculo de radio \(2\), centrado en \((2,2)\) planteado como una restricción de desigualdad
  3. lo mismo que el caso anterior pero planteado como una restricción de igualdad con slack variables

Ejemplo: función Himmelblau

minimizar la función de Himmelblau:

f(\mathbf{x})=\left(x_1^2+x_2-11\right)^2+\left(x_1+x_2^2-7\right)^2
  1. dentro de la región: \(0\le x_1\le 10\), \(0\le x_2\le 10\) 
  2. dentro del círculo de radio \(2\), centrado en \((2,2)\) planteado como una restricción de desigualdad
  3. lo mismo que el caso anterior pero planteado como una restricción de igualdad con slack variables

Ejemplo: función Himmelblau

>> ejemplo_himmelblau.m

1. dentro de la región: \(0\le x_1\le 10\), \(0\le x_2\le 10\) 

\begin{aligned} & \displaystyle\min_{\mathbf{x}} & \left(x_1^2+x_2-11\right)^2+\left(x_1+x_2^2-7\right)^2 \\ & \text{ s.t.} & \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ -1 & 0 \\ 0 & -1 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} \le \begin{bmatrix} 10 \\ 10 \\ 0 \\ 0 \end{bmatrix} \end{aligned}

Ejemplo: función Himmelblau

2. dentro del círculo de radio \(2\), centrado en \((2,2)\) planteado como una restricción de desigualdad

\begin{aligned} & \displaystyle\min_{\mathbf{x}} & \left(x_1^2+x_2-11\right)^2+\left(x_1+x_2^2-7\right)^2 \\ & \text{ s.t.} & \underbrace{(x_1-2)^2+(x_2-2)^2-4}_{g_1(\mathbf{x})} \le 0 \end{aligned}

Ejemplo: función Himmelblau

3. lo mismo que el caso anterior pero planteado como una restricción de igualdad con slack variables

\begin{aligned} & \displaystyle\min_{\mathbf{x}} & \left(x_1^2+x_2-11\right)^2+\left(x_1+x_2^2-7\right)^2 \\ & \text{ s.t.} & x_3+(x_1-2)^2+(x_2-2)^2-4=0 \\ & & x_3 \le 0 \end{aligned}

Ejemplo: función Himmelblau