You are on page 1of 32

OPTIMIZACIN VECTORIAL

Mtodos de Bsqueda Directa

Mtodos del Gradiente

Mtodos de Segundo Orden

Utilizan slo valores de la


funcin
Requieren valores
aproximados de la primera
derivada de f(x)
Adems de utilizar la
primera derivada tambin
utilizan la segunda
derivada de f(x)

OPTIMIZACIN VECTORIAL

Mtodos de Bsqueda Directa

Mtodos del Gradiente

Mtodos de Segundo Orden

Utilizan slo valores de la


funcin
Requieren valores
aproximados de la primera
derivada de f(x)
Adems de utilizar la
primera derivada tambin
utilizan la segunda
derivada de f(x)

Mtodos de bsqueda directa


Son tiles cuando no se conoce el gradiente de la funcin
Existen tcnicas:
Heursticas: El mtodo del simplex
Tericas: Mtodo de las direcciones conjugadas de Powell

Mtodo Simplex
Geomtricamente el elemento que requiere menos puntos para su
construccin => Simplex regular, que en dimensin N es un
poliedro compuesto de N+1 puntos equidistantes que forman sus
vrtices (tringulo, tetraedro,...).

Mtodo Simplex 1
X(2)

X(2)
X(1)

X(1)
X(3)
Se sita un simple
regular en el espacio
de las variables
independientes

X(3)

Este punto se
X(4) utiliza para
formar un nuevo
simplex

El vrtice con mayor


valor de la funcin se
refleja a travs del
centroide

Este procedimiento se repite hasta que se encuentre el


mnimo o se encuentre uno de los siguientes casos:

Mtodo Simplex 2
1. El valor de la funcin en el peor punto y el punto reflejado sea el
mismo.
x2
x1

x3

En este caso se debe elegir


el siguiente vrtice que
tenga el valor de la funcin
ms elevado

x4

2. Cuando se llega a un ciclo


En este caso se debe reducir el simplex en un determinado factor y empezar el
procedimiento a partir del simplex nuevo

3. Criterio de terminacin

Implementacin del Mtodo Simplex 1


Requiere de dos clculos:
1. Generacin de un simplex regular de dimensin N, dado un punto
base x0 y un factor de escala

x + 1 i = j
(0)
= x j + 2 i j
i, j = 1,2,K, N

(0)
j

x (ji )

( N + 1)12 + N 1

1 =

N 2

( N + 1)12 1

2 =
N 2

Implementacin del Mtodo Simplex 2


2. Clculo del punto reflejado: Supongamos que x(j) es el punto que
ser reflejado. Entonces el centroide de los restantes N puntos ser

1 N (i )
xc = x
N i =0
i j

Todos los puntos sobre la lnea desde x(j) hasta xc vienen dados por:

x = x ( j) + (x c x ( j) )
=0
=1

x = x ( j)
x = xc

=2

j)
j)
x (nueva
= 2 x c x (anterior

Ventajas y desventajas del Mtodo


Ventajas
1. Clculos simples y lgica no complicada
2. Los requerimientos de almacenamiento son bajos (array de (N+1,N+2))
3. Pocos parmetros de ajuste (factor de escala y parmetros de terminacin)

Desventajas
1. Problemas de escala, todos los vrtices utilizan la misma

2. El algoritmo es lento, no utiliza informacin pasada


3. No existe una forma simple de expandir el simplex sin calcular el patrn
completo. Si se reduce la bsqueda tiene que continuar con este tamao de
paso.

Mtodo del simplex modificado

Mtodo de Nedler y Mead: no hay que mantener la regularidad


del simplex en el procedimiento de bsqueda: expansiones y
contracciones.

x(h) es el punto con mayor valor de la funcin, x(g) el siguiente


punto ms grande y x(l) el punto con menor valor de la funcin.

El punto reflejado es: x = x(h) + (1+ ) (xc - x(h))


=1
=> algoritmo original;
-1 1 => contraccin;
>1
=> expansin;

=
= = 0.5
==2

Se hace una reflexin normal y se chequea por una contraccin


o expansin segn las condiciones:

Mtodo del simplex modificado


X(h)

Xnew

X(h)

a) Reflexin normal:

Xnew

b) Expansin:

f(x(l)) < f(xnew) < f(x(g))

X(h)

Xnew

< f(xnew) <

X(h)

Xnew

d) Contraccin negativa:

c) Contraccin:
f(x(g))

f(xnew) < f(x(l))

f(x(h))

f(xnew) > f(x(g)) y


f(xnew) f(x(h))

Direcciones conjugadas de Powell (I)

Se aproxima la funcin objetivo por una funcin cuadrtica.

Si una funcin cuadrtica de N variables puede transformarse en la


suma de N cuadrados perfectos, el ptimo se encuentra con N
bsquedas de una variable.
q(x) = a + bT x + 1/2 xT C x

Hay que encontrar una matriz de transformacin T tal que el trmino


cuadrtico sea diagonal:
x = Tz

Q(x) = xT C x = zT T T C T z = zT D z

Se est escribiendo el vector x en un nuevo sistema de coordenadas tj,


