Vous êtes sur la page 1sur 32

Optimizacin para ingenieros

Programacin no lineal sin


restricciones
Mtodos Quasi-Newton
1er semestre de 2010

2/33

Programacin no lineal sin restricciones


Problema de programacin no lineal
Recordemos nuestro objetivo en un
problema de PNL sin restricciones
f (x)
Minimizar
n
sujeto a
xR
donde f es una funcin real (Rn -> R)

Programacin no lineal sin restricciones


2do
1er semestre
semestre de
de 2010
2008

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

Gradiente: vector formado por las derivadas parciales de una funcin. El


gradiente evaluado en un punto dado apunta en al direccin de mayor
ascenso de la funcin
f x( x )
f (1x )
f (x ) = x 2
...
f ( x )
xn

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

Programacin no lineal sin restricciones


1er semestre de 2010

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

Programacin no lineal sin restricciones


1er semestre de 2010

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

Programacin no lineal sin restricciones


1er semestre de 2010

7/33

Definiciones bsicas
Vectores ortogonales
Dos vectores a y b son ortogonales si aTb = 0

Programacin no lineal sin restricciones


1er semestre de 2010

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!

Programacin no lineal sin restricciones


1er semestre de 2010

9/33

Mtodo de Newton

Para una funcin no lineal f(x) con matriz hessiana F(x) la


aproximacin de Taylor de segundo orden es

f (x) = f (x k ) + f (x k )T (x x k ) + 12 (x x k )T F (x k )(x xk )

El mnimo de esta aproximacin est dado por

x min = x k [F (x k )] f (x k )
1

Por lo tanto, podemos hallar aproximaciones sucesivas de segundo


orden al mnimo real haciendo

x k +1 = x k [F (x k )] f (x k )
1

Mtodo de Newton

El parmetro se calcula por bsqueda lineal

Programacin no lineal sin restricciones


1er semestre de 2010

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 )

Para valores de k pequeos podemos decir


f (x k +1 ) = x k k f (x k )T M k f (x k ) + O ( 2 )

a medida que k 0, el segundo trmino domina al


tercero. Por lo tanto, si uno desea garantizar que f
decrezca para valores pequeos de k, se debe tener
que f (x k )T M k f (x k ) > 0 . La manera ms fcil de
asegurar esto es que Mk sea definida positiva
Programacin no lineal sin restricciones
1er semestre de 2010

11/33

Mtodo de Newton
Precauciones
x k +1 = x k [F( x k )] f ( x k )T
1

Por lo tanto, en el mtodo de Newton, la matriz Hessiana debe ser definida


positiva para que la direccin seleccionada sea una direccin de
descenso. Esto se cumple en puntos cercanos al mnimo, ms no existe
garanta que esto se cumpla en puntos lejanos

Existen algunas soluciones a este problema, por ejemplo el mtodo de


Levenberg-Marquardt definido por

x k +1 = x k [I + F (x k )] f (x k )T
1

siendo un escalar. El proceso se inicia con un determinado valor de y si


la matriz I + F(xk) no es definida positiva se aumenta por un factor y se
intenta de nuevo. Esto se repite hasta que se cumpla la condicin deseada

Programacin no lineal sin restricciones


1er semestre de 2010

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]

Programacin no lineal sin restricciones


1er semestre de 2010

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]

El mtodo de Newton tiende a converger ms


rpido que el de descenso por gradiente, sin
embargo falla si la matriz Hessiana no es
definida positiva

Mtodo

# iter

DMR1

16

NWT1

11

DMR2

16

NWT2

LM2

14

Programacin no lineal sin restricciones


1er semestre de 2010

xopt = [6.09 6.09]


tol = 1x10-6

14/33

Mtodo de Newton Modificado


Un algoritmo intermedio entre el mtodo de descenso
ms rpido y el mtodo de Newton es
x k +1 = x k S k f (x k )T

siendo Sk una matriz simtrica de tamao n x n. Si Sk = I


