Subido por Josue Brian Acuña Garduño

Presentacion Unidad 2

Anuncio
Unidad 2: Optimización con restricciones
Norberto Alejandro Hernández Leandro
Técnico Académico, CIMAT-Monterrey
Optimización con restricciones
Multiplicadores de Lagrange
Condiciones de Karush-Kuhn-Tucker
Programación lineal
Programación cuadrática
Optimización restringida
Objetivos de la unidad: Al finalizar esta unidad el alumnor
conocerá los fundamentos de la optimización con restricciones, ası́
como de programación lineal y cuadrática. Además, se abordarán
algunas herramientas de Python que nos ayudarán a resolver los
problemas relacionados.
Optimización restringida
Modelo
Componentes:
ˆVariables de decisión
ˆFunción objetivo
ˆRestricciones
ˆParámetros
Función
Opt f (x)
objetivo
s.a.
g (x) ≤ b
h(x) = d Restricciones
x ≥ 0
Donde x ∈ Rn representa las variables de decisión, y b ∈ Rm1 y
d ∈ Rm2 .
Optimización restringida
Multiplicadores de Lagrange
Opt f (X )
s.a.
gi (X ) = 0
X ∈ Rn
i = 1, . . . , m
Si f y gi son funciones cuyas primeras derivadas parciales son
continuas, para todos los valores de i. Además, si f tiene un
extremo relativo en X0 sujeto a las condiciones gi = 0, y ∇gi ̸= 0,
entonces existen constantes λi tales que
∇f (X0 ) +
m
X
i=1
λi ∇gi (X0 ) = 0
Optimización restringida
Algoritmo
1
Calcular la ecuación vectorial:
∇f (X ) +
m
X
λi ∇gi (X ) = 0
i=1
2
Resolver el sistema de ecuaciones resultante de la ecuación
anterior, considerando que gi (X ) = 0, para obtener los puntos
crı́ticos.
3
Se evalúan los puntos crı́ticos en la función f para determinar
los puntos extremos de la función.
Optimización restringida
Ejemplo
Utilizar el método de multiplicadores de Lagrange a fin de
determinar los puntos extremos de la función f para la cual
f (x, y ) = 3x + 4y − 3
si el punto (x, y ) está sobre la circunferencia
(x − 1)2 + y 2 = 25
Optimización restringida
Ejemplo
Solución:
∇f (x, y ) =
3
4
y
∇g (x, y ) =
2(x − 1)
2y
Aplicando la condición de los multiplicadores de Lagrange se tiene:
3
2(x − 1)
0
∇f (x, y ) + λ∇g (x, y ) =
+λ
=
4
2y
0
donde (x − 1)2 + y 2 = 25. Resolviendo el sistema de ecuaciones
resultantes se tiene:
Mı́nimo:
Máximo:
−2
v1 =
4
−4
v2 =
4
f (−2, −4) = −25
f (4, 4) = 25
Optimización Restringida
Condiciones de Karush-Kuhn-Tucker
Opt f (X )
s.a.
gi (X ) = 0
i = 1, . . . , m
hj (X ) ≤ 0
j = 1, . . . , p
n
X ∈ R
Si f , gi y hj son funciones cuyas primeras derivadas parciales son
continuas, para todos los valores de i y j. Además, suponga que el
problema es de minimización, si f tiene un valor óptimo en X0
sujeto a las condiciones gi = 0, y hj ≤ 0, entonces existen
constantes λi ∈ R y µj ≥ 0 tales que
∇f (X0 ) +
m
X
i=1
λi ∇gi (X0 ) +
p
X
j=1
µj ∇hj (X0 ) = 0
y
µj hj (X0 ) = 0
Optimización restringida
Condiciones KKT
Si el problema es de maximización, la condición cambia a:
−∇f (X0 ) +
m
X
i=1
λi ∇gi (X0 ) +
p
X
j=1
con
µj hj (X0 ) = 0
µj ∇hj (X0 ) = 0
Optimización restringida
Condiciones KKT
1
Calcular la ecuación vectorial (para el problema de
minimización):
∇f (X ) +
m
X
i=1
λi ∇gi (X ) +
p
X
µj ∇hj (X ) = 0
j=1
2
Resolver el sistema de ecuaciones resultante de la ecuación
vectorial anterior, considerando que gi (X ) = 0, hj ≤ 0,
µj hj = 0 y µj ≥ 0 para obtener los puntos crı́ticos.
3
Se evalúan los puntos crı́ticos en la función f para determinar
los puntos extremos de la función.
Optimización restringida
Ejemplo
Encuentre los puntos máximos y mı́nimos de la función:
f (x, y ) = x 2 + y 2 + y − 1
Sujeto a,
x2 + y2 ≤ 1
con (x, y ) ∈ R2
Optimización restringida
Ejemplo
Solución:
∇f (x, y ) =
2x
2y + 1
y
∇g (x, y ) =
2x
2y
Aplicando la condición de los multiplicadores de KKT para minimización se
tiene:
2x
2x
0
∇f (x, y ) + µ∇g (x, y ) =
+µ
=
2y + 1
2y
0
donde µ ≥ 0, x 2 + y 2 ≤ 25, y µ(x 2 + y 2 − 25) = 0. Resolviendo el sistema de
ecuaciones e inecuaciones resultantes se tiene:
Mı́nimo:
Nota: Para calcular el máximo sólo se
0
debe cambiar el signo del gradiente de
v1 =
−0.5
f en las condiciones KKT, y resolver el
sistema resultante.
f (0, −0.5) = −1.25
Programación lineal
Es una rama de la programación matemática que busca optimizar
un proceso, que puede ser modelado mediante una función objetivo
lineal y restricciones lineales.
Programación lineal
Problema
Raddy Mikks produce pinturas para interiores y exteriores. La tabla siguiente
proporciona los datos básicos del problema.
Materia prima A
Materia prima B
Utilidad por ton
Requerimientos
Pintura para
Pintura para
exteriores
interiores
6
4
1
2
5
4
Disponibilidad
máxima
24
6
Una encuesta de mercado indica que la demanda diaria de pintura para
interiores no puede ser mayor a una tonelada más que la pintura para
exteriores, también que la demanda máxima de pintura para interiores de 2
toneladas. Reddy Mikks desea determinar la producción óptima de productos
para interiores y exteriores que maximice la utilidad diaria total.
Programación lineal
Modelo
ˆDeterminar las variables de decisión:
Reddy Mikks desea determinar la producción óptima de productos
para interiores y exteriores que maximice la utilidad diaria total.
ˆx1 = Toneladas de pintura para interiores a producir
ˆx2 = Toneladas de pintura para exteriores a producir
Programación lineal
Modelo
ˆDeterminar la función objetivo:
Reddy Mikks desea determinar la producción óptima de productos
para interiores y exteriores que maximice la utilidad diaria total.
Utilidad por ton
ˆmax z = 4x1 + 5x2
Pintura para
exteriores
5
Pintura para
interiores
4
Disponibilidad
máxima
Programación lineal
Modelo
ˆDeterminar las restricciones:
Materia prima A
Materia prima B
ˆ4x1 + 6x2 ≤ 24
ˆ2x1 + 1x2 ≤ 6
Requerimientos
Pintura para Pintura para
exteriores
interiores
6
4
1
2
Disponibilidad
máxima
24
6
Programación lineal
Modelo
ˆDeterminar las restricciones:
Una encuesta de mercado indica que la demanda diaria de pintura
para interiores no puede ser mayor a una tonelada más que la
pintura para exteriores, también que la demanda máxima de
pintura para interiores de 2 toneladas.
ˆx1 ≤ 1 + x2
ˆx1 ≤ 2
ˆAdemás, x1 ≥ 0 y x2 ≥ 0.
Programación lineal
Modelo
max z = 4x1 + 5x2
s.a.
4x1 + 6x2 ≤
2x1 + x2 ≤
x1 − x2 ≤
x1 ≤
x1 ≥
x2 ≥
24
6
1
2
0
0
Programación lineal
Solución
4x1 + 6x2 ≤ 24
6
x2
4
2
0
0
1
2
3
4
5
6
Programación lineal
Solución
4x1 + 6x2 ≤ 24
6
x2
4
2
0
0
1
2
3
4
5
6
Programación lineal
Solución
2x1 + x2 ≤ 6
6
x2
4
2
0
0
1
2
3
4
5
6
Programación lineal
Solución
2x1 + x2 ≤ 6
6
x2
4
2
0
0
1
2
3
4
5
6
Programación lineal
Solución
x1 − x2 ≤ 1
6
x2
4
2
0
0
1
2
3
4
5
6
Programación lineal
Solución
x1 − x2 ≤ 1
6
x2
4
2
0
0
1
2
3
4
5
6
Programación lineal
Solución
x1 ≤ 2
6
x2
4
2
0
0
1
2
3
4
5
6
Programación lineal
Solución
x1 ≤ 2
6
x2
4
2
0
0
1
2
3
4
5
6
Programación lineal
Solución
6
x2
4
2
Región
factible
0
0
1
2
3
x1
4
5
6
Programación lineal
Solución
Si z = 5, 4x1 + 5x2 = 5
6
x2
4
2
Región
factible
z=5
0
0
1
2
3
4
5
6
Programación lineal
Solución
Si z = 10, 4x1 + 5x2 = 10
6
x2
4
z=10 2
Región
factible
z=5
0
0
1
2
3
4
5
6
Programación lineal
Solución
Si z = 15, 4x1 + 5x2 = 15
6
x2
4
z=15
z=10 2
Región
factible
z=5
0
0
1
2
3
4
5
6
Programación lineal
Solución
Si z = 15, 4x1 + 5x2 = 15
6
x2
4
z=15
z=10 2
Región
factible
z=5
0
0
1
2
3
4
5
6
Programación lineal
Solución óptima
Si z = 21, 4x1 + 5x2 = 21
6
z=21
x2
4
x ∗ = (1.5, 3)
z=15
z=10 2
Región
factible
z=5
0
0
1
2
3
4
5
6
Programación lineal
Modelo extendido
Modelo Original:
max z = 4x1 + 5x2
s.a.
4x1 + 6x2 ≤ 24
2x1 + x2 ≤ 6
x1 − x2 ≤ 1
x1 ≤ 2
x1 ≥ 0
x2 ≥ 0
Modelo extendido:
max z − 4x1 − 5x2 = 0
s.a.
4x1 + 6x2 + s1 =
2x1 + x2 + s2 =
x1 − x2 + s3 =
x1 + s4 =
x1 ≥
x2 ≥
24
6
1
2
0
0
Programación lineal
Método simplex
Propuesto en 1947, por el estadounidense George Bernard
Dantzig.
Método iterativo que explora todos los puntos extremos de la
región factible.
Estructura:
1
2
3
4
Se comienza con un puto extremo inicial.
Se selecciona la variable que más aporte en la función objetivo.
Se asigna el mayor valor a la variable seleccionada en el paso
anterior, cumpliendo con las restricciones del problema.
Además, se elige la restricción que se activa.
Se actualiza el sistema y se repite el paso 2 hasta que ya no
haya más variables que beneficien la evaluación.
Programación cuadrática
Es una rama de la programación matemática que busca optimizar
un proceso, que puede ser modelado mediante una función objetivo
cuadrática y restricciones lineales. Es decir, la función objetivo se
puede expresar de la siguiente manera:
1
z = X t HX + c t X
2
donde X representa el vector de las variables de decisión, y H y C
los coeficientes de la parte cuadrática y lineal, respectivamente.
Programación cuadrática
Condiciones
Para poder asegurar la optimalidad global en un problema de
programación cuadrática es necesario que se cumplan las siguientes
condiciones:
Para el problema de minimización, la función objetivo debe ser
convexa.
Para el problema de maximización, la función objetivo debe
ser cóncava.
Programación cuadrática
Método de Wolfe
Para resolver se hace uso del método de Wolfe propuesto en 1956:
Se calculan las condiciones de KKT para el problema.
Encontrar una solución para el sistema de ecuaciones
resultante.
Si se cumplen las condiciones antes mencionadas y dado que el
sistema de ecuaciones resultante de las condiciones de KKT es
lineal (exceptuando las ecuaciones de holgura complementaria), se
puede asegurar que dicho sistema tiene solución única. Esta
solución puede ser encontrada mediante la primera fase del método
simplex de dos fases, considerando el sistema de ecuaciones como
restricciones de un problema de programación lineal y cualquier
función objetivo.
Programación cuadrática
Ejemplo
Modelo de Markowitz
Min W t ΣW
s.a.
µt W = r
1t W = 1
W ≥ 0
donde W es el vector de las proporciones de dinero que se invertirá
en cada uno de los activos; Σ es una estimación a la matriz de
covarianzas de los retornos de los activos, y µ el vector de valores
esperados de los retornos.
Programación cuadrática
Ejemplo
Modelo de Markowitz
Suponga que se quiere invertir en 4 activos diferentes, donde:



0.019 0.003 0.009 0.011
0.04
 0.003 0.024 0.011 −0.003 
 0.08


Σ=
 0.009 0.011 0.031 0.007  y µ =  0.10
0.011 −0.003 0.007 0.028
0.18




Obtenga el portaforlio de mı́nimo riesgo con un retorno esperado
del 15%.
Descargar