Sunteți pe pagina 1din 12

1 Introduccin, caracterizacin de puntos singulares

2 Races de una ecuacin (ceros de f(x))


2.1 Teorema de Bolzano
2.2 Mtodo de Newton-Raphson
3 Mnimos de funciones de una variable
3.1 Mtodos de interpolacin
3.2 Mtodo del gradiente
4 Optimizacin de funciones de varias variables
4.1 Mtodos basados en el gradiente y en el Hessiano
4.2 Mtodos basados en la funcin: mtodo simplex
4.3 Localizacin de estados de transicin
4.4 Simulated annealing
Raices de una ecuacin y optimizacin de funciones
1 Introduccin
Dos problemas relacionados
Obtencin de las raices f(x) = 0
Obtencin del mnimo de una funcin f(x)=0
Problema muy complejo
Muchas variables y/o restricciones (CASSCF)
Mnimos mltiples (local o global) (localizacin de ismeros)
Mnimos bien diferenciados, separados por barreras altas (C
60
1812) o con
alta degeneracin en la energa y barreras pequeas (proteina)
Puntos silla de diversos rdenes
Cada paso de evaluacin de f muy costoso, en ocasiones es posible obtener
primeras y segundas derivadas (de forma analtica o numrica)
Minimizacin: problema fundamental en Qumica Computacional
HF: mnimo energa respecto a variacin de orbitales (estabilidad del HF)
CASSCF: mnimo de energa frente a coeficientes (CI) y orbitales
Exploracin de superficies de potencial: mnimos (ismeros), puntos silla (TS)..
Anlisis topolgico de la densidad (Teora AIM de Bader)
Caracterizacin de puntos singulares
Gradiente: vector formado por las primeras derivadas de la funcin con respecto de las
variables:
!f/!x
1
, !f/!x
2
, !f/!x
3
, ... , !f/!x
n
, {x
i
}i=1,n
Condicin de estado estacionario: el vector gradiente ha de tener mdulo cero
Hessiano: matriz formada por el conjunto de derivadas segundas con respecto a las
distintas variables
La naturaleza del punto estacionario viene fijada por el Hessiano
Valores propios positivos: mnimo local
Un valor propio negativo y el resto positivos: punto en silla de primer orden
n valores propios negativos y el resto positivos: punto en silla de orden n
2 Raices de una ecuacin
Mtodos basados en el Teorema de Bolzano
El teorema de Bolzano asegura que si una funcin f(x) es continua en un intervalo
cerrado [a,b] y tiene valores de signo contrario en ambos extremos (f(a)f(b)<0),
existe un punto c!(a,b) tal que f(c)=0.
Si una funcin continua presenta en los extremos del intervalo signos opuestos, al
menos se encuentra un cero de dicha funcin entre esos dos valores.
Algoritmo para aplicar Teorema de Bolzano
1. Se selecciona intervalo [a,b], que cumpla las condiciones del teorema.
2. Se considera un punto c "(a,b)
3. Se evala la funcin en c
4. Si f(c) es lo suficientemente prxima a cero se para el proceso
5. Si no se aproxima lo suficiente a cero, se comprueba las condiciones siguientes:
1. f(a)f(c)<0 se redefine b=c
2. f(b)f(c)<0 se redefine a=c
6. Se vuelve al punto 2
Problema es como obtener el punto c
2 Raices de una ecuacin
Mtodos basados en el Teorema de Bolzano
a) Definir c como la media aritmtica de a y b (biparticin)

c =
a + b
2
b) Mtodo de la regla falsa o falsa posicin
Tomar la recta que pasa por a y b y definir c como el punto donde corta al eje

x ! a
b ! a
=
y ! f (a)
f (b) ! f (a)
" y = f (a) +
f (b) ! f (a)
b ! a
(x ! a)

c = a !
f (a)(b ! a)
f (b) ! f (a)
Corte de esta recta con el eje de las x => y(c)=0 es
2 Raices de una ecuacin
Mtodo de Newton-Raphson
Seguir la curva tangente, calcular la primera derivada de la funcin
Desarrollo en serie Taylor hasta segundo orden
g(x+d) = g(x) + g (x) d + ! g (x) d
2
Si la funcin se comporta bien, la segunda derivada es despreciable. Si g(x+d)=0, el
valor d que nos tenemos que desplazar es:
d = - g(x) / g(x)
Proceso iterativo, se escoge un x
k
razonablemente cerca del cero y calcula x
k+1

x
k+1
= x
k
- g(x
k
)/g(x
k
)
Proceso finaliza cuando
| d
k
| = | x
k+1
-x
k
| < E
Convergencia cuadrtica, mtodo muy eficiente
Convergencia no est asegurada
Evaluacin de la derivada puede ser muy costosa
o sujeta a mucho error si se hace analticamente.