llamadas direcciones conjugadas. Slo queda encontrar estas
direcciones.
x = Tz = t1 z1 + t2 z2+ ... + tnzn

Direcciones conjugadas de Powell (II)

Propiedad del subespacio paralelo: dada una funcin cuadrtica


q(x), dos puntos arbitrarios x(1) y x(2) y una direccin d; si y(1) es
la solucin al problema min q(x(1) + d) e y(2) es la solucin de
min q(x(2) + d) entonces la direccin (y(2) - y(1)) es C conjugada
de d.
y(1)

x(1)

x(2)

y(2)

Direcciones C-conjugadas: es
un conjunto de vectores
linealmente independientes que
diagonalizan la matriz C, es
decir:
SiT C Sj = 0 i j

Direcciones conjugadas de Powell (III)

Propiedad extendida del subespacio paralelo:

x(2)

x(3)

e(2)
x(1)

x(0)
e(1)

Calcular:
(0) mnimo f( x(1)= x(0) + (0)e1)
(1) mnimo f( x(2)= x(1) + (1)e2)
(2) mnimo f( x(3)= x(2) + (2)e1)
s1 = x(3) - x(1) es C-conjugada de e1
y e2
Repetir procedimiento con e2 y s1

Direcciones conjugadas de Powell (IV)

Algoritmo:
1.- Definir x(0) y un conjunto de direcciones independientes s(i) =
e(i), i=1,...,N
2.- Minimizar a lo largo de N+1 direcciones usando el mnimo
anterior y poner s(N) como primera y ltima direccin de bsqueda
3.- Construir la nueva direccin conjugada
4.- Borrar s(1), reemplazarla por s(2), etc. Poner la nueva direccin
en s(N) e ir al paso 2.
Incluir:
Un chequeo de convergencia
Test para asegurar la independencia lineal de las direcciones
conjugadas

Mtodos de solucin de problemas sin


restricciones (optimizacin vectorial)
Mtodos de Bsqueda Directa

Mtodos del Gradiente

Mtodos de Segundo Orden

Utilizan los valores de la


funcin
Requieren valores
aproximados de la primera
derivada de f(x)
Adems de utilizar la
primera derivada tambin
utilizan la segunda
derivada de f(x)

Mtodos del Gradiente


X(k+1) = x(k) + (k) s (x(k))
1. Tamao del paso del algoritmo: (k)

2. Vector de Direccin de bsqueda: s(x(k))


3. Algoritmo del gradiente y mtodo del Descenso ms pronunciado

Significado Geomtrico del vector


gradiente

Expansin en serie de
Taylor de la funcin
alrededor de x*:
f(x) = f(x*) + f(x*) x

f(x*) es fijo por tanto el


segundo trmino dictar
el descenso de f(x) =>
s(x(k)) = - f(x(k))

Tamao del paso del algoritmo

xk

f ( )

x2
xk+1

d
x1

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

min f (x k + d k )

(k) puede ser constante (mtodo del gradiente) o calcularse en cada


iteracin de forma que f(x(k+1)) sea mnimo a lo largo de la direccin -

f(x(k)) (mtodo del descenso ms pronunciado)

Algoritmo del Mtodo del Descenso ms


pronunciado
1. Seleccin de un punto inicial x0, eg. La iteracin k=0
2. Calcular f (xk). Parar si || f (xk) || eg . De lo contrario, definir el
vector : sk = s(xk) = - f (xk)
3. Obtener k de minimizar f () = f (xk + sk) . Actualizar
xk+1 = xk + k sk
4. k = k+1 y xk = xk+1 . Ir al paso 2.
Inconveniente: Lentitud del algoritmo cerca del mmimo ya que

f(x(*)) = 0.

Mtodos de solucin de problemas sin


restricciones (optimizacin vectorial)
Mtodos de Bsqueda Directa

Mtodos del Gradiente

Mtodos de Segundo Orden

Utilizan los valores de la


funcin
Requieren valores
aproximados de la primera
derivada de f(x)
Adems de utilizar la
primera derivada tambin
utilizan la segunda
derivada de f(x)

Mtodo de Newton (I)


Consideramos la expansin de Taylor de la funcin objetivo:

f (x ) = f (x

(k )

) + f (x )

(k ) T

x +

1
x T 2 f (x ( k ) ) x + O ( x 3 )
2

Hacemos una aproximacin cuadrtica de f(x) eliminando el


trmino de tercer orden

1
~
(k )
(k )
(k ) T
f (x ; x ) = f (x ) + f (x ) x + x T 2 f (x ( k ) ) x
2
El siguiente punto se calcula suponiendo que el gradiente de la
aproximacin cuadrtica es igual a cero

Mtodo de Newton (II)


Utilizamos la aproximacin cuadrtica de f(x) para construir una
secuencia de iteracin, forzando a x(k+1), como el siguiente punto
en la secuencia.

~
f (x ; x ( k ) ) = f (x ( k ) ) + 2 f (x ( k ) ) x = 0
De aqu que:

