un algoritmo de puntos interiores para programación

Transcripción

un algoritmo de puntos interiores para programación
UNIVERSIDAD SIMÓN BOLÍVAR
Decanato de Estudios de Postgrado
Maestría en Matemáticas
Trabajo de Grado
UN ALGORITMO DE PUNTOS INTERIORES PARA
PROGRAMACIÓN CUADRÁTICA
por
Juan Javier Domínguez Moreno
Julio, 2004
UNIVERSIDAD SIMÓN BOLÍVAR
Decanato de Estudios de Postgrado
Maestría en Matemáticas
UN ALGORITMO DE PUNTOS INTERIORES PARA
PROGRAMACIÓN CUADRÁTICA
Trabajo de Grado presentado a la Universidad Simón Bolívar por
Juan Javier Domínguez Moreno
Como requisito parcial para optar al grado de
Magister en Matemáticas
Realizado con la tutoría de la Profesora
María de los Ángeles González
Julio, 2004
UNIVERSIDAD SIMÓN BOLÍVAR
Decanato de Estudios de Postgrado
Maestría en Matemáticas
UN ALGORITMO DE PUNTOS INTERIORES PARA
PROGRAMACIÓN CUADRÁTICA
Este Trabajo de Grado ha sido aprobado en nombre de la
Universidad Simón Bolívar por el siguiente jurado examinador:
Presidente
Débora Cores
Miembro Externo
Alejandro Crema
Universidad Central de Venezuela
Miembro Principal-Tutora
María de los Ángeles González
Fecha:
Resumen
El problema a considerar en este trabajo es el de programación cuadrática, y la idea es
proponer un método para este problema, basados en el método primal-dual (SIMPLE)
para programación lineal propuesto por González-Lima-Wei-Wolkowicz en 2001.
Una de las principales dificultades computacionales de los métodos tipo primaldual es la resolución por iteración de un sistema de ecuaciones lineales que surge en sus
formulaciones. Para esto se han propuesto diferentes alternativas: las ecuaciones normales, el sistema aumentado, una alternativa simétrica propuesta por Vanderbei (2001)
y la reducción SIMPLE, entre otras. Esta última mantiene la ralidad de las matrices de
restricciones y hace uso de un sistema lineal que está bien definido en la solución, pues
el particular proceso de eliminación deriva en un sistema lineal que no posee inversas
de matrices, hecho que hace que este sistema reducido sea mejor condicionado que diversas alternativas encontradas en la literatura. Permitiendo encontrar soluciones muy
precisas del problema lineal.
El método SIMPLE es extendido al caso de programación cuadrática manteniendo y mejorando sus buenas características. Para lograr esto se incluye información de
segundo orden en el algoritmo, se usan estrategias de reordenamiento para reducir el
llenado en las factorizaciones de las matrices asociadas a los sistemas lineales, se realiza
un estudio sobre las características del método propuesto y de las distintas alternativas
derivadas de este, y se estudian sus relaciones prácticas y teóricas con la alternativa
propuesta por Vanderbei.
De los resultados obtenidos se puede concluir que los algoritmos propuestos son
eficaces y poseen características que favorecen la robustez y que permiten alcanzar soluciones muy precisas.
Índice general
1. Introducción
1
2. Programación cuadrática
4
2.1. El problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.2. Un algoritmo de orden superior . . . . . . . . . . . . . . . . . . . . . . . .
8
2.3. Convergencia y complejidad . . . . . . . . . . . . . . . . . . . . . . . . . .
12
3. Aspectos numéricos
16
3.1. El punto inicial y los parámetros del algoritmo . . . . . . . . . . . . . . .
16
3.2. Los sistemas lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
3.2.1. Alternativa SIMPLE . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.2.2. Alternativa LOQO . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
3.2.3. Relación SIMPLE-LOQO . . . . . . . . . . . . . . . . . . . . . . . .
22
3.2.4. Las factorizaciones . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
4. Resultados computacionales
27
4.1. Efecto del reordenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
4.2. Comparación de las alternativas SJq, SJs, SJd y SVq . . . . . . . . . . . .
30
4.3. Sobre el condicionamiento de las matrices . . . . . . . . . . . . . . . . . .
33
5. Conclusiones
35
V
VI
Bibliografía
38
A. Tablas de resultados
42
Índice de cuadros
4.1. Problemas de prueba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
4.2. Número de problemas ganados usando ColAMD y sin usarlo para SJq . . . . .
29
4.3. Estatus de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
4.4. Índices para cada método . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
A.1. Resultados de SJq al reordenar con ColAMD . . . . . . . . . . . . . . . . . . .
47
A.2. Resultados de SJq al reordenar con ColAMD cont. . . . . . . . . . . . . . . . .
48
A.3. Resultados de SJq sin reordenar . . . . . . . . . . . . . . . . . . . . . . . . .
49
A.4. Resultados de SJq sin reordenar cont. (* sin memoria) . . . . . . . . . . . . . .
50
A.5. Resultados para los cuatro algoritmos . . . . . . . . . . . . . . . . . . . . . .
51
A.6. Resultados para los cuatro algoritmos cont. . . . . . . . . . . . . . . . . . . .
52
A.7. Resultados para los cuatro algoritmos cont. . . . . . . . . . . . . . . . . . . .
53
A.8. Resultados para los cuatro algoritmos cont. . . . . . . . . . . . . . . . . . . .
54
A.9. Resultados para los cuatro algoritmos cont. . . . . . . . . . . . . . . . . . . .
55
A.10.Resultados para los cuatro algoritmos cont. . . . . . . . . . . . . . . . . . . .
56
A.11.Resultados para los cuatro algoritmos cont. . . . . . . . . . . . . . . . . . . .
57
VII
Índice de figuras
A.1. Números de condición para el problema DUAL1 . . . . . . . . . . . . . . . .
43
A.2. Números de condición para el problema DUAL2 . . . . . . . . . . . . . . . .
43
A.3. Números de condición para el problema DUALC5 . . . . . . . . . . . . . . .
44
A.4. Números de condición para el problema HS35MOD . . . . . . . . . . . . . . .
44
A.5. Números de condición para el problema LOTSCHD . . . . . . . . . . . . . . .
45
A.6. Números de condición para el problema QISRAEL . . . . . . . . . . . . . . .
45
A.7. Números de condición para el problema QPCBLEND . . . . . . . . . . . . . .
46
A.8. Números de condición para el problema QSHARE2B . . . . . . . . . . . . . .
46
VIII
Capítulo 1
Introducción
Los algoritmos de puntos interiores surgen, con el trabajo de Karmarkar, como una
alternativa de complejidad polinomial al bien establecido método SIMPLEX para el
caso de programación lineal. En 1987 Kojima-Misuno-Yoshise presentan un algoritmo
de puntos interiores, llamado primal-dual o de seguimiento de camino, que seguido
del trabajo de Mehrotra en 1992, fundamentan las bases de algunos de los algoritmos
existentes más eficientes para programación lineal.
La literatura sobre los algoritmos de puntos interiores tipo primal-dual es extensa y
variada, existen diferentes formulaciones, diversos resultados de convergencia y complejidad y varias extensiones a los casos de programación cuadrática, al problema de
complementariedad monótono y al caso de programación no lineal general. Para una
revisión sobre los trabajos realizados en los últimos años referimos a [3][31].
Además de las buenas propiedades teóricas, los algoritmos primal-dual han demostrado poseer buen comportamiento práctico y se han utilizado en distintas aplicaciones
de manera satisfactoria. Destacando, para el caso de programación cuadrática, las aplicaciones a problemas de optimización de portafolios y problemas provenientes de support vector machines, ver [17][18][12][14] [7].
Entre los trabajos más conocidos que usan métodos primal-dual se pueden mencionar el de Wright para el problema lineal y el de complementariedad lineal monótono
[40][38] , el de Vanderbei para el caso de programación lineal, cuadrática y no lineal
[32][33][36], los trabajos Gould, Nocedal, Byrd y otros sobre algoritmos que usan re1
2
giones de confianza [20][21][10] [4], y el trabajo de Gondzio y otros para el caso que
programación lineal [16][3][15], cuadrática [1][6], y sus extensiones al problema de programación no lineal general [12].
La mayor dificultad de estos algoritmos es la resolución por iteración de un sistema lineal para determinar una dirección de Newton. Este es el aspecto de mayor
costo computacional y el que determina la estabilidad y robustez de los algoritmos.
Entre las alternativas más populares para resolver estos sistemas se encuentran el uso
de las llamadas ecuaciones normales, el sistema aumentado y el uso de sistemas simétricos cuasi-definidos. La primera alternativa involucra la resolución de un sistema
lineal positivo definido de pequeñas dimensiones pero que puede no ser ralo, aspecto
no deseado pues las matrices de las restricciones en los problemas tienden a serlo, esta
característica no se presenta en las otras dos alternativas donde los sistemas lineales
a resolver mantienen la ralidad de las matrices pero presentan mal condicionamiento
cuando los iterados se acercan a la solución.
En este trabajo se hará énfasis en la forma en que se resuelve el sistema lineal por
iteración. Nos basaremos en el trabajo de González-Lima-Wei-Wolkowicz en 2001 [19]
en el que se plantea un método factible (SIMPLE) para problemas de programación
lineal que mantiene la ralidad de las matrices y no necesariamente presenta problemas
de mal condicionamiento cerca de la solución.
El objetivo principal es extender el método SIMPLE al caso de programación cuadrática manteniendo y mejorando las buenas características del mismo. Para ello se
estudiarán varias formas de atacar los sistemas lineales que se deben resolver por iteración, y se analizarán técnicas numéricas que intentan aumentar la estabilidad y robustez de los algoritmos como lo son el uso de heurísticas de reordenamiento, la inclusión
de información de segundo orden y la escogencia del punto inicial y de los parámetros
del algoritmo. Se busca proponer una alternativa algorítmica donde se explote la ralidad de las matrices, sin necesidad de usar sofisticadas técnicas computacionales para
resolver los sistemas lineales, y se pueda alcanzar alta precisión en las soluciones de
forma eficiente.
El trabajo se divide de la siguiente forma. En el capítulo 2 se describe el problema de
programación cuadrática, sus condiciones de optimalidad y su relación con el problema
de barrera logarítmica, seguido de la descripción de un algoritmo de orden superior en
3
que se enmarcarán los algoritmos a proponer. Para finalizar se mencionarán los requerimientos necesarios sobre los parámetros del algoritmo para poder establecer resultados
de convergencia y complejidad. En el capítulo 3, basados en los resultados de convergencia, se especifica la forma en que se escogerán los parámetros del algoritmo que
proponemos. La última sección de este capítulo es la parte principal del trabajo, aquí
se describen las diferentes transformaciones del sistema lineal involucrado en los métodos, se presentan las relaciones entre ellas y se observa que la denominada reducción
SIMPLE está estrechamente relacionada con la presentada en el trabajo de Vanderbei
en LOQO [36]. Para finalizar se comenta sobre el uso de estrategias que buscan reducir
el llenado en las factorizaciones a realizar y se identifican los posibles problemas que
se podrían presentar y las formas de evitarlos. Luego, en el capítulo 4 presentamos resultados numéricos que demuestran el potencial de las propuestas desarrolladas en el
trabajo.
Capítulo 2
Programación cuadrática
En este capítulo de describirá el problema de programación cuadrática, seguido de
una discusión sobre sus condiciones de optimalidad y la relación con el problema de
barrera logarítmica. Luego se describirá un algoritmo de orden superior y se establecerán las propiedades de convergencia del mismo.
2.1.
El problema
El problema de programación cuadrática es un problema de optimización con función objetivo cuadrática convexa y restricciones lineales que se formulará usando el
siguiente formato:
mı́n f (u) := 21 xt Qx + ct x
s.a. h(u) := Ax − w − b = 0
(2.1)
g(u) := u ≥ 0
con c ∈ <n , b ∈ <m , A ∈ <m×n una matriz rala, de grandes dimensiones y de rango
completo, Q ∈ <n×n positivo semidefinida, x ∈ <n es un vector de incógnitas, w ∈ <m
variables de holgura y u := (w, x) ∈ <m+n .
La función Lagrangiano asociada al problema (2.1) es:
1
L(u, y, z, z1 ) = xt Qx + ct x + y t (b + w − Ax) − (z1 , z)t u
2
4
5
y su gradiente viene dado por:
∇u L(u, y, z, z1 ) =
y − z1
!
Qx + c − At y − z
por lo que las condiciones Karush-Kuhn-Tucker (KKT) del problema (2.1) son
y − z1 = 0
Qx + c − At y − z = 0
Ax − w − b = 0
ZXe = 0
Z1 W e = 0
(u, z, z1 ) ≥ 0
las cuales pueden ser reescritas, usando la primera ecuación y = z1 , como:




At y + z − c − Qx
G(u, v)






Ax
−
w
−
b
 = 0; (u, v) ≥ 0
 := 
F (u, v) := 
ZXe




ZXe


Y We
Y We
(2.2)
donde v = (y, z) ∈ <m+n , X := diag(x1 , . . . , xn ), Z, W, Y son definidas de manera análoga y e es el vector de unos de tamaño correspondiente.
Ahora, de la teoría de multiplicadores de Lagrange, es sabido que si existe un punto
(u∗ , v ∗ ) que satisfaga las ecuaciones (2.2), entonces u∗ es mínimo global del problema
(2.1). Este resultado sigue del hecho de que ∇2uu L es una matriz positivo semidefinida,
de la linealidad de las restricciones y de la convexidad de f (u). La existencia de v ∗ tal
que (u∗ , v ∗ ) satisface (2.2) es consecuencia de la linealidad de g(u) y h(u), y de suponer
que el conjunto de puntos factibles es no vacío, es decir, existe al menos un u ≥ 0 tal
que Ax − w − b = 0. De esta forma es fácil verificar que en el punto u∗ se satisface
la restricción de calificación de primer orden (se hace referencia al clásico trabajo de
Fiacco en [13] para una detallada descripción de lo mencionado anteriormente).
Definición 1 [13] Sea u0 un punto factible del problema (2.1). Entonces, la restricción de calificación de primer orden se sostiene en u0 si para todo vector no nulo s tal que st ∇gi (u0 ) ≥
6
0, ∀i ∈ B0 = {i : gi (u0 ) = 0} y st ∇hj (u0 ) = 0, j = 1, . . . , m, s es tangente a un arco
diferenciable, el arco emanando de u0 contenido en la región de factibilidad.
Los algoritmos de puntos interiores tipo primal-dual intentan determinar un punto
que satisfaga las condiciones (2.2) y para motivarlos, siguiendo las ideas en [11], se observará la relación de las condiciones KKT en (2.2) con las condiciones de optimalidad
del problema de barrera logarítmica asociado al problema (2.1).
El problema de barrera logarítmica asociado al problema (2.1) es
mı́n
1 t
x Qx
2
+ ct x − µ
Pn
i=1
ln(xi ) − µ
Pm
j=1
ln(wj )
(2.3)
s.a. Ax − w − b = 0
x > 0, w > 0
y sus condiciones KKT son:

At y + µX −1 e − c − Qx

Fbµ (w, x, y) := 

Ax − w − b
y − µW −1 e


 = 0; (x, w) > 0

(2.4)
donde µ es un parámetro positivo.
Luego, si se escribe y − µW −1 e = 0 como Y W e − µe = 0 y se realiza el cambio de
variable z = µX −1 e, se obtienen las condiciones KKT perturbadas del problema (2.1):


At y + z − c − Qx




Ax − w − b
 = 0; (u, v) > 0

Fµ (u, v) := 
(2.5)

µe − ZXe


µe − Y W e
Los algoritmos de puntos interiores tipo primal-dual resuelven aproximadamente
el sistema no lineal (2.5) reduciendo el valor de µ en cada iteración, es decir, dado un
punto (v0 , u0 ) y µ0 > 0, se define el siguiente proceso iterativo:
(uk+1 , vk+1 ) = (uk , vk ) + αk (∆uk , ∆vk )
donde αk ∈ (0, 1) es la longitud de paso y (∆uk , ∆vk ) es la solución del sistema lineal:
Fµ0 k (uk , vk )(∆uk , ∆vk ) = −Fµk (uk , vk )
(2.6)
7
donde Fµ0 (u, v) = F 0 (u, v) denota el Jacobiano de F (u, v) en (2.2).
Es importante resaltar que el punto (wk , xk , yk ) es solución del sistema (2.4) si y solo si (wk , xk , yk , µX −1 e) es solución del sistema perturbado (2.5). Pero las condiciones
KKT perturbadas (2.5) del problema (2.1), o cualquier permutación de estas, no son las
condiciones KKT del problema de barrera logarítmica (2.3), o de cualquier otro problema de optimización suave con restricciones de igualdad [11]. La siguiente proposición
muestra que los sistemas lineales (2.4) y (2.5) no son equivalentes en el sentido algorítmico.
Definición 2 Un punto (u, v) ≥ 0 es primal-dual factible para el problema cuadrático (2.1) si
G(u, v) = 0 en (2.2). Si además, el punto (u, v) es positivo, se dirá que es estrictamente factible.
Proposición 1 [11] Sea (w, x, y, z) > 0 factible del problema (2.1), (∆w, ∆x, ∆y, ∆z) la dirección de Newton obtenida de (2.5) y (∆w0 , ∆x0 , ∆y 0 ) la dirección de Newton obtenida de (2.4).
Entonces las siguientes son equivalente:
i. (∆x, ∆w, ∆y) = (∆w0 , ∆x0 , ∆y 0 )
ii.
(∆w, ∆x) = 0
iii. (∆w0 , ∆x0 ) = 0
iv. (x, w, y, µX −1 e) es factible para el problema (2.1)
Es sabido que las transformaciones y = µW −1 e y z = µX −1 e, evitan la presencia del
mal condicionamiento en los métodos de barrera logarítmica. Más aun, las condiciones
de complementariedad estricta XZe = 0, Y W e = 0 en (2.2), fuerzan a los iterados a
acercarse a la frontera del conjunto factible, por lo que si alguna de las componentes de
las variables se acerca a cero, esta se mantendrá cercana a cero en sucesivas iteraciones
del método de Newton aplicado a F0 (u, v) = 0. Esta característica no deseada es evitada
al introducir la perturbación XZe − µe = 0, Y W e − µe = 0 en (2.5).
De esta forma, es posible enunciar un algoritmo general que será la base de los
algoritmos formulados más adelante.
8
A LGORITMO G ENERAL
Sea (w0 , x0 , y0 , z0 ) > 0 un punto inicial y k = 0
2.2.
Paso 1.
Si se satisface el criterio de parada. Parar
Paso 2.
Escoger µk > 0
Paso 3.
Determinar (∆uk , ∆vk ) como la solución de (2.6)
Paso 4.
Escoger αp , αd ∈ (0, 1)
Paso 5.
Hacer (uk+1 , vk+1 ) = (uk , vk ) + (αp ∆uk , αd ∆vk )
Paso 6.
Hacer k = k + 1 e ir al paso 1
Un algoritmo de orden superior
Los algoritmos de puntos interiores tipo primal-dual de orden superior, cuya base
es el conocido trabajo de Mehrotra [28] para programación lineal, usan información
de segundo orden para intentar reducir el número de iteraciones de los métodos. Para
describirlos es necesario introducir varias definiciones y la noción del camino central.
El problema dual del problema (2.1) es
máx bt y − 12 xt Qx
s.a. At y + z − c − Qx = 0
(y, z) ≥ 0
y es fácil verificar que la brecha de dualidad gap, satisface
gap := ct x − bt y + xt Qx = xt z + wt y = ut v
Definición 3 El camino central C es un arco de puntos estrictamente factibles parametrizado
por un escalar χ > 0 con cada punto (uχ , vχ ) del arco satisfaciendo
Fχ (uχ , vχ ) = 0
Obsérvese que si (uχ , vχ ) ∈ C entonces la brecha de dualidad satisface que
utχ vχ
gap
=
=χ
m+n
m+n
Esto se usará más adelante en la descripción del algoritmo.
9
En la siguiente sección de observará que para poder establecer resultados de convergencia, es necesario mantener los iterados del algoritmo en un entorno del camino
central. Estos resultados se fundamentan en el hecho de que los puntos en el camino
central son primal-dual factibles, y que si un algoritmo genera una sucesión de puntos
en el camino central con χ → 0, la brecha de dualidad también tiende a cero, y por lo
tanto la sucesión converge a un óptimo primal-dual del problema (2.1), [40].
Ahora, si se desea que el punto (u + ∆u, v + ∆v) esté exactamente en el camino
central, se debe tener que Fµ (u + ∆u, v + ∆v) = 0, es decir

0

 −I

 0

−Y
At
−Q
I

∆w


At y + z − c − Qx




  ∆y 
Ax − w − b
 = −





0
−Z −X   ∆x 
 µe − ZXe − ∆X∆Ze
µe − Y W e − ∆Y ∆W e
∆z
−W
0
0
0
A
0



,


o equivalentemente

Fµ0 (u, v)
∆u
!
∆v
0


0
= −Fµ (u, v) − 
 ∆Z∆Xe

∆Y ∆W e






(2.7)
Es claro que si en el algoritmo general se determina la dirección (∆uk , ∆vk ) como
la solución del sistema (2.7) los puntos generados estarán más cerca del camino central que si se generan resolviendo el sistema Fµ0 k (uk , vk )(∆uk , ∆vk ) = −Fµk (uk , vk ). Pero
debido a la no linealidad presente en el sistema (2.7), sería muy costoso computacionalmente determinar la dirección (∆uk , ∆vk ). Es por esto que los algoritmos de orden
superior intentan aproximar, resolviendo dos sistemas lineales, la solución del sistema
no lineal (2.7) de la siguiente forma.
Primero se determina la dirección afín (∆ua , ∆v a ) como la solución de
F 0 (u, v)(∆ua , ∆v a ) = −F (u, v)
(2.8)
Luego, con esta dirección, se escoge un parámetro σ ∈ [0, 1) y se determina la
10
dirección correctora resolviendo el sistema

0
Fσµ
(u, v)(∆u, ∆v)
0


0
= −Fσµ (u, v) − 
 ∆X a ∆Z a e

∆Y a ∆W a e






(2.9)
De esta forma, se aproxima la solución del sistema no lineal (2.7) resolviendo dos sistemas lineales. La dirección afín busca disminuir el valor de la brecha de dualidad,
mientras que la dirección correctora intenta corregir la desviación del camino central
que se provocaría al considerar solamente la dirección afín. La escogencia del parámetro de centrado se realiza basándose en la dirección afín. Si esta produce un buen
decrecimiento en la brecha de dualidad, se requiere de menor centrado y se escoge σ
cercano a cero. Por el contrario, si no se produce suficiente decrecimiento en la brecha
de dualidad, es por que el algoritmo no puede moverse mucho es esa dirección y se
escoge el parámetro de centrado cercano a uno.
Un aspecto que parece ventajoso de esta técnica es que los dos sistemas lineales a
resolver poseen la misma matriz de coeficientes, por lo que se puede reusar la factorización realizada en la determinación de la dirección afín y no aumentar significativamente el tiempo de procesamiento requerido por el algoritmo.
Luego, estos algoritmos pueden verse como un método de Newton aplicado al sistema no lineal de las condiciones KKT perturbada, y es lógico pensar que no es necesario
perturbar cerca de la solución. En esta observación se basa la siguiente estrategia denominada crossover, presentada por González-Lima et. al.[19].
Bajo la suposición de que F 0 (u, v) es no singular en la solución, y de la teoría estándar de Newton, existe un entorno de convergencia cuadrática donde (u∗ , v ∗ ) es solución
única del problema, y una vez que los puntos generados por el algoritmo han alcanzado este entorno, se pueden tomar pasos de Newton sin perturbar, es decir, considerar
solamente la dirección afín. El inconveniente radica entonces en determinar la región
de convergencia del método de Newton, por lo que se presenta el siguiente resultado
debido a Kantorovich y presentado en [24].
Teorema 1 [K ANTOROVICH ] Sea r > 0, s0 ∈ <n , F : <n → <n y suponga que F es continuamente diferenciable en un entorno N (s0 , r). Suponga que para || · ||2 , el Jacobiano de F ,
11
J ∈ Lipγ (N (s0 , r)) con J(s0 ) no singular, y que existen constantes β, η ≥ 0 tal que
||J(s0 )−1 ||2 ≤ β, ||J(s0 )−1 F (s0 )||2 ≤ η
Defina α = βγη. Si α ≤ 1/2 y r > r0 := (1 −
√
1 − 2α)/(βγ), entonces la sucesión generada
por
sk+1 = sk − J(sk )F (sk ), k = 0, 1, . . .
esta bien definida y converge a s∗ , el único cero de F en la clausura de N (s0 , r0 ). Si α < 1/2,
√
entonces s∗ es el único cero de F en N (s0 , r1 ) donde r1 := mı́n r, (1 + 1 − 2α)/(βγ) y
k
||sk − s∗ ||2 ≤ (2α)2 η/α, k = 0, 1, . . .
Proposición 2 F 0 (u, v) ∈ Lip√2 (<2m+2n )
Dem.


0
0
0
0




0
0
0
0

||F 0 (u, v) − F 0 (u0 , v 0 )||2 = 

0
z 0 − z x0 − x 
 0

y 0 − y w 0 − w
0
0
2



0
0 0 0 0
w −w
0
0
0



0

 0 0 0 0  
0
y −y
0
0 

= 


0
0
x0 − x
0 
 0 0 I I  

