Vous êtes sur la page 1sur 94

Universidad Politcnica de MadridEscuela Tcnica Superior de Ingenieros Industriales 1/94

Grado en Ingeniera en Tecnologas Industriales. Curso 2015-2016-3


Matemticas de EspecialidadIngeniera Elctrica

Sistemas lineales de grandes dimensiones

Matrices dispersas

Jos Luis de la Fuente OConnor


jldelafuente@etsii.upm.es
joseluis.delafuente@upm.es
Clase_dispersa_2016.pdf
2/94

ndice
 Matrices dispersas

 Almacenamiento en ordenador de matrices dispersas

 Operaciones algebraicas elementales con matrices dispersas

 Solucin de grandes sistemas lineales de matriz dispersa

 Matrices dispersas simtricas


 Nociones bsicas sobre grafos
 Interpretacin de la eliminacin de Gauss mediante grafos
 El algoritmo de grado mnimo
 El algoritmo de Cuthill-McKee

 Matrices dispersas no simtricas

 Mnimos cuadrados
3/94

Matrices dispersas

 Muchos de los modelos matemticos que en la actualidad interpretan o simulan


fenmenos reales de diversa complejidad dan lugar a sistemas de ecuaciones de
gran tamao decenas, cientos de miles y millones de variables.

 Las matrices de gran tamao a que dan lugar esos modelos se denominan
dispersas pues muchos de los coeficientes que las definen son cero y los que no
estn muy dispersos en su estructura.

 Nosotros consideraremos dispersa a una matriz que teniendo pocos coeficientes


distintos de cero merece la pena aplicarle procedimientos diseados para ello.1

1
Algunos autores definen una matriz n  n como dispersa si el nmero de coeficientes no nulos es n C1 , donde < 1. La
C1
densidad sera n n2 D n 1 . Valores tpicos de ese parmetro suelen ser: D 0;2 para problemas de anlisis de sistemas elctricos
de generacin y transporte de energa; D 0;5 para matrices en banda asociadas a problemas de anlisis de estructuras; etc.
Ejemplos 4/94

 Sitio web de referencia: The University of Florida Sparse Matrix Collection


A Sparse Matrix You Use Every Day
 Una que usamos continuamente (ahora > 8  109).
5/94

PICTURES OF
FROM VARIOUS
Power Systems; BCSPWR07 Simulation of Computing Systems; GRE 1107

dierent structures

Thermal Simulation; SHERMAN2 Power Systems; BCSPWR07 Simulation of Co

200

400

600

800

1000

1200

1400

1600

0 200 400 600 800 1000 1200 1400 1600


Chemical Engineering; WEST0381 Economic Modelling; ORANI678
bcspwr09; nz = 6511
6/94

Chemical Engineering; WEST0381 Economic Modelling; ORANI678


7/94
8/94

 La ingeniera, estudio e investigacin de los modelos matemticos y sistemas de


ecuaciones con matrices dispersas abarca tres grandes reas:

 Almacenamiento de las matrices en un ordenador.


 Ordenacin de las ecuaciones del sistema con el fin de reducir el nmero
de coeficientes nuevos no nulos que se crean en la factorizacin de la matriz.
 Implementacin ptima para matrices de grandes dimensiones de los
mtodos numricos generales ms avanzados para resolver sistemas de
ecuaciones tradicionales.
9/94

Almacenamiento en ordenador
Por coordenadas

 Mediante un conjunto de triples, .aij , i , j /, que definen las coordenadas, o


informacin esencial, de cada coeficiente distinto de cero.

 Ejemplo Se quiere almacenar segn este esquema


2 3
1 0 0 1 0 Coeficientes
62 0 2 0 37 Vector 1 2 3 4 5 6 7 8 9 10 11
6 7
6 7
AD6
60 3 0 0 077$ ifi 1 1 2 2 2 3 4 4 5 5 5
40 4 0 4 05
6 7
ico 1 4 1 3 5 2 2 4 1 3 5
5 0 5 0 6 val 1 -1 2 -2 3 -3 4 -4 5 -5 6

se definiran los tres vectores, ifi, ico y val: los dos primeros basta que sean
integer; val debe ser real.
Almacenamiento por filas o columnas 10/94

 Es el ms extendido. En una matriz m  n define tres vectores:


val Debe contener todos los coeficientes distintos de cero de la matriz, fila a
fila, enumerados consecutivamente;
ico De la misma dimensin de val, con los subndices columna de los
coeficientes de val;
ia De dimensin m C 1, con las posiciones en val y ico del primer coeficiente
no nulo de cada fila de la matriz.

Coeficientes
2 3
1 0 0 1 0
62 0 2 0 37 Vector 1 2 3 4 5 6 7 8 9 10 11
6 7
AD6
60 3 0 0 077$ ia 1 3 6 7 9 12
40 4 0 4 05 ic 1 4 1 3 5 2 2 4 1 3 5
5 0 5 0 6 va 1 -1 2 -2 3 -3 4 -4 5 -5 6

 La informacin de la fila r estar entre las posiciones ia(r) y ia(r C 1)-1 en


ico y val, excepto si ia(r C 1)=ia(r), en cuyo caso la fila r estara vaca.
11/94

 La parte de un programa Matlab para recuperar en el vector vec() la fila i


de una matriz podra ser:
vec = 0;
for ii=ia(i):ia(i+1)-1
vec(ico(ii))=val(ii);
end

 Recuperar la columna k sera un poco ms complicado:


vec=0;
for j=1:m
for ii=ia(j):ia(j+1)-1
if ico(ii)==k vec(j)=val(ii), break
elseif ico(ii)>k break
end
end
Almacenamiento por perfil o envolvente 12/94

Definicin Si fi D mKnfj W aij 0g y li D mKaxfj W aij 0g, una matriz A mn


tiene un ancho de banda de filas w si
w D mKax1im wi ; wi D .li fi C 1/,
donde wi es el ancho de la fila i. La envolvente de A; Env.A/, es el conjunto Env.A/ D
f.i; j / W fi  j  li ; 1  i  mg.

 Las matrices en banda son aquellas cuyos coeficientes estn contenidos en una
franja alrededor de su diagonal principal. Es de inters como dispersa, w  n.

 Ejemplo La envolvente de la matriz


2 1 2 3 4 5 6 7 3
1    
2 6   0  Env.A/ D f.1; 1/; .1; 2/; .1; 3/; .1; 4/; .2; 1/; .2; 2/; .2; 3/; .2; 4/;
6 7
7
 0  
3
es .3; 3/; .3; 4/; .3; 5/; .3; 6/; .4; 2/; .4; 3/; .4; 4/;
6 7
6 7
AD 4  0  .5; 4/; .5; 5/; .5; 6/; .5; 7/;
6 7
6 7
5
6
6     7
7 .6; 2/; .6; 3/; .6; 4/; .6; 5/; .6; 6/; .6; 7/; .7; 7/g:
6   0 0   5
6 7
4
7 
13/94

 Este esquema guarda los coeficientes de la envolvente mediante tres vectores:


val Contiene todos los coeficientes de la envolvente;
ifa Con los ndices fi de cada fila i ;
ia De dimensin m C 1, si la matriz es m  n, con las posiciones en val del
primer coeficiente no nulo de las filas que se corresponden con el orden de
los coeficientes de ia.

 Por ejemplo,
21 0 2 0 0
3
Coeficientes Para recuperar una fila en Matlab:

620 3
0
0
6
0
0
0
07
7 Vector 1 2 3 4 5 6 7 8 9 10 11 12 vec = 0;
j = 0;
A D 6
40 4 0 4 05 $ ia 1 4 6 7 10 12 13 for ii=ia(i):ia(i+1)-1
vec(ifa(i)+j)=val(ii);
0 0 0 3 1 ifa 11 32 4 5 j = j+1;
end
0 0 0 0 6 val 1 0 -2 2 3 6 -4 0 4 3 1 6
Definicin El ancho de banda (o de semibanda) de una matriz simtrica B 2 Rnn, 14/94

, se define como
D mKax1i n i ; i D i fi ,
donde i es el ancho de la fila i .

 Ojo. Esta definicin slo se refiere al nmero de diagonales por encima y debajo
de la diagonal principal, sin considerar sta.

 La envolvente de una matriz simtrica es Env.B/ D f.i; j / W fi  j  i; 1  i  ng.

 Para guardar una matriz simtrica no sera necesario ifa. Por ejemplo,
2 3
10 2 3 0 0
Coeficientes
6 23 4 0 3 0
Vector 1 2 3 4 5 6 7 8 9 10
D $ Obsrvese que la dimensin de ib es n.
0 6 0 05
7
B
ib 1 4 7 8 10
4
0 3 0 1 8
0 0 0 8 3 val 10 2 3 4 0 3 6 1 8 3

 Si los anchos de banda son iguales, ib no sera necesario: slo val y i .


15/94

Operaciones algebraicas de matrices dispersas

 El concepto estructura simblica de una matriz expresa la disposicin espacial


de los coeficientes distintos de cero en la matriz.

Producto interior de dos vectores

 Calculemos el producto interior de dos vectores a y b,


n
X
hD ai bi ;
i D1

almacenados como dispersos segn el esquema de filas.


 Lo ms eficaz es definir un vector ip, de dimensin n, en el que se guardan los 16/94

punteros de los coeficientes no nulos de vala o valb.


 Por ejemplo, si el vector a est definido por
Coeficientes
el vector ip, una vez Coeficientes
Vector 1 2 3 4
almacenados los punte- Vector 1 2 3 4 5 6 7 8 9 10 11   
icoa 10 3 7 4 ros, quedara ip 0 0 2 4 0 0 3 0 0 1 0 
vala 0,2 0,3 0,4 -0,5

a3 est en la posicin 2 de vala, a4 en la posicin 4, a7 en la 3, etc.


 Con los coeficientes no nulos de b, se usa ip y, si es necesario, se
multiplican los coeficientes acumulando el resultado en h. Si b es
Coeficientes
Vector 1 2 3
icob 5 4 10
valb 0,6 0,7 0,5

el primer coeficiente no nulo de b es b5 D 0;6.


 Ahora bien, ip(5)=0, por lo que a5b5 D 0, no siendo necesario efectuar
esta ltima operacin : : :
17/94

 Estas ideas en Matlab daran lugar a:


ip = 0
for i=1:na
ip((icoa(i)) = i;
end
h = 0.0;
for i=1:nb
if ip(icob(i))~=0
h=h+vala(ip(icob(i)))*valb(i);
end
end

 Hacer ip(   )=0 es costoso numricamente: es necesario realizar muchas


operaciones, aunque triviales, si n es grande.

 Si un vector se multiplica por otros muchos (caso por ejemplo de productos de


matrices), evidentemente, slo es necesario inicializar ip a cero una vez.
18/94

Multiplicacin de matrices por vectores

 Supondremos que el vector est almacenado en toda su extensin. Nos


interesamos en primer lugar por la operacin c D Ab, donde A 2 Rmn,
b 2 Rn y c 2 Rm .

 Si c se guarda en toda su extensin y A segn el esquema por filas, para


realizar la operacin basta saber qu coeficientes son no nulos en cada fila de la
matriz A, multiplicarlos por el correspondiente de b y acumular el resultado.

 En Matlab esto se podra hacer como sigue.


for i=1:m
iai=ia(i); iai1=ia(i+1)-1;
s = val(ia1:iai1)*b(ico(iai):ico(iai1));
c(i) = s;
end
Multiplicacin de un vector por una matriz 19/94

 Queremos efectuar la operacin c T D bT A, donde A 2 Rmn, b 2 Rm y


c 2 Rn .

 Consideremos el siguiente ejemplo simblico de este producto,


  c1 D b1 a11 C b2 a21
a11 a12 a13
c1 c2 c3 D b1 b2 a a a ! c2 D b1a12 C b2a22
21 22 23
c3 D b1 a13 C b2 a23 :
Si la matriz est almacenada por filas, reescribamos las ecuaciones as:
c = 0;
for i=1:n
c1 b1 a11 c1 c1 C b2 a21 bi = b(i);
c2 b1 a12 y c2 c2 C b2 a22 for ii=ia(i):ia(i+1)-1
j = ico(ii);
c3 b1 a13 c3 c3 C b2 a23 c(j) = c(j)+val(ii)*bi;
end
end

En este caso se puede acceder a los coeficientes secuencialmente por filas e ir


acumulando los resultados de las operaciones en los propios coeficientes de c.
20/94

Otras operaciones

 Operaciones como la suma de matrices, la multiplicacin, la multiplicacin


A T A, etc. se pueden llevar a cabo muy eficazmente, en general, mediante dos
etapas: la simblica y la numrica:

 La simblica determina, mediante vectores-puntero, esa estructura de


coeficientes no nulos de la matriz que ha de resultar de la operacin.
 La numrica, los valores distintos de cero en las posiciones ya reservadas al
efecto en la etapa anterior.
21/94

Solucin de sistemas lineales de matriz


dispersa

Algoritmo general para resolver grandes sistemas lineales

Paso 1 Determinar la estructura simblica de A.


Paso 2 Obtener unas permutaciones P y Q tales que PAQ tenga una estructura de
dispersidad ptima.
Paso 3 Factorizar simblicamente la matriz PAQ y generar las estructuras de datos y
memoria necesarias para L y U .
Paso 4 Calcular numricamente LU D PAQ y c D Pb.
Paso 5 Resolver Lz D c, U y D z y, por fin, x D Qy.
22/94

Ordenacin de las ecuaciones

 Al resolver un sistema de ecuaciones lineales de matriz dispersa, el orden en que


se disponen sus filas o columnas tiene una importancia fundamental.

 Consideremos una matriz A, de estructura simblica simtrica, cuyo patrn de


coeficientes distintos de cero es el de la figura.
23/94

 Si se utiliza la eliminacin de Gauss para resolver dicho sistema, en el transcurso


de dicha factorizacin se harn distintos de cero 46 coeficientes coeficientes
de relleno (fill-in en la literatura anglosajona): los que en la figura aparecen
sombreados.
24/94

 Si las filas y las


Si las filascolumnas del mismo
y las columnas sistema
del mismo sistemasesereordenan deacuerdo
reordenan de acuerdoconcon
el el
algoritmo de grado
algoritmo mnimo
de grado (que(que
mnimo estudiaremos)
estudiaremos)se se obtiene unpatrn
obtiene un patrnde de
coeficientes
coeficientes distintos
distintos de cero
de cero comocomo este.
este.

 Si esta ltima matriz se factoriza tambin mediante eliminacin de Gauss, el


nmero de nuevos coeficientes distintos de cero que se crean en el proceso es
cero. se factoriza tambin mediante eliminacin de Gauss el nmero de
 Si esta matriz
nuevos coeficientes distintos de cero que se crean en el proceso es cero. 42/126

a c
25/94

 Reordenar las matrices para reducir el nmero de coeficientes de relleno


presenta tres ventajas fundamentales:
 Una disminucin del nmero de posiciones de memoria que se han de
reservar para los nuevos coeficientes que se harn distintos de cero en un
proceso de factorizacin.
 Una disminucin del nmero de operaciones a realizar y, por lo tanto, el
tiempo total de clculo para factorizar la matriz y resolver el correspondiente
sistema.
 Una mejora de la estabilidad numrica del proceso global de resolucin del
sistema al disminuir el nmero de coeficientes que habr que considerar y
por tanto disminuir la probabilidad de encontrar grandes diferencias entre
ellos, errores de cancelacin, etc.
26/94

 El nmero de operaciones que habra que realizar para factorizar la matriz del
ejemplo mediante eliminacin de Gauss y luego resolver el sistema
correspondiente, si se operase con esta matriz como densa, como dispersa sin
reordenar filas y columnas y como si fuese dispersa reordenando filas y
columnas, sera el que sigue:

Matriz Matriz
Matriz Dispersa Dispersa
Operacin Densa sin Ordenar Ordenada
Factorizacin 1911 408 105
Sustitucin Inversa 196 94 48

 Para lograr una ordenacin ptima es necesario considerar la estructura de la


matriz, cmo se almacena y el tipo de operaciones que se van a realizar.
27/94

 Si las matrices son de estructura simtrica y se almacenan segn un esquema de


perfil o envolvente, tambin interesa poder disponer de un algoritmo de
ordenacin que compacte los coeficientes cerca de la diagonal principal.
 Uno para ese propsito es el algoritmo de Cuthill-McKee que veremos ms
adelante.
 El resultado de aplicarlo a una matriz simtrica 35  35 es este.
0 100 200 300 400 0 100 200 300 400

Tambin existen diversas formas de ordenar matrices dispersas de estructura


el = 7551 el = 24226
 28/94

simblica no simtrica. Entre las ms usadas est la que ordenar la matriz A de


tal forma que se consiga una estructura triangular inferior en bloques del tipo
que se indica en la figura.

A11

A = A21 A22

A31 A32 A33

 Si se dividen los vectores x y b como A, el sistema se tratar mucho ms


eficazmente resolviendo2 los subsistemas
i 1
X
A i i x i D bi A ij xj ; i D 1; 2; 3:
j D1
2
Slo es necesario factorizar las submatrices A i i pues los bloques o submatrices A ij , i > j , slo se han
de multiplicar por los subvectores xj . Los nuevos coeficientes distintos de cero slo se podrn crear en esas
submatrices en la diagonal principal.
29/94

 Si como ejemplo consideramos la matriz simtrica 16  16

la reordenacin triangular inferior en bloques que de ella se puede obtener es:


30/94

ndice
 Matrices dispersas

 Almacenamiento en ordenador de matrices dispersas

 Operaciones algebraicas elementales con matrices dispersas

 Solucin de grandes sistemas lineales de matriz dispersa

 Matrices dispersas simtricas


 Nociones bsicas sobre grafos
 Interpretacin de la eliminacin de Gauss mediante grafos
 El algoritmo de grado mnimo
 El algoritmo de Cuthill-McKee

 Matrices dispersas no simtricas

 Mnimos cuadrados
31/94

Matrices dispersas simtricas

 La eliminacin de Gauss, u otra factorizacin de matrices dispersas simtricas,


puede crear coeficientes no nulos nuevos; para evitarlo lo ms posible hay que
reordenar las filas y las columnas.

 Si a la matriz de Ax D b se le aplican unas de permutaciones, representadas


por P, el sistema se puede reescribir,

P A P T Px D Pb;

pues P T P D I.
32/94

 Haciendo y D Px y c D Pb, se tiene que

By D c;

donde B D PAP T es la matriz A reordenada.


 La matriz B es tambin dispersa y simtrica.
 Si A es definida positiva, lo mismo ocurre con B, etc.

 Encontrar una P que produzca el menor relleno posible al factorizar B no es


fcil:
 Si A es de orden n, el nmero posible de ordenaciones es n. Imposible
analizar todas si n es grande.
 No existe ningn algoritmo que garantice la ordenacin ptima.
 Si existen algoritmos heursticos para tratar de llegar a un resultado ptimo.
33/94

 En las figuras que siguen se representan los patrones de coeficientes distintos de


cero de una matriz 480  480 antes y despus de factorizarla.

 Las dos primeras representan la matriz sin reordenar y el resultado que


producira factorizarla de la forma LLT .

0 0

50 50

100 100

150 150

200 200

250 250

300 300

350 350

400 400

450 450

0 100 200 300 400 0 100 200 300 400


el = 7551 el = 30366

0 0

50 50
200 200

250 250
34/94
300 300

350 350

Estas dos, el mismo caso cuando se reordena la matriz original mediante el


400 400

450 450

algoritmo de grado mnimo.


0 100 200 300 400 0 100 200 300 400
el = 7551 el = 30366

0 0

50 50

100 100

150 150

200 200

250 250

300 300

350 350

400 400

450 450

0 100 200 300 400 0 100 200 300 400


el = 7551 el = 9196
 Por ltimo, estas dos figuras representan la matriz reordenada mediante el 35/94

algoritmo de Cuthill-McKee y el factor L resultante.

Obsrvese que L tiene en el primer caso 30:366 coeficientes distintos de cero,


9:196 en el segundo y 24:226 en el tercero.

Elegir un buen mtodo de reordenacin de la


matriz es esencial
Nociones bsicas sobre teora de grafos 36/94

 Un grafo, G D .V; E/, es un par formado por un conjunto finito, V , de


elementos denominados nudos del grafo, y por otro tambin finito, E, de arcos.

1 10

6 8
5
9 11 5

2 4 7 3 1 2 3 4

 Un arco es un par de nudos. Si los arcos de un grafo son ordenados, el grafo se


denomina digrafo o grafo dirigido; si no, grafo a secas o grafo no dirigido.

 El grado de un nudo es el nmero de arcos que tienen uno de sus extremos en


ese nudo; o el nmero de nudos a l unidos.
37/94

 Un grafo no dirigido se puede ver como un digrafo en el que si el arco


e D .u; v/ 2 E, tambin e 0 D .v; u/ 2 E.

 Si e D .i; j / 2 E, este arco une un nudo de origen o cola i D t .e/ con otro de
destino, final o cabeza j D h.e/.

 El nmero de elementos, o cardinal de V o E, se designa jV j o jEj.

 Un grafo G D .V; E/ se dice numerado si existe una biyeccin W f1,


2; : : : ; jN jg ! V .

 En lo sucesivo supondremos el grafo numerado.

 A cualquier matriz cuadrada, A, se le puede asociar un grafo.


 Si A es cuadrada de orden n, de estructura simblica simtrica, con todos sus 38/94

coeficientes diagonales distintos de cero, se define el grafo asociado a A,


G A D .V A; E A/, como el grafo no dirigido numerado de n nudos V A D fv1,
v2; : : : ; vng y arcos o aristas E A definidas de tal forma que
.vi ; vj / 2 E A , aij 0; aj i 0:
 El que los coeficientes diagonales sean distintos de cero hace que no sea
necesario representar los bucles que unen cada nudo consigo mismo.
1 2 3 4 5 6 7 8 9 10 11

1
2

1 10
3


4


 En la figura se puede ver la estructura sim- 5





6 8
A= 6
blica simtrica de una matriz 11  11 y 7





9 11 5

su grafo asociado. 8


2 4 7 3
9


10
11

El grafo asociado a una matriz simtrica permanece invariable, salvo la


numeracin de sus nudos, al aplicarle a dicha matriz una permutacin
simtrica.
 Considrese el grafo siguiente: 39/94

3
2 4

5 7
6

 Con esta numeracin, la matriz simblica asociada es:


2 1 2 3 4 5 6 7 3
1       
2 6  7
6 7
3 6  7
7:
6 7
4 6 
6
7
5 6 
6 7
7
6 4 
6 7
5
7  
40/94

 Si en el grafo anterior la numeracin fuese

2
1 3

4 6
5

la matriz simblica asociada sera


2 1 2 3 4 5 6 7
 
3
1
2 6   7
3  
6 7
4
6
6
6  
7
7
7
;
5 6
6   7
7
6 4   5
7       

en la que no habra coeficientes de relleno al factorizarla.


41/94

 Simulemos con Matlab la manipulacin de esta matriz (en


Demo_sparse_1.m).
% Demo_sparse_1.m
>> A=eye(7);
A=eye(7);
>> A(1,:) = A(1,:) + ones(1,7) A(1,:) = A(1,:) + ones(1,7)
>> A(:,1) = A(:,1) + ones(7,1) A(:,1) = A(:,1) + ones(7,1)
>> spy(A) spy(A), pause
>> [L U P] = lu(A);
>> spy(L)
[L U P] = lu(A);
>> r=amd(A); % Ordenacin grado mnimo spy(L), pause
>> spy(A(r,r)) r=amd(A); % Ordenacin grado mnimo
>> [L U P] = lu(A(r,r)); spy(A(r,r)), pause
>> spy(L)
[L U P] = lu(A(r,r));
spy(L)
42/94
 Un camino de un nudo u1 a otro umC1, es un conjunto ordenado de nudos fu1,
u2; : : : ; umC1g tal que ui y uiC1 son adyacentes para i D 1, 2; : : : ; m.
 La longitud de ese camino es m.

 El nudo inicial de un camino se suele denominar de partida; el final, de llegada.

 Un camino tambin se puede definir como un conjunto ordenado de m arcos .u1 ; u2 /,


.u2 ; u3 /; : : : ; .um ; umC1 /.
 Dos nudos dados, u y v , se dicen unidos por un camino, si existe un camino de u a v .

 Un camino es un ciclo cuando u1 D umC1 .

 La distancia, d.u; v/, entre dos nudos, u y v , es la longitud del camino ms corto entre ambos nudos.

 Dado un nudo u, a la mayor distancia entre ese nudo y cualquier otro del grafo se la denomina
excentricidad, e.u/, del nudo u.
 Un grafo se dice conexo si cada par de nudos distintos se puede unir por un camino; inconexo en cualquier
otro caso.

 La mayor excentricidad de un grafo se denomina dimetro.

 Un nudo perifrico es aquel cuya excentricidad es al dimetro.


43/94

 En esta matriz y su grafo, los nudos 1 y 3 estn unidos por los caminos
f1, 10, 11, 3g y f1, 6, 9, 11, 3g, de longitudes 3 y 4.
1 2 3 4 5 6 7 8 9 10 11

1
2

1 10
3


4

6 8
5



A= 6

9 11 5
7

8

9 2 4 7 3


10
11

 La distancia entre los nudos 1 y 3 es 3.


 El camino f5, 8, 11, 3, 5g es un ciclo.
 El dimetro de este grafo es 4. Los nudos perifricos: 1, 2, 4, 5 y 6. Su
excentricidad es igual a 4.
44/94

 Un grafo conexo que no tiene ciclos se denomina rbol. En un rbol slo existe
un camino entre cualquier par de nudos.
8

9 19 3

2 10

17 18 11

12 4 14 16 1 7

13 15 5 20

 Una matriz cuyo grafo asociado es un rbol se puede reordenar de forma que al
factorizarla mediante eliminacin de Gauss no experimente relleno alguno.
45/94

Interpretacin de la eliminacin de Gauss mediante grafos

 Recordemos que:
 Al comienzo de una etapa k del proceso de eliminacin de Gauss todos los
coeficientes distintos de cero debajo de la diagonal principal en las columnas
1, 2; : : : ; k 1 son cero.
 En esta etapa k se determinan unos multiplicadores y se restan, de las filas
que tienen un elemento distinto de cero en la columna k debajo de la
diagonal principal, la fila k multiplicada por el multiplicador correspondiente.
 Este proceder puede crear nuevos coeficientes distintos de cero en la
submatriz k C 1; : : : ; n.

 Consideremos la submatriz activa en la etapa k: la de coeficientes aijk , donde i,


j  k.
46/94

 Sea G k el grafo de eliminacin de esa submatriz activa:

Para obtener G kC1 a partir de G k , borrar en ste el nudo k y


aadir todos los nuevos arcos que sea posible entre nudos que sean
adyacentes a ese nudo k.

 Los arcos que se aaden determinan qu coeficientes nuevos distintos de cero se


producirn en la matriz en un proceso de eliminacin de Gauss, o similar.
47/94

2 Apliquemos
3 4 5 6 7esta
8 idea
9 10 al
11 grafo que sigue y a su matriz.




1 10




6 8




9 11 5




2 4 7 3




Etapa 1
1 2 3 4 5 6 7 8 9 10 11
1
2 1 10

3

4
6 8
5

A2 = 6

7 9 11 5

8

9
2 4 7 3
10
11 G2
Etapa 2 48/94

1 2 3 4 5 6 7 8 9 10 11
1
2 1 10

3

4
6 8
5

A3 = 6

7 9 11 5

8

9
2 4 7 3
10
11 G3

Etapa 3
1 2 3 4 5 6 7 8 9 10 11
1
2 1 10

3

4
6 8
5

A4 = 6

7 9 11 5

8

9
2 4 7 3
10
11 G4
Etapa : : : 49/94

 Al final del proceso la matriz ser:


1 2 3 4 5 6 7 8 9 10 11
1   
2 3
2 6   
   
7
3 6 7
4 6   
6 7
7
5 6     7
6  
6 7
6 7
7    7
6 7
6
8 6   7
6    7
6 7
9
10  
4 5
11   

 Los grafos de eliminacin permiten realizar, independientemente de los valores


numricos, una eliminacin de Gauss simblica y determinar qu nuevos
coeficientes distintos de cero cmo mximo se van a crear.
 Reservando posiciones de memoria para esos nuevos coeficientes, se puede
realizar la eliminacin o factorizacin numrica como es habitual.
50/94

El algoritmo de GRADO MNIMO

 Fue formulado por Tinney y Walker en 1967. Es el ms ms extendido y sencillo


para reducir el nmero de rellenos que produce la eliminacin de Gauss, u otra
similar, en una matriz de estructura simtrica.

 La idea en que se basa es simple:

 Si en la etapa k de la factorizacin hay coeficientes no cero a la derecha de


la diagonal principal de la fila k, al sumar un mltiplo de esta fila a
cualquiera de las filas k C 1 a n lo normal es que se produzcan nuevos
coeficientes no nulos en esas filas.
 Si se determina la fila ` de la submatriz activa con el menor nmero de
coeficientes distintos de cero y se intercambia con la k, al igual que las
columnas ` y k, el nmero de nuevos coeficientes distintos de cero en esa
submatriz ser mnimo.
51/94

 El nombre de grado mnimo viene de que en el grafo de eliminacin G k , el


coeficiente de la diagonal principal en la fila k representar el nudo que est
unido al menor nmero de nudos.

Paso 1 Inicializacin. Hacer i 1.


Paso 2 Seleccin del nudo de grado mnimo. Seleccionar en el grafo de eliminacin
G k 1 D .V k 1 ; E k 1 / aquel nudo vk de grado mnimo.
Paso 3 Transformacin. Formar el nuevo grafo de eliminacin G k D .V k ; E k /
eliminando vk de G k 1 .
Paso 4 Bucle. Hacer i i C 1. Si i > jV j, parar. Si no, ir al paso 2.

Algoritmo de Grado Mnimo


52/94

 Para ilustrar el proceso del algoritmo, consideremos el grafo de la figura


asociado a una matriz simtrica 7  7.

a c

b d

f g

 En las dos tablas que siguen se describen las 7 etapas de que consta la
aplicacin del algoritmo de grado mnimo a este grafo.
Etapa 1 a 3 53/94

Etapa k Grafo de Eliminacion Gk1 Nudo Seleccionado Grado

a c

b d
1 a 1
e

f g

b d
2 c 1
e

f g

b d

3 e d 2
f g
54/94

Etapa 4 a 7

Etapa k Grafo de Eliminacion Gk1 Nudo Seleccionado Grado

4 e e 2
f g

5 b 2
f g

6 f g f 1
7 g g 0
55/94

 Al final:

1 2 3 4 5 6 7
1 2
1

2
5 3

3


A= 4 4


5

6 6 7

7

 El algoritmo de grado mnimo produce muy buenos resultados prcticos.

 Cuando el grafo a reordenar sea un rbol, el resultado no producir coeficientes


de relleno al efectuar la factorizacin ulterior.
 El algoritmo de grado mnimo no siempre da lugar a la ordenacin ptima: 56/94

aquella con el menor nmero de rellenos.

1 2 3 4 5 6 7 8 9

1


2

2 7
3


4
1 4 5 6 9
5


3 8 6

7



8


9

 Si se aplica al grafo de la figura, el algoritmo elegir el nudo nmero 5 como el


inicial, lo que traer como consecuencia que se produzca un relleno posterior en
las posiciones .4; 6/ y .6; 4/.

 Con la numeracin de la figura no se produciran rellenos.


57/94

El algoritmo de Cuthill-McKee

 Fue formulado en 1969 por Elizabeth H. Cuthill y J. McKee. Su objetivo es que


los coeficientes distintos de cero estn lo ms cerca posible de la diagonal
principal.

 Mecnica: Una vez numerado un nudo k, se numeran inmediatamente despus


los que estn unidos a l, no numerados previamente: los coeficientes distintos
de cero de la fila k estarn lo ms cerca posible de la diagonal.

Paso 1 Inicializacin. Seleccionar un nudo inicial r. Hacer v1 r.


Paso 2 Bucle. Para i D 1; : : : ; n, determinar todos los nudos adyacentes al vi no
numerados y numerarlos en orden creciente de grado a nudos no numerados.
58/94

Definicin Se dice que una matriz simtrica tiene un perfil montono si para todo k
y `, k < `, se cumple que lk  l` .

1 2 3 4 5 6 7 1 2 3 4 5 6 7
 
 
 
 
 
 
 

Perfil Montono Perfil No Montono

Teorema La numeracin dada por el algoritmo de Cuthill-McKee conduce a un perfil


montono.
59/94

 Ejemplo Apliquemos el algoritmo de Cuthill-McKee al grafo de la figura.

a b c 1 2 3

d e f g 8 4 5 6

h i j 10 9 7

 Empezando a numerar por el nudo a, en la figura de la derecha se puede ver la


numeracin final que se obtiene con el algoritmo.

 Los nudos 5 y 6 podran invertir su numeracin segn el algoritmo. Se ha


escogido sta por estar el 5 antes en la pseudonumeracin inicial.
60/94

 Con la numeracin obtenida, los coeficientes distintos de cero y ceros en la


envolvente de la matriz asociada, considerando slo su parte triangular inferior,
sern los que siguen.
2 1 2 3 4 5 6 7 8 9 10 3
1 
2 6   7
1 2 3
6 7
3 6
6   7
7
4 6    7
:
6 7
5 6  0  7
g 8 4 5 6 6 7
6 6
6  0   7
7
7 6
6     7
7
10 9 7 8 6
6  0 0 0  7
7
9 4  0 0    5
10   

 El ancho de banda de esta matriz es 5. La envolvente tiene 33 coeficientes; 7 de


ellos cero.
 Ahora bien, si se comienza a numerar el grafo por el nudo e, el resultado de 61/94

aplicar el algoritmo de Cuthill-McKee es el de la figura.


a b c 1 7 2 2 3 4

d e f g 9 3 4 1 6 9 5 10

h i j 10 8 8 5 7 6

 Los coeficientes distintos de cero y ceros son:


2 1 2 3 4 5 6 7 8 9 10 3
1 
2 6   7
6 7
3 6  0  7
6 7
4 6   0  7
:
6 7
5 6  0  0  7
6 7
6 6  0 0 0   7
6 7
7 6
6  0 0 0 0  7
7
8 6
6  0  0 0  7
7
9 4  0  0 0  5
10  0  0 0  

El ancho de banda de esta matriz es 6. El nmero de coeficientes de la


envolvente es 46; de ellos, 20 cero.
La eleccin del nudo inicial, una vez ms, es una cuestin crtica.
62/94

Seleccin del nudo inicial

 Normalmente, el mejor nudo de partida es uno perifrico. Obtengamos uno.

Paso 1 Inicializacin. Seleccionar un nudo arbitrario r.


Paso 2 Generar estructura de niveles. Construir la estructura de niveles del grafo
tomando como nudo raz el nudo r: L.r/ D fL0 .r/, L1 .r/; : : : ; L`.r/ .r/g.
Paso 3 Bucle. Escoger un nudo v en L`.r/ .r/ todava no tratado de grado mnimo:
a) Si e.v/ > e.r/, hacer r v e ir al Paso 2.
b) Si e.v/  e.r/, escoger otro nudo de L`.r/ .r/ y volver al paso 3; si no
hay ms nudos, parar.
63/94

 Comenzando por cualquier nudo, por ejemplo e, apliquemos este procedimiento


al ejemplo: las tres etapas de que consta estn la figura.
2 1 1 0 1 2 4 3 3
a b c a b c a b c
0 2 2
1 d e 2 f g 2 3 d e 3 f g 3 1 d e 3 f g 3

h i j h i j h i j
2 1 1 4 3 3 0 1 2

 Los nmeros al lado de los nudos del grafo indican su excentricidad tomando
como raz el que se indica como 0.

 Obsrvese que del resultado del algoritmo se desprende que tanto el nudo a
como el h podran utilizarse como nudos de partida pues tienen la misma
excentricidad: 4.
64/94

El algoritmo inverso de Cuthill-McKee


Reduccin de la envolvente de una matriz dispersa simtrica

 En 1971 George descubri que utilizando el algoritmo de Cuthill-McKee, pero


invirtiendo el orden de la numeracin final, se consegua una matriz con el
mismo ancho de banda pero con una envolvente con un nmero de coeficientes
menor o igual.

Teorema Sea A una matriz cuyo perfil es montono. El nmero de coeficientes de


Env.A/, numerando el grafo asociado a A de acuerdo con el resultado obtenido de aplicar
el algoritmo inverso de Cuthill-McKee, es a lo sumo el mismo que el de la matriz asociada
al grafo numerado de acuerdo con el resultado del algoritmo ordinario de Cuthill-McKee.
 Ejemplo Considrese el grafo que venimos manejando. 65/94

g
c e

b d
f

 Si se reordena con el algoritmo de Cuthill-McKee dara:


1 2 3 4 5 6 7

1 1

2 3 7


3 0 0 0 0
2

A= 4 0 0 0 0
4 6

5 0 0 0 0
5
6 0 0 0 0

7 0 0 0 0
66/94

 Por el contrario, utilizando el algoritmo de Cuthill-McKee inverso, se conseguira


el efecto siguiente.

1 2 3 4 5 6 7

1 7

2 5 1


3
6

A= 4
4 2

5
3
6

7

 Como se puede observar, desaparecen todos los ceros que aparecan antes,
ahorrndose las correspondientes posiciones de memoria para guardarlos. u
67/94

 Si al grafo que se utilizaba para introducir el algoritmo de Cuthill-McKee, se le


aplicada el algoritmo inverso, el resultado que se obtiene es el que describe la
figura.

1 2 3 4 5 6 7 8 9 10
1
2

3 10 9 8

4 0

5
3 7 6 5
6

7 0 0
1 2 4
8

9
10

 En este caso el ancho de banda sigue siendo 5 y la Env.A/ pasa a ser 29, de los
que slo 3 son cero.
68/94

Matrices dispersas no simtricas

 Tambin aqu, para evitar nuevos coeficientes de relleno, en un proceso similar


al de eliminacin de Gauss de la matriz A, se efecta una reordenacin de filas
y columnas.
 Si al sistema Ax D b se le aplican unas permutaciones a la izquierda y a la
derecha, representadas por las matrices de permutacin P y Q, y el sistema
original se reescribe
P A Q QT x D Pb;
donde QT Q D I, haciendo y D QT x y c D Pb, se tiene que,

By D c;

donde B D PAQ es la matriz A reordenada.


69/94
 El objetivo de estas manipulaciones es:
 Que B tenga una dispersidad mejor que la de A;
 que su factorizacin sea numricamente estable; y
 que el nmero de coeficiente de rellenos introducidos por la factorizacin o
eliminacin de Gauss sea el menor posible.

 Si A no tiene ninguna estructura especial, siempre se pude reordenar en forma


triangular inferior en bloques,
2 32 3 2 3
A 11 x1 b1
6A 21 A 22 7 6x 2 7 6b2 7
6 76 7 6 7
6 :: ::: 7 6 :: 7 D 6 :: 7 ;
4 : 54 : 5 4 : 5
A n1 A n2    A nn xn bn

donde los A ij son matrices, siendo las A i i cuadradas de orden ni :


Pn
i D1 ni D n.
70/94

 Ejemplo El sistema que se ilustra a continuacin, sin ordenar y reordenado.


V
*
11 s'
J
p-i
-- r -q - II " 1
"" " n

I I I i i \
I ' I
II .
I
I

P " "I
E
L
'

^
I
<.
" 11

I! .
. V"
I
i i I II , I I
, I I
i

Vy 1 ;l I
I
. h 11 , . i I I
I I

i
-; il . I
I
i
;
i
I
r
V f
i 1
L
H
1
i
- Nl.
t |
ft I J i
::
!I
m.

i" 'I h . i > "


" \ V
. ,, 1
M

\
1
\
H ? I 1
ll li
II
V
l l l I l l l l i
l
I iii I
n
I. I, I l J .
i

| VI
tv
'
i I 1 I I I
l i i
|

V
I
v I

'
i VV ' i
i I
l , l m I i
I
i : J : i : i
i I i .1 I
' x i . I
j
j
1
M

L -v 1 i M

h
I

I
1

.11 --
h
i i

( 'i
S.
\
r . h
I
Hr 1

; '

.. I 1
I i I I
N 1
II I I h l I i i
I 1
1
II I
. I II I . ... J J ..
! 11 1
vi I I

^ r S.

Y,
1 M ' ' 1
\ , h
P '" i irfi I .
I '
1. .I i
u- 'H
. 1 :
. I
>
5 !
'
<
! ,[ ; 1

I .k . : .
.. i V
-
\ , ...
'i i i
V II

i
'V "
i
1
i
II I

-I -
I
I
I
I
I
' I ! ! I
^ I
l

^ l
i

I \

. \ '
-
i

l T\ 1

I I
I
HS 1 I I . I
I
I
i
i . . n,. I. vr
.
i
I I

V
'1
I
\
71/94

Nociones bsicas sobre grafos dirigidos

 Un grafo, G D .V; E/, es un par formado por un conjunto finito de elementos,


V , denominados nudos del grafo, y por otro tambin finito, E, de arcos. Un
arco es un par de nudos. Si los arcos son ordenados, el grafo se denomina
digrafo o grafo dirigido.

 Si e D .i; j / 2 E, este arco une un nudo de origen i con otro de destino o final
j ; sale o parte de i y llega o entra en j .

 El nmero de elementos, o cardinal de V o E, se designa jV j o jEj.

 Un grafo G D .V; E/ se dice numerado si existe una biyeccin W f1,


2; : : : ; jN jg ! V . Siempre que hablemos de un grafo dirigido se supondr
numerado.
72/94

 El grado de entrada o llegada de un nudo es el nmero de nudos que a l llegan;


el grado de salida, el nmero de nudos que salen.

 Si .u ! v/ es un arco, el nudo v se dice adyacente al u.

 Un camino dirigido, es un conjunto ordenado de nudos fu1, u2, : : : ; umC1g tal


que ui C1 es adyacente a ui , i D 1, 2; : : : ; m. Su longitud es m.

 Un ciclo de un digrafo, o ciclo dirigido, es un camino, con al menos dos arcos,


que sale y llega al mismo nudo.

 Si en un digrafo el nudo v es accesible desde u, la distancia desde u a v es la


longitud del camino ms corto de u a v (la distancia desde v a u puede ser
distinta o incluso indefinida).

 Un digrafo se dice conexo si lo es el grafo no dirigido que se obtiene al suprimir


las direcciones en los arcos del digrafo.
73/94

 A cualquier matriz general, A, n  n, se le puede asociar un digrafo de n nudos

 En dicho digrafo G A D .V A; E A/, los arcos E A son tales que

.vi ; vj / 2 E A , aij 0:

 A cualquier coeficiente diagonal ai i 0 tambin le corresponde un arco que


parte y llega a vi . Cuando todos son no nulos transversal completo, no se
representan. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1

2 1
2 3 4 5 6 7 8 9 101112131415

1 2 3
3 
2 6 
7
4 3 6  
7
4 6
6
  7
7
5 5 6   1 2 3 4
7
7
6 6
6
6
 7
  7 5 6
matriz 78 6
6
 En la figura 7
se puede ver
una



7
7
7
6
8 6
no simtrica 15  15 y su digrafo

aso- 9 6 
7 7 8 9 10 11
9 10 6
6

 7
7
ciado.

10 11 6
6
 7 12 13 14 15
7
7
12 6   7
11 13 6
6
 7
  


 5
14
4
12

 
13 15

14

15
74/94

 Los nudos 6, 7 y 9 son adyacentes al nudo 8; si W D f8, 13g, Adj.W / D f6,


7,19,2 12, 4 5 el
3 14g; 6 nudo
7 8 59 tiene
10 11 un grado
12 13 14 15de entrada de 2 y de salida de 1; el nudo

1 4 es accesible desde el 8.



2

1 2 3 4 5 6 7 8
9 10 11 12 13 14 15

3 1 2   3
2 6  
4
3 6    7
7
5 4 6
6
  7 1 2 3 4
7
5 6  7
6 6 6   7
6 7
7 7
6
6   7 5 6
7
8 6     7
6
9 6   7
8
6 7
7 7 8 9 10 11
10 6   

7
9 11 6
6  
7
7
10

12 6   7
7 12 13 14 15
   
6
13 6 7
11 14
4   5

 
15
12

13


14

15
Si a una matriz se le efectan permutaciones simtricas, en su
digrafo asociado slo se modifica la numeracin de los nudos.
75/94

Eliminacin de Gauss en matrices no simtricas

 Con digrafos. En una etapa k el digrafo de eliminacin se forma eliminando del


de la fase k 1 el nudo vk , todos los arcos que a l llegan o de l parten, y
aadiendo un arco .u ! w/ cuando existe un camino dirigido fu, v, wg.


5
En la primera etapa en este digrafo, el grafo de eliminacin se obtiene quitando
6 7 8 9 10 11 12 13 14 15

el nudo 1 y aadiendo el arco .5 ! 2/, segn se indica.



1 2 3 4 5 6 7 8 9 101112131415 1 2 3 4 5 6 7 8 9 101112131415
3
1  1 
2 2 3
2 6  2 6  
6 7 7
3   7 3
6
  
7
7
6 7 6 7
4   4  
6 6 7
6
7
7 1 2 3 4 6 7
5 6  5 6 
6 6 7
7 7
6
6
 7 6
6

7
6
7 6 7
7   5 6 7  
6 7 6 7

6 7 6 7
8  8   
6 7 6 7
6 7 6 7
9
6
6
 7 9
6
 
7
10
6

7
 7
7
7 8 9 10 11 10
6
6
   7
7
7
 7
6 6
11 6  11 6  7
6 7 6 7
12 6   7 12 6     7
13
6
6    7 7 12 13 14 15 13
6
6     7
7

6 7 6 7
14 4
 

5 14 4   5
15
 15  





76/94

Estructura triangular en bloques y transversal completo

 Para conseguir triangularizar por bloques una matriz A dispersa cualquiera se


procede en dos fases:

Fase 1. Encontrando un transversal completo de esa matriz.


Fase 2. Reordenando el resultado de la fase 1 mediante permutaciones
simtricas.

 Cualquier matriz regular A se puede reordenar mediante permutaciones no


simtricas de tal forma que PAQ tenga un transversal completo.
 Si la matriz es singular esto puede no cumplirse.
 Con transversal completo, puede reordenarse mediante permutaciones simtricas 77/94

para conseguir una estructura triangular inferior en bloques:


 Si esa estructura de bloques existe, se dice que A es una matriz reducible.
 Si una matriz no tiene transversal completo pero puede reordenarse de tal
forma que entonces s lo tenga, y as reordenada es reducible, se dice
birreducible.

Algoritmo de Hall para obtener un transversal completo

 Este algoritmo, M. Hall (1956), requiere n etapas en cada una de las cuales se
coloca un coeficiente distinto de cero si no lo est ya en la correspondiente
posicin de la diagonal principal.

 Supongamos que se han realizado k etapas y que los primeros k coeficientes de


la diagonal principal son ya distintos de cero.
78/94

 En la etapa k C 1 podr ocurrir:

a) Que akC1 kC1 0 con lo que se finaliza esta etapa.


b) Que akC1 kC1 D 0, pero que exista un coeficiente distinto de cero en la
submatriz activa:
 Realizando los intercambios de filas y columnas necesarios se puede llevar
ese coeficiente a la posicin .k C 1; k C 1/.
 Los coeficientes de subndices 1 a k no deben verse afectados por estos
intercambios: los k primeros coeficientes de la diagonal principal seguirn
siendo distintos de cero.
c) Que slo existan coeficientes cero en la submatriz activa:
 Mediante el trazado de un camino creciente se puede conseguir colocar