g'(x) !
g(x + "x)# g(x)
"x
Mtodo de Newton-Raphson
Fcilmente generalizable a solucin simultanea de n ecuaciones no lineales con n variables.
g
i
(x) = g
i
(x
1
, x
2
, ... , x
n
) = 0


0=g
i
(
!
x )=g
i
(
!
x
k
)+ (x
j
j =1
n
!
" x
j
k
)
#g
i
#x
j
$
%
&
'
(
)
!
x =
!
x
k
+...
Mismo razonamiento pero con desarrollo en Taylor de n variables para cada g
i

En forma matricial J dx
k
= - g
k
donde J es la matriz Jacobiana evaluada en x=x
k



!g
1
/ !x
1
!g
1
/ !x
2
... !g
1
/ !x
n
!g
2
/ !x
1
!g
2
/ !x
2
... !g
2
/ !x
n
....................................................
!g
n
/ !x
1
!g
n
/ !x
2
... !g
n
/ !x
n
"
#
$
$
$
$
%
&
'
'
'
'
!
x =
!
x
k


(x
j
j =1
n
!
" x
j
k
)
#g
i
#x
j
$
%
&
'
(
)
!
x =
!
x
k
= "g
i
(
!
x
k
) i =1,2...n

dx
j
k
= x
j
k +1
! x
j
k


!
x
k +1
=
!
x
k
! J!
x =
!
x
k
!1
"
!
g (
!
x
k
)
3 Mnimos de funciones de una variable
Interpolacin parablica o cuadrtica.
Punto inicial (x
k
,f(x
k
)) de la funcin f(x)
Supongamos que f(x) tiene un mnimo entre los puntos x
k
=x
k
-h
k
y x
k
=x
k
+h
k
.
Notacin: valores de la funcin en x
k
, x
k
y x
k
son f
0k
, f
1k
y f
2k
, respectivamente.
Aproximamos una parbola a esos tres puntos y calculamos como siguiente punto el
mnimo de esa parbola
x
k+1
= x
k
[h
k
(f
2k
-f
1k
)/2 (f
2k
-2f
0k
+f
1k
)]
Se repite el proceso para un paso (h
k
) menor, generalmente
h
k+1
=h
k
/ a
k
(a=2,3)
Se repite hasta llegar a convergencia
Convergencia a un mnimo por interpolacin parablica inversa
3 Mnimos de funciones de una variable
Mtodo de gradientes. Newton-Raphson
Utilizar la informacin de la primera derivada para alcanzar el mnimo.
Comenzamos con un punto x
k

Vamos hacia el mnimo usando x
k+1
=x
k
+d
k
con d
k
=-c f(x
k
)
Desarrollo en serie Taylor hasta primer orden
g(x+d) = g(x) + g (x) d
Si es un mnimo en x+d implica g(x+d)=0
g(x+d) = g(x) + g (x) d
el valor d que nos tenemos que desplazar es:
d = - g(x) / g(x)
Proceso iterativo, se escoge un x
k
razonablemente
cerca del cero y calcula x
k+1

x
k+1
= x
k
g(x
k
)/g(x
k
)
Proceso finaliza cuando
| d
k
| = | x
k+1
-x
k
| < E
4 Mnimos de funciones de varias variables
Los mtodos de optimizacin para funciones de varias variables se pueden
dividir bsicamente en tres tipos:
Utilizan slo los valores de la funcin (simplex)
Utilizan los valores de la funcin y el gradiente (steepest descendet y gradientes
conjugados)
Utilizan los valores de la funcin el gradiente y el hessiano (Newton)
Mtodos basados en la funcin son los ms generales, pero convergencia lenta,
nmero de pasos requeridos del orden de n
2
( n dimensin del problema)
Problema de muchas variables es mejor utilizar mtodos de gradiente (gradiente
puede ser calculado numricamente usando slo la funcin)
Segundas derivadas se pueden calcular numricamente si se dispone de las primeras
derivadas analticas)
4 Mnimos de funciones de varias variables
4.1 Mtodos basados en el gradiente y el hessiano. Newton-Raphson


f (
!
x )! f (
!
x
k
)+ "f (
!
x
k
)
[ ]
T !
x #
!
x
k
( )