I I 0 0
0
0
0
z 0 − z !2
√ u − u0 ≤ 2 v − v 0 2
De esta forma se tiene que γ =
√
2. Para calcular β se podría estimar el menor valor
singular del Jacobiano en el iterado actual y para η se determina ||F 0 (u, v)−1 F0 (u, v)||,
que es la norma de la dirección afín. Dicho esto, se obtiene una forma de estimar la
región de convergencia y determinar cuando activar el crossover y dejar de perturbar.
12
A LGORITMO OS
Sea (u0 , v0 ) > 0 un punto inicial, σ ∈ (0, 1), µ0 = ut0 v0 /(m + n),
k = 0 y cross = f alse
Paso 1.
Si se satisface el criterio de parada. Parar
Paso 2.
Determinar (∆ua , ∆v a ) de (2.8)
Paso 3.
Si cross = f alse
Escoger σk ∈ [0, 1)
Determinar (∆uc , ∆v c ) de (2.9)
Hacer (∆uk , ∆vk ) = (∆uc , ∆v c ) e ir al paso 5
Paso 4.
Hacer (∆uk , ∆vk ) = (∆ua , ∆v a )
Paso 5.
Escoger αp , αd ∈ [0, 1]
Paso 6.
Hacer (uk+1 , vk+1 ) = (uk + αp ∆uk , vk + αd ∆vk )
Paso 7.
Si cross = f alse
Calcular el mínimo valor singular de F 0 (uk , vk ), β
√
Si 2||(∆ua , ∆v a )||/β < 1/2, hacer cross = true
2.3.
Paso 8.
Escoger ζ ∈ (0, 1], calcular µk+1 = ζutk+1 vk+1 /(m + n)
Paso 9.
Hacer k = k + 1 e ir al paso 1
Convergencia y complejidad
La convergencia y la complejidad polinomial del algoritmo OS se pueden probar
bajo la adecuada escogencia de los parámetros del algoritmo y del punto inicial.
Definición 4 Una solución primal-dual (u, v) del problema (2.1) se dice estrictamente complementaria si F0 (u, v) = 0 y u + v > 0.
Se denotarán el conjunto de soluciones y el conjunto de soluciones estrictamente
complementarias por
S = {(u, v) : F0 (u, v) = 0} ; S c = {(u, v) ∈ S : u + v > 0}
En [38] se prueban resultados de convergencia y complejidad para un algoritmo
muy similar al algoritmo OS para el problema de complementariedad lineal monótona (LCP). Pero como los problemas cuadráticos pueden ser vistos como un LCP, estos
resultados de convergencia y complejidad pueden ser adaptados al algoritmo OS.
13
El problema de complementariedad lineal monótona consiste en encontrar vectores
(x, y), (z, w) ∈ <m+n que satisfagan
!
!
z
x
=M
+ t; (x, w, y, z) ≥ 0; xt z + y t w = 0
w
z
con M ∈ <(m+n)×(m+n) una matriz positivo semidefinida y t ∈ <m+n .
Aunque el LCP no es un problema de optimización, está estrechamente relacionado
con el problema (2.1) a través de las condiciones KKT, pues el LCP definido por
!
!
Q −At
c
M=
;t =
A
0
−b
es el problema de encontrar una solución al sistema de las condiciones KKT para (2.1).
!
At yk + zk − c − Qxk
, entonces las modificaciones del algoritmo OS
Sea qk =
Axk − wk − b
necesarias para establecer convergencia son las siguientes
Escoger σ
b ∈ (0, 1/2), 0 < γmin < γmax ≤ 1/2 y ζ = 1.
En el paso 3, escoger σk ∈ (0, σ
b]
En el paso 5, escoger αp = αd = αk como
αk = arg mı́n µk (α) := (uk + α∆uk )t (vk + α∆vk )/(m + n)
α∈[0,b
α]
donde α
b es el número más grande en [0, 1] tal que se satisfacen las siguientes
condiciones para todo α ∈ [0, α
b):
(uk + α∆uk )t (vk + α∆vk ) ≥ (1 − α)utk vk , si qk 6= 0
γmax
([uk ]i + α[∆uk ]i )([vk ]i + α[∆vk ]i ) ≥
(uk + α∆uk )t (vk + α∆vk ), ∀i
n+m
(2.10)
(2.11)
El punto inicial se escoge como u0 = ξu e, v0 = ξv e con
||u∗ ||∞ ≤ ξu , ||v ∗ ||∞ ≤ ξv , ξv ≥ ||t||∞ , ξv ≥ ||M e||∞ ξu = ||M u0 ||∞
donde (u∗ , v ∗ ) es una solución primal-dual del problema (2.1).
(2.12)
14
La condición (2.11) evita que los iterados se acerquen a la frontera del conjunto de
restricciones de no negatividad pues ui vi ≥ γmin µk , ∀k. La condición (2.10) asegura que
la mejora en la brecha de dualidad µk no supere por mucho la mejora en la factibilidad
||qk ||.
Con estas escogencias de los parámetros y de suponer que S c 6= ∅, se prueba en [38]
lo siguiente:
(uk , vk ) > 0 o µk = 0
1 ≥ αk ≥ C σb(1−γωmax ) > 0 con ω = O(n2 ) y C > 0 una constante
σ
b(1−γmax )
µk+1 ≤ 1 − C1
µk , con C1 > 0 una constante
ω
Dado > 0, µ0 = ζu ζv ≤ 1/τ para alguna constante τ independiente de n. Existe
un entero K con K = O(n2 ln(1/)) tal que µk ≤ para todo k ≥ K .
Estos resultados muestran la complejidad polinomial del algoritmo, y la convergencia q-lineal del al sucesión {µk }. La condición (2.11) implica que ||qk || ≤ µk ||q0 ||/µ0 por
lo que la factibilidad {||qk ||} converge de forma r-lineal. Cabe destacar que esta condición es equivalente a mantener los iterados en un entorno del camino central.
Proposición 3 Sea {uk , vk } la sucesión generada por el algoritmo OS con las modificaciones
antes mencionadas. Entonces {||qk ||} converge a cero de forma r-lineal.
Dem. Sea {νk } la sucesión monótona decreciente definida por
ν0 = 1; νk+1 = (1 − αk )νk
Como (∆uk , ∆vk ) resuelve (2.9), se tiene
qk+1 = qk + αk
At ∆yk + ∆zk − Q∆xk
A∆xk + ∆wk
!
= (1 − αk )qk = · · · = νk+1 q0
y de (2.11)
µk+1 ≥ (1 − αk )µk ≥ · · · ≥ νk+1 µ0
entonces
||q0 ||µk ≥ ||q0 ||νk µ0 = ||qk ||µ0 ⇔ ||qk || ≤ µk ||q0 ||/µ0
15
y como {µk } converge a cero de forma q-lineal, {||qk ||} → 0 r-linealmente.
En el mismo trabajo también se prueba que con una modificación del algoritmo, en
el que se toman, o el paso afín, o el paso corrector por iteración, la sucesión {µk } converge superlinealmente a cero con q-orden 2 y que los iterados convergen a un punto
en S de forma r-subcuadrática.
Estos resultados son una extensión de los resultados de convergencia para algoritmos de puntos interiores para problemas lineales que pueden encontrarse en [22][25]
y en [40]. Para una descripción de algoritmos de puntos interiores tipo primal-dual
con resultados de convergencia para el caso de programación no lineal general pueden
verse los trabajos en [11][5] [26] y [21].
Basándose en los resultados numéricos encontrados en la literatura, no se escogerán
los parámetros del algoritmo de forma de poder asegurar convergencia. Las implementaciones más populares, y al parecer más robustas y eficientes, escogen los parámetros
siguiendo heurísticas bajo las cuales no se pueden demostrar los resultados aquí mencionados.
Pese a que no se podrá asegurar convergencia, los resultados mencionados son la
base para la escogencia de los parámetros del algoritmos que se presentan en el siguiente capítulo.
Capítulo 3
Aspectos numéricos
En este capítulo se especificará la forma en que se escogerán los parámetros del
algoritmo y se discutirá sobre la resolución de los sistemas lineales, aspecto en el que
se enfoca esta trabajo.
3.1.
El punto inicial y los parámetros del algoritmo
Es sabido que el comportamiento numérico de los algoritmos de puntos interiores,
especialmente los no factibles, se ven afectados por la escogencia del punto inicial. Por
lo que la escogencia del mismo es un aspecto importante a considerar en cualquier
implementación.
En general, se desea que el punto inicial éste bien centrado, que no esté muy lejos
de ser factible y que satisfaga aproximadamente las condiciones en (2.12).
La forma clásica de escoger el punto inicial para el caso lineal es la propuesta por
Mehrotra en [28] donde el punto inicial se escoge como los vectores primal-dual factibles de menor 2-norma. Esta heurística es equivalente a una iteración del algoritmo en
cuanto a costo computacional de refiere.
El punto inicial se calculará siguiendo la idea en [34]. Para ello se determina la cantidad




n




X
|bi |
, 100 ,
ζ := máx máx P
(a
ij ) − 1 6= 0

 n (a ) − 1


j=1
j=1 ij
16
17
y se genera el punto inicial como (u0 , v0 ) := ξe.
La motivación de esta escogencia es generar un punto bien centrado, es decir, que
los productos xi zi , yi wi , sean similares para todo i, j, e intentar satisfacer al menos una
de las restricciones, la razón de la cantidad 100 es evitar obtener puntos iniciales con
componentes muy pequeñas pues esto puede ocasionar problemas numéricos.
La preferencia de esta escogencia del punto inicial sobre la presentada en [28] sigue de resultados observados en pruebas numéricas preliminares. En estas se observó
que con esta escogencia, se obtiene convergencia en un mayor número problemas y se
reduce el número de iteraciones.
Las longitudes de paso de calcularon de forma de mantener los iterados positivos
según lo siguiente








−1
−1
n
o ; αd = mı́n 1,
n
o
αp = mı́n 1,
 mı́n ∆zi , ∆yi 
 mı́n ∆xi , ∆wi 
xi
wi
zi
yi
y se recorta por la cantidad
τ = mı́n τ2 , 1 − mı́n τ1 , τ1 ut v
con τ1 = 0,05, τ2 = 0,999.
El algoritmo se detiene cuando las siguientes medidas relativas son menores que
cierta tolerancia = 10−13 .
relgap =
|ct x − bt y + xt Qx|
||Ax − w − b||2
||At y + z − c − Qx||2
,
rel
=
,
rel
=
,
pri
dua
1 + |bt y|
1 + ||b||2
1 + ||c||2
o cuando alguna de las longitudes de paso sea cercana a cero, mı́n{αp , αd } < 3 .
2
máx{αp ,αd }−1
El parámetro de centrado σ se escoge siguiendo [36] como σk = máx{αp ,αd }+10 y el
valor por el que se disminuye la brecha µk+1 en el algoritmo se escoge como
utk+1 vk+1
ζ = mı́n 0,02,
.
m+n
Esta escogencia del parámetro de centrado no es la presentada en [28] en donde se
determina el valor de µa = (uk + αa ∆ua )t (vk + αa ∆v a )/(m + n) y se fija σk = (µa /µk )3
con αa ∈ (0, 1) tal que (uk + αa ∆ua , vk + αa ∆v a ) > 0. De esta forma, si la dirección afín
18
produce un buen decrecimiento en la brecha, σ será cercano a cero, y cercano a uno
en caso contrario. En este trabajo no se considera esta propuesta, sino la mencionada
anteriormente que siempre favorece a la dirección afín y mide cuan cerca están los
iterados de la frontera del conjunto de restricciones.
En el paso 7 del algoritmo es necesario estimar el menor valor singular de F 0 (uk , vk )
para determinar cuando activar el crossover. Pero es sabido que esta estimación es muy
costosa desde el punto de vista computacional. Además, como la mayoría de los problemas considerados en este trabajo provienen de aplicaciones prácticas donde el Jacobiano es, por lo general, singular en la solución, puede suceder que no exista algún k
para el cual α < 1/2 en el teorema de Kantorovich. Es por esto, y con miras a implementar un algoritmo eficiente, que el crossover se activó cuando el máximo de las medidas
relativas es menor que cierta tolerancia fijada en 10−8 .
3.2.
Los sistemas lineales
Los sistemas lineales son el aspecto fundamental de los algoritmos de puntos interiores, por lo general son mal condicionados cerca del conjunto de soluciones del
problema, de grandes dimensiones e influencian el buen comportamiento numérico de
los algoritmos.
Las dimensiones del sistema lineal en (2.7) son prohibitivas, 2n + 2m, por lo que se
han propuesto diferentes alternativas para resolverlo.
En el trabajo de Altman y Gondzio en [1] se plantea el problema cuadrático en un
formato distinto al aquí presentado y se resuelve el sistema aumentado
!
−Q − X −1 Z At
,
A
0
se usa una regularización que consiste en sumar una matriz diagonal relacionada con
los parámetros del algoritmo y calculada de forma dinámica mientras se determina la
factorización de Cholesky de la matriz. Y en [6] se usan, satisfactoriamente, métodos
iterativos para resolver este sistema regularizado.
19
En Shanno y Vanderbei [36][35] se resuelve un sistema cuasi-definido usando una
factorización estática (sin pivoteo) de la forma LDLt y los problemas numéricos son
evitados al aplicar un esquema de reordenamiento particular de las matrices.
En [37], Wright estudia la estabilidad de la resolución del sistema aumentado para
programación lineal usando descomposición de Gauss y en [39] estudia la estabilidad
del algoritmo de Bunch-Parlett [9] y Bunch-Kaufman [8] en la factorización LDLt del
sistema aumentado para problemas de complementariedad lineal monótona. En estos
trabajos se hace énfasis en que la escogencia de los parámetros del algoritmo son los
factores que determinan la estabilidad de los algoritmos que resuelven los sistemas
lineales.
La principal ambición de este trabajo es estudiar el efecto que puede tener, sobre
la estabilidad de los algoritmos que resuelven los sistemas lineales, la estructura de
las matrices involucradas en los mismos. De esto dependerá el comportamiento del
algoritmo de puntos interiores propuesto.
Tal y como se muestra en los trabajos mencionados anteriormente, este es un aspecto primordial en cualquier implementación de un algoritmo de puntos interiores tipo
primal-dual. Por ello se extenderá el método SIMPLE al caso cuadrático y se estudiará
el efecto de este enfoque sobre los algoritmos.
3.2.1.
Alternativa SIMPLE
El método SIMPLE es la base del presente trabajo. Es introducido por GonzálezLima-Wei-Wolkowicz en [19] como un método factible de puntos interiores tipo primaldual para programación lineal y en [30] se extiende al caso no factible y se estudia el
uso de distintos métodos (directos e iterativos) para la resolución del sistema lineal.
Una de las principales características del método SIMPLE es que en problemas no
degenerados, el sistema lineal involucrado no necesariamente se hace mal condicionado mientras los iterados se acercan a la solución, esto se logra evitando el uso de las
ecuaciones normales donde se resuelve el sistema
(Y −1 W + AZXAt )∆y = b − Ax + µY −1 e + AZ −1 X(c − At y − µX −1 e)
20
que por lo general no es ralo y mal condicionado, usando en reemplazo lo que se denomina la reducción SIMPLE. Esta reducción deriva en un sistema que es resuelto haciendo uso de métodos iterativos tipo gradiente conjugado.
Es claro que en presencia de columnas densas en la matriz de restricciones, los algoritmos que usan reducciones a matrices positivo definidas haciendo uso de las ecuaciones normales, producirán matrices menos ralas, o llenas, debido a productos de la
forma AAt . Esto no ocurre con el enfoque aquí presentado, en donde se sacrifica el
resolver un sistema de tamaño n × n por mantener la ralidad en los sistemas lineales.
La reducción SIMPLE busca determinar la dirección resolviendo un sistema de tamaño m + n que es ralo y no necesariamente mal condicionado a través de un proceso
de eliminación de dos pasos que consiste en premultiplicar el sistema
Fµ0 (u, v)(∆u, ∆v) = −Fµ (u, v)
(3.1)
por unas matrices particulares de forma de poder eliminar ∆w y ∆z de las ecuaciones
resultantes.
Esta descomposición puede extenderse al caso de programación cuadrática y realizarse de forma más directa. La idea consiste en premultiplicar el sistema (3.1) por la
siguiente matriz

I
0

 0
I
Ps = 
 X 0

0 −Y
obteniendo el sistema equivalente

0
At
−Q

 −I
0
A

 0 XAt −(XQ + Z)

0 −W
−Y A
I

∆w
0 0


0 0 

I 0 

0 I


Qx + c − z − At y

 
 ∆y  
0 
b − Ax + w

=




0   ∆x   X(Qx + c − At y) − µe
0
∆z
Y (Ax − b) − µe
el cual puede ser reescrito de la siguiente forma
!
!
!
−(XQ + Z) XAt
∆x
X(Qx + c − At y) − µe
=
−Y A
−W
∆y
Y (Ax − b) − µe
∆z = Q(x + ∆x) − At (y + ∆y) − z + c
∆w = A(x + ∆x) − w − b






(3.2)
21
Siguiendo la metodología presentada en [30] el sistema en (3.2) puede ser reducido
a un sistema simétrico postmultiplicando por una matriz apropiada sin incluir inversas
de matrices. Sea

I
0
0
0


0 

X 0 

0 I

 0 −Y
Pjs = 
 0 0