un coeficiente distinto de cero en akC1 kC1. Si no se encuentra ese
camino, la matriz ser singular.
79/94
 El trazado de un camino creciente comienza, en una etapa k C 1, en el
coeficiente .k C 1; k C 1/:
 Contina por la fila k C 1 hasta que se encuentra con un coeficiente distinto
de cero, en una columna ` (tal columna debe existir pues de lo contrario
todos los coeficientes de la fila k C 1 sern cero y la matriz, por tanto,
singular);
 De aqu al coeficiente .`; `/ a lo largo de la columna `;
 A continuacin, por la fila ` hasta hallar un coeficiente distinto de cero, por
ejemplo en la columna m, etc.

 Este camino no puede atravesar una misma fila o columna ms de una vez y,
por tanto, tampoco un mismo coeficiente de la diagonal principal.

 Terminar en un coeficiente distinto de cero en la submatriz que definen las filas


1 a k y las columnas k C 1 a n.
 Para aclarar el procedimiento, consideremos una matriz simblica 12  12 y el 80/94

procedimiento descrito es su etapa 9.


1 2 3 4 5 6 7 8 9 10 11 12
1
2
3
4
5
6
7
8
9
10
11 0
12

 Esta etapa 9 comienza en la posicin .9; 9/.

 La submatriz de coeficientes 9 a 12 son todos cero por lo que se trata de trazar


un camino creciente.
ste comienza en la posicin .9; 9/, sigue por la fila 9 hasta encontrar el coeficiente distinto de cero de la columna 5;
81/94
contina por la columna 5 hasta encontrar el correspondiente coeficiente distinto de cero de la diagonal principal; sigue por
la fila 5 hasta encontrar el coeficiente distinto de cero de la columna 2; contina por la columna 2 hasta encontrar el
coeficiente distinto de cero de la diagonal principal en la fila 2; sigue por la fila 2 hasta encontrar el coeficiente distinto de
cero de la columna 4; contina por la columna 4 hasta alcanzar el coeficiente distinto de cero de la diagonal principal en la
fila 4; sigue por la fila 4 hasta encontrar el coeficiente distinto de cero de la columna 7; contina por la columna 7 hasta
alcanzar el coeficiente distinto de cero de la diagonal principal en la fila 7; sigue por la fila 7 encontrndose que el nico
coeficiente distinto de cero de esta fila est en la columna 5 que ya se ha visitado; esto obliga a borrar las filas 7 y 4 del
camino (no de la lista de posiciones ya visitadas) y reemprender la marcha all donde se abandon en la fila 2.
Por la fila 2 se llega hasta la columna 6 donde est el siguiente coeficiente distinto de cero; contina en la columna 6 hasta
la diagonal principal en la fila 6; sigue por esa fila 6 hasta llegar al coeficiente distinto de cero de la columna 1; contina por
la columna 1 hasta alcanzar el coeficiente distinto de cero de la diagonal principal en la fila 1; sigue por la fila 1, parndose
al llegar al primer coeficiente distinto de cero que encuentra en la columna 12 por estar en la submatriz que nos interesa.

El camino es pues
f9; 5; 2; 6; 1; 12g:
Encontrado el camino, se efectan los siguientes intercambios de filas

la fila 9 con la 5I
la fila 5 con la 2I
la fila 2 con la 6I
la fila 6 con la 1I
la fila 1 con la 12 y
la fila 12 con la 9:

que trasladan el coeficiente distinto de cero .1; 12/ a la posicin .9; 12/.
Por ltimo se intercambian las columnas 9 y 12.

Si el coeficiente .6; 1/ fuese cero, hubisemos encontrado que las filas 9, 5, 2, 4, 7 y 6 tienen coeficientes distintos de cero
slo en las columnas 5, 2, 4, 7 y 6, lo que significara que la matriz es singular.
82/94

Permutaciones simtricas para obtener una estructura triangular


en bloques

 Obtenido un transversal completo, la siguiente fase para llegar a una matriz


triangular en bloques consiste en encontrar otra permutacin que haga
2 3
B 11
6B 21 B 22
6 7
7;
7
6 :: : ::
4 : 5
B n1 B n2    B nn

donde cada bloque diagonal, B i i , no se pueda reducir ms.

 Los algoritmos para conseguir este propsito se basan en encontrar los ciclos
fuertemente conexos en el digrafo asociado.
83/94

 Si existiesen dos de estos ciclos fuertes y se renumerasen los nudos de tal forma
que los del primero fuesen los nudos 1 al k y los del segundo k C 1 al n, se
obtendra una matriz triangular inferior en dos bloques, el primero con k
columnas y el segundo con n k.
5

1 2 3 4

 En el grafo dirigido de la figura existen dos ciclos fuertes, el formado por los
nudos 1 y 2 y el que definen 3, 4 y 5. La estructura simblica en 2 bloques de
su matriz asociada es
 
 
   :
 
 
84/94

Matrices dispersas generales: eliminacin de Gauss

 Si el sistema no presenta una estructura de dispersidad especial y tampoco


interesa triangularizarla por bloques, la forma ms general de abordar su
resolucin consiste en utilizar directamente la eliminacin de Gauss teniendo en
cuenta que esa matriz es dispersa.

 Para llevarla a cabo se usa el criterio de Markowitz, por Harry Max Markowitz,
EE.UU. 1927-. Premio Nobel de economa de 1990.
 Lo formul en 1957 y consiste3 en factorizar la matriz mediante eliminacin de 85/94

Gauss con pivotacin, escogiendo como elemento pivote en una etapa k uno aijk
de A que sea numricamente aceptable y que minimice
.rik 1/.cjk 1/;
donde rik es el nmero de coeficientes no cero en la fila i de la submatriz activa
y cjk los no ceros en la columna j .

 En la figura se ilustra la situacin para el caso en que n D 7 y k D 3.


1
1 U
Obsrvese que es ms conveniente usar .rik 1/.cjk 1/
1 rT que rik cjk pues de esta manera se fuerza a que se elija un

coeficiente aij
k
tal que en su fila o columna slo exista l
como coeficiente distinto de cero.
L c

3
La estrategia resultante es similar a la de grado mnimo.
86/94

ndice
 Matrices dispersas

 Almacenamiento en ordenador de matrices dispersas

 Operaciones algebraicas elementales con matrices dispersas

 Solucin de grandes sistemas lineales de matriz dispersa

 Matrices dispersas simtricas


 Matrices dispersas no simtricas

 Mnimos cuadrados
87/94

Problemas de mnimos cuadrados de grandes


dimensiones

 Son problemas de mnimos cuadrados lineales,

minimizar kAx bk2


x 2Rn

en los que la matriz A es de grandes dimensiones y dispersa.


88/94

Las ecuaciones normales

 De las ecuaciones normales

minimizar kAx bk2 A T .Ax b/ D 0


x 2Rn
si suponemos A es de rango completo, A T A es simtrica y definida positiva.

Teorema Supngase que no se producen errores numricos de cancelacin en el clculo


de A T A, entonces,
A T A j k 0 , aij 0 y ai k 0


para al menos una fila i D 1, 2; : : : ; m.

 Este resultado permite saber dnde se producirn coeficientes de relleno al


obtener A T A.
89/94

Paso 1 Determinar la estructura simblica de A T A.


Paso 2 Determinar una permutacin de columnas Q tal que el factor de Cholesky de
QT A T AQ tenga una estructura dispersa buena.
Paso 3 Factorizar simblicamente por Cholesky QT A T AQ y generar las estructuras
de datos y memoria necesarias para G .
Paso 4 Calcular numricamente B D QT A T AQ y c D QT A T b; almacenar B en
la estructura de datos correspondiente a G .
Paso 5 Calcular numricamente la factorizacin de Cholesky G T G de B. Resolver
G T z D c, G y D z y, por fin, x D Qy.

Algoritmo bsico para mnimos cuadrados de matriz dispersa


90/94

Transformaciones ortogonales_Mtodo de George-Heath

 Recordemos que:
 Un conjunto de transformaciones ortogonales, representadas por
Q 2 Rmm, puede reducir A 2 Rmn (que supondremos de rango n) y
b 2 Rm de la forma
   
R1 c
QA D y Qb D ;
0 d
donde R 1 2 Rnn es una matriz triangular superior y c 2 Rn.
 La solucin del problema de mnimos cuadrados se obtiene de R 1x D c; la
suma de residuos al cuadrado es kdk22.
91/94

 El algoritmo de George y Heath [1980] procesa las filas de A secuencialmente


con esta mecnica.

1. R i 1 designa la matriz triangular superior que se obtiene despus de procesar


las filas aT1 ; : : : ; aTi 1 .
Al procesar la fila aTi D ai1 , ai 2 ; : : : ; ai n se buscan de izquierda a derecha los
coeficientes distintos de cero.
Para cada aij 0, i > j , se define una transformacin de Givens que involucre
a la fila j de R i 1 y anule aij .
 Procediendo as se pueden crear nuevos coeficientes distintos de cero en
R i 1 y en la fila aTi .
2. Si al tratar la fila i, al llegar al coeficiente j.j < i/ ste no es cero y rjj D 0,
la fila j en R i 1 todava no se ha visto afectada por ninguna rotacin y debe
ser toda cero:
 Lo que resulta de la fila i debe insertarse en la fila j .
92/94

 Un ejemplo de este proceso actuando sobre los coeficientes de la fila 9 de una


matriz 9  8 es el que sigue.
 0  0 0  0 0
0  0 0 0
 0  0 0 
0 0 0
0 0
0
 0

0  0  0

Los smbolos designan los coeficientes involucrados en la eliminacin de aT9 .


Los que se crean de relleno en R 8 y aT9 durante la eliminacin se designan
mediante .

 Obsrvese que los tres ltimos coeficientes de la fila 9, una vez anulados del 1 al
5, reemplazan a los de la fila 6, que eran 0.
Ordenacin de filas 93/94

 El nmero de operaciones del proceso descrito depende tambin del orden de las
filas. Por ejemplo, las matrices
     
2 3 9 2 3 9
> >
6 7 >
= 6 7 >
=
6 ::
6 7
7 m 6 ::
6 7
7 m
6: 7 >
>
; 6: 7 >
>
;
6 6
6 7 6 7
y
7 7
A D 6 PA D 6    7
6 7 9 6 7 9
7 >
> >
>
6 7 6 7
 
>
> >
>
6 7 = 6 7 =
n n
6 7 6 7
6
6  7
7 >
6
6  7
7 >
 
4 5 >
> 4 5 >
>
>
; >
;
 

requieren O.mn2/ y O.n2/ operaciones, respectivamente, para reducirlas.

 Para reordenar las filas se puede aplicar este algoritmo:


Si el ndice de columna del ltimo coeficiente distinto de cero de la fila aTi es `i y el
primero fi , ordenar primero las filas cuyos ndices fi , i D 1, 2; : : : cumplan que fi  fk
si i < k y luego, para cada grupo de filas tales que fi D k, k D 1; : : : ; mKaxi fi , ordenar
las filas segn `i crecientes.
94/94

 Con las consideraciones anteriores, el algoritmo de ortogonalizacin de George y


Heath para mnimos cuadrados queda as:

Paso 1 Llevar a cabo los Pasos 1 a 3 del Algoritmo bsico anterior.


Paso 2 Determinar una permutacin de filas P tal que las filas de PAQ tengan unos
ndices de columnas `i crecientes.
Paso 3 Calcular numricamente R 1 y c procesando las filas de PAQ, Pb mediante
transformaciones de Givens.
Paso 3 Resolver Ry D c. Hacer x D Qy.

Vous aimerez peut-être aussi