Académique Documents
Professionnel Documents
Culture Documents
2/33
3/33
Mtodos Quasi-Newton
Ideas Generales
Los mtodos vistos hasta el momento
(descenso ms rpido y gradiente conjugado)
tienen orden de convergencia lineal
El mtodo de Newton, el cual utiliza informacin
de la matriz Hessiana de f(x), tiene orden de
convergencia cuadrtico. Sin embargo, calcular
esta matriz es un procedimiento costoso y no
siempre factible
Los mtodos Quasi-Newton se basan en utilizar
aproximaciones sucesivas de la matriz Hessiana
para acelerar el proceso de convergencia
Programacin no lineal sin restricciones
1er semestre de 2010
4/33
Definiciones Bsicas
Gradiente y Matriz Hessiana
Matriz Hessiana: matriz simtrica formada por las derivadas parciales del
gradiente de una funcin. La matriz Hessiana da informacin de la
curvatura de una funcin
f (2x )
2x1
x1f(xx2)
F ( x) =
2...
xf(xx )
1 n
2
2 f (x)
x1x2
2 f (x)
x22
...
f (x)
x2xn
2
2
... x2f(xxn)
... ...
2
... fx(2x )
n
...
2 f (x)
x1xn
d T F ( x * )d > 0
5/33
Definiciones bsicas
Matriz definida positiva
Matriz definida positiva
Una matriz es definida positiva si para todo d, se
cumple dTAd > 0
Una matriz es definida positiva si todos sus valores
propios son mayores a 0
6/33
Definiciones bsicas
Orden de convergencia
Sea {rk }k =0 una secuencia de nmeros reales
convergiendo al lmite r*. Si la secuencia es de
orden de convergencia p , donde p es un nmero
no negativo, se cumple que asintticamente
rk +1 r = rk r
*
* p
7/33
Definiciones bsicas
Vectores ortogonales
Dos vectores a y b son ortogonales si aTb = 0
8/33
Definiciones Bsicas
Series de Taylor
Representacin de una funcin como una
suma infinita de trminos calculados a partir
de los valores de derivadas de orden
superior en un punto
f ( x) =
n =0
(n)
(a)
n
(x a )
n!
9/33
Mtodo de Newton
f (x) = f (x k ) + f (x k )T (x x k ) + 12 (x x k )T F (x k )(x xk )
x min = x k [F (x k )] f (x k )
1
x k +1 = x k [F (x k )] f (x k )
1
Mtodo de Newton
10/33
Mtodo de Newton
Precauciones
Observe que el mtodo de Newton puede ser visto como
perteneciente a la familia general de algoritmos
x k +1 = x k k M k f ( x k )
11/33
Mtodo de Newton
Precauciones
x k +1 = x k [F( x k )] f ( x k )T
1
x k +1 = x k [I + F (x k )] f (x k )T
1
12/33
Mtodo de Newton
Ejemplos
Para funciones cuadrticas la aproximacin es exacta y el
mtodo converge en un solo paso
T
1 T 2 0 3
f (x) = x
x x+4
2 0 8 5
Punto Inicial [2.4 0.5]
Mnimo [1.5 0.625]
Nmero de Iteraciones 1
Direcciones [-0.9 0.125]
13/33
Mtodo de Newton
Ejemplos
f ( x, y ) = ( x 3 8 x 2 ) cos( x) + 3( y 3 8 y 2 ) cos( y )
x2 = [7.5 7.5]
x1 = [7 6]
Mtodo
# iter
DMR1
16
NWT1
11
DMR2
16
NWT2
LM2
14
14/33
15/33
Mtodos Quasi-Newton
Calcular la matriz Hessiana de una funcin y su
inversa puede ser un procedimiento muy
costoso e imprctico
Una solucin a este problema es utilizar
aproximaciones a la inversa de la matriz
Hessiana en lugar de la inversa real. Esta es
la idea subyacente de los mtodos QuasiNewton
Las aproximaciones se construyen a partir de
informacin del gradiente durante un proceso de
descenso
Programacin no lineal sin restricciones
1er semestre de 2010
16/33
Mtodos Quasi-Newton
Construccin de la inversa de la matriz Hessiana
q k g k +1 g k , p k x k +1 x k
q k = Fp k
(1)
17/33
Ejemplo ilustrativo
Descripcin y puntos iniciales
f (x) = 2.5 x 2 + 2.5 y 2 + 2.5 z 2 + 2.5w2 + 2 xy + 2wz x 2 y 3 z 4w
f (x) = 12 x T Fx bx
f (x) = g (x) = Fx b
5
2
F=
0
0
0
0
x0 =
0
0
2 0 0
5 0 0
,
0 5 2
0 2 5
1
2
b=
3
4
1
2
f (x 0 ) = Fx 0 b =
3
4
Programacin no lineal sin restricciones
1er semestre de 2010
Mtodo
Descenso ms rpido
18/33
Ejemplo ilustrativo
Primera iteracin
0
0
x0 =
0
0
0.1456
0.2913
x1 =
0.4369
0.5825
1
2
f (x 0 ) = Fx 0 b =
3
4
0.3107
0.2524
f (x1 ) = Fx1 b =
0.3495
0.2136
0.1456
0.2913
p 0 = x1 x 0 =
0.4369
0.5825
1.3107
1.7476
q 0 = g1 g 0 =
3.3495
3
.
7864
1.3107
1.7476
Fp 0 =
3.3495
3.7864
19/33
Ejemplo ilustrativo
Segunda iteracin
0.1456
0.2913
x1 =
0.4369
0
.
5825
0.0992
0.0806
p1 = x 2 x1 =
0.1115
0.0682
0.3107
0.2524
f (x1 ) = Fx1 b =
0.3495
0
.
2136
0.0465
0.0240
0.3718
0.0479
f (x ) = Fx b =
x2 =
2
2
0.3253
0.0719
0.6507
0.0958
F[p 0
0.3346
0.2045
q1 = g 2 g1 =
0.4214
0.1177
1.3107 0.3346
1.7476 0.2045
= [q
p1 ] =
0
3.3495 0.4214
3.7864 0.1177
q1 ]
20/33
Ejemplo ilustrativo
Tercera iteracin
0.0465
0.0240
0.3718
0.0479
f (x ) = Fx b =
x2 =
2
2
0.3253
0.0719
0.6507
0.0958
0.0500
0.0074
0.3788
0.0060
f (x ) = Fx b =
x3 =
3
3
0.3358
0.0084
0
.
6647
0
.
0051
F[p 0
p1
0.0035
0.0070
p2 = x3 x 2 =
0.0105
0.0140
0.0314
0.0419
q 2 = g3 g 2 =
0.0803
0.0907
1.3107 0.3346
1.7476 0.2045
p2 ] =
3.3495 0.4214
3.7864 0.1177
0.0314
0.0419
= [q 0
0.0803
0.0907
q1 q 2 ]
21/33
Ejemplo ilustrativo
Cuarta iteracin
0.0500
0.0074
0.3788
0.0060
f (x ) = Fx b =
x3 =
3
3
0.3358
0.0084
0.6647
0.0051
0.0476
0.3807
x4 =
0.3331
0.6663
F[p 0
p1 p 2
0.0006
0.0011
f (x 3 ) = Fx 3 b =
0.0017
0.0023
1.3107 0.3346
1.7476 0.2045
p 3 ] = FP =
3.3495 0.4214
3.7864 0.1177
0.0024
0.0019
p3 = x 4 x 3 =
0.0027
0.0016
0.0080
0.0049
q3 = g4 g3 =
0.0101
0.0028
0.0314 0.0080
0.0419 0.0049
=Q
0.0803 0.0101
0.0907 0.0028
F = QP 1
22/33
Mtodos Quasi-Newton
Condicin Quasi-Newton
Es natural intentar construir aproximaciones sucesivas
Hk de F-1 de forma tal que en cada iteracin estas sean
consistentes con q k = Fp k para todas las direcciones
utilizadas. Es decir
H k +1q k = p k , 0 i k
Condicin Quasi-Newton
23/33
Mtodos Quasi-Newton
Aproximacin de rango uno
Matriz simtrica de (a lo
sumo) rango uno
siendo q k g k +1 g k y p k x k +1 x k
24/33
Ejemplo ilustrativo
Descripcin y puntos iniciales
f (x) = 2.5 x 2 + 5 y 2 + 1.5 z 2 + w2 + 2 xy + 2wz x 2 y 3 z 4w
f (x) = 12 x T Fx bx
f (x) = g (x) = Fx b
5 2 0 0
2 10 0 0
,
F=
0 0 3 2
0 0 2 2
10
10
x0 =
10
10
1
2
b = ,
3
4
69
118
g0 =
47
36
Mtodos
Descenso ms rpido
Actualizacin del Hessiano
de rango uno
0
0.2174 0.0435 0
0.1087
0
0
1 0.0435
F =
0
0
1 1
0
1 1.5
0
1
0
H0 =
0
0 0 0
1 0 0
0 1 0
0 0 1
F 1 H 0 = 1.9133
25/33
Ejemplo ilustrativo
Primera iteracin
10
10
x0 =
10
10
2.7641
2.3744
x1 =
5.0712
6.2248
69
118
g0 =
47
36
8.0719
20.2156
g1 =
24.6632
18.5920
7.2359
12.3744
p 0 = x1 x 0
4.9288
3
.
7752
q 0 = g1 g 0
0.8646 0.3174
0.3174 0.2562
H1 =
0.0439 0.1029
0.0344 0.0806
60.9281
138.2156
=
22.3368
17.4080
0.0439 0.0344
0.1029 0.0806
0.9858 0.0111
0.0111 0.9913
F 1 H 1 = 1.6869
Programacin no lineal sin restricciones
1er semestre de 2010
26/33
Ejemplo ilustrativo
Segunda iteracin
2.7641
2.3744
x1 =
5.0712
6
.
2248
1.3431
1.1845
x2 =
0.7293
2.9517
8.0719
20.2156
g1 =
24.6632
18.5920
8.0845
12.5315
g2 =
5.0913
3.3620
1.4210
3.5589
p 1 = x 2 x1
4.3419
3.2731
0.0126
32.7471
q1 = g 2 g1 =
19.5719
15.2300
0.7959 0.2443 0.2084 0.1634
0.2443 0.1784
0
.
0722
0
.
0568
H2 =
0.2084 0.0722
0.5918 0.3203
27/33
Ejemplo ilustrativo
Tercera iteracin
1.3431
1.1845
x2 =
0.7293
2.9517
8.0845
12.5315
g2 =
5.0913
3.3620
0.4938
0.1320
x3 =
0.1944
2.5985
1.2048
2.3323
g3 =
2.7803
1.5858
0.8493
1.3165
p2 = x3 x 2 =
0.5349
0.3532
6.8797
14.8638
q 2 = g3 g 2 =
2.3110
1.7762
0.2140 0.0423 0.0415 0.0509
0.0423 0.1083 0.0145 0.0178
H3 =
0.0415 0.0145 0.4845 0.3687
0
.
0509
0
.
0178
0
.
3687
0
.
7269
F 1 H 3 = 1.2924
28/33
Ejemplo ilustrativo
Cuarta iteracin
0.4938
0.1320
x3 =
0.1944
2.5985
1.2048
2.3323
g3 =
2.7803
1.5858
0.2793
0.2832
x4 =
0.3005
2
.
3162
0.9628
1.3903
g4 =
0.7311
0
.
0315
0.2145
0.4152
p3 = x 4 x 3 =
0.4949
0.2823
0.2420
3.7226
q3 = g4 g3 =
2.0492
1.5543
0.2174 0.0435
0.0435 0.1087
H4 =
0.0000 0.0000
0.0000 0.0000
0.0000
0.0000
0.0145 0.0000
1.0000 1.0000
1.0000 1.5000
F 1 H 4 = 2.5 10 11
Programacin no lineal sin restricciones
1er semestre de 2010
29/33
Mtodos Quasi-Newton
Mtodo de Davidon-Fletcher-Powell
pk = k dk
q k = f (x k +1 ) f (x k )
T
H k +1
p p
H q q H
= H k + k T k k Tk k k
p k qk
qk H k q k
Actualizacin de la inversa de la
matriz Hessiana aadiendo dos
matrices simtricas de rango uno
30/33
Mtodos Quasi-Newton
Mtodo de Broyden-Fletcher-Goldfarb-Shanno
Es posible actualizar la matriz Hessiana directamente (en
lugar de su inversa) utilizando la condicin
q k = Fp k
q k = B k +1 p k , 0 i n
siendo Bk la k-sima aproximacin a la matriz Hessiana
La similitud de esta ecuacin con la condicin Quasi-Newton
implica que cualquier frmula para actualizar la inversa puede
ser transformada en una frmula para actualizar la propia
matriz Hessiana con solo cambiar Hk por Bk e intercambiar pk
con qk
H k +1q k = p k , 0 i k
Condicin Quasi-Newton
31/33
Mtodos Quasi-Newton
Mtodo de Broyden-Fletcher-Goldfarb-Shanno
Haciendo esta transformacin para la frmula de DavidFlecther-Powell tenemos
T
B k +1
q q
B p p B
= B k + k T k k Tk k k
qk pk
pk B k pk
BFGS
k +1
qk T Hk qk
= H k + 1 +
T
q
k pk
p k p k T p k q k T H k + H k q k pk T
T
T
p q
q
k pk
k k
32/33
Mtodo de Broyden-Fletcher-Goldfarb-Shanno
Ejemplo
f ( x, y ) = ( x 3 8 x 2 ) cos( x) + 3( y 3 8 y 2 ) cos( y )
Mtodo
# iter
DFP
BFGS
tol = 1x10-6
GC
11
x2 = [7.5 7.5]
x1 = [7 6]
0
0.0105
H BFGS = H DFP = F 1 (x opt ) =
0.0035
0