0 0
0
entonces, si se escribe Ps Fµ0 (u, v)Pjs (∆u, ∆v) = −Ps Fµ (u, v) se puede obtener el sistema
−(XQX + ZX) −XAt Y
−Y AX
WY
!
c
∆x
c
∆y
!
=
X(Qx + c − At y) − µe
!
Y (Ax − b) − µe
c
∆x = X ∆x
c
∆y = −Y ∆y
(3.3)
∆z = Q(x + ∆x) − At (y + ∆y) − z + c
∆w = A(x + ∆x) − w − b
Los sistemas en (3.2) y (3.3) son de tamaño m + n y conservan la ralidad de las matrices A y Q. A diferencia de otras alternativas de resolución, estos sistemas no poseen
inversas de las matrices diagonales X o Y . Esto podría ocasionar problemas numéricos,
pues cerca de la solución, algunas componentes de X o Y necesariamente tienen que
acercarse a cero.
3.2.2.
Alternativa LOQO
Entre las alternativas de resolución que poseen inversas de matrices se tiene la presentada en [36] que es usada en el paquete comercial LOQO. Este paquete implementa
un algoritmo que no posee resultados de convergencia, pero que ha demostrado se
efectivo en la práctica y resuelve la mayoría de los problemas de prueba incluyendo los
presentes en NETLIB, CUTEr y en la colección Maros y Mezaros.
La característica principal de este algoritmo es la forma en que se resuelve el sistema
lineal para determinar la dirección de Newton perturbada. La idea es que si un punto
(u+∆u, v+∆v) debe estar exactamente en el camino central, este debe satisfacer el sistema en (2.9), el cual puede reescribirse, luego de linealizar y de algunas manipulaciones,
22
como un sistema simétrico

XZ −1 0
I
0

 0
0
A
−I

 I
At −Q
0

0
−I 0 −Y W −1

∆z


µZ −1 e − x
 

  ∆y  
b + w − Ax
 

  ∆x  =  Qx + c − z − At y
 

−µW −1 e + y
∆w



,


de la primera y última ecuación de pueden extraer
∆z = X −1 (µe − XZe − Z∆x)
(3.4)
∆w = Y −1 (µe − W Y e − W ∆y)
y sustituyendo en la segunda y tercera ecuación se obtiene el sistema simétrico
!
!
!
−(Q + X −1 Z)
At
∆x
Qx + c − At y − µX −1 e
=
A
Y −1 W
∆y
b − Ax + µY −1 e
3.2.3.
(3.5)
Relación SIMPLE-LOQO
En este trabajo se desea estudiar la relación entre las diferentes formas de resolver
los sistemas lineales. Aún cuando es interesante observar que el sistema (3.1) es equivalente a un sistema simétrico que puede reducirse a otro de menor tamaño, también
simétrico, es parte de nuestro objetivo mostrar la relación con la reducción SIMPLE.
Para obtener el sistema en (3.5), basta con premultiplicar el sistema (3.1) por la siguiente matriz

I 0 X −1

 0 I
Pv = 
 0 0

0 0
0
I
0
0


−Y −1 
,
0 

I
obteniendo el sistema equivalente

0

 0

 0

−Y
At
−(Q + X −1 Y )
Y −1 W
A
0
−Z
−W
0
0

∆w



 
  ∆y  

=



−X   ∆x 
 
0
∆z
0
Qx + c − At y − µX −1 e

b − Ax + µY −1 e





ZXe − µe
Y W e − µe
23
el cual puede escribirse como en (3.4) y (3.5). Este sistema a pesar de ser simétrico tiene
las inversas de las matrices diagonales X, Y , por lo que si alguna de estas variables es
cercana a cero, el número de condición de la matriz en (3.5) será grande.
Una manera de combinar las reducciones hechas en (3.2) y en (3.5) es premultiplicar
por Pv y postmultiplicar por Pjs el sistema (3.1).
Al hacer Pv Fµ0 (u, v)Pjs (∆u, ∆v) = −Pv Fµ (u, v) se obtiene
!
!
!
c
−(QX + Z) −At Y
∆x
Qx + c − At y − µX −1 e
=
c
AX
−W
∆y
b − Ax + µY −1 e
c
∆x = X ∆x
c
∆y = −Y ∆y
(3.6)
∆z = X −1 (µe − XZe − Z∆x)
∆w = Y −1 (µe − W Y e − W ∆y)
que involucra la transpuesta de la matriz en (3.2) y el lado derecho en (3.5).
Es interesante notar que si

0
0 X −1
0

 0
0
0
−Y −1
Psv = 
 −X 0
I
0

0 Y
0
I


I
0


 −1  0
I
 ; Psv = 

 X 0


0 −Y
−X −1
0
0
0
0


Y −1 

0 

