CO5411
Algoritmos de Puntos Exteriores
Prof. Bernardo Feijoo
Departmento de Cómputo Cientíco y Estadística Universidad Simón Bolívar
12 de marzo de 2008
Contenido
1 Algoritmo de Puntos Interiores
2 Estrategias tipo Predictor-Corrector
Algoritmo de Puntos Interiores
La idea
La idea es muy sencilla aunque la comprobación rigurosa es muy complicada y será ignorada aquí. Partimos entonces de una solución
xk, yk, zk
tal que xk > 0y zk > 0. El sistema a resolver para hallar la dirección es el mismo, pero sin hacer hipótesis de factibilidad:
A 0 0
0 AT I Zk 0 Xk
dkx dky dkz
=
b − Axk c − zk− ATyk µe − XkZke
(1)
El sistema en este caso
Si denimos los vectores residuales primal y dual como rkP = b − Axk
rkD= c − zk− ATyk , el sistema quedaría
(a) Adkx = rkP
(b) ATdky + dkz = rkD (c) Z0dkx + Xkdkz = vk(µ)
Algoritmo de Puntos Interiores
Resolución
El sistema se ataca resolviendo en orden::
A Zk−1
XkAT
dky =
rkP − A Zk−1
vk(µ) + A Zk−1
XkrkD
dkz = rkD− ATdky dkx = Zk−1
vk(µ) − Xkdkz
Una vez obtenida la dirección Newton, el resto de la iteración procede de igual manera que en el algoritmo anterior. La elección del paso, la actualización de las variables y la reducción del µ se pueden realizar de manera idéntica.
La idea
El paso computacionalmente más caro es la resolución del sistema lineal que produce la dirección dky (entre el 60 % y 90 % del tiempo total de CPU de todo el algoritmo).
Se utiliza la factorización de Cholesky junto con diversas técnicas para hacerla más eciente y exacta. La solución del sistema consiste de dos partes, la factorización en si y luego la solución de los sistemas explotando dicha factorización.
De estas dos partes, la primera lleva mucho más trabajo que la segunda.
La idea es usar una misma factorización con distintos lados derechos, tratando de mejorar la dirección de movimiento en cada iteración y reducir el número total de iteraciones del algoritmo.
Estrategias tipo Predictor-Corrector
Dirección en dos pasos (I)
Esta técnica obtiene la dirección de movimiento, en cada iteración, dk a través de dos pasos.
1 En primer lugar se calcula la dirección predictora (afín escala) dP
resolviendo el sistema lineal (1) con µ = 0. Notar que esta
dirección es muy optimista, si pudiésemos dar un paso de longitud 1,llegaríamos a la solución en una iteración (ejercicio). Se hace un movimiento hipotético en esta dirección, es decir, se calculan tamaños de paso para mantener positividad de x y z. Luego se calcula la brecha de dualidad predicha por este movimiento.
Dirección en dos pasos (II)
Luego, con µ basada en esta brecha, se calcula la dirección correctora (centralizadora) dC, resolviendo el sistema para el lado derecho:
0 0
µe − XkPZkPe
donde XkP = diag(xkP)para el iterado predicho xkP, y ZkP = diag(zkP) para el iterado predicho zkP.
Estrategias tipo Predictor-Corrector
Dirección en dos pasos (III)
Finalmente se calcula la dirección denitiva:
dk = dP+ dC
y se procede como en los dos algoritmos anteriores.
Los métodos que explotan y extienden esta idea están entre los más exitosos computacionalmente: HOPDM, por ejemplo.