f (
!
x )! f (
!
x
k
)+
"f (
!
x )
"x
1
"f (
!
x )
"x
2
"f (
!
x )
"x
3
#
$
%
&
'
(
x
1
) x
1
k
x
1
) x
2
k
x
1
) x
3
k
#
$
%
%
&
'
(
(


!f (
!
x )= 0


0 = !f (
!
x
k
)+ ! !f (
!
x
k
)
[ ]
T !
x "
!
x
k
( )


! !f (
!
x
k
)
[ ]
T
= H(
!
x
k
) =
"
2
f (
!
x )
dx
1
dx
1
"
2
f (
!
x )
dx
1
dx
2
"
2
f (
!
x )
dx
1
dx
3
"
2
f (
!
x )
dx
2
dx
1
"
2
f (
!
x )
dx
2
dx
2
"
2
f (
!
x )
dx
2
dx
3
"
2
f (
!
x )
dx
3
dx
1
"
2
f (
!
x )
dx
3
dx
2
"
2
f (
!
x )
dx
3
dx
3
#
$
%
%
%
%
%
%
&
'
(
(
(
(
(
(
!
x =
!
x
k


0 = !f (
!
x
k
)+ H(
!
x
k
)
!
x "
!
x
k
( )
Impongo la condicin de mnimo

Tomo el gradiente de la ecuacin anterior y uso la definicin de Hessiano



!
x =
!
x
k
! H(
!
x
k
)
[ ]
!1
"f
!
x
k
( )
Ecuacin final a programar

Diferencias entre variantes del mtodo en la forma de actualizar el hessiano
(clculo del hessiano puede ser extraordinariamente costoso)
Davidson-Fletcher-Powell


H
k
!1
= H
k!1
!1
+
"x
k
"x
k
t
"x
k
t
"g
k
!
H
k!1
!1
"g
k
"g
k
t
H
k!1
!1
"g
k
t
H
k!1
!1
"g
k
ALGORITMO A USAR (DO WHILE)
1. Considerar el error #
2. Tomar un punto inicial x
1
(vector n dimensiones)
3. Evaluar el gradiente
Crear una subrutina de clculo de gradiente
4. Si el gradiente es menor que el error se termina
5. Evaluar la formula de Newton Raphson
Usar subrutinas de formacin del hessiano, inversin y multiplicacin de matrices
6. Redefinir el punto y volver al paso 3


!
x =
!
x
k
! H(
!
x
k
)
[ ]
!1
"f
!
x
k
( )
Ecuacin final a programar

4.2. Mtodo Simplex: Nelder y Mead
Se define un simplex, figura polihdrica de n+1 vrtices en un espacio de n dimensiones y de
hipervolumen no nulo (tringulo, tetraedro..)
Simplex al inicio del paso
alto
bajo
a) Reflexiones
b) Expansiones
c) Contracciones
d) Contraccin mltiple
4 Mnimos de funciones de varias variables
Se mueve el punto del simplex donde la funcin es
mayor (punto ms alto) a travs de la cara opuesta del
simplex a un punto inferior. Se mantiene el volumen
del simplex
Cuando es necesario el mtodo expande el simplex
en una u otra direccin para tomar pasos mayores
Cuando alcanza un valle el mtodo contrae en la direccin
transversal y trata de descender por el valle. Tambin es posible
efectuar contracciones en todas las direcciones, empujando
alrededor de su punto ms bajo
4 Mnimos de funciones de varias variables
4.2 Algoritmo para mtodo Simplex: Nelder y Mead.
1. Se define un simplex, figura polihdrica de n+1 vrtices en un espacio de n
dimensiones y de hipervolumen no nulo (tringulo, tetraedro..)
P
0
, los otros n puntos como P
i
=P
0
+e
i
, donde e
i
son los n vectores unitarios,
2. Se evala la funcin en los n+1 puntos seleccionados (hipervolumen no nulo,
determinante de la matriz vectores posicin no nulo) y definimos
x
h
: punto con el valor ms alto de la funcin
x
s
: punto con el segundo valor ms alto de la funcin
x
l
: punto con el valor ms bajo de la funcin
x
c
: centroide de todos los vrtices excepto x
h
3. Reflexin de x
h
con respecto a x
c,
con un factor ! > 0 para calcular nuevo punto x
0

x
0
=(1+!)x
c
-!x
h


x
c
=
1
n
x
j
j =1
j !h
n +1
"
4. Si y
l
" y
0
" y
s
reemplazamos x
h
por x
0
y volvemos al paso 2
5. Expansin: si y
0
< y
l
expandimos el simplex en un factor # > 1, calculamos x
00

x
00
= #x
0
+ (1-#) x
c

a) si y
00
< y
l
reemplazamos x
h
por x
00
y volvemos al paso 2
b) si y
00
$ y
l
reemplazamos x
h
por x
0
y volvemos al paso 2
6. Contraccin: si y
0
$ y
s
contraemos el simplex en un factor % (0 < % < 1)
a) si y
0
< y
h
calculamos x
00
como x
00
= %x
0
+ (1-%) x
c

b) si y
0
$ y
h
calculamos x
00
como x
00
= %x
h
+ (1-%) x
c

6. (cont). Independientemente de haber usado 5a o 5b, consideramos los dos
siguientes casos
c) si y
00
< y
h
y y
00
< y
0
reemplazamos x
h
por x
00
y volvemos al paso 2
d) si y
00
$ y
h o
y
00
> y
0
reducimos el tamao del simplex mediante la reduccin a
la mitad de las distancias con respecto al punto x
l
y volvemos al paso 2
Valores sugeridos !=1 %= & y #=2
El procedimiento se detiene cuando la desviacin standar entre los valores de la
funcin evaluados en los puntos del simplex es menor que un determinado criterio
4 Mnimos de funciones de varias variables
4.3 Localizacin de estados de transicin
Bsqueda de punto silla de primer orden, problema ms difcil que el de los mnimos.
Necesidad de tener un muy buen punto inicial
Derivados del Newton-Raphson, con hessiano con un autovalor negativo
LST (Linear Synchronous Transit)
4. Mnimos de funciones de varias variables
4.3. Localizacin de estados de transicin
Coordinate driving method
Moverse en una direccin (coordenada de reaccin) y optimizar en la coordenada perpendicular
4 Mnimos de funciones de varias variables
4.3. Localizacin de estados de transicin
Hill Climbing
Seguir la direccin de menos pendiente del valle con un paso fijo (salvo muy cerca
del TS)
DIQTC Gerona 2004
4.4 Simulated annealing
4 Mnimos de funciones de varias variables
Adecuado para problemas de optimizacin de gran escala,
- Problema del viajante travelling salesman (camino mas corto para recorrer N ciudades)
- Bsqueda de mnimos en macromolculas.
El mnimo global oculto entre muchos mnimos locales.
El espacio sobre el cual la funcin est definida no es simplemente el espacio n-
dimensional de n parmetros continuamente variables, sino que se trata de un espacio
de configuraciones discreto pero muy grande. Ello hace que no pueda ser explorado
exhaustivamente.
Pierde el concepto de direccin
DIQTC Gerona 2004
4.4 Simulated annealing
4 Mnimos de funciones de varias variables
Analoga con algunas situaciones de Termodinmica,: manera en que los lquidos pasan al
estado slido o los metales se enfran (crecimiento cristalino).
Si el lquido se enfra lentamente se puede formar un cristal completamente
ordenado (estado de mnima energa para el sistema).
Si se enfra rpidamente no es capaz de alcanzar ese estado, sino que acaba en un
estado policristalino o amorfo (con una energa superior).
La esencia del proceso es un enfriamiento lento, que permite suficiente tiempo para la
redistribucin de los tomos o molculas a medida que pierden movilidad.
El sistema generalmente ir en sentido descendente, pero a veces puede ir en sentido
ascendente.
En cierto sentido los algoritmos de optimizacin corresponden a un enfriamiento rpido
(tratan de ir inmediatamente por lnea descendente hacia el mnimo).
DIQTC Gerona 2004
4.4 Simulated annealing
4 Mnimos de funciones de varias variables
La distribucin de probabilidad de Boltzmann
Prob(E) $ exp (-E/kT),
expresa la idea de que un sistema en equilibrio a temperatura T tiene su energa
probabilsticamente distribuida entre los diferentes estados de energa E.
T% existe una posibilidad, aunque pequea, de que el sistema est en un estado de alta
energa & hay una posibilidad para el sistema de salir del mnimo de energa local
pasando a uno mejor, ms global.
Metrpolis y col. fueron los primeros en incorporar estas ideas en los clculos
numricos. Una manera de implementarlas (algoritmo de Metrpolis) es la siguiente:
- Si provocamos un cambio al azar en un sistema modificando su configuracin de
energa E
1
a E
2
, el nuevo estado se tomar como punto de partida para el siguiente
paso si E
2
<E
1
(probabilidad 1).
- En caso contrario (E
2
>E
1
) se le asigna una probabilidad p=exp[-(E
2
-E
1
)/kT], y se
compara con un nmero al azar entre 0 y 1, aceptndose o no la nueva geometra
como punto de partida para el paso siguiente.
DIQTC Gerona 2004
4.4 Simulated annealing
4 Minimos de funciones de varias variables
Para hacer un uso genrico del algoritmo de Metrpolis hay que proporcionar los
siguientes elementos:
Una descripcin de posibles configuraciones del sistema.
Un generador de cambios al azar en la configuracin. Estos cambios son las opciones
presentadas al sistema. (generacin de estos cambios parte ms complicada)
Una funcin objetivo E (anloga a la energa) cuya minimizacin es el objetivo del
procedimiento.
Un parmetro de control T (anlogo a la temperatura) y un esquema de enfriamiento,
que establezca cmo es disminuida de altos a bajos valores as como el tamao del
paso.

S-ar putea să vă placă și