0
se tiene que Psv Ps = Pv .
Si se supone que las componentes de (uk , vk ) están acotadas por una constante Ξ (lo
cual puede lograrse manteniendo los iterados en un entorno del camino central [38]),
se puede observar que
κ2 (Ps F 0 (u, v)) ≤ (n + m)κ∞ (Ps )κ∞ (F 0 (u, v)) ≤ (n + m)(1 + Ξ)κ∞ (F 0 (u, v))
con κp (A) = ||A||p ||A−1 ||p . De forma que el efecto de la reducción SIMPLE no afecta
significativamente el sistema lineal en cuanto a condicionamiento se refiere. Por el contrario, en la reducción LOQO puede observarse que si alguna componente de yk o xk
tiende a cero cuando k → ∞, la condición de Pv F 0 (uk , vk ) diverge.
De esta forma, en un algoritmo que use la reducción SIMPLE, se espera alcanzar
soluciones más precisas a los problemas, pues el mal condicionamiento cerca de la solución debería afectar menos que en el caso de la reducción LOQO.
24
3.2.4.
Las factorizaciones
Un aspecto que parece ventajoso en las reducciones en (3.3) y (3.5) es la presencia
de matrices cuasi-definidas.
Definición 5 Una matriz K ∈ <(m+n)×(m+n) es simétrica cuasi-definida si existe una matriz
de permutación Π tal que ΠKΠt tiene la forma
H
Tt
T
−G
!
donde H ∈ <n×n y G ∈ <m×m son simétricas positivo definidas.
Teorema 2 [35] Una matriz simétrica cuasi-definida K es fuertemente factorizable. Es decir,
para toda permutación P existe una matriz diagonal D y una matriz triangular inferior L tal
que
P KP t = LDLt
donde D posee elementos positivos y negativos en general.
Por lo tanto, en un algoritmo que use en su formulación matrices cuasi-definidas,
se podrá realizar la factorización LDLt y reducir el tiempo necesario para resolver el
sistema lineal.
Si alguno de los elementos de D en la factorización LDLt sin pivoteo es cero debido
a errores numéricos, se podrían sustituir estos valores por la raíz cuadrada de la precisión de la máquina, obteniendo así resultados tan precisos como la raíz cuadrada de la
precisión de la máquina. Además, bajo la suposición de la existencia de una solución
estrictamente complementaria, los algoritmos intentan seguir el camino central, por lo
que los elementos de ZX −1 y de W Y −1 tienden a cero o al infinito a la misma rata, favoreciendo así la estabilidad de los algoritmos para resolver los sistemas lineales. Otra
forma de evitar problemas de estabilidad en la factorización es usar las técnicas de pivoteo diagonal parcial presentadas en [23] donde se modifica la estrategia de pivoteo
de Bunch-Kaufman para poder demostrar la estabilidad del algoritmo.
Un aspecto que influye en el costo computacional en las factorizaciones LDLt o LU ,
según sea el caso, es el llenado en las factorizaciones, posiblemente ocasionado por la
25
presencia de columnas densas. Es por ello que en este trabajo se hará uso de estrategias de reordenamiento como Approximate minimum degree [2] (AMD) (o Columm
approximate minimum degree (ColAMD) en el caso no simétrico) para intentar reducir
el llenado en las factorizaciones. Además, se colocarán las columnas densas al final de
la matriz, pues se sabe que esto ayuda a la estabilidad de los algoritmos.
Hasta ahora no se ha mencionado la opción de usar algoritmos iterativos en la resolución de los sistemas lineales. Como se puede observar en [6], el uso de estos métodos
es factible, pero su ambición es disminuir el tiempo de procesamiento. Es sabido que
las soluciones obtenidas por estos algoritmos no son muy precisas, y aún cuando esto
se puede justificar argumentando que después de todo, los algoritmos de puntos interiores determinan la solución de un sistema perturbado, esta no es la ambición de este
trabajo. Basados en los resultados no satisfactorios con el uso de métodos iterativos en
el trabajo de [30] y el éxito del paquete LOQO y otros (que no usan métodos iterativos),
se decidió usar métodos directos para así explotar las buenas características de las matrices que la reducción SIMPLE produce, y de esta forma lograr que los algoritmos sean
lo más robustos posibles y alcanzar soluciones muy precisas.
En [37] se prueba que bajo cierta escogencia de los parámetros del algoritmo, las
c ∆v)
c calculadas usando descomposición de Gauss con pivoteo parcial,
direcciones (∆u,
c ∆v)
c = O(µm ), donde
satisfacen que para µ suficientemente pequeño (∆u, ∆v) − (∆u,
m es el epsilon de la máquina y (∆u, ∆v) la dirección calculada en aritmética exacta.
Basados en este resultado y con miras a realizar comparaciones lo más justas posibles, se decidió usar factorizaciones tipo LU para resolver los sistemas lineales, aun
cuando estos posean matrices cuasi-definidas.
En caso en que use la reducción SIMPLE en (3.2) se llamará al algoritmo, SJq, si se
usa la reducción en (3.3) se llamará SJs, si se usa la reducción en (3.6) se denominará
SJd y si se usa la reducción en (3.4) y (3.5) se denominará SVq. De esta forma se tienen
las siguientes alternativas:
26
SJq Bien definida, no simétrica
−(XQ + Z) XAt
−Y A
!
−W
∆x
!
X(Qx + c − At y) − µe
=
∆y
!
Y (Ax − b) − µe
t
∆z = Q(x + ∆x) − A (y + ∆y) − z + c
∆w = A(x + ∆x) − w − b
SJs Bien definida, simétrica cuasi-definida, requiere de costosos productos de la forma
XQX, XAt Y, Y AX
−(XQX + ZX) −XAt Y
−Y AX
WY
!
c
∆x
c
∆y
!
=
X(Qx + c − At y) − µe
!
Y (Ax − b) − µe
c
∆x = X ∆x
c
∆y = −Y ∆y
∆z = Q(x + ∆x) − At (y + ∆y) − z + c
∆w = A(x + ∆x) − w − b
SJd No definida, no simétrica, presencia de inversas en el lado derecho
!
!
!
c
Qx + c − At y − µX −1 e
∆x
−(QX + Z) −At Y
=
c
b − Ax + µY −1 e
∆y
AX
−W
c
∆x = X ∆x
c
∆y = −Y ∆y
∆z = X −1 (µe − XZe − Z∆x)
∆w = Y −1 (µe − W Y e − W ∆y)
SVq No definida, simétrica cuasi-definida, presencia de inversas, no requiere de productos de la forma AX, At Y
−(Q + X −1 Z
At
A
Y −1 W
!
∆x
∆y
!
=
Qx + c − At y − µX −1 e
b − Ax + µY −1 e
∆z = X −1 (µe − XZe − Z∆x)
∆w = Y −1 (µe − W Y e − W ∆y)
!
Capítulo 4
Resultados computacionales
Los algoritmos presentados usando los sistemas SJq, SJs, SJd y SVq, se implementaron en Matlab 6.5 y se realizaron pruebas computacionales sobre un conjunto de problemas de la colección Maros y Mezaros en una Sun Blade 150 Ultra Sparc de 650 Mhz
y 512 Mb de memoria.
El algoritmo usado para resolver los sistemas lineales es el implementado en el paquete UMFPACK 4.3. Este paquete determina la factorización LU de una matriz no
simétrica usando kernels de matrices densas y el método multifrontal [29].
En el Cuadro 4.1 se presenta el conjunto de 58 problemas de prueba de la colección
Maros y Mezaros considerado. Es importante volver a mencionar que los algoritmos
fueron implementados en Matlab, esto es un aspecto limitante en cuanto a las dimensiones de los problemas que se pueden resolver. Pese a esto, se lograron resolver algunas de las versiones cuadráticas más grandes de la colección NETLIB, como lo son
QSCTAP3 y QSIERRA. Es claro que una implementación en FORTRAN o C permitiría
obtener resultados sobre problemas de mayores dimensiones como AUG2D de 20000
variables y 10000 restricciones, además de realizar las pruebas en computadores paralelos y no secuenciales, como es el caso de estos resultados.
27
28
Problema
m
n
nz(A)
nz(Q)
TAME
2
2
4
4
ZECEVIC2
4
2
6
HS35MOD
2
3
LOTSCHD
14
HS118
m
n
nz(A)
nz(Q)
HS21
3
2
4
2
1
HS35
1
3
3
7
4
7
HS76
3
4
10
8
12
108
6
QAFIRO
35
32
117
9
44
15
78
15
QADLITTL
71
97
556
157
QPCBLEND
117
83
789
83
QSCAGR7
213
140
782
42
QSC205
296
203
800
31
QSHARE2B
109
79
778
100
CVXQP2_S
150
100
248
672
CVXQP1_S
200
100
396
672
CVXQP3_S
250
100
544
672
QSHARE1B
206
225
2042
60
DUALC2
237
7
1617
49
QBORE3D
459
315
2811
128
QSCORPIO
668
358
2526
58
DUALC1
225
9
1953
81
QBRANDY
386
249
3932
114
DUALC5
287
8
2240
64
QSCAGR25
771
500
2888
228
QSCTAP1
420
480
2052
270
QBANDM
610
472
4988
57
QISRAEL
174
142
2269
1354
77
75
225
5523
QGROW7
560
301
5504
684
QBEACONF
313
262
6684
36
1397
699
2793
1045
QSCFXM1
517
457
4056
1410
QE226
256
282
3516
1861
QSCSD1
154
760
4776
1436
DUALC8
512
8
4040
64
1422
1092
4817
270
DUAL1
87
85
255
7031
QSCRS8
874
1169
5758
209
VALUES
204
202
606
7442
QPCBOEI1
605
384
4143
384
GOULDQP3
1397
699
2793
2092
98
96
288
8920
MOSARQP2
600
900
2930
990
276
421
8363
1128
QSHIP04S
756
1458
7190
98
1034
914
8122
2188
QSEBA
1536
1028
9204
1196
DUAL3
113
111
333
12105
QSCSD6
294
1350
8632
2712
QETAMACR
889
688
4000
8516
CVXQP2_M
1500
1000
2498
6968
QSHIP04L
756
2118
10490
98
QSCFXM3
1551
1371
12188
2353
MOSARQP1
700
2500
3422
2590
QSCTAP2
1560
1880
8124
1413
3791
2036
13311
244
QSCTAP3
2100
2480
10734
1908
DUAL4
QGFRDXPN
DUAL2
QFORPLAN
QSCFXM2
QSIERRA
Problema
GOULDQP2
Cuadro 4.1: Problemas de prueba
29
4.1.
Efecto del reordenamiento
En los Cuadros A.1 a A.4 en el apéndice se presentan los resultados del algoritmo
SJq realizando el reordenamiento proporcionado por ColAMD y sin realizarlo. En el
Cuadro 4.2 se reporta el número de problemas ganados en cada caso en cuanto a número de iteraciones, precisión alcanzada maxrel = máx {relgap , relpri , reldua }, tiempo de
ejecución y número de elementos distintos de cero en L y U , nz(L), nz(U ) respectivamente.
Con AMD
Sin AMD
Empate
Iteraciones
11
6
41
maxrel
37
2
19
Tiempo
51
2
5
nz(L)
55
1
2
nz(U )
52
4
2
Cuadro 4.2: Número de problemas ganados usando ColAMD y sin usarlo para SJq
Tal y como se esperaba, el número de problemas ganados en cuanto a número de
elementos distintos de cero por el algoritmo usando ColAMD es considerablemente
grande, y también es claro que si el llenado es mayor, más tiempo se necesitará para resolver los sistemas lineales y por esto la significativa diferencia en el número de
problemas ganados en cuanto a tiempo se refiere.
La diferencia en cuanto a número de iteraciones no es muy grande, existe un empate
en 41 problemas, 11 son ganados si se reordena y 6 si no se reordena, lo que indica que la
reducción por iteración de las medidas relativas son semejantes. Pero también se puede
observar que el número de problemas ganados, con relación a las medidas relativas,
al reordenar es 37, con 19 empates que se presentan en los problemas de pequeñas
dimensiones. Esta diferencia podría atribuírsele al error acumulado en las operaciones
punto flotante realizadas, a mayor llenado más operaciones y mayor error acumulado.
En [35] se comenta que el uso de estrategias de reordenamiento favorece la estabilidad. En ese trabajo se colocan las entradas diagonales positivas al principio de la
matriz, luego las columnas y filas con diagonal negativa y por último las columnas
30
densas y las columnas asociadas a variables libres, luego se aplica la heurística Multiple minimum degree [27], en los conjuntos formados por separado. En este trabajo solo
se separan las columnas, en densas y no densas, y se aplica la heurística de reordenamiento al primer conjunto. Además de lo ya mencionado, se presentan casos donde se
observa que el aumento en el número de iteraciones y precisión alcanzada no se debe
al error acumulado sino al efecto que ejerce el reordenamiento sobre la estabilidad del
algoritmo que resuelve el sistema lineal. Por ejemplo, en el problema QPCBLEND, la
norma del error de las direcciones calculadas es de un orden de magnitud mayor al no
reordenar que cuando se reordena, efecto que, tomando en cuenta las dimensiones del
problema, no debería estar relacionado con el aumento en el número de operaciones
punto flotante.
4.2.
Comparación de las alternativas SJq, SJs, SJd y SVq
En los Cuadros A.5 a A.11 en el apéndice se muestran los resultados obtenidos por
los cuatro algoritmos y se reporta el número de iteraciones, las medidas relativas alcanzadas y el tiempo de procesamiento requerido. Un problema se considera resuelto si el
máximo de las medidas relativas es menor que 10−8 .
En el Cuadro 4.3 se muestra, para cada algoritmo, el número de problemas resueltos (NP res), el número de problemas en los que se alcanzo el óptimo (NP st=1), el
número de problemas en los que se obtuvieron valores de NaN (NP st=2), el número de
problemas en los que el algoritmo se detuvo por que la longitud de paso se hizo muy
pequeña (NP st=3) y el número de problemas en los que se alcanzó el número máximo
de iteraciones (NP st=4) que se fijó en 100.
Método
NP res
NP st=1
NP st=2
NP st=3
NP st=4
SJq
54
42
11
5
0
SJs
53
38
15
4
1
SJd
48
34
22
2
0
SVq
47
33
22
3
0
Cuadro 4.3: Estatus de salida
31
De este cuadro se puede observar que el algoritmo SJq resuelve el mayor número
de problemas, seguido de SJs, luego SJd y por ultimo SVq. Este orden se mantiene para
el número de problemas con estatus de salida igual a uno. Solo se alcanza el máximo
numero de iteraciones para el algoritmo SJs en un problema y en una cantidad reducida
de problemas, se detuvieron los algoritmos por que la longitud de paso se hizo muy
pequeña.
Puede observarse también, que SJd y SJs tienen un comportamiento parecido, al
igual de SJd y SVq, esto se debe a las semejanzas en los sistemas lineales producidos
por las reducciones. Los algoritmos SJq y SJs parecen ser los más robustos, y como se
esperaba, el número de problemas en donde se obtuvieron valores de NaN es mayor
para SJd y SVq, hecho que se le atribuye a la presencia de las inversas en los sistemas
lineales.
En solo un problema, los algoritmos SJd y SVq terminan con estatus óptimo y SJq
no. Cabe mencionar que la escogencia de los parámetros del algoritmo es muy agresiva,
es decir, el valor de µk se reduce por un valor menor que 0,02, el recorte en la longitud
de paso es muy pequeño, τ ≈ 0,999, y el parámetro de centrado siempre es pequeño,
favoreciendo así la dirección afín. Pese a esto, el número de problemas en los que se
detiene el algoritmo, porque la longitud de paso es muy pequeña, es reducida.
Para observar con mayor claridad las relaciones entre los algoritmos se definen los
siguientes índices
Índice de robustez
aA
r
donde aA es el número de problemas resueltos por el algoritmo A y r es el mayor
RA =
número de problemas resueltos por alguno de los algoritmos probados. RA es el
porcentaje de casos en los que el algoritmo encuentra una solución.
Índice de eficiencia
Pm
EA =
con
ei =




0,
1,


 t /t ,
ib iA
i=1 ei
aA
si el algoritmo A falla en el problema i
si tib = 0 y tiA = 0
si tiA 6= 0
32
donde tiA es el tiempo de CPU empleado por el algoritmo A en la resolución del
problema i, tib = mı́nA {tiA }, es decir, el mejor resultado entre todos los algoritmos
para el problema i, y m es el total de problemas a resolver.
Combinación de eficiencia y robustez
ERA = EA × RA
Índice de calidad de solución
Pm
CA =
con
ci =




0,
i=1 ci
aA
si e lalgoritmo A falla en el problema i
1,


 N /N ,
ib
iA
si Nib = 0 y NiA = 0
si NiA 6= 0
donde NiA es la suma de las medidas relativas obtenidas por el algoritmo A para
el problema i, NiA = relgap + relpri + reldua , y Nib = mı́nA {NiA }.
En el Cuadro 4.4 se presentan los índices para los resultados obtenidos. De esta tabla
se observa que los algoritmos SJq y SJs son los más robustos respectivamente.
Método
RA
EA
ERA
CA
SJq
1.000000
0.762557
0.762557
0.813160
SJs
0.981481
0.687723
0.674987
0.689048
SJd
0.888889
0.747813
0.664723
0.604021
SVq
0.870370
0.848046
0.738114
0.636405
Cuadro 4.4: Índices para cada método
El algoritmo SVq es el más eficiente, luego SJq, seguido de SJd y el menos eficiente es
SJs. Cabe mencionar que el algoritmo SJs es el que realiza más operaciones para formar
la matriz del sistema reducido, hecho que aumenta el tiempo de procesamiento.
En la combinación de eficiencia y robustez, SJq y SVq son los mejores respectivamente, y en cuanto a calidad de solución, SJq es el mejor con índice igual a 0,81 seguido
de SJs con índice de 0,68.
33
Los algoritmos SJq y SJd poseen índices de robustez y eficiencia semejantes, pero la
calidad de solución es menor para SJd. Esto se le atribuye a la presencia de inversas en
el lado derecho de SJd.
Los mejores resultados se obtuvieron con el algoritmo SJq, exceptuando la eficiencia, en donde es superado por SVq. El hecho de que SVq sea el más eficiente, era de
esperarse pues la matriz asociada al sistema lineal es la mas simple de todas las alternativas, es decir, no requiere realizar productos de la forma XQ o Y A en la formación
de esta.
Aunque el algoritmo SVq proporciona resultados de forma más eficiente, es el menos robusto y en cuanto a calidad de soluciones, es el penúltimo entre las alternativas,
superando solo a SJd.
4.3.
Sobre el condicionamiento de las matrices
Los números de condición de las matrices asociadas a los sistemas lineales a resolver
por iteración, son una medida del posible mal comportamiento de los algoritmos.
En las Figuras A.4, A.5 y A.6 se presentan los números de condición para cada una
de las alternativas en los problemas HS35MOD, LOTSCHD y QISRAEL, y es interesante notar que aunque el algoritmo SVq es el que posee los números de condición más
grandes, la precisión alcanzada es del orden O(10−13 ), no reflejando el efecto del mal
condicionamiento sobre la precisión en las soluciones.
Con el fin de intentar explicar este comportamiento notamos que en las reducciones
que derivan en sistemas con matrices simétricas se puede observar lo siguiente. Sea
K una matriz simétrica y P una matriz ortonormal con columnas los autovectores de
K, entonces P DP t = K, con D la matriz diagonal de autovalores. Luego, resolver el
sistema Kx = b es equivalente a resolver Db
x = bb con bb = P t b y x = P x
b. Si alguno de los
autovalores λi , de K, es cero, con autovector asociado vi se tiene que
Kvi = 0 ⇔ vi ∈ N ull(K) ⇔ vi ⊥ Rango(K t ) = Rango(K)
y por lo tanto, vit b = 0. De esta forma, resolver el sistema Db
x = bb es equivalente a
resolver un sistema reducido donde no se consideran las filas y columnas asociadas
34
con autovalores iguales a cero y se obtiene de forma precisa una solución del sistema
Kx = b. Ahora, si algún autovalor λj de K es cercano a cero y vj es el autovector
asociado, se conjetura en este trabajo que vit b debería ser cercano a cero y la presencia
de λj no debería afectar la estabilidad del algoritmo que resuelve Kx = b. Tomando en
cuenta esta observación se define lo siguiente
Definición 6 Ls -condición de una matriz simétrica K asociada al sistema lineal Kd = rhs
se define por
κ2 =
máx {|λi (K)|, ∀i}
mı́n {|λi (K)| : |λi (K)| > , |vit (rhs)| > , ∀i}
donde (λi (K), vi ) es un par autovalor-autovector de la matriz K.
En las Figuras A.1 a A.8 se presentan los números de condición de las matrices
asociadas a cada una de las reducciones y los -números de condición para SJs y SVq
con = 10−8 , en varios de los problemas de prueba.
En estas figuras se puede observar que los números de condición más grandes son
los asociados a SVq, y los menores, los asociados a SJs. Luego, SJq y SJd poseen el mismo
número de condición, pero los resultados obtenidos son bastante diferentes, siendo los
resultados de SJd más parecidos a los de SVq pareciendo indicar que la presencia de las
inversas en el lado derecho contribuye al mal comportamiento del algoritmo.
Se esperaría que, dado que los números de condición de SVq son mayores que los
del resto de las alternativas, este debería poseer un comportamiento mas deficiente
que el observado, pero los -números de condición, a partir de cierta iteración, son del
orden de los otros algoritmos, apoyando así la conjetura antes hecha. De esta forma el
mal condicionamiento parece influir de manera similar en todos los algoritmos.
Capítulo 5
Conclusiones
En este trabajo se propuso un método para programación cuadrática basándose en
el método SIMPLE, formulado para el caso de programación lineal. Aspectos nuevos
aquí considerados son la formulación del método como uno de orden superior y la
escogencia del punto inicial entre otros. Se presentaron condiciones bajo las cuales es
posible establecer resultados convergencia del algoritmo propuesto. Se propuso la alternativa SJd, se extendió la transformación cuasi-definida en SJs y se estudiaron las
relaciones y propiedades de estas alternativa y la presentada por Vanderbei en [36].
El método propuesto en este trabajo es un paso hacia una propuesta algorítmica
para el caso de programación no lineal y sería interesante estudiar, en un trabajo futuro,
su factibilidad.
Se realizó un estudio sobre la resolución por iteración de los sistemas lineales usados para la determinación de la dirección de Newton perturbada. Este aspecto es fundamental en la formulación de un algoritmo eficiente y robusto.
Se pudo observar en los resultados computacionales que el uso de la heurística Approximate minimum degree es primordial en el buen comportamiento de los algoritmos. Sin ella, el tiempo requerido por los algoritmos para obtener las soluciones es
prohibitivo debido a las dimensiones de las matrices involucradas. Pero mas interesante aun es el efecto que tiene el reordenamiento sobre la estabilidad de los algoritmos.
Se observo que el efecto de colocar las columnas densas al final del reordenamiento es
beneficioso para el comportamiento de los métodos, pues se obtuvo un incremento en
35
36
la robustez de los mismos.
Otro aspecto observado es el efecto del mal condicionamiento cerca de la solución
sobre los métodos. La presencia de números condición del orden de O(1040 ) no resultó
afectar la estabilidad de los algoritmos. Aún con estos órdenes de magnitud del número de condición de las matrices, se obtuvieron resultados con un orden de precisión de
O(10−14 ) para la mayoría de los problemas. Esto parece indicar que las matrices poseen
una estructura que favorece la estabilidad de los algoritmos que resuelven los sistemas
lineales. Además, se puede concluir que la presencia de las inversas de matrices diagonales afecta significativamente el comportamiento de los algoritmos. A pesar de que el
método SJd posee la transpuesta de la matriz en SJq, consideramos que la presencia de
las inversas de matrices en el lado derecho se refleja en el pobre comportamiento de la
primera alternativa en relación con la segunda. Igualmente, se le atribuye a las inversas
de matrices que el método SVq demostrara ser el menos robusto y que junto a SJd, son
los que obtienen soluciones de menor calidad.
Se observa que las alternativas SJq y SJs poseen una característica ventajosa sobre
SVq y SJd, con las dos primeras es posible alcanzar soluciones más precisas y en el caso
de SJq, se obtiene mayor robustez.
Pese a que el método SVq resultó ser el mejor en cuanto a tiempo de procesamiento
se refiere, esta característica se debe principalmente a que la matriz que este involucra es la más simple, es decir, no posee productos de la forma XQX, AX, Y At , por lo
que la formación de la matriz reducida se realiza en menos tiempo que en las otras
alternativas.
Como es sabido, el componente más importante de cualquier implementación de algún algoritmo de puntos interiores que aspire ser competitivo y eficiente, es el paquete
de álgebra lineal usado. Una crítica a lo presentado en este trabajo es el uso de factorizaciones LU en vez de LDLt en las reducciones SVq y SJs. Es claro que esto disminuiría
el tiempo de procesamiento, pero su efecto sobre la estabilidad del algoritmo es algo
que habría que estudiar. Aun cuando la factorización LDLt existe, sería imprudente
afirmar que una factorización estática, sin pivoteo, produciría buenos resultados.
Ahora, en favor de las otras dos reducciones no simétricas podemos decir que el
paquete de álgebra lineal usado debería explotar la estructura de las matrices. En un
código que realice la factorización LU o LDLt de las matrices asociadas a los métodos,
37
no sería necesario la formación explicita de las misma, reduciendo así el tiempo de
CPU requerido para obtener la factorización. Además, como algunas de las entradas
de las matrices poseen un comportamiento predecible, relacionado con los parámetros
del algoritmo y la reducción en la brecha de dualidad, se podría hacer una escogencia
inteligente de los pivotes durante la factorización.
De los resultados obtenidos se puede concluir que los algoritmos propuestos poseen
un buen comportamiento numérico. Las alternativas SJq y SJs demostraron ser robustas
y permitieron alcanzar soluciones muy precisas.
Basados en lo dicho anteriormente, podemos afirmar que una implementación que
use la reducción SJs es la que posee mayor potencial en comparación con el resto. Esta
alternativa simétrica es robusta, logra soluciones de muy buena calidad, y como se
mencionó anteriormente, el tiempo de procesamiento disminuiría si se hiciera uso de
una factorización LDLt con pivoteo que no forme explícitamente la matriz asociada y
que explote el comportamiento predecible de algunas de las entradas de esta.
LOQO es uno de los paquetes más populares. De su relación con las alternativas
propuestas y de lo observado en los resultados, donde las reducciones SIMPLE mostraron poseer mejor comportamiento numérico, podemos conluir que estas pueden llegar
a ser muy competitivas.
Como recomendación final, recalcamos que una implementación eficiente deberá
realizarse en un lenguaje como FORTRAN o C y deberá poseer un complejo, estable
y eficiente código, adaptado a la estructura de las matrices para resolver los sistemas
lineales.
Bibliografía
[1] A. Altman and J. Gondzio. Regularized symmetric indefinite systems in interior
point methods for linear and quadratic optimization. Technical report, System
Research Institute, Polish Academy of Science, 1999.
[2] P. R. Amestoy, T. A. Davis, and I. S. Duff. Algorithm (xx: AMD, an approximate
minimum degree ordering algorithm. Technical report, University of Florida, 2003.
[3] E. D. Andersen, J. Gondzio, C. Mészáros, and X. Xu. Implementation of interior
point methods for large scale linear programming. Technical report, University pf
Geneva, 1996.
[4] M. Argáez, L. Veázquez, and C. Villalobos. On the development of a trust region
interior-point method for large scale nonlinear programs. ACM transactions, 2003.
[5] S. Bakhtiari and A. L. Tits. A simple primal-dual feasible interior-point method
ofr nonlinear programming with monotone descent. Technical report, University
of Maryland, USA, 2002.
[6] L. Bergamaschi, J. Gondzio, and G. Zilli. Preconditioning indefinite systems in
interior point methods for optimization. Technical report, Por aparecer en Computational Optimization and Applications, 2003.
[7] A. B. Berkelaar, B. Jansen, K. Roos, and T. Terlaky. Sensitivity analysis in (degenerate) quadratic programming. Technical report, Delft University of Techmology,
1996.
[8] J. R. Bunch and L. Kaufman. Some stable methods for calculating inertia and solving symmetric linear systems. Math. Comp., 31, 1977.
38
39
[9] J. R. Bunch, L. Kaufman, and B.Ñ. Parlett. Decomposition of a symmetric indefinite
linear system of equations. SIAM J. Numer. Anal., 8, 1971.
[10] R. H. Byrd, M. E. Hribar, and J.Ñocedal. An interior point algorithm for large scale
nonlinear programming. Technical report, University of Colorado, USA, 1997.
[11] A. S. EL-Bakry, R. A. Tapia, T. Tsuchiya, and Y. Zhang. On the formulation and
thoery of the newton interior point method for nonlinear programming. Journal of
Optimization theroy and applications, 89(3), 1996.
[12] O. Epelly, J. Gondzio, and J. Vial. An interior point solver for smooth convex optimization with and application to enviromental-energy economic models. Technical report, University of Edinburgh, Scotland, 2000.
[13] A. V. Fiacco and G. P. McCormick. Nonlinear programming: sequential unconstrained
minimization techniques. John Wiley and Sons, Inc., 1968.
[14] E. M. Gertz and S. J. Wright. Object-Oriented siftware for quadratic programming.
ACM transactions, 2003.
[15] J. Gondzio. HOPDM (version 2.12)-A fast LP solver based on a primal-dual interior
point method. System Research Institute, Polish Academy of Sciences, Warsaw, Poland, 1995.
[16] J. Gondzio. Multiple centrality corrections in a primal-dual method for linear programming. Technical report, University of Geneva, 1995.
[17] J. Gondzio and A. Grothey. Parallel interior point solver for structured quadratic
programs: application to financial planing problems. Technical report, University
of Edinburgh, 2003.
[18] J. Gondzio and A. Grothey. Solving nonlinear portfolio optimization problems
with the primal-dual interior point method. Technical report, University of Edinburgh, 2004.
[19] M. González-Lima, H. Wei, and H. Wolkowicz. A simple iterative method for
linear programming. Technical report, University of Waterloo, Waterloo, Ontario,
Canada, 2001.
40
[20] N. I. M. Gould, D. Orban, A. Startenaer, and Ph. L. Toint. On the practical dependency of a trust-region algorithm on its parameters. Technical report, University
of Namur, Belgium, 2000.
[21] N. I. M. Gould, D. Orban, A. Startenaer, and Ph. L. Toint. Superlinear convergence
of primal-dual interior point algorithms for nonlinear programming. Technical
report, University of Namur, Belgium, 2000.
√
[22] O. Güler, R. A. Tapia, Y. Ye, and Y. Zhang. A cuadratically convergent O( nl)iteration algorithm for linear programming. Mathematical Programming, 59, 1993.
[23] N. J. Higham. Stability of the diagonal pivoting method with partial pivoting.
Technical report, University of Manchester, England, 1996.
[24] J. E. Dennis Jr. and R. B. Scnabel. Numerical methods for unconstrained optimization
and nonlinear equations, volume 16 of Classics in applied mathematics. SIAM, 1996.
[25] M. Kojima, N. Megiddo, and S. Mizuno. Theoretical convergence of large-step
primal-dual interior point algorithms for linear programming. Mathematical Programming, 59, 1993.
[26] C. T. Lawrence, A. L. Tits, and T. Urban. A primal-dual interior-point method for
nonconvex optimization with multiple logarithmic barrier parameters and with
strong convergence properties. Technical report, University of Maryland, USA,
1998.
[27] J. W. Liu. Modification of the minimum degree algorithm by multiple elimination.
ACM transactions, 1985.
[28] S. Mehrotra. On the implementation of a prima-dual interior point method. SIAM
J. Optimization, 2(4), 1992.
[29] T. A. Davis nad I. S. Duff. An unsymmetric-pattern multifrontal method for sparse
LU factorization. SIAM J. Matrix Anal. Appl., 19(1), 1997.
[30] S. Pérez. Algoritmos alternativos primal-dual no factibles de puntos interiores
para programación lineal. Technical report, Universidad Simón Bolivar, CESMa,
Noviembre 2003.
41
[31] F. A. Potra and S. J. Wright. Interior-point methods. Technical report, Argonne
National Laboratory, 2000.
[32] D. F. Shanno and R. J. Vanderbei. An interior-point algorithm for nonconvex nonlinear programming. Comput. Optim. Appl., 13, 1999.
[33] D. F. Shanno and R. J. Vanderbei. Interior point methods for nonconvex nonlinear
programming: orderings and higher-order methods. Math. Program. Ser. B, (87),
2000.
[34] N. V. Stojković and P. S. Stanimirović. Initial point in primal-dual interior point
method. FACTA UNIVERSITATIS, Mechanics, Automatic Control ans Robotics, 3(11),
2001.
[35] R. J. Vanderbei. Symmetric quasi-definite matrices. SIAM J. Optim., 5, 1995.
[36] R. J. Vanderbei. LOQO an interior point code for quadratic programming. Optimization methods and software, 12(2), 1999.
[37] S. J. Wright. Stability of linear equations solvers in interior-point methods. SIAM
J. Mat. Anal. Appls., 1994.
[38] S. J. Wright. A path-following interior-point algorithm for linear and quadratic
problems. Technical report, Argonne National Laboratory, 1995.
[39] S. J. Wright. Stability of augmented system factorizations in interior point methods. Technical report, Argonne National Laboratory, 1995.
[40] S. J. Wright. Primal-dual interior-point methods. SIAM, 1997.
Apéndice A
Tablas de resultados
42
43
Figura A.1: Números de condición para el problema DUAL1
Figura A.2: Números de condición para el problema DUAL2
44
Figura A.3: Números de condición para el problema DUALC5
Figura A.4: Números de condición para el problema HS35MOD
45
Figura A.5: Números de condición para el problema LOTSCHD
Figura A.6: Números de condición para el problema QISRAEL
46
Figura A.7: Números de condición para el problema QPCBLEND
Figura A.8: Números de condición para el problema QSHARE2B
47
Problema
iter
maxrel
time
nz(L)
nz(U)
TAME
8
3.6557e-26
6.0000e-02
9
9
HS21
9
2.4570e-28
7.0000e-02
9
9
ZECEVIC2
9
4.8212e-17
7.0000e-02
13
13
HS35
9
8.4366e-17
6.0000e-02
10
10
HS35MOD
25
6.5289e-15
1.5000e-01
12
13
HS76
10
2.7139e-16
7.0000e-02
21
24
LOTSCHD
11
2.0775e-13
9.0000e-02
209
233
QAFIRO
15
2.9310e-13
1.7000e-01
315
421
HS118
12
1.4039e-16
1.3000e-01
206
278
QADLITTL
17
3.2477e-16
4.4000e-01
1876
2597
QPCBLEND
20
4.6325e-14
7.8000e-01
3098
4368
QSCAGR7
17
1.6947e-14
5.9000e-01
2252
3761
QSC205
24
1.4387e-03
1.0400e+00
3199
4583
QSHARE2B
22
5.3868e-13
6.9000e-01
2365
4049
CVXQP2_S
10
1.2796e-15
3.4000e-01
2334
2786
CVXQP1_S
11
2.5978e-15
6.2000e-01
4837
6496
CVXQP3_S
11
3.9762e-15
1.1900e+00
8802
11894
QSHARE1B
40
1.4469e-09
3.2200e+00
7007
10972
DUALC2
31
5.9374e-13
9.1000e-01
1663
2994
QBORE3D
19
1.7333e-13
2.6100e+00
10951
16051
QSCORPIO
15
7.1589e-16
1.4900e+00
7790
11918
DUALC1
39
6.3251e-13
1.2800e+00
2178
4058
QBRANDY
20
5.7684e-12
7.0800e+00
24957
30999
DUALC5
13
1.4777e-13
5.2000e-01
2047
4000
QSCAGR25
20
1.3313e-14
2.3000e+00
8400
15225
QSCTAP1
18
8.0641e-16
2.8200e+00
12926
19521
QBANDM
29
8.6725e-12
1.2210e+01
28546
41427
QISRAEL
33
1.4738e-15
6.5700e+00
16830
19478
DUAL4
33
1.1688e-05
1.5600e+00
3267
3345
QGROW7
43
3.9467e-03
1.9670e+01
27684
45392
QBEACONF
21
4.4160e-12
6.6600e+00
18733
26946
GOULDQP2
26
4.7554e-13
2.9100e+00
6253
8194
QSCFXM1
30
2.389157e-12
7.8900e+00
21598
34183
Cuadro A.1: Resultados de SJq al reordenar con ColAMD
48
Problema
iter
maxrel
time
nz(L)
nz(U)
QE226
20
2.5204e-10
4.7900e+00
17600
26520
QSCSD1
13
6.9042e-15
2.0550e+01
71205
105617
DUALC8
19
6.0386e-13
1.3500e+00
4594
9287
QGFRDXPN
30
9.3496e-14
5.2200e+00
12768
20079
DUAL1
17
9.2263e-15
1.0300e+00
4126
4269
QSCRS8
67
5.7161e-08
3.1310e+01
40421
65633
VALUES
19
4.4409e-16
3.1900e+00
11617
20487
QPCBOEI1
23
2.9485e-13
1.8210e+01
51793
52000
GOULDQP3
19
5.4932e-13
2.4700e+00
8789
10900
DUAL2
14
4.1950e-15
1.2000e+00
5064
5179
MOSARQP2
27
7.5569e-08
8.9800e+00
35214
40421
QFORPLAN
29
8.5656e-11
3.2470e+01
55192
67130
QSHIP04S
37
1.2640e-15
2.6660e+01
56163
76778
QSCFXM2
34
3.2575e-12
1.8290e+01
43217
69571
QSEBA
34
9.3191e-12
1.1880e+02
76874
130258
DUAL3
66
3.4660e-06
6.6100e+00
7210
7305
QSCSD6
17
6.7681e-15
4.2700e+01
99026
207973
QETAMACR
48
7.6622e-14
1.2921e+02
113224
144619
CVXQP2_M
15
9.8788e-16
7.2840e+01
146408
165192
QSHIP04L
36
1.1858e-15
5.7330e+01
102296
142896
QSCFXM3
36
2.9995e-12
2.8260e+01
62227
102864
MOSARQP1
15
6.8661e-15
6.1600e+00
37809
45176
QSCTAP2
17
3.3651e-14
5.1700e+01
134917
194740
QSIERRA
24
2.8610e-15
1.3488e+02
185483
267981
QSCTAP3
18
1.7762e-14
7.9710e+01
176940
269815
Cuadro A.2: Resultados de SJq al reordenar con ColAMD cont.
49
Problema
iter
maxrel
time
nz(L)
nz(U)
TAME
8
3.6557e-26
6.0000e-02
9
9
HS21
9
2.4570e-28
5.0000e-02
12
12
ZECEVIC2
9
1.5246e-16
7.0000e-02
18
17
HS35
9
8.4366e-17
6.0000e-02
10
10
HS35MOD
23
5.3291e-15
1.5000e-01
14
12
HS76
10
2.7139e-16
7.0000e-02
23
23
LOTSCHD
11
1.9200e-13
1.0000e-01
237
240
QAFIRO
16
4.4027e-11
2.2000e-01
813
857
HS118
12
1.4039e-16
1.4000e-01
778
684
QADLITTL
17
4.1218e-16
8.0000e-01
4648
4371
QPCBLEND
90
5.3337e-14
9.8800e+00
11801
10886
QSCAGR7
17
1.2659e-14
5.9800e+00
29854
24194
QSC205
29
6.2199e-04
1.4240e+01
35604
27066
QSHARE2B
22
8.6953e-13
1.2700e+00
6596
6052
CVXQP2_S
10
1.2190e-15
2.0000e+00
19252
18230
CVXQP1_S
11
3.1777e-15
3.9200e+00
29066
26088
CVXQP3_S
11
4.7978e-15
6.9300e+00
39102
35091
QSHARE1B
40
4.4911e-11
2.2770e+01
44898
37437
DUALC2
31
6.0376e-13
1.3860e+01
29598
29339
QBORE3D
19
1.9759e-13
4.4590e+01
98443
90116
QSCORPIO
15
7.0035e-16
2.5670e+01
99038
84123
DUALC1
39
5.6641e-13
1.5120e+01
27340
26965
QBRANDY
20
5.1384e-12
2.4970e+01
70443
68635
DUALC5
13
2.0161e-13
1.0930e+01
43190
43466
QSCAGR25
20
1.6136e-14
2.6073e+02
360068
283090
QSCTAP1
18
2.9188e-15
3.7700e+01
98292
94435
QBANDM
27
1.0513e-11
1.7499e+02
187896
188903
QISRAEL
33
1.4486e-15
1.3300e+01
31553
28568
DUAL4
28
3.8666e-05
2.5000e+00
8756
8783
100
1.1963e-02
4.9132e+02
217173
160725
QBEACONF
23
3.8418e-12
1.5090e+01
42692
46218
GOULDQP2
27
1.9840e-13
3.1969e+03
1298220
1060281
QSCFXM1
30
2.4187e-12
1.2725e+02
140708
145954
QGROW7
Cuadro A.3: Resultados de SJq sin reordenar
50
Problema
iter
maxrel
time
nz(L)
nz(U)
QE226
20
2.5207e-10
1.1090e+01
47809
36107
QSCSD1
13
6.7603e-15
1.1030e+01
66126
74808
DUALC8
19
5.7667e-13
8.4820e+01
134774
135091
QGFRDXPN
30
8.2277e-14
1.3210e+03
668878
768784
DUAL1
17
9.6144e-15
2.0200e+00
11232
11229
QSCRS8
25
3.2786e-11
4.3712e+02
395368
377636
VALUES
27
4.4409e-16
1.8900e+01
42472
58985
QPCBOEI1
23
2.9502e-13
1.4366e+02
184056
175747
GOULDQP3
19
6.4824e-14
2.5032e+03
1472534
1224583
DUAL2
15
4.5328e-15
2.3000e+00
14252
14269
MOSARQP2
32
2.6437e-08
2.5527e+02
225973
222159
QFORPLAN
29
4.8564e-11
4.5820e+01
94527
78655
QSHIP04S
37
9.7390e-16
2.7454e+02
212281
233453
QSCFXM2
33
4.3890e-10
9.1728e+02
554690
539155
QSEBA
34
4.5572e-12
2.1023e+03
866260
1003714
DUAL3
56
3.9287e-06
1.1580e+01
18941
18986
QSCSD6
17
7.1540e-15
5.4550e+01
206617
155515
QETAMACR
48
7.3792e-14
1.1878e+03
535230
489221
CVXQP2_M
15
1.0323e-15
2.8365e+03
1839308
1763435
QSHIP04L
36
1.9783e-15
3.3143e+02
238132
264714
QSCFXM3
36
8.1204e-10
3.3526e+03
1286005
1185256
MOSARQP1
15
6.8661e-15
5.9056e+02
455643
437378
QSCTAP2
17
2.5039e-14
1.5457e+03
1250335
1217457
QSIERRA
*
*
*
1502934
1518133
QSCTAP3
*
*
*
2845970
2149420
Cuadro A.4: Resultados de SJq sin reordenar cont. (* sin memoria)
51
Problema
TAME
HS21
ZECEVIC2
HS35
HS35MOD
HS76
LOTSCHD
QAFIRO
HS118
Método
iter
Tiempo
relgap
relpri
reldua
status
Jq
8
1.5000e-01
0.0000e+00
0.0000e+00
3.6557e-26
1
Js
8
4.0000e-02
0.0000e+00
0.0000e+00
0.0000e+00
1
Jd
8
4.0000e-02
0.0000e+00
0.0000e+00
0.0000e+00
1
Vq
8
4.0000e-02
0.0000e+00
0.0000e+00
0.0000e+00
1
Jq
9
4.0000e-02
0.0000e+00
0.0000e+00
2.4570e-28
1
Js
9
5.0000e-02
0.0000e+00
0.0000e+00
2.4570e-28
1
Jd
9
4.0000e-02
0.0000e+00
5.5899e-17
6.8702e-20
1
Vq
9
5.0000e-02
0.0000e+00
1.1180e-16
6.8702e-20
1
Jq
9
4.0000e-02
2.2204e-17
0.0000e+00
4.8212e-17
1
Js
9
4.0000e-02
0.0000e+00
5.6099e-17
0.0000e+00
1
Jd
9
4.0000e-02
0.0000e+00
1.1220e-16
0.0000e+00
1
Vq
9
4.0000e-02
4.4409e-17
0.0000e+00
6.8183e-17
1
Jq
9
4.0000e-02
0.0000e+00
0.0000e+00
8.4366e-17
1
Js
9
4.0000e-02
2.1316e-15
0.0000e+00
8.4366e-17
1
Jd
9
4.0000e-02
2.1316e-15
0.0000e+00
0.0000e+00
1
Vq
9
4.0000e-02
0.0000e+00
0.0000e+00
7.5459e-17
1
Jq
25
1.2000e-01
1.7764e-15
1.2688e-16
6.5289e-15
1
Js
24
1.1000e-01
1.7764e-15
1.2745e-57
5.5076e-15
1
Jd
21
1.0000e-01
3.5527e-15
2.3305e-55
7.5626e-16
1
Vq
18
8.0000e-02
5.2758e-13
1.0434e-23
6.2804e-17
1
Jq
10
5.0000e-02
2.7139e-16
1.6579e-16
1.0254e-16
1
Js
10
5.0000e-02
2.7139e-16
1.6579e-16
2.4870e-17
1
Jd
10
4.0000e-02
2.7139e-16
1.1723e-16
3.7305e-17
1
Vq
10
4.0000e-02
2.7139e-16
0.0000e+00
7.9623e-17
1
Jq
11
7.0000e-02
5.6869e-16
1.8274e-16
2.0775e-13
1
Js
12
8.0000e-02
2.9415e+04
4.0938e-13
9.3937e+02
2
Jd
9
6.0000e-02
7.5825e-16
3.7199e-16
2.4577e-13
1
Vq
11
6.0000e-02
3.8841e-13
2.0850e-16
1.9497e-11
2
Jq
15
1.1000e-01
2.9310e-13
6.8057e-17
3.2577e-14
1
Js
16
1.4000e-01
7.5273e-12
1.4973e-17
3.1768e-14
2
Jd
14
1.1000e-01
4.9605e-13
1.2092e-16
2.8262e-14
1
Vq
14
1.2000e-01
2.6557e-13
7.3438e-17
2.3166e-14
1
Jq
12
8.0000e-02
1.4039e-16
2.4153e-18
6.8804e-17
1
Js
12
8.0000e-02
1.4039e-16
2.4153e-18
9.0900e-17
1
Jd
12
8.0000e-02
3.4004e-16
1.0273e-16
1.1722e-16
1
Vq
12
8.0000e-02
3.4004e-16
8.5258e-17
9.7887e-17
1
Cuadro A.5: Resultados para los cuatro algoritmos
52
Problema
QADLITTL
QPCBLEND
QSCAGR7
QSC205
QSHARE2B
CVXQP2_S
CVXQP1_S
CVXQP3_S
QSHARE1B
Método
iter
Tiempo
relgap
relpri
reldua
status
Jq
17
3.0000e-01
0.0000e+00
2.0977e-17
3.2477e-16
1
Js
17
3.2000e-01
1.0889e-16
1.9411e-16
3.0647e-16
1
Jd
17
2.7000e-01
3.8111e-16
8.9297e-17
3.6466e-16
1
Vq
17
2.6000e-01
2.7222e-16
2.8062e-17
4.5443e-16
1
Jq
20
5.6000e-01
1.8596e-15
3.0194e-19
4.6325e-14
1
Js
30
9.0000e-01
8.1546e-13
8.7084e-17
3.2519e-08
3
Jd
18
5.0000e-01
4.9757e-09
4.5256e-15
3.3866e-06
2
Vq
17
4.3000e-01
2.1786e-08
2.2083e-14
6.3541e-07
2
Jq
17
4.1000e-01
5.3327e-16
1.5341e-16
1.6947e-14
1
Js
17
7.3000e-01
6.6658e-16
1.6676e-16
1.5366e-14
1
Jd
17
4.0000e-01
1.3332e-16
1.7837e-16
1.4095e-14
1
Vq
17
6.1000e-01
5.3327e-16
1.7094e-16
1.1489e-14
1
Jq
24
6.8000e-01
6.7110e-05
5.8947e-16
1.4387e-03
3
Js
56
3.0200e+00
4.1844e-05
9.8901e-16
1.3231e-03
3
Jd
13
4.1000e-01
3.3077e-05
2.8493e-16
3.6930e-04
2
Vq
23
1.1700e+00
7.3584e-05
6.1175e-07
8.5106e-02
3
Jq
22
4.6000e-01
2.1425e-15
1.6504e-14
5.3868e-13
1
Js
31
6.3000e-01
1.5303e-15
1.7170e-14
1.1756e-12
2
Jd
23
5.0000e-01
3.0607e-15
1.6054e-14
1.0441e-12
2
Vq
22
5.0000e-01
2.2956e-15
2.2101e-14
8.7749e-13
1
Jq
10
2.3000e-01
1.2898e-16
4.8352e-17
1.2796e-15
1
Js
10
2.3000e-01
5.1591e-16
4.0624e-17
1.2854e-15
1
Jd
10
2.4000e-01
9.0284e-16
8.7644e-16
1.7190e-15
1
Vq
10
2.4000e-01
5.1591e-16
1.6984e-15
1.2870e-15
1
Jq
11
4.9000e-01
1.7772e-16
3.9807e-17
2.5978e-15
1
Js
11
4.7000e-01
5.3316e-16
6.0471e-17
4.0126e-15
1
Jd
11
5.3000e-01
1.4218e-15
8.2161e-16
1.8003e-15
1
Vq
11
4.2000e-01
5.3316e-16
7.7963e-16
2.1571e-15
1
Jq
11
8.8000e-01
2.0540e-15
4.3137e-17
3.9762e-15
1
Js
11
7.3000e-01
1.5405e-15
5.5361e-17
3.4805e-15
1
Jd
11
1.0500e+00
1.0270e-15
8.8851e-16
4.4754e-15
1
Vq
11
6.6000e-01
1.3693e-15
1.6674e-16
2.8573e-15
1
Jq
40
2.2300e+00
7.8373e-11
7.3923e-14
1.4470e-09
2
Js
40
2.2700e+00
2.1812e-12
3.8630e-14
1.8036e-10
2
Jd
39
2.2000e+00
1.9394e-13
4.0255e-14
1.3484e-11
2
Vq
39
2.7500e+00
7.6649e-10
1.7474e-11
5.7615e-08
2
Cuadro A.6: Resultados para los cuatro algoritmos cont.
53
Problema
Método
iter
Tiempo
relgap
relpri
reldua
status
DUALC2
Jq
31
6.6000e-01
1.1545e-15
5.9374e-13
1.9939e-16
1
Js
31
7.3000e-01
1.0583e-15
6.4818e-13
9.8392e-17
1
Jd
32
6.7000e-01
2.7332e-13
7.0273e-13
1.4128e-14
1
Vq
31
6.7000e-01
2.0203e-15
8.2803e-13
7.1851e-16
1
Jq
19
1.9300e+00
1.7333e-13
9.0325e-15
1.0512e-13
1
QBORE3D
QSCORPIO
DUALC1
QBRANDY
DUALC5
QSCAGR25
QSCTAP1
QBANDM
Js
19
2.3600e+00
1.8619e-13
7.4809e-15
9.9000e-14
1
Jd
19
2.1500e+00
1.3343e-14
7.1709e-15
1.3302e-13
1
Vq
19
2.8900e+00
5.9920e-14
7.2633e-15
9.2687e-14
1
Jq
15
1.0900e+00
1.5794e-16
2.5807e-16
7.1589e-16
1
Js
15
1.2300e+00
1.5794e-16
2.7566e-16
7.2743e-16
1
Jd
15
1.1500e+00
2.7958e-16
2.9178e-16
6.7984e-16
1
Vq
15
1.1900e+00
3.9603e-16
2.6818e-15
6.9187e-16
1
Jq
39
8.9000e-01
7.5712e-15
6.3251e-13
8.0663e-17
1
Js
39
9.1000e-01
6.5148e-15
5.9061e-13
8.1072e-17
1
Jd
39
9.4000e-01
4.4019e-15
6.4717e-13
3.3952e-16
1
Vq
39
9.4000e-01
2.3770e-14
6.6935e-13
4.8577e-16
1
Jq
20
4.9200e+00
1.7793e-15
4.8656e-15
5.7684e-12
2
Js
20
4.1200e+00
9.5811e-16
6.1782e-15
6.9368e-12
2
Jd
20
4.6700e+00
4.1062e-16
5.1331e-15
6.8897e-12
2
Vq
20
3.6700e+00
1.3687e-16
5.8714e-15
6.8122e-12
2
Jq
13
3.6000e-01
1.5534e-14
1.4777e-13
1.2057e-14
1
Js
13
3.8000e-01
1.0788e-15
2.0562e-13
5.5560e-15
1
Jd
13
3.9000e-01
1.9233e-14
2.4907e-13
1.3696e-14
1
Vq
13
4.0000e-01
1.8493e-14
2.5531e-13
1.2699e-14
1
Jq
20
1.4300e+00
2.1415e-15
2.7277e-16
1.3313e-14
1
Js
20
9.3900e+00
1.4276e-16
3.2368e-16
1.3443e-14
1
Jd
20
1.4800e+00
1.5704e-15
2.5798e-16
1.5915e-14
1
Vq
20
4.5100e+00
7.1382e-16
2.0171e-16
1.4811e-14
1
Jq
18
1.9500e+00
4.4394e-16
3.9879e-16
8.0641e-16
1
Js
18
3.0600e+00
5.0859e-15
5.4378e-16
8.0502e-16
1
Jd
18
2.1900e+00
6.2777e-15
3.8314e-16
8.7163e-16
1
Vq
18
2.7500e+00
5.2441e-15
4.6302e-16
8.7599e-16
1
Jq
29
8.3200e+00
8.4209e-15
2.6763e-15
8.6726e-12
2
Js
30
1.0420e+01
1.1745e-14
2.2170e-15
9.7295e-12
2
Jd
25
7.0400e+00
8.4863e-11
3.3415e-12
2.7067e-07
2
Vq
26
9.4900e+00
8.0701e-12
1.9802e-12
1.4995e-08
2
Cuadro A.7: Resultados para los cuatro algoritmos cont.
54
Problema
Método
iter
Tiempo
relgap
relpri
reldua
status
QISRAEL
Jq
33
4.7100e+00
4.3959e-16
6.2143e-17
1.4738e-15
1
Js
33
2.5000e+00
1.4653e-16
9.0433e-17
1.4398e-15
1
Jd
33
4.5400e+00
0.0000e+00
3.6824e-16
2.4128e-15
1
Vq
33
2.6400e+00
0.0000e+00
1.5109e-16
3.0657e-15
1
Jq
33
1.0000e+00
1.5128e-07
3.2125e-17
1.1688e-05
3
DUAL4
QGROW7
QBEACONF
GOULDQP2
QSCFXM1
QE226
QSCSD1
DUALC8
Js
34
1.1200e+00
1.0884e-07
7.9505e-17
8.4087e-06
3
Jd
12
4.7000e-01
1.2162e-07
1.1471e-16
2.1755e-06
2
Vq
11
4.2000e-01
1.0163e-06
5.7823e-15
9.0107e-06
2
Jq
43
1.4330e+01
2.1574e-09
2.6611e-16
3.9468e-03
2
Js
52
1.9250e+01
3.6931e-09
3.1543e-16
3.6261e-03
2
Jd
23
6.2600e+00
6.1903e-09
2.1799e-16
7.6496e-03
2
Vq
33
8.9400e+00
5.4397e-09
2.3145e-16
4.0477e+31
3
Jq
23
4.7000e+00
5.2027e-13
1.1726e-14
4.4161e-12
2
Js
25
3.5900e+00
1.6029e-13
1.5878e-14
3.8368e-12
2
Jd
16
3.3200e+00
1.3290e-13
6.3354e-14
5.3883e-12
2
Vq
16
1.9200e+00
5.8618e-14
1.6659e-14
3.2701e-12
2
Jq
26
2.0200e+00
4.7554e-13
5.1513e-17
3.2908e-13
1
Js
35
2.8200e+00
9.8985e-13
6.4138e-17
1.9793e-13
1
Jd
11
9.9000e-01
6.8374e-06
7.5722e-14
1.3011e-05
2
Vq
15
1.2500e+00
5.7340e-07
6.5098e-13
7.1796e-06
2
Jq
30
5.7500e+00
1.3249e-15
3.9171e-15
2.3892e-12
2
Js
30
8.2000e+00
2.4953e-14
3.8231e-15
4.7269e-09
2
Jd
30
5.3300e+00
1.5458e-15
4.5094e-15
2.4186e-12
2
Vq
30
7.7300e+00
8.8330e-16
4.1262e-15
3.1522e-12
2
Jq
20
3.4000e+00
2.5204e-10
1.9577e-15
5.2937e-13
2
Js
20
4.6900e+00
2.5207e-10
3.6114e-15
6.0445e-13
2
Jd
20
2.8000e+00
2.5205e-10
2.0811e-15
4.1809e-13
2
Vq
20
4.1800e+00
2.5206e-10
1.7237e-15
4.4754e-13
2
Jq
13
1.3080e+01
5.5128e-16
1.8184e-16
6.9042e-15
1
Js
13
4.2300e+00
1.8376e-16
2.6956e-16
6.4491e-15
1
Jd
13
9.3800e+00
1.7274e-14
1.0290e-13
9.9124e-13
1
Vq
13
2.2600e+00
1.6538e-15
1.8527e-16
7.0728e-15
1
Jq
19
9.4000e-01
9.3106e-15
6.0386e-13
3.2979e-14
1
Js
19
1.1000e+00
4.0529e-15
5.8141e-13
1.0619e-14
1
Jd
20
1.0300e+00
9.3106e-15
1.1145e-12
2.7629e-14
2
Vq
20
9.9000e-01
9.5297e-15
1.1585e-12
3.1290e-14
2
Cuadro A.8: Resultados para los cuatro algoritmos cont.
55
Problema
QGFRDXPN
DUAL1
QSCRS8
VALUES
QPCBOEI1
GOULDQP3
DUAL2
MOSARQP2
QFORPLAN
Método
iter
Tiempo
relgap
relpri
reldua
status
Jq
30
3.9300e+00
1.7899e-15
1.2984e-16
9.3496e-14
1
Js
31
7.9800e+00
1.6272e-15
1.8420e-16
9.0399e-14
1
Jd
29
3.7200e+00
1.6272e-15
3.7412e-16
9.7518e-14
1
Vq
29
6.6800e+00
2.2781e-15
4.9207e-16
9.7591e-14
1
Jq
17
7.4000e-01
1.2245e-15
3.7240e-17
9.2263e-15
1
Js
19
7.7000e-01
1.0647e-15
6.7136e-17
9.2245e-15
1
Jd
11
5.6000e-01
6.5777e-04
1.4284e-13
7.5787e-03
2
Vq
11
5.2000e-01
6.5777e-04
1.4281e-13
7.5787e-03
2
Jq
67
2.2450e+01
7.2947e-11
5.8432e-12
5.7161e-08
3
Js
26
1.0050e+01
2.7934e-11
1.6504e-15
5.5030e-15
2
Jd
33
9.1200e+00
2.8601e-11
1.2673e-08
7.9581e-08
3
Vq
27
8.2700e+00
1.1178e-11
4.8980e-13
4.5511e-15
2
Jq
19
2.3100e+00
4.4409e-16
6.8052e-18
1.2660e-16
1
Js
19
1.5600e+00
4.4409e-16
5.5192e-18
5.1863e-16
1
Jd
17
1.3800e+00
4.4409e-16
9.8576e-17
3.5084e-16
1
Vq
11
5.1000e-01
8.9235e-04
7.1482e-15
7.7549e-04
2
Jq
23
1.1960e+01
2.9485e-13
2.7028e-15
3.3128e-14
1
Js
23
6.6700e+00
2.9469e-13
1.6605e-15
4.4819e-14
1
Jd
23
1.1500e+01
2.9469e-13
3.8418e-15
6.6125e-14
1
Vq
23
6.9800e+00
2.9502e-13
3.4217e-15
4.3065e-14
1
Jq
19
1.6600e+00
5.4932e-13
6.3035e-17
3.8414e-14
1
Js
19
5.2180e+01
1.3685e-13
6.4476e-17
3.7718e-14
1
Jd
11
1.1400e+00
1.5647e-05
2.5081e-13
1.2376e-05
2
Vq
77
9.6450e+01
1.0000e+00
5.6451e-02
1.0370e+10
3
Jq
14
8.0000e-01
2.4698e-16
3.8113e-17
4.1950e-15
1
Js
14
8.5000e-01
2.7461e-16
4.3216e-17
4.2527e-15
1
Jd
11
7.2000e-01
4.2975e-05
1.2647e-15
7.1997e-04
2
Vq
10
6.1000e-01
1.0603e-03
1.2714e-12
1.4219e-02
2
Jq
27
6.6900e+00
5.0976e-08
2.1023e-16
7.5569e-08
3
Js
30
2.4420e+01
1.4821e-08
1.9794e-16
2.1779e-08
3
Jd
15
3.4500e+00
0.0000e+00
3.7441e-16
6.8239e-17
1
Vq
15
7.9600e+00
2.5615e-15
6.0154e-16
7.1460e-17
1
Jq
29
2.0840e+01
1.4812e-13
6.4999e-17
8.5656e-11
2
Js
29
9.8900e+00
1.8686e-12
6.4999e-17
5.4090e-11
2
Jd
29
1.5190e+01
1.2778e-13
3.4319e-16
7.6445e-11
2
Vq
29
6.9100e+00
4.9813e-13
1.1317e-16
6.6114e-11
2
Cuadro A.9: Resultados para los cuatro algoritmos cont.
56
Problema
QSHIP04S
QSCFXM2
QSEBA
DUAL3
QSCSD6
QETAMACR
CVXQP2_M
QSHIP04L
QSCFXM3
Método
iter
Tiempo
relgap
relpri
reldua
status
Jq
37
1.9800e+01
1.2640e-15
6.5062e-16
1.0280e-15
1
Js
37
1.5650e+01
2.3700e-16
2.4262e-16
9.2383e-16
1
Jd
37
1.2670e+01
7.9001e-17
7.3792e-16
8.8650e-16
1
Vq
37
6.2900e+00
7.9001e-16
3.1096e-16
9.8485e-16
1
Jq
34
1.3500e+01
1.3422e-16
9.5139e-15
3.2575e-12
2
Js
34
3.5060e+01
2.1852e-13
4.1279e-12
4.2996e-10
2
Jd
34
1.2740e+01
1.7449e-15
6.4645e-15
3.3804e-12
2
Vq
34
3.2800e+01
1.4765e-15
8.2513e-15
3.1470e-12
2
Jq
34
8.7660e+01
1.0974e-15
5.8042e-16
9.3191e-12
2
Js
34
7.1000e+00
3.1093e-15
3.5349e-16
8.8283e-12
2
Jd
38
1.0719e+02
3.1843e-13
4.0630e-12
3.6786e-08
3
Vq
34
8.1500e+00
5.4871e-16
6.9884e-15
6.3263e-12
2
Jq
66
4.6300e+00
5.1649e-09
4.9603e-17
3.4660e-06
3
Js
100
7.1200e+00
1.9902e-09
9.3044e-17
1.3396e-06
4
Jd
12
1.0500e+00
9.6042e-07
1.2514e-15
1.9187e-04
2
Vq
11
8.7000e-01
2.5666e-05
5.0776e-14
1.6330e-03
2
Jq
17
2.8150e+01
6.6685e-16
3.6742e-16
6.7681e-15
1
Js
17
3.2090e+01
1.9430e-15
3.8056e-16
7.4528e-15
1
Jd
17
2.2710e+01
4.5660e-11
1.7592e-14
8.4277e-10
2
Vq
17
1.5930e+01
1.9451e-10
3.7596e-15
1.5892e-09
2
Jq
48
9.1330e+01
1.6924e-16
3.9407e-17
7.6622e-14
1
Js
48
9.7950e+01
1.6924e-16
2.6036e-17
8.1549e-14
1
Jd
58
1.0616e+02
3.0361e-10
4.3211e-14
8.4292e-08
2
Vq
72
1.6339e+02
2.2223e-10
1.3686e-14
5.2507e-03
2
Jq
15
5.4630e+01
1.6252e-16
4.6616e-17
9.8788e-16
1
Js
15
5.1660e+01
3.2505e-16
4.1224e-17
9.8262e-16
1
Jd
15
6.0160e+01
6.9886e-15
4.0181e-14
1.7609e-15
1
Vq
15
6.1380e+01
1.3977e-14
4.1246e-14
1.3913e-15
1
Jq
36
3.9700e+01
1.9783e-16
3.9730e-16
1.1858e-15
1
Js
36
3.1570e+01
4.7480e-16
3.6670e-16
1.3117e-15
1
Jd
36
2.6240e+01
0.0000e+00
7.2371e-16
1.0241e-15
1
Vq
36
9.6100e+00
1.2266e-15
4.6819e-16
1.1493e-15
1
Jq
36
2.0880e+01
1.5731e-15
1.2192e-14
2.9996e-12
2
Js
36
7.3310e+01
5.6959e-13
9.6327e-12
7.3528e-10
2
Jd
36
1.9190e+01
5.2034e-15
7.9717e-15
3.2803e-12
2
Vq
36
6.5550e+01
2.7832e-15
9.0355e-15
3.3667e-12
2
Cuadro A.10: Resultados para los cuatro algoritmos cont.
57
Problema
MOSARQP1
QSCTAP2
QSIERRA
QSCTAP3
Método
iter
Tiempo
relgap
relpri
reldua
status
Jq
15
4.4900e+00
6.8661e-15
1.7035e-16
6.8129e-17
1
Js
15
2.6870e+01
6.8661e-15
1.7503e-16
6.8107e-17
1
Jd
15
4.2600e+00
6.8661e-15
4.4873e-16
7.9377e-17
1
Vq
15
2.5490e+01
6.8661e-15
6.8791e-16
1.1157e-16
1
Jq
17
3.5900e+01
3.3651e-14
3.3513e-16
6.0253e-16
1
Js
17
5.3460e+01
3.5224e-15
3.9550e-16
6.0095e-16
1
Jd
17
4.0150e+01
3.0018e-14
4.6752e-16
6.1071e-16
1
Vq
17
3.8280e+01
2.6201e-16
4.4980e-16
6.0860e-16
1
Jq
24
9.9820e+01
2.8610e-15
1.0430e-16
9.5263e-16
1
Js
24
7.3860e+01
1.8534e-14
6.8278e-17
9.8064e-16
1
Jd
24
9.3420e+01
1.6357e-14
1.5512e-16
1.0099e-15
1
Vq
24
3.8190e+01
7.5878e-15
1.4642e-16
9.3395e-16
1
Jq
18
5.7380e+01
1.7762e-14
4.2780e-16
6.9176e-16
1
Js
18
9.3800e+01
2.5608e-14
3.6449e-16
6.8882e-16
1
Jd
18
5.8390e+01
3.3478e-14
4.0207e-16
7.1576e-16
1
Vq
18
6.2160e+01
7.1711e-14
4.9089e-16
6.9673e-16
1
Cuadro A.11: Resultados para los cuatro algoritmos cont.

Documentos relacionados