Sunteți pe pagina 1din 65

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 primal-


dual 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 nor-
males, 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 di-
versas 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 mantenien-


do 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 so-
luciones 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 com-
plejidad 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 demos-
trado 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 apli-
caciones a problemas de optimización de portafolios y problemas provenientes de sup-
port vector machines, ver [17][18][12][14] [7].

Entre los trabajos más conocidos que usan métodos primal-dual se pueden mencio-
nar 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 re-

1
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 pro-
gramación no lineal general [12].

La mayor dificultad de estos algoritmos es la resolución por iteración de un sis-


tema 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 si-
mé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 cua-


drá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 itera-
ción, y se analizarán técnicas numéricas que intentan aumentar la estabilidad y robus-
tez 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 rali-
dad 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 requeri-
mientos 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 conver-
gencia, 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 re-
sultados 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 establece-
rá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 fun-


ció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:


!
y − z1
∇u L(u, y, z, 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  :=  (2.2)
   ZXe 
Y We
 
Y We

donde v = (y, z) ∈ <m+n , X := diag(x1 , . . . , xn ), Z, W, Y son definidas de manera análo-


ga 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 ca-
lificació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 ob-
servará 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
1 t
Pn Pm
mı́n 2
x Qx + ct x − µ i=1 ln(xi ) − µ j=1 ln(wj )
s.a. Ax − w − b = 0 (2.3)
x > 0, w > 0

y sus condiciones KKT son:


 
At y + µX −1 e − c − Qx
 
Fbµ (w, x, y) := 
 Ax − w − b  = 0; (x, w) > 0
 (2.4)
y − µW −1 e

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 
Fµ (u, v) := 
  = 0; (u, v) > 0 (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 so-
lo 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 proble-
ma 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ít-
mico.

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 di-
recció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
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

2.2. 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

gap utχ vχ
= =χ
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 con-


vergencia, 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 At −Q I ∆w At y + z − c − Qx
    
 −I 0   ∆y 
A 0  Ax − w − b 
   = − ,
 0
 0 −Z −X   ∆x 
  
 µe − ZXe − ∆X∆Ze
 

−Y −W 0 0 ∆z µe − Y W e − ∆Y ∆W e

o equivalentemente
 
0
!  
∆u 0
Fµ0 (u, v)
 
= −Fµ (u, v) −   (2.7)
∆v  ∆Z∆Xe



∆Y ∆W e

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 cen-
tral 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 computacio-
nalmente 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
 
0
 0 
Fσµ (u, v)(∆u, ∆v) = −Fσµ (u, v) − 
 ∆X a ∆Z a e

 (2.9)
 
∆Y a ∆W a e

De esta forma, se aproxima la solución del sistema no lineal (2.7) resolviendo dos sis-
temas 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 factori-
zación realizada en la determinación de la dirección afín y no aumentar significativa-
mente el tiempo de procesamiento requerido por el algoritmo.
Luego, estos algoritmos pueden verse como un método de Newton aplicado al siste-
ma 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 deno-
minada 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án-
dar 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 alcanza-
do 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 con-
tinuamente 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
 0 z 0 − z x0 − x 


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 I I  
  0 0 x0 − x 0 


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
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

2.3. 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 comple-
mentaria 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óto-
na (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
Sea qk = , entonces las modificaciones del algoritmo OS
Axk − wk − b
necesarias para establecer convergencia son las siguientes

b ∈ (0, 1/2), 0 < γmin < γmax ≤ 1/2 y ζ = 1.


Escoger σ

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 (2.10)


γmax
([uk ]i + α[∆uk ]i )([vk ]i + α[∆vk ]i ) ≥ (uk + α∆uk )t (vk + α∆vk ), ∀i (2.11)
n+m

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 ||∞ (2.12)

donde (u∗ , v ∗ ) es una solución primal-dual del problema (2.1).


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 convergen-


cia 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 condi-
ció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


!
At ∆yk + ∆zk − Q∆xk
qk+1 = qk + αk = (1 − αk )qk = · · · = νk+1 q0
A∆xk + ∆wk

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 } con-
verge 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 algorit-
mos 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 implemen-
taciones 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í men-
cionados.

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 siguien-
te 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 facti-
bles 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 can-
tidad    
n
  |bi |  X 
ζ := máx máx P , 100 , (a ij ) − 1 6= 0
  n (a ) − 1  
j=1 ij j=1

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] si-
gue 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 
αp = mı́n 1, n o ; αd = mı́n 1, n o
 mı́n ∆xi , ∆wi   mı́n ∆zi , ∆yi 
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 .
|ct x − bt y + xt Qx| ||Ax − w − b||2 ||At y + z − c − Qx||2
relgap = , relpri = , reldua = ,
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 pro-
blemas considerados en este trabajo provienen de aplicaciones prácticas donde el Jaco-
biano 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 implemen-
tar 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 in-
teriores, 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 aspec-


to 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ález-


Lima-Wei-Wolkowicz en [19] como un método factible de puntos interiores tipo primal-
dual 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 condiciona-
do 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 de-
nomina la reducción SIMPLE. Esta reducción deriva en un sistema que es resuelto ha-
ciendo uso de métodos iterativos tipo gradiente conjugado.
Es claro que en presencia de columnas densas en la matriz de restricciones, los al-
goritmos que usan reducciones a matrices positivo definidas haciendo uso de las ecua-
ciones 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 ta-
mañ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 rea-
lizarse de forma más directa. La idea consiste en premultiplicar el sistema (3.1) por la
siguiente matriz
 
I 0 0 0
 
 0 I 0 0 
Ps = 
 X 0

 I 0 

0 −Y 0 I
obteniendo el sistema equivalente
    
0 At −Q I ∆w Qx + c − z − At y
    
 −I 0 A 0   ∆y   b − Ax + w 
  = 
 0 XAt −(XQ + Z) 0   ∆x   X(Qx + c − At y) − µe
    
 
0 −W −Y A 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
(3.2)
∆z = Q(x + ∆x) − At (y + ∆y) − z + c
∆w = A(x + ∆x) − w − b
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 −Y 0 0 
Pjs = 
 0 0

 X 0 

0 0 0 I
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 ∆x
c X(Qx + c − At y) − µe
=
−Y AX WY ∆y
c Y (Ax − b) − µe
∆x = X ∆x
c
(3.3)
∆y = −Y ∆y
c
∆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 ma-
trices 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 pre-
sentada 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 siste-
ma 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 ∆z µZ −1 e − x
    
 0 0 A −I   ∆y   b + w − Ax 
  ∆x  =  Qx + c − z − At y
    ,
 I
 At −Q 0   


0 −I 0 −Y W −1 ∆w −µW −1 e + y

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
= (3.5)
A Y −1 W ∆y b − Ax + µY −1 e

3.2.3. 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 equi-
valente 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 si-
guiente matriz
 
I 0 X −1 0
−Y −1 
 
 0 I 0
Pv = 
 0 0
,
 I 0  
0 0 0 I
obteniendo el sistema equivalente
    
0 At −(Q + X −1 Y ) 0 ∆w Qx + c − At y − µX −1 e
Y −1 W b − Ax + µY −1 e
    
 0 A 0   ∆y   
  = 
 0
 0 −Z −X   ∆x 
  
  ZXe − µe 

−Y −W 0 0 ∆z 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
! ! !
−(QX + Z) −At Y ∆x
c Qx + c − At y − µX −1 e
=
AX −W ∆y
c b − Ax + µY −1 e
∆x = X ∆x
c
(3.6)
∆y = −Y ∆y
c
∆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 I 0 −X −1 0
−Y −1 Y −1 
   
 0 0 0  −1  0 I 0
Psv = 
 −X 0
 ; Psv =  
 I 0 

 X 0
 0 0  
0 Y 0 I 0 −Y 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 con-
trario, 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 so-
lució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 preci-
sió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, fa-
voreciendo 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 pi-
voteo 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 estrate-
gias 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 reso-


lució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 inte-
riores 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 ma-
trices 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
direcciones (∆u, c calculadas usando descomposición de Gauss con pivoteo parcial,
c ∆v)
satisfacen que para µ suficientemente pequeño (∆u, ∆v) − (∆u, c = O(µm ), donde
c ∆v)
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 po-
sibles, 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 ∆x X(Qx + c − At y) − µe
=
−Y A −W ∆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 ∆x
c X(Qx + c − At y) − µe
=
−Y AX WY ∆y
c Y (Ax − b) − µe
∆x = X ∆x
c
∆y = −Y ∆y
c
∆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


! ! !
−(QX + Z) −At Y ∆x
c Qx + c − At y − µX −1 e
=
AX −W ∆y
c b − Ax + µY −1 e
∆x = X ∆x
c
∆y = −Y ∆y
c
∆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 pro-


ductos de la forma AX, At Y
! ! !
−(Q + X −1 Z At ∆x Qx + c − At y − µX −1 e
=
A Y −1 W ∆y 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 implementa-
ron en Matlab 6.5 y se realizaron pruebas computacionales sobre un conjunto de pro-
blemas 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 pa-


quete 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 dimen-
siones de los problemas que se pueden resolver. Pese a esto, se lograron resolver al-
gunas 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 para-
lelos y no secuenciales, como es el caso de estos resultados.

27
28

Problema m n nz(A) nz(Q) Problema m n nz(A) nz(Q)


TAME 2 2 4 4 HS21 3 2 4 2
ZECEVIC2 4 2 6 1 HS35 1 3 3 7
HS35MOD 2 3 4 7 HS76 3 4 10 8
LOTSCHD 14 12 108 6 QAFIRO 35 32 117 9
HS118 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
DUAL4 77 75 225 5523 QGROW7 560 301 5504 684
QBEACONF 313 262 6684 36 GOULDQP2 1397 699 2793 1045
QSCFXM1 517 457 4056 1410 QE226 256 282 3516 1861
QSCSD1 154 760 4776 1436 DUALC8 512 8 4040 64
QGFRDXPN 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
DUAL2 98 96 288 8920 MOSARQP2 600 900 2930 990
QFORPLAN 276 421 8363 1128 QSHIP04S 756 1458 7190 98
QSCFXM2 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
QSIERRA 3791 2036 13311 244 QSCTAP3 2100 2480 10734 1908

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 ) respectiva-
mente.

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á pa-
ra 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 esta-


bilidad. 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 Multi-
ple 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 reordena-
miento 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 alcan-
zadas 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 resuel-


tos (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
RA =
r
donde aA es el número de problemas resueltos por el algoritmo A y r es el mayor
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
i=1 ei
EA =
aA
con 


 0, si el algoritmo A falla en el problema i
ei = 1, si tib = 0 y tiA = 0

si tiA 6= 0

 t /t ,
ib iA
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


i=1 ci
CA =
aA
con 


 0, si e lalgoritmo A falla en el problema i
ci = 1, si Nib = 0 y NiA = 0

si NiA 6= 0

 N /N ,
ib iA

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 respectiva-


mente, 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 eficien-
cia, 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 alter-
nativas, 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 me-
nos 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 interesan-
te 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
x = bb con bb = P t b y x = P x
sistema Kx = b es equivalente a resolver Db 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
máx {|λi (K)|, ∀i}
κ2 =
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 al-
ternativa 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 usa-
dos para la determinación de la dirección de Newton perturbada. Este aspecto es fun-
damental en la formulación de un algoritmo eficiente y robusto.

Se pudo observar en los resultados computacionales que el uso de la heurística Ap-


proximate minimum degree es primordial en el buen comportamiento de los algorit-
mos. Sin ella, el tiempo requerido por los algoritmos para obtener las soluciones es
prohibitivo debido a las dimensiones de las matrices involucradas. Pero mas interesan-
te 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úme-
ro 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 diago-
nales 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 involu-
cra 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 al-
gú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 factori-
zaciones 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 mostra-
ron 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 Com-
putational Optimization and Applications, 2003.

[7] A. B. Berkelaar, B. Jansen, K. Roos, and T. Terlaky. Sensitivity analysis in (degene-


rate) quadratic programming. Technical report, Delft University of Techmology,
1996.

[8] J. R. Bunch and L. Kaufman. Some stable methods for calculating inertia and sol-
ving 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 opti-
mization with and application to enviromental-energy economic models. Techni-
cal 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, Po-
land, 1995.

[16] J. Gondzio. Multiple centrality corrections in a primal-dual method for linear pro-
gramming. 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 Edin-
burgh, 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 depen-
dency 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 Pro-
gramming, 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 non-


linear 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. Optimi-
zation 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 met-


hods. 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
QGROW7 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

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 Método iter Tiempo relgap relpri reldua status


TAME 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
HS21 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
ZECEVIC2 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
HS35 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
HS35MOD 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
HS76 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
LOTSCHD 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
QAFIRO 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
HS118 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 Método iter Tiempo relgap relpri reldua status


QADLITTL 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
QPCBLEND 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
QSCAGR7 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
QSC205 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
QSHARE2B 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
CVXQP2_S 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
CVXQP1_S 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
CVXQP3_S 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
QSHARE1B 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
QBORE3D Jq 19 1.9300e+00 1.7333e-13 9.0325e-15 1.0512e-13 1
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
QSCORPIO 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
DUALC1 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
QBRANDY 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
DUALC5 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
QSCAGR25 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
QSCTAP1 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
QBANDM 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
DUAL4 Jq 33 1.0000e+00 1.5128e-07 3.2125e-17 1.1688e-05 3
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
QGROW7 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
QBEACONF 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
GOULDQP2 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
QSCFXM1 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
QE226 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
QSCSD1 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
DUALC8 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 Método iter Tiempo relgap relpri reldua status


QGFRDXPN 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
DUAL1 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
QSCRS8 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
VALUES 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
QPCBOEI1 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
GOULDQP3 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
DUAL2 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
MOSARQP2 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
QFORPLAN 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 Método iter Tiempo relgap relpri reldua status


QSHIP04S 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
QSCFXM2 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
QSEBA 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
DUAL3 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
QSCSD6 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
QETAMACR 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
CVXQP2_M 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
QSHIP04L 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
QSCFXM3 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 Método iter Tiempo relgap relpri reldua status


MOSARQP1 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
QSCTAP2 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
QSIERRA 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
QSCTAP3 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.

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