x = f (x
2

( k ) 1

f (x ( k ) )

x ( k +1 ) = x ( k ) 2 f (x ( k ) ) f (x ( k ) )
1

Mtodo de
Optimizacin de
Newton

Mtodo de Newton (III)

Mtodo modificado de Newton:


(k) es tal que f (x(k+1)) sea mnimo
s(x(k)) = - [2 f(x(k))]-1 f(x(k))
Caractersticas: asegura la direccin descendente, pero la
evaluacin de [2 f(x(k))]-1 es difcil y puede ser singular.
Mtodo de Marquardt-Lavenberg:
(k) =1.
s(x(k)) = - [2 f(x(k)) + (k) I ]-1 f(x(k))
(k) controla la direccin de bsqueda y mejora la
singularidad de la Hessiana. Se chequea la direccin
descendente, si f(xk+1) < f( xk) => (k+1) < (k), si no se
cumple: (k) = (k) con > 1 y se repite el paso otra vez.

Mtodo de Marquadt-Lavenberg

Algoritmo:
1.- Definir x0, estima inicial de x*, M el nmero mximo de
iteraciones y criterio de convergencia.
2.- k= 0. 0 = 104
3.- f (xk) < ?. Si ir a 10, No continuar
4.- K M ?. Si ir a 10. No: continuar

5.- Calcular s(xk) = - [2 f(x(k)) + (k) I ]-1 f(x(k))


6.- Hacer xk+1 = xk + s(xk)
7.- f(xk+1) < f(xk) ?. Si ir a 8, No: ir a 9
8.- Hacer k+1 = 0.5* k; k = k+1; Ir a 3
9.- Hacer k = 2*k. Ir a 5
10.- Parar.

Mtodo del gradiente conjugado

Se calculan direcciones conjugadas utilizando el gradiente.


Aproximando la funcin objetivo por una funcin cuadrtica:
q(x) = a + bT x + 1/2 xT C x
q(x) = g(x) = Cx + b

g(x) = C x

s(xk) = - g(k) + i=0k-1 (i) s(i)

(i) se calculan tal que sk sea C- conjugado a todas las


direcciones anteriores calculadas: s0, s1, ..., sk-1

Varias soluciones:
Fletcher- Reeves: s(k) = - g(k) + [g(k)2 / g(k-1)2 ] sk-1

con s(0) = - g(0)

Polak y Ribiere: s(k) = - f(xk) + k s(k-1) con


k = g(xk)T g(xk) / g( xk-1)2

Mtodos de Quasi-Newton (I)

Se disean para tener las mismas caractersticas de los


mtodos de Newton pero usando slo derivadas primeras.

La direccin de bsqueda es:


Sk = - Ak f (xk)

con Ak mtrica

Ak se calcula de forma recursiva: Ak+1 = Ak + Ack

Ack se calcula de forma que la secuencia A0, A1, ..., Ak+1


aproxime la inversa de la matrix hesiana: H-1 = [2f (xk)]-1

Si la funcin es cuadrtica la matrix hessiana es C, por tanto se


quiere aproximar:
C-1 = Ak+1
y que cumpla la propiedad cuadrtica: xk = C-1 gk

Mtodos de Quasi-Newton (II)


xk = Ak+1 gk;
Ack gk = 1/ xk Ak gk
La solucin es:
A ck

Ak g k zT

zT g k

Mtodo de Davidon-Fletcher-Powell: y = xk y z = Ak gk

1 x k y T
=
y T g k

= A

k 1

x k 1 x ( k 1)T
+
( k 1)T
g k 1
x

A k 1 g k 1 g ( k 1)T A k 1


g ( k 1)T A k 1 g k 1

Mtodos de Quasi-Newton (III)

Conserva las propiedades de simetra y definida positiva => Si


A0 es simtrica y definida positiva, A1, A2,... Tambin. => Una
solucin A0 =I
Mtodo de Boyden-Fletcher-Shannon (BFS)

k +1

k
( k )T

x
g
= I
x ( k )T g k

k
A

k
( k )T

x
g
I

x ( k )T g k

x k g ( k )T
+
x ( k )T g k

Algoritmo general

1.- Definir M: nmero mximo de iteraciones, x0 estima inicial,


1: criterio de convergencia, 2 criterio de convergencia lineal.
2.- K=0
3.- Calcula f (xk)
4.- || f (xk) || 1.. Si => ir a 12. No => continuar
5.- K > M. Si => ir a 12. No => continuar
6.- Calcular s(k)
7.- Encontrar un k / f (xk + k sk) sea mnimo, usando 2
8.- Hacer xk+1 = xk + k sk
9.- f (xk+1 ) < f (xk). Si => continuar. No =>Ir a 12
10.- || x || / || xk || 1.. Si => Ir a 12. No => continuar
11.- Hacer K=K+1. Ir a 3
12.- Parar

Formas de calcular el gradiente

Calcular el gradiente de forma numrica:

df
dxi
df
dxi

x= x

x= x

= lim
0

= lim
0

f ( x + * ei ) f ( x )

f ( x + * ei ) f ( x * ei )
2

Ejemplo 1

You might also like