Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Optimización no lineal
Andrés Ramos
Universidad Pontificia Comillas
http://www.iit.comillas.edu/aramos/
Andres.Ramos@comillas.edu
CONTENIDO
la función objetivo es f ( x) = R( x) − β V ( x)
siendo β el factor de aversión al riesgo.
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 3
CONTENIDO
f ( x) : ℝ n → ℝ
x ∈ ℝn
gi ( x) = 0 i ∈ε
gi ( x) ≤ 0 i ∈φ
f ( x) : ℝ n → ℝ
gi ( x) : ℝ n → ℝ
x ∈ ℝn
Programación cuadrática
1 T
min f ( x ) = x Qx − bT x
x 2
Ax = b
Programación convexa
f ( x ) es convexa (cóncava si es maximización) y gi ( x ) es convexa, ∀i = 1,… , m
Programación separable
la función se puede separar en una suma de funciones de las variables
n
individuales
f ( x) = ∑ f j ( x j )
j =1
Programación geométrica n
función objetivo y restricciones toman la forma g ( x ) = ∑ c j Pj ( x )
j =1
Pj ( x ) = x x ... x , j = 1,..., n
a j1 aj2 a jn
1 2 n
Sin derivadas
Necesarios cuando no se pueden calcular éstas
Primeras derivadas (gradiente)
Segundas derivadas (hessiano)
Mayor coste computacional
Mejores propiedades de convergencia
p ∈ ℝ n un vector diferente de 0
f ( x ) valor de la función
∇f ( x ) gradiente de la función
∇2 f ( x ) hessiano de la función (si f tiene segundas derivadas continuas es
una matriz simétrica)
O alternativamente
1 T 2
f ( x0 + p ) = f ( x0 ) + ∇f ( x0 )T p + p ∇ f (ξ ) p
2
1 T
f ( x) = x Qx − bT x
2
x ∈ ℝn
b ∈ ℝn
Q ∈ ℝn × ℝn
Gradiente
∇f ( x ) = Qx − b
Hessiano
∇2 f ( x ) = Q
x + 2y 1 2
∇f ( x , y ) = ∇ f ( x, y ) =
2
2 x + y − 1 2 1
ezsurf('0.5*x^2+2*x*y+0.5*y^2-y+9')
1 2 1
f ( x, y ) = x + 2 xy + y 2 − y + 9
2 2
f ( x) : ℝ n → ℝ
x ∈ ℝn
x* ∈ ℝ n es el óptimo de la función
Es mínimo global si f ( x * ) ≤ f ( x ) para x ∈ ℝ
n
Mínimo global
Mínimo local Mínimo local Mínimo local
estricto
estricto (global) estricto
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 14
CONTENIDO
Es definida positiva ∇ 2 f ( x, y ) =
2 1
1 2
No lo es ∇2 f ( x , x ) = 1 2
1 2 2 1
1 2 1
f ( x, y ) = x + 2 xy + y 2 − y + 9
2 2
con solución ( x, y ) = (2 3, −1 3)
1 2
∇2 f ( x, y ) =
Hessiano es matriz indefinida (no es ni
2 1
semidefinida positiva ni semidefinida negativa)
ezsurf('0.5*x^2+2*x*y+0.5*y^2-y+9')
f ( x, y ) = 2 x 2 + y 2 − 2 xy + 2 x 3 + x 4
4 + 12 x + 12 x 2 −2
Hessiano ∇ f ( x, y ) =
2
−2 2
ezsurf('2*x^2+y^2-2*x*y+2*x^3+x^4')
f ( x, y ) = ( x − 2) 2 + ( y − 1)2
2 0
Hessiano ∇ f ( x, y ) =
2
es matriz semidefinida positiva
0 2
ezsurf('(x-2)^2+(y-1)^2')
16 3
Hessiano ∇2 f ( x, y ) = es matriz semidefinida positiva
3 14
ezsurf('8*x^2+3*x*y+7*y^2-25*x+31*y-29')
Ax = b
siendo x ∈ ℝn , A ∈ ℝm×n , b ∈ ℝm
Se define el lagrangiano como
L( x, λ ) = f ( x ) + λ T ( Ax − b)
gi ( x ) ≤ 0 i = 1,..., m
h j ( x ) = 0 j = 1,..., l
donde f : ℝn → ℝ , gi : ℝ n → ℝ
Se define el lagrangiano como
m l
L( x, λ , µ ) = f ( x ) + ∑ λi gi ( x ) + ∑ µ j h j ( x )
i =1 j =1
Óptimo sin
restricciones
Óptimo con
restricciones
min( x − 2) 2 + ( y − 1)2 + 5( x + y + 2)
min( x − 2) 2 + ( y − 1)2 + 2( x + y + 2)
∇f ( x1 , y1 ) Gradiente de la f.o.
perpendicular a las
curvas de nivel
2( x − 2)
∇f ( x , y ) =
2( y − 1)
∇g ( x2 , y 2 )
1
∇g ( x , y ) =
1
Gradiente de la
restricción en la
frontera de la región
factible perpendicular
a dicha frontera
−1
−∇g ( x* , y * ) =
∇g ( x * , y * ) −1
∇f ( x * , y * ) = −λ∇g ( x * , y * )
λ ≥0
−5 −1
−5 = λ
−1 λ =5
∇f ( x * , y * )
λ ≥0
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 43
Ejemplo 3 (i)
min( x − 2) 2 + ( y − 1)2
x + y ≤ −2
6 x − y ≤ −18
∇ g 2 ( x3 , y 3 )
∇f ( x1 , y1 )
2( x − 2)
∇f ( x , y ) =
2( y − 1)
( −20 / 7,6 / 7) 1
∇g1 ( x, y ) =
1
∇g1 ( x2 , y2 )
6
∇g 2 ( x, y ) =
−1
−∇g 2 ( x * , y * ) −1 −6
−∇g1 ( x* , y * ) = −∇g 2 ( x* , y * ) =
−1 1
∇f ( x * , y * ) −∇g1 ( x* , y * ) ∇f ( x * , y * ) = −λ1∇g1 ( x* , y * ) − λ2∇g 2 ( x* , y * )
λ1 , λ2 ≥ 0
−68 / 7 −1 −6
= λ + λ
−2 / 7 1 −1 2 1 λ1 = 2.75
λ2 = 1.125
λ1 , λ2 ≥ 0
0
∇g 3 ( x, y ) =
1
−1 0
−∇g 2 ( x * , y * ) 0
−∇g 3 ( x* , y* ) =
−1
∇f ( x * , y * )
∇f ( x * , y * ) = −λ1∇g1 ( x* , y * ) − λ2∇g 2 ( x* , y * )
−∇g1 ( x , y )
* *
λ1 , λ2 ≥ 0
−10 −1 −1 λ1 = 0
= λ +
0 1 −1 2 0 λ
λ2 = 10
λ1 , λ2 ≥ 0 λ3 = 0
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA La primera restricción es superflua. Solución degenerada.
DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 49
Condiciones necesarias con restricciones de
desigualdad (i)
gi ( x ) ≤ 0 i = 1,..., m
donde f : ℝn → ℝ , gi : ℝ n → ℝ
Sea x* un punto factible
I = {i / gi ( x* ) = 0} el conjunto de restricciones activas
f y {gi , i ∈ I } diferenciables en x*
{gi , i ∉ I } continuas en x*
{∇gi ( x* )}i∈I linealmente independientes
i∈I
λi* ≥ 0 ∀i ∈ I
i =1
Condición de
λi* gi ( x* ) = 0 i = 1,..., m complementariedad
de holguras
λi* ≥ 0 i = 1,..., m
Sea el problema
min f ( x )
x
gi ( x ) ≤ 0 i = 1,..., m
gi ( x ) ≤ 0 i = 1,..., m
m
El lagrangiano será L( x, λ ) = f ( x) + ∑ λi gi ( x)
i =1
λi ≥ 0
La condición de optimalidad para el lagrangiano será
∇ x L( x* , λ * ) = ∇f ( x* ) + ∑ λi*∇gi ( x* ) = 0
∇L ( x * , λ * ) = 0 ⇒ i∈I
∇λ L( x* , λ * ) = gi ( x* ) = 0 ∀i ∈ I
la 2ª corresponde a la definición de restricciones activas ∀i ∈ I
Para considerar todas las restricciones lo expreso como
λi* gi ( x* ) = 0 i = 1,..., m
λi ≥ 0 ∀i ∈ I
entonces x* es mínimo global
Sea el problema
min f ( x )
x
gi ( x ) ≤ 0 i = 1,..., m
h j ( x ) = 0 j = 1,..., l
donde f : ℝn → ℝ , gi : ℝ n → ℝ
Sea x* un punto factible
I = {i / gi ( x* ) = 0} el conjunto de restricciones activas
f y {gi , i ∈ I } diferenciables en x*
{gi , i ∉ I } continuas en x*
{h j , j = 1,..., l} continuamente diferenciables en x*
{∇gi ( x* ), i ∈ I ; ∇h j ( x* ), j = 1,..., l} linealmente independientes
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 57
Condiciones necesarias con restricciones de igualdad
y desigualdad (ii)
i∈I j =1
λi ≥ 0 ∀i ∈ I
i =1 j =1
λi gi ( x* ) = 0 i = 1,..., m
λi ≥ 0 i = 1,..., m
−x 2 + y ≤ 0
−x − y ≤ 0
x −1 ≤ 0
−x 2 + y ≤ 0
−x − y ≤ 0
x −1 ≤ 0
Función no acotada
Punto A (1/2,-1/2,0,9,0)
Función no acotada
Punto B (1,-1,0,9,1)
Función no acotada
Punto C (0,0,1,10,0)
gi ( x ) ≤ 0 i = 1,..., m
h j ( x ) = 0 j = 1,..., l
gradientes de i =1 j =1
restricciones Condición de
cambiados de signo λi* gi ( x* ) = 0 i = 1,..., m complementariedad de
holguras
gi ( x * ) ≤ 0 i = 1,..., m Restricción no activa λ=0
Restricción activa λ≠0
Punto factible h j ( x* ) = 0 j = 1,..., l
λi* ≥ 0 i = 1,..., m
i∈I j =1
λi ≥ 0 ∀i ∈ I
Sin derivadas
Método de búsqueda aleatoria
Método de Hooke y Jeeves
Método de Rosenbrock (de las coordenadas rotativas o cíclicas)
Método de Nelder y Mead (símplice)
Primeras derivadas (gradiente)
Método de máximo descenso (Steepest Descent)
Método del gradiente conjugado (Flectcher y Reeves)
Segundas derivadas (hessiano)
Método de Newton
Métodos cuasi Newton (Broyden-Fletcher-Goldfarb-Shanno BFGS,
Davidon-Fletcher-Powell DFP)
f ( x ) = ( x − 1)3 + 2( x − 1) 2 + 3 f ′( x ) = 3( x − 1) 2 + 4( x − 1) f ′′( x ) = 6( x − 1) + 4
Secuencia de puntos
x0 = −0.75
f ′( x0 )
x1 = x0 − = −0.4135
f ′′( x0 )
x2 = −0.3376
x3 = −0.3333
Curva de nivel
Vector gradiente
5
∇f (2,3) = El gradiente de una
77.5 función da la dirección
de máximo aumento
16 x + 3 y − 25
∇f ( x , y ) =
3 x + 14 y + 31
−63
∇f ( −2, −2) =
−3
x
( x, y ) = (2.060, −2.656)
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 78
Método del máximo descenso
F ′(α ) = 0
40α − 20 = 0
α = 0.5
Siguiente punto xk+1= xk +αkpk=(2,1)
Dirección de movimiento pk=(0,0)
Se ha llegado al óptimo ya que el gradiente es 0
f ( x, y ) = 8 x 2 + 3 xy + 7 y 2 − 25 x + 31 y − 29
16 xk + 3 yk − 25 min F (α ) = f ( xk + α pk )
pk = −∇f ( xk , yk ) = −
α
3xk + 14 yk + 31
Etc.
∇f ( x )T = ( ∇f1 ( x ) ∇f 2 ( x ) … ∇f n ( x ) )
T
jacobiano de la función
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 90
Método de Newton para resolución de un sistema de
ecuaciones no lineales (ii)
Converge cuadráticamente cuando el punto está próximo a la
solución
El jacobiano de la función en cada punto debe ser no singular
∂f1 ∂f 2
∂x ∂x1 3x2 + 7 5 x2 − 9
∇f ( x1 , x2 ) = 1 =
∂f1 ∂f 2 3x1 + 2 5 x1 − 4
∂x2
∂x2
−T
3x + 7 5 x 2 − 9 3x1 x 2 + 7 x1 + 2 x 2 − 3
x k +1 = x k − 2
3 x1 + 2 5 x1 − 4 5 x1 x 2 − 9 x1 − 4 x 2 + 6
1
Suponemos como punto inicial 0 2 x =
−T −T
3 x2 + 7 5 x 2 − 9 3 x1 x 2 + 7 x1 + 2 x 2 − 3 1 13 1 14 − 1.375
x1 = x0 − = − =
1
3 x + 2 5 x 1 − 4 1 2
5 x x − 9 x1 − 4 x 2 + 6
2 5 1 −
1 5 .375
Después de 8 iteraciones el punto toma el valor aproximado de
0 y las funciones toman valor 0.
x8 =
1.5
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 92
Método de Newton para optimización
Cálculo de αk
min F (α ) = (2α − 2) 2 + (α − 1) 2 = 5α 2 − 10α + 5
α
F ′(α ) = 0
10α − 10 = 0
α =1
Condición de la secante ∇2 f ( xk )( xk − xk −1 ) ≈ ∇f ( xk ) − ∇f ( xk −1 )
Aproximación Bk ( xk − xk −1 ) ≈ ∇f ( xk ) − ∇f ( xk −1 )
Para una función cuadrática el hessiano Q satisface esta
condición, luego la aproximación es exacta.
Definiendo sk = xk +1 − xk y yk = ∇f ( xk +1 ) − ∇f ( xk ) entonces Bk +1sk = yk
En los métodos cuasi Newton la matriz Bk se actualiza en cada
iteración
Bk+1 = Bk + actualización
La inicialización de Bk suele ser la matriz identidad B0=I.
gi ( x ) ≤ 0 i = 1,..., m
h j ( x ) = 0 j = 1,..., l
f , gi , h j : ℝ n → ℝ x ∈ ℝn
gi ( x ) = 0 i = 1,..., m
Se define la función de penalización
1 m 1
ψ ( x ) = ∑ g i ( x ) 2 = g ( x )T g ( x )
2 i =1 2
λi ( ρ ) = ρ gi ( x ( ρ )) i = 1,…, m
λi ( ρ ) ≥ 0 i = 1,…, m
λ =5
( −0.5, −1.5)
2( x − 2) + ρ ( x + y + 2) = 0 4−ρ 2 − 3ρ 10 ρ
x= y= λ=
2( y − 1) + ρ ( x + y + 2) = 0 2 + 2ρ 2 + 2ρ 2 + 2ρ
ρ =1 λ = 2.5 ρ =4 λ =4
(0.75, −0.25)
(0, −1)
3 1
Para ρ=1 ∇ 2xπ ( x ( ρ ), ρ ) = cond (∇2π ) = λ1 / λ2 = 4 / 2 = 2
1 3
6 4
Para ρ=4 ∇ 2xπ ( x ( ρ ), ρ ) = cond (∇2π ) = λ1 / λ2 = 10 / 2 = 5
4 6
18 16
Para ρ=16 ∇ π ( x ( ρ ), ρ ) =
2
x cond (∇ 2π ) = λ1 / λ2 = 34 / 2 = 17
16 18
66 64
Para ρ=64 ∇2xπ ( x ( ρ ), ρ ) = cond (∇ 2π ) = λ1 / λ2 = 130 / 2 = 65
64 66
gi ( x ) ≥ 0 i = 1,..., m
Se define la función barrera
m
m
o bien φ ( x) = ∑
1
∑
φ ( x ) = − log( g ( x ))
i =1
i
i =1 g i ( x )
−µ
Definimos λi = λi ( µ ) =
λi ( µ ) gi ( x ) = − µ
gi ( x )
Estimación de los multiplicadores de Lagrange.
Entonces, las condiciones de optimalidad de la función
original son
m
∇f ( x ( µ )) + ∑ λi ( µ )∇gi ( x ( µ )) = 0
i =1
λi ( µ ) gi ( x ( µ )) = − µ i = 1,…, m
λi ( µ ) ≤ 0 i = 1,… , m
λ=−
−55
( −0.5, −1.5)
µ = 100 λ=−
−12.8078
12.8078 µ=4 λ=−
−5.7016
5.7016
( −0.8508, −1.8508)
( −4.4039, −5.4039)
µ = 0.16 λ=−
−5.0318
5.0318 µ = 0.0064 λ=−
−5.0013
5.0013
3.64 1.64
Para µ=100 ∇ 2xπ ( x( µ ), µ ) = cond (∇ 2π ) = λ1 / λ2 = 5.28 / 2 = 2.64
1.64 3.64
10.127 8.127
Para µ=4 ∇ 2xπ ( x( µ ), µ ) = cond ( ∇ 2
π ) = λ1 / λ2 = 18.25 / 2 = 9.125
8.127 10.127
160.24 158.24
Para µ=0.16 ∇ 2xπ ( x( µ ), µ ) = cond (∇ 2π ) = λ1 / λ2 = 318.48 / 2 = 159.24
158.24 160.24
gi ( x ) = 0 i = 1,..., m
El óptimo del lagrangiano coincide con el del problema
anterior si el punto es factible
m
min L( x ) = f ( x ) + ∑ λ gi ( x )
x
i =1
gi ( x ) = 0 i = 1,..., m
Resolvemos este problema por el método de penalización
exterior m
1 m
min A( x ) = f ( x ) + ∑ λi gi ( x ) + ρ k ∑ [ gi ( x ) ]
k 2
x
i =1 2 i =1
De forma general
1
min A( x, λ , ρ ) = f ( x ) + λ g ( x ) + ρ g ( x )T g ( x )
T
Elegir valores de x0 , λ0 y ρ0
Prueba de optimalidad. Si se verifica se detiene el algoritmo.
∇L( xk , λk ) = 0
gi ( x ) = 0 i = 1,..., m
m
Formulamos el lagrangiano min L( x ) = f ( x ) + ∑ λi gi ( x )
x
i =1
∇ x L( x, λ ) = ∇f ( x ) + ∑ λi ∇gi ( x ) = 0
∇L( x* , λ * ) = 0 ⇒ i =1
∇ L( x , λ ) = g ( x ) = 0
λ i
vk
∇2xx L( xk , λk ) ∇g ( xk ) pk −∇ x L( xk , λk )
=
∇ g ( xk ) T
0 v
k g ( x k )
2. Se obtienen ( pk , vk )
3. Se actualizan los valores de las variables y multiplicadores
xk +1 xk pk
= +
k +1 λk vk
λ
Ax = b, x ∈ ℝ n
Supongamos un punto factible x y una dirección factible p,
Ap=0, entonces cualquier punto factible se puede expresar
como x = x + p . min f ( x + p )
p
Ap = 0, p ∈ ℝ n
v ∈ ℝr
−2 ⋅ 1 6 ⋅ ⋅ −2 ⋅ 1
Ax = b, x ∈ ℝn
v ∈ ℝr
Se aplica el método de Newton para calcular la dirección vk
T
Z T ∇2 f (x )Z v = −Z T ∇f (x )
k k
Evaluando la función
T
m 1 m m T m
f ( y ) = f ∑ α i pi = ∑ α p
i i A ∑ j j
α p − b ∑ α i i =
p
i =0 2 i =0 j =0 i =0
1 m m m
= ∑∑α iα j pi Ap j − ∑ α ibT pi
T
2 i =0 j =0 i =0
1 m 2 T m
= ∑ α i pi Api − ∑α ibT pi Desaparecen los productos piApj
2 i =0 i =0
m
1
= ∑ α i2 piT Api − α i bT pi
i =0 2
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 131
Método del gradiente conjugado lineal (iii)
Minimizando la función
m m 1
min f ( y ) = min f ∑ α i pi = ∑ min α i2 piT Api − α i bT pi
αi
y
i =0 i = 0 αi 2
Ejemplo
1 ⋅ ⋅ 1 ⋅ 1 ⋅
A = ⋅ 2 ⋅ b = 1 x0 = ⋅ , r0 = 1 , p−1 = ⋅ , β 0 = 0, ε = 10−12
⋅ ⋅ 3 ⋅ 1 ⋅
1
1 0.5 0.5
r0 = 1.73 > ε , p0 = 1 , α 0 = 0.5, x1 = 0.5 , r1 = ⋅
1 0.5 −0.5
0.18 1 ⋅
r2 = 0.245 > ε , p2 = −0.18 , α 2 = 0.556, x3 = 0.5 , r3 = ⋅
0.06 0.33 ⋅
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA
DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Optimización no lineal - 134
Método del gradiente conjugado lineal (vi)
1 T
≡
2
y A
y Ay
2
x0 = 0, p−1 = 0, β 0 = 0
Para i = 0,1,…
Si ∇f ( xi ) < ε fin.
∇f ( xi ) ∇f ( xi )
T
p = −∇f ( x0 )
α = 0.0625
f ( x0 ) = 0.985
∇f ( x0 ) = ( −0.248 −0.393 −0.623 −0.806 )
T
p = −∇f ( x0 )
α = 0.5
Idea básica
Sacar partido de información auxiliar sobre el problema para acelerar la
convergencia
Supongamos que conocemos la matriz M definida positiva
En lugar de resolver Ax = b resolvemos M −1 Ax = M −1b
2000 1000 x1 1
1 x = 1 cond ( A) = 1700
2 2
1000 ⋅
M −1 =
⋅ 1
2 1 x1 0.001
1 2 x = 1 cond ( M −1 A) = 3
2
El objetivo es encontrar M de manera que M≈A