tenemos el mtodo de descenso ms rpido, mientras
que si Sk = F(xk)-1 tenemos el mtodo de Newton
Para garantizar obtener un proceso de descenso la
matriz Sk debe ser definida positiva
Idealmente, para obtener convergencia rpida, Sk debe
ser cercana a F(xk)-1
Programacin no lineal sin restricciones
1er semestre de 2010

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

Sea f(x) en Rn una funcin con segundas derivadas parciales


continuas. Para dos puntos xk+1 y xk, con g i = f ( x i ) y matriz
Hessiana constante F se cumple

q k g k +1 g k , p k x k +1 x k
q k = Fp k

(1)

Esto implica que F puede ser determinada de manera nica a


partir de n direcciones linealmente independientes y sus
respectivos valores del gradiente

Si llamamos P a la matriz cuyas columnas son los vectores pk y Q la


matriz cuyas columnas son los vectores qk, a partir de (1), se
cumple
F = QP 1
Programacin no lineal sin restricciones
1er semestre de 2010

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

Programacin no lineal sin restricciones


1er semestre de 2010

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

Programacin no lineal sin restricciones


1er semestre de 2010

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

Programacin no lineal sin restricciones


1er semestre de 2010

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

Programacin no lineal sin restricciones


1er semestre de 2010

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

Al hacer esto, despus de n pasos linealmente


independientes, tenemos que Hn = F-1 , si la matriz
Hessiana es constante, o Hn ~= F(xk)-1 en caso contrario
Para k < n existen infinitas soluciones a este problema
ya que hay ms grados de libertad que restricciones
Programacin no lineal sin restricciones
1er semestre de 2010

23/33

Mtodos Quasi-Newton
Aproximacin de rango uno

Una solucin sencilla es actualizar iterativamente aadiendo una


matriz simtrica de (a lo sumo) rango uno que satisfaga la
condicin Quasi-Newton. Una forma de conseguir esto es hacer
T
(
p k H k q k )(pk H k q k )
H k +1 = H k +
T
q k (p k H k qk )

Matriz simtrica de (a lo
sumo) rango uno

siendo q k g k +1 g k y p k x k +1 x k

Este proceso se inicia a partir de una matriz simtrica H0 cualquiera

Este algoritmo no garantiza que la aproximacin a la inversa de la


matriz Hessiana sea positiva definida. Adems puede presentar
dificultades numricas

Programacin no lineal sin restricciones


1er semestre de 2010

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

Programacin no lineal sin restricciones


1er semestre de 2010

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

0.1634 0.0568 0.3203 0.7486


F 1 H 2 = 1.4941

Programacin no lineal sin restricciones


1er semestre de 2010

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

Programacin no lineal sin restricciones


1er semestre de 2010

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

Este es el mtodo ms antiguo y uno de los ms ingeniosos


(Davidon 1959 y Fletcher-Powell 1963)

El algoritmo completo es el siguiente


d k = H k f ( x k )
x k +1 = x k + k d k

(Obtener k por bsqueda lineal)

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

Tiene la particularidad de que genera las direcciones del mtodo del


gradiente conjugado cuando H0 = I. El mtodo, adems, mantiene la
positividad de la matriz Hessiana
Programacin no lineal sin restricciones
1er semestre de 2010

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

Programacin no lineal sin restricciones


1er semestre de 2010

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

La inversa analtica de esta transformacin es, conocida


como la actualizacin de Broyden-Fletcher-Goldfarb-Shanno
para H y est dada por
H

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

Experimentos numricos indican que su desempeo es


superior al de la frmula de David-Fletcher-Powell
Programacin no lineal sin restricciones
1er semestre de 2010

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

xopt = [6.09 6.09]

BFGS

tol = 1x10-6

GC

11

x2 = [7.5 7.5]

El mtodo de DFP y el de BFGS siguen


casi la misma trayectoria (diferencias
menores a 1x10-8)

x1 = [7 6]

0
0.0105
H BFGS = H DFP = F 1 (x opt ) =
0.0035
0

Note que las dos primeras direcciones


de ambos mtodos coinciden con las
obtenidas con el mtodo del gradiente
conjugado

Programacin no lineal sin restricciones


1er semestre de 2010

Vous aimerez peut-être aussi