New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de...

94
1/94 Universidad Politécnica de Madrid–Escuela Técnica Superior de Ingenieros Industriales Grado en Ingeniería en Tecnologías Industriales. Curso 2015-2016-3º Matemáticas de Especialidad–Ingeniería Eléctrica Sistemas lineales de grandes dimensiones Matrices dispersas José Luis de la Fuente O’Connor [email protected] [email protected] Clase_dispersa_2016.pdf

Transcript of New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de...

Page 1: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

1/94Universidad Politécnica de Madrid–Escuela Técnica Superior de Ingenieros IndustrialesGrado en Ingeniería en Tecnologías Industriales. Curso 2015-2016-3º

Matemáticas de Especialidad–Ingeniería Eléctrica

Sistemas lineales de grandes dimensiones

Matrices dispersas

José Luis de la Fuente O’[email protected]@upm.es

Clase_dispersa_2016.pdf

Page 2: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

2/94

Índice

� Matrices dispersas

� Almacenamiento en ordenador de matrices dispersas

� Operaciones algebraicas elementales con matrices dispersas

� Solución de grandes sistemas lineales de matriz dispersa

� Matrices dispersas simétricas

� Nociones básicas sobre grafos

� Interpretación de la eliminación de Gauss mediante grafos

� El algoritmo de grado mínimo

� El algoritmo de Cuthill-McKee

� Matrices dispersas no simétricas

� Mínimos cuadrados

Page 3: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

3/94

Matrices dispersas

� Muchos de los modelos matemáticos que en la actualidad interpretan o simulanfenómenos reales de diversa complejidad dan lugar a sistemas de ecuaciones degran tamaño —decenas, cientos de miles y millones de variables—.

� Las matrices de gran tamaño a que dan lugar esos modelos se denominandispersas pues muchos de los coeficientes que las definen son cero y los que noestán muy “dispersos” en su estructura.

� Nosotros consideraremos dispersa a una matriz que teniendo pocos coeficientesdistintos de cero merece la pena aplicarle procedimientos diseñados para ello.1

1Algunos autores definen una matriz n � n como dispersa si el número de coeficientes no nulos es n C1, donde < 1. Ladensidad sería n C1

n2D n �1. Valores típicos de ese parámetro suelen ser: D 0;2 para problemas de análisis de sistemas eléctricos

de generación y transporte de energía; D 0;5 para matrices en banda asociadas a problemas de análisis de estructuras; etc.

Page 4: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

4/94Ejemplos

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

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

Page 5: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

5/94

THERE FOLLOWS PICTURES OFSPARSE MATRICES FROM VARIOUSAPPLICATIONS

This is done to illustrate di�erent structuresfor sparse matrices

Thermal Simulation; SHERMAN2

Weather Matrix; FS 760 3 Dynamic Calculation in Structures; BCSSTM13

Power Systems; BCSPWR07 Simulation of Computing Systems; GRE 1107

Chemical Engineering; WEST0381 Economic Modelling; ORANI678

0 200 400 600 800 1000 1200 1400 1600

0

200

400

600

800

1000

1200

1400

1600

bcspwr09; nz = 6511

Power Systems; BCSPWR07 Simulation of Computing Systems; GRE 1107

Chemical Engineering; WEST0381 Economic Modelling; ORANI678

Page 6: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

6/94

Power Systems; BCSPWR07 Simulation of Computing Systems; GRE 1107

Chemical Engineering; WEST0381 Economic Modelling; ORANI678

Page 7: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

7/94

Page 8: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

8/94

� La ingeniería, estudio e investigación de los modelos matemáticos y sistemas deecuaciones con matrices dispersas abarca tres grandes áreas:

� Almacenamiento de las matrices en un ordenador.

� Ordenación de las ecuaciones del sistema con el fin de reducir el númerode coeficientes nuevos no nulos que se crean en la factorización de la matriz.

� Implementación óptima para matrices de grandes dimensiones de losmétodos numéricos generales más avanzados para resolver sistemas deecuaciones tradicionales.

Page 9: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

9/94

Almacenamiento en ordenadorPor coordenadas

� Mediante un conjunto de triples, .aij , i , j /, que definen las “coordenadas”, oinformación esencial, de cada coeficiente distinto de cero.

� Ejemplo Se quiere almacenar según este esquema

A D

266666641 0 0 �1 0

2 0 �2 0 3

0 �3 0 0 0

0 4 0 �4 0

5 0 �5 0 6

37777775$Coeficientes

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

ifi 1 1 2 2 2 3 4 4 5 5 5ico 1 4 1 3 5 2 2 4 1 3 5val 1 -1 2 -2 3 -3 4 -4 5 -5 6

se definirían los tres vectores, ifi, ico y val: los dos primeros basta que seaninteger; val debe ser real.

Page 10: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

10/94Almacenamiento por filas o columnas

� Es el más extendido. En una matriz m � n define tres vectores:

val Debe contener todos los coeficientes distintos de cero de la matriz, fila afila, enumerados consecutivamente;

ico De la misma dimensión de val, con los subíndices columna de loscoeficientes de val;

ia De dimensión mC 1, con las posiciones en val y ico del primer coeficienteno nulo de cada fila de la matriz.

A D

2666641 0 0 �1 0

2 0 �2 0 3

0 �3 0 0 0

0 4 0 �4 0

5 0 �5 0 6

377775$Coeficientes

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

ia 1 3 6 7 9 12ic 1 4 1 3 5 2 2 4 1 3 5va 1 -1 2 -2 3 -3 4 -4 5 -5 6

� La información de la fila r estará entre las posiciones ia(r) y ia(r C 1)-1 enico y val, excepto si ia(r C 1)=ia(r), en cuyo caso la fila r estaría vacía.

Page 11: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

11/94

� La parte de un programa Matlab para recuperar en el vector vec(�) la fila ide una matriz podría ser:

vec = 0;for ii=ia(i):ia(i+1)-1

vec(ico(ii))=val(ii);end

� Recuperar la columna k sería un poco más complicado:

vec=0;for j=1:m

for ii=ia(j):ia(j+1)-1if ico(ii)==k vec(j)=val(ii), breakelseif ico(ii)>k break

endend

Page 12: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

12/94Almacenamiento por perfil o envolvente

Definición Si fi D mKınfj W aij ¤ 0g y li D mKaxfj W aij ¤ 0g, una matriz Am�n

tiene un ancho de banda de filas w siw D mKax1�i�mwi ; 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/ Df.i; j / W fi � j � li ; 1 � i � mg.

� Las matrices en banda son aquellas cuyos coeficientes están contenidos en unafranja alrededor de su diagonal principal. Es de interés como dispersa, w � n.

� Ejemplo La envolvente de la matriz1 2 3 4 5 6 7

A D

1

2

3

4

5

6

7

26666666664

� � � �� � 0 �

� 0 � �� 0 �

� � � �� � 0 0 � �

37777777775es

Env.A/ D f.1; 1/; .1; 2/; .1; 3/; .1; 4/; .2; 1/; .2; 2/; .2; 3/; .2; 4/;.3; 3/; .3; 4/; .3; 5/; .3; 6/; .4; 2/; .4; 3/; .4; 4/;

.5; 4/; .5; 5/; .5; 6/; .5; 7/;

.6; 2/; .6; 3/; .6; 4/; .6; 5/; .6; 6/; .6; 7/; .7; 7/g:

Page 13: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

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 dimensión mC 1, si la matriz es m � n, con las posiciones en val delprimer coeficiente no nulo de las filas que se corresponden con el orden delos coeficientes de ia.

� Por ejemplo,

A D

26641 0 �2 0 0

2 3 0 0 0

0 0 6 0 0

0 �4 0 4 0

0 0 0 3 1

0 0 0 0 6

3775$Coeficientes

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

ia 1 4 6 7 10 12 13ifa 1 1 3 2 4 5val 1 0 -2 2 3 6 -4 0 4 3 1 6

Para recuperar una fila en Matlab:

vec = 0;j = 0;for ii=ia(i):ia(i+1)-1

vec(ifa(i)+j)=val(ii);j = j+1;

end

Page 14: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

14/94Definición El ancho de banda (o de semibanda) de una matriz simétrica B 2 Rn�n,ˇ, se define como

ˇ D mKax1�i�n ˇi ; ˇi D i � fi ,donde ˇi es el ancho de la fila i .

� Ojo. Esta definición sólo se refiere al número de diagonales por encima y debajode la diagonal principal, sin considerar ésta.

� La envolvente de una matriz simétrica es Env.B/ D f.i; j / W fi � j � i; 1 � i � ng.

� Para guardar una matriz simétrica no sería necesario ifa. Por ejemplo,

B D

26410 2 3 0 0

2 4 0 3 0

3 0 6 0 0

0 3 0 1 8

0 0 0 8 3

375$ CoeficientesVector 1 2 3 4 5 6 7 8 9 10

ib 1 4 7 8 10val 10 2 3 4 0 3 6 1 8 3

Obsérvese que la dimensión de ib es n.

� Si los anchos de banda son iguales, ib no sería necesario: sólo val y ˇi .

Page 15: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

15/94

Operaciones algebraicas de matrices dispersas

� El concepto estructura simbólica de una matriz expresa la disposición espacialde los coeficientes distintos de cero en la matriz.

Producto interior de dos vectores

� Calculemos el producto interior de dos vectores a y b,

h DnXiD1

aibi ;

almacenados como dispersos según el esquema de filas.

Page 16: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

16/94� Lo más eficaz es definir un vector ip, de dimensión n, en el que se guardan lospunteros de los coeficientes no nulos de vala o valb.

� Por ejemplo, si el vector a está definido por

CoeficientesVector 1 2 3 4

icoa 10 3 7 4vala 0,2 0,3 0,4 -0,5

el vector ip, una vezalmacenados los punte-ros, quedaría

CoeficientesVector 1 2 3 4 5 6 7 8 9 10 11 � � �ip 0 0 2 4 0 0 3 0 0 1 0 � � �

a3 está en la posición 2 de vala, a4 en la posición 4, a7 en la 3, etc.

� Con los coeficientes no nulos de b, se usa ip y, si es necesario, semultiplican los coeficientes acumulando el resultado en h. Si b es

CoeficientesVector 1 2 3icob 5 4 10valb 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 efectuaresta última operación : : :

Page 17: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

17/94

� Estas ideas en Matlab darían lugar a:

ip = 0for i=1:na

ip((icoa(i)) = i;endh = 0.0;for i=1:nb

if ip(icob(i))~=0h=h+vala(ip(icob(i)))*valb(i);

endend

� Hacer ip(� � � )=0 es costoso numéricamente: es necesario realizar muchasoperaciones, aunque triviales, si n es grande.

� Si un vector se multiplica por otros muchos (caso por ejemplo de productos dematrices), evidentemente, sólo es necesario inicializar ip a cero una vez.

Page 18: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

18/94

Multiplicación de matrices por vectores

� Supondremos que el vector está almacenado en toda su extensión. Nosinteresamos en primer lugar por la operación c D Ab, donde A 2 Rm�n,b 2 Rn y c 2 Rm.

� Si c se guarda en toda su extensión y A según el esquema por filas, pararealizar la operación basta saber qué coeficientes son no nulos en cada fila de lamatriz A, multiplicarlos por el correspondiente de b y acumular el resultado.

� En Matlab esto se podría hacer como sigue.

for i=1:miai=ia(i); iai1=ia(i+1)-1;s = val(ia1:iai1)*b(ico(iai):ico(iai1));c(i) = s;

end

Page 19: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

19/94Multiplicación de un vector por una matriz

� Queremos efectuar la operación cT D bTA, donde A 2 Rm�n, b 2 Rm yc 2 Rn.

� Consideremos el siguiente ejemplo simbólico de este producto,

Œc1 c2 c3� D Œb1 b2��a11 a12 a13a21 a22 a23

�!

c1 D b1a11 C b2a21c2 D b1a12 C b2a22c3 D b1a13 C b2a23:

Si la matriz está almacenada por filas, reescribamos las ecuaciones así:

c1 b1a11c2 b1a12c3 b1a13

yc1 c1 C b2a21c2 c2 C b2a22c3 c3 C b2a23

c = 0;for i=1:n

bi = b(i);for ii=ia(i):ia(i+1)-1

j = ico(ii);c(j) = c(j)+val(ii)*bi;

endend

En este caso se puede acceder a los coeficientes secuencialmente por filas e iracumulando los resultados de las operaciones en los propios coeficientes de c.

Page 20: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

20/94

Otras operaciones

� Operaciones como la suma de matrices, la multiplicación, la multiplicaciónATA, etc. se pueden llevar a cabo muy eficazmente, en general, mediante dosetapas: la simbólica y la numérica:

� La simbólica determina, mediante vectores-puntero, esa estructura decoeficientes no nulos de la matriz que ha de resultar de la operación.

� La numérica, los valores distintos de cero en las posiciones ya reservadas alefecto en la etapa anterior.

Page 21: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

21/94

Solución de sistemas lineales de matrizdispersa

Algoritmo general para resolver grandes sistemas lineales

Paso 1 – Determinar la estructura simbólica de A.

Paso 2 – Obtener unas permutaciones P y Q tales que PAQ tenga una estructura dedispersidad óptima.

Paso 3 – Factorizar simbólicamente la matriz PAQ y generar las estructuras de datos ymemoria necesarias para L y U .

Paso 4 – Calcular numéricamente LU D PAQ y c D Pb.

Paso 5 – Resolver Lz D c, U y D z y, por fin, x D Qy .

Page 22: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

22/94Ordenación de las ecuaciones

� Al resolver un sistema de ecuaciones lineales de matriz dispersa, el orden en quese disponen sus filas o columnas tiene una importancia fundamental.

� Consideremos una matriz A, de estructura simbólica simétrica, cuyo patrón decoeficientes distintos de cero es el de la figura.

Page 23: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

23/94

� Si se utiliza la eliminación de Gauss para resolver dicho sistema, en el transcursode dicha factorización se harán distintos de cero 46 coeficientes —coeficientesde relleno (fill-in en la literatura anglosajona)—: los que en la figura aparecensombreados.

Page 24: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

24/94

� Si las filas y las columnas del mismo sistema se reordenan de acuerdo con elalgoritmo de grado mínimo (que estudiaremos) se obtiene un patrón decoeficientes distintos de cero como este.

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

42/126

� Si las filas y las columnas del mismo sistema se reordenan de acuerdo con elalgoritmo de grado mínimo (que estudiaremos) se obtiene un patrón decoeficientes distintos de cero como este.

�!

� Si esta última matriz se factoriza también mediante eliminación de Gauss, elnúmero de nuevos coeficientes distintos de cero que se crean en el proceso escero.� Si esta matriz se factoriza también mediante eliminación de Gauss el número de

nuevos coeficientes distintos de cero que se crean en el proceso es cero.

Page 25: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

25/94

� Reordenar las matrices para reducir el número de coeficientes de rellenopresenta tres ventajas fundamentales:

� Una disminución del número de posiciones de memoria que se han dereservar para los nuevos coeficientes que se harán distintos de cero en unproceso de factorización.

� Una disminución del número de operaciones a realizar y, por lo tanto, eltiempo total de cálculo para factorizar la matriz y resolver el correspondientesistema.

� Una mejora de la estabilidad numérica del proceso global de resolución delsistema al disminuir el número de coeficientes que habrá que considerar ypor tanto disminuir la probabilidad de encontrar grandes diferencias entreellos, errores de cancelación, etc.

Page 26: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

26/94

� El número de operaciones que habría que realizar para factorizar la matriz delejemplo mediante eliminación de Gauss y luego resolver el sistemacorrespondiente, si se operase con esta matriz como densa, como dispersa sinreordenar filas y columnas y como si fuese dispersa reordenando filas ycolumnas, sería el que sigue:

Matriz MatrizMatriz Dispersa Dispersa

Operación Densa sin Ordenar OrdenadaFactorización 1911 408 105Sustitución Inversa 196 94 48

� Para lograr una ordenación óptima es necesario considerar la estructura de lamatriz, cómo se almacena y el tipo de operaciones que se van a realizar.

Page 27: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

27/94

� Si las matrices son de estructura simétrica y se almacenan según un esquema deperfil o envolvente, también interesa poder disponer de un algoritmo deordenación que compacte los coeficientes cerca de la diagonal principal.

� Uno para ese propósito es el algoritmo de Cuthill-McKee que veremos másadelante.

� El resultado de aplicarlo a una matriz simétrica 35 � 35 es este.

Page 28: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

28/94� También existen diversas formas de ordenar matrices dispersas de estructurasimbólica no simétrica. Entre las más usadas está la que ordenar la matriz A detal forma que se consiga una estructura triangular inferior en bloques del tipoque se indica en la figura.

0 100 200 300 400

0

50

100

150

200

250

300

350

400

450

el = 75510 100 200 300 400

0

50

100

150

200

250

300

350

400

450

el = 24226

A31 A32 A33

A21 A22

A11

A =

� Si se dividen los vectores x y b como A, el sistema se tratará mucho máseficazmente resolviendo2 los subsistemas

Ai ixi D bi �i�1XjD1

Aijxj ; i D 1; 2; 3:

2Sólo es necesario factorizar las submatrices Ai i pues los bloques o submatrices Aij , i > j , sólo se hande multiplicar por los subvectores xj . Los nuevos coeficientes distintos de cero sólo se podrán crear en esassubmatrices en la diagonal principal.

Page 29: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

29/94

� Si como ejemplo consideramos la matriz simétrica 16 � 16

la reordenación triangular inferior en bloques que de ella se puede obtener es:

Page 30: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

30/94

Índice

� Matrices dispersas

� Almacenamiento en ordenador de matrices dispersas

� Operaciones algebraicas elementales con matrices dispersas

� Solución de grandes sistemas lineales de matriz dispersa

� Matrices dispersas simétricas

� Nociones básicas sobre grafos

� Interpretación de la eliminación de Gauss mediante grafos

� El algoritmo de grado mínimo

� El algoritmo de Cuthill-McKee

� Matrices dispersas no simétricas

� Mínimos cuadrados

Page 31: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

31/94

Matrices dispersas simétricas

� La eliminación de Gauss, u otra factorización de matrices dispersas simétricas,puede crear coeficientes no nulos nuevos; para evitarlo lo más posible hay quereordenar las filas y las columnas.

� Si a la matriz de Ax D b se le aplican unas de permutaciones, representadaspor P , el sistema se puede reescribir,

P A PT Px D Pb;

pues PTP D I .

Page 32: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

32/94

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

By D c;

donde B D PAPT es la matriz A reordenada.

� La matriz B es también dispersa y simétrica.

� Si A es definida positiva, lo mismo ocurre con B, etc.

� Encontrar una P que produzca el menor relleno posible al factorizar B no esfácil:

� Si A es de orden n, el número posible de ordenaciones es nŠ. Imposibleanalizar todas si n es grande.

� No existe ningún algoritmo que garantice la ordenación óptima.

� Si existen algoritmos heurísticos para tratar de llegar a un resultado óptimo.

Page 33: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

33/94

� En las figuras que siguen se representan los patrones de coeficientes distintos decero de una matriz 480 � 480 antes y después de factorizarla.

� Las dos primeras representan la matriz sin reordenar y el resultado queproduciría factorizarla de la forma LLT .

0 100 200 300 400

0

50

100

150

200

250

300

350

400

450

el = 75510 100 200 300 400

0

50

100

150

200

250

300

350

400

450

el = 30366

0 100 200 300 400

0

50

100

150

200

250

300

350

400

450

el = 75510 100 200 300 400

0

50

100

150

200

250

300

350

400

450

el = 9196

Page 34: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

34/94

� Estas dos, el mismo caso cuando se reordena la matriz original mediante elalgoritmo de grado mínimo.0 100 200 300 400

0

50

100

150

200

250

300

350

400

450

el = 75510 100 200 300 400

0

50

100

150

200

250

300

350

400

450

el = 30366

0 100 200 300 400

0

50

100

150

200

250

300

350

400

450

el = 75510 100 200 300 400

0

50

100

150

200

250

300

350

400

450

el = 9196

Page 35: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

35/94� Por último, estas dos figuras representan la matriz reordenada mediante elalgoritmo de Cuthill-McKee y el factor L resultante.

Obsérvese 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 método de reordenación de lamatriz es esencial

Page 36: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

36/94Nociones básicas sobre teoría de grafos

� Un grafo, G D .V;E/, es un par formado por un conjunto finito, V , deelementos denominados nudos del grafo, y por otro también finito, E, de arcos.

2 4 7 3

9 11 5

6

1 10

8

1 2 3 4

5

� Un arco es un par de nudos. Si los arcos de un grafo son ordenados, el grafo sedenomina digrafo o grafo dirigido; si no, grafo a secas o grafo no dirigido.

� El grado de un nudo es el número de arcos que tienen uno de sus extremos enese nudo; o el número de nudos a él unidos.

Page 37: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

37/94

� Un grafo no dirigido se puede ver como un digrafo en el que si el arcoe D .u; v/ 2 E, también e0 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 dedestino, final o cabeza j D h.e/.

� El número 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 biyección ˛ W f1,2; : : : ; jN jg ! V .

� En lo sucesivo supondremos el grafo numerado.

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

Page 38: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

38/94� Si A es cuadrada de orden n, de estructura simbólica simétrica, con todos suscoeficientes diagonales distintos de cero, se define el grafo asociado a A,GA D .V A; EA/, como el grafo no dirigido numerado de n nudos V A D fv1,v2; : : : ; vng y arcos o aristas EA definidas de tal forma que

.vi ; vj / 2 EA, aij ¤ 0; aj i ¤ 0:� El que los coeficientes diagonales sean distintos de cero hace que no seanecesario representar los bucles que unen cada nudo consigo mismo.

� En la figura se puede ver la estructura sim-bólica simétrica de una matriz 11 � 11 ysu grafo asociado.

1 2 3 4 5 6 7 8 9 10 11

A =

1234567891011

× × ×× × ×

× × × ×× × ×

× × × ×× × ×

× × × ×× × ×

× × × ×× × ×

× × × × × × ×

2 4 7 3

9 11 5

6

1 10

8

El grafo asociado a una matriz simétrica permanece invariable, salvo lanumeración de sus nudos, al aplicarle a dicha matriz una permutación

simétrica.

Page 39: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

39/94� Considérese el grafo siguiente:

1

5

2

7

4

6

3

� Con esta numeración, la matriz simbólica asociada es:

1 2 3 4 5 6 71

2

3

4

5

6

7

26666666664

� � � � � � �� �� �� �� �� �� �

37777777775:

Page 40: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

40/94

� Si en el grafo anterior la numeración fuese

7

4

1

6

3

5

2

la matriz simbólica asociada sería1 2 3 4 5 6 7

1234567

266666664

� �� �� �� �� �� �

� � � � � � �

377777775;

en la que no habría coeficientes de relleno al factorizarla.

Page 41: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

41/94

� Simulemos con Matlab la manipulación de esta matriz (enDemo_sparse_1.m).

>> A=eye(7);>> A(1,:) = A(1,:) + ones(1,7)>> A(:,1) = A(:,1) + ones(7,1)>> spy(A)>> [L U P] = lu(A);>> spy(L)>> r=amd(A); % Ordenación grado mínimo>> spy(A(r,r))>> [L U P] = lu(A(r,r));>> spy(L)

% Demo_sparse_1.mA=eye(7);A(1,:) = A(1,:) + ones(1,7)A(:,1) = A(:,1) + ones(7,1)spy(A), pause[L U P] = lu(A);spy(L), pauser=amd(A); % Ordenación grado mínimospy(A(r,r)), pause[L U P] = lu(A(r,r));spy(L)

Page 42: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

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 también 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 más corto entre ambos nudos.

� Dado un nudo u, a la mayor distancia entre ese nudo y cualquier otro del grafo se la denominaexcentricidad, e.u/, del nudo u.

� Un grafo se dice conexo si cada par de nudos distintos se puede unir por un camino; inconexo en cualquierotro caso.

� La mayor excentricidad de un grafo se denomina diámetro.

� Un nudo periférico es aquel cuya excentricidad es al diámetro.

Page 43: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

43/94

� En esta matriz y su grafo, los nudos 1 y 3 están unidos por los caminosf1, 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

A =

1234567891011

× × ×× × ×

× × × ×× × ×

× × × ×× × ×

× × × ×× × ×

× × × ×× × ×

× × × × × × ×

2 4 7 3

9 11 5

6

1 10

8

� La distancia entre los nudos 1 y 3 es 3.

� El camino f5, 8, 11, 3, 5g es un ciclo.

� El diámetro de este grafo es 4. Los nudos periféricos: 1, 2, 4, 5 y 6. Suexcentricidad es igual a 4.

Page 44: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

44/94

� Un grafo conexo que no tiene ciclos se denomina árbol. En un árbol sólo existeun camino entre cualquier par de nudos.

6

13 15 5 20

12 4 14 16 1 7

17 18 11

2 10

9 19 3

8

� Una matriz cuyo grafo asociado es un árbol se puede reordenar de forma que alfactorizarla mediante eliminación de Gauss no experimente relleno alguno.

Page 45: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

45/94

Interpretación de la eliminación de Gauss mediante grafos

� Recordemos que:

� Al comienzo de una etapa k del proceso de eliminación de Gauss todos loscoeficientes distintos de cero debajo de la diagonal principal en las columnas1, 2; : : : ; k � 1 son cero.

� En esta etapa k se determinan unos multiplicadores y se restan, de las filasque tienen un elemento distinto de cero en la columna k debajo de ladiagonal principal, la fila k multiplicada por el multiplicador correspondiente.

� Este proceder puede crear nuevos coeficientes distintos de cero en lasubmatriz k C 1; : : : ; n.

� Consideremos la submatriz activa en la etapa k: la de coeficientes akij , donde i ,j � k.

Page 46: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

46/94

� Sea Gk el grafo de eliminación de esa submatriz activa:

Para obtener GkC1 a partir de Gk, borrar en éste el nudo k yañadir todos los nuevos arcos que sea posible entre nudos que seanadyacentes a ese nudo k.

� Los arcos que se añaden determinan qué coeficientes nuevos distintos de cero seproducirán en la matriz en un proceso de eliminación de Gauss, o similar.

Page 47: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

47/94

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

A =

1234567891011

× × ×× × ×

× × × ×× × ×

× × × ×× × ×

× × × ×× × ×

× × × ×× × ×

× × × × × × ×

2 4 7 3

9 11 5

6

1 10

8

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

A2 =

1234567891011

× × ×× × ×

× × × ×× × ×

× × × ×× × ⊗

× × × ×× × ×

× × × ×⊗ × ×

× × × × × × ×

2 4 7 3

9 11 5

6

1 10

8

G2

Page 48: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

48/94Etapa 21 2 3 4 5 6 7 8 9 10 11

A3 =

1234567891011

× × ×× × ×

× × × ×× × ⊗

× × × ×× × ⊗

× × × ×× × ×

⊗ × × ×⊗ × ×

× × × × × × ×

2 4 7 3

9 11 5

6

1 10

8

G3

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

A4 =

1234567891011

× × ×× × ×

× × × ×× × ⊗

× ⊗ × ×× × ⊗

× ⊗ × ×× × ×

⊗ × × ×⊗ × ×

× × × × × ×

2 4 7 3

9 11 5

6

1 10

8

G4

Page 49: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

49/94Etapa : : :

� Al final del proceso la matriz será:

1 2 3 4 5 6 7 8 9 10 111234567891011

26666666666664

� � �� � �� � � �� � � ˝� � ˝ � �

� � � ˝� � ˝ � ˝ ˝ �

� ˝ � ˝ �� ˝ � ˝ ˝ � ˝ �� ˝ ˝ � �� � � � � � �

37777777777775

� Los grafos de eliminación permiten realizar, independientemente de los valoresnuméricos, una eliminación de Gauss simbólica y determinar qué nuevoscoeficientes distintos de cero cómo máximo se van a crear.

� Reservando posiciones de memoria para esos nuevos coeficientes, se puederealizar la eliminación o factorización numérica como es habitual.

Page 50: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

50/94

El algoritmo de GRADO MÍNIMO

� Fue formulado por Tinney y Walker en 1967. Es el más más extendido y sencillopara reducir el número de rellenos que produce la eliminación de Gauss, u otrasimilar, en una matriz de estructura simétrica.

� La idea en que se basa es simple:

� Si en la etapa k de la factorización hay coeficientes no cero a la derecha dela diagonal principal de la fila k, al sumar un múltiplo de esta fila acualquiera de las filas k C 1 a n lo normal es que se produzcan nuevoscoeficientes no nulos en esas filas.

� Si se determina la fila ` de la submatriz activa con el menor número decoeficientes distintos de cero y se intercambia con la k, al igual que lascolumnas ` y k, el número de nuevos coeficientes distintos de cero en esasubmatriz será mínimo.

Page 51: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

51/94

� El nombre de grado mínimo viene de que en el grafo de eliminación Gk, elcoeficiente de la diagonal principal en la fila k representará el nudo que estáunido al menor número de nudos.

Paso 1 – Inicialización. Hacer i 1.

Paso 2 – Selección del nudo de grado mínimo. Seleccionar en el grafo de eliminaciónGk�1 D .V k�1; Ek�1/ aquel nudo vk de grado mínimo.

Paso 3 – Transformación. Formar el nuevo grafo de eliminación Gk D .V k; Ek/

eliminando vk de Gk�1.

Paso 4 – Bucle. Hacer i i C 1. Si i > jV j, parar. Si no, ir al paso 2.

Algoritmo de Grado Mínimo

Page 52: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

52/94

� Para ilustrar el proceso del algoritmo, consideremos el grafo de la figuraasociado a una matriz simétrica 7 � 7.

f g

e

b d

a c

� En las dos tablas que siguen se describen las 7 etapas de que consta laaplicación del algoritmo de grado mínimo a este grafo.

Page 53: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

53/94Etapa 1 a 3

Etapa k Grafo de Eliminacion Gk−1 Nudo Seleccionado Grado

1

f g

e

b d

a c

a 1

2

f g

e

b d

c

c 1

3

f g

e

b d

d 2

Page 54: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

54/94

Etapa 4 a 7

Etapa k Grafo de Eliminacion Gk−1 Nudo Seleccionado Grado

4

f g

e

b

e 2

5

f g

b

b 2

6 f g f 1

7 g g 0

Page 55: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

55/94

� Al final:

1 2 3 4 5 6 7

A =

1

2

3

4

5

6

7

× ×× ×× × × ×

× × ×× × × × × ⊗

× × × ×× ⊗ × ×

6 7

4

5 3

1 2

� El algoritmo de grado mínimo produce muy buenos resultados prácticos.

� Cuando el grafo a reordenar sea un árbol, el resultado no producirá coeficientesde relleno al efectuar la factorización ulterior.

Page 56: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

56/94� El algoritmo de grado mínimo no siempre da lugar a la ordenación óptima:aquella con el menor número de rellenos.

1 4 5 6 9

2

3

7

8

1 2 3 4 5 6 7 8 9

1

2

3

4

5

6

7

8

9

× × × ×× × × ×× × × ×× × × × ×

× × ×× × × × ×

× × × ×× × × ×× × × ×

� Si se aplica al grafo de la figura, el algoritmo elegirá el nudo número 5 como elinicial, lo que traerá como consecuencia que se produzca un relleno posterior enlas posiciones .4; 6/ y .6; 4/.

� Con la numeración de la figura no se producirían rellenos.

Page 57: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

57/94

El algoritmo de Cuthill-McKee

� Fue formulado en 1969 por Elizabeth H. Cuthill y J. McKee. Su objetivo es quelos coeficientes distintos de cero estén lo más cerca posible de la diagonalprincipal.

� Mecánica: Una vez numerado un nudo k, se numeran inmediatamente despuéslos que están unidos a él, no numerados previamente: los coeficientes distintosde cero de la fila k estarán lo más cerca posible de la diagonal.

Paso 1 – Inicialización. Seleccionar un nudo inicial r . Hacer v1 r .

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

Page 58: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

58/94

Definición Se dice que una matriz simétrica tiene un perfil monótono si para todo ky `, k < `, se cumple que lk � l`.

Perfil Monótono

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

Perfil No Monótono

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

�������� ��

Teorema La numeración dada por el algoritmo de Cuthill-McKee conduce a un perfilmonótono.

Page 59: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

59/94

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

1

Como el vector de residuos, r = b − Ax, es ortogonal al subespacio (en este caso es unplano) Im(A), lo es a los vectores que lo definen: a1 y a2; es decir, AT (Ax − b) = 0. Si lamatriz AT A es invertible,

r = b − Ax = (I − PIm(A))b,

donde PIm(A) = A(AT A)−1AT es la matriz de proyeccion ortogonal sobre Im(A) paralelamente

a ker(AT ).Como el vector de residuos, r = b − Ax, es ortogonal al subespacio (en este caso esun plano) Im(A), lo es a los vectores que lo definen: a1 y a2; es decir, AT (Ax − b) = 0. Si lamatriz AT A es invertible,

r = b − Ax = (I − PIm(A))b,

donde PIm(A) = A(AT A)−1AT es la matriz de proyeccion ortogonal sobre Im(A) paralelamente

a ker(AT ).

h i j

d e f g

a b c

10 9 7

8 4 5 6

1 2 3

� Empezando a numerar por el nudo a, en la figura de la derecha se puede ver lanumeración final que se obtiene con el algoritmo.

� Los nudos 5 y 6 podrían invertir su numeración según el algoritmo. Se haescogido ésta por estar el 5 antes en la pseudonumeración inicial.

Page 60: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

60/94

� Con la numeración obtenida, los coeficientes distintos de cero y ceros en laenvolvente de la matriz asociada, considerando sólo su parte triangular inferior,serán los que siguen.

1

Como el vector de residuos, r = b − Ax, es ortogonal al subespacio (en este caso es unplano) Im(A), lo es a los vectores que lo definen: a1 y a2; es decir, AT (Ax − b) = 0. Si lamatriz AT A es invertible,

r = b − Ax = (I − PIm(A))b,

donde PIm(A) = A(AT A)−1AT es la matriz de proyeccion ortogonal sobre Im(A) paralelamente

a ker(AT ).Como el vector de residuos, r = b − Ax, es ortogonal al subespacio (en este caso esun plano) Im(A), lo es a los vectores que lo definen: a1 y a2; es decir, AT (Ax − b) = 0. Si lamatriz AT A es invertible,

r = b − Ax = (I − PIm(A))b,

donde PIm(A) = A(AT A)−1AT es la matriz de proyeccion ortogonal sobre Im(A) paralelamente

a ker(AT ).

h i j

d e f g

a b c

10 9 7

8 4 5 6

1 2 3

1 2 3 4 5 6 7 8 9 101

2

3

4

5

6

7

8

9

10

2666666666666664

�� �� �� � �� 0 �� 0 � �� � � �� 0 0 0 �� 0 0 � � �

� � �

3777777777777775:

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

Page 61: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

61/94� Ahora bien, si se comienza a numerar el grafo por el nudo e, el resultado deaplicar el algoritmo de Cuthill-McKee es el de la figura.

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

8 5 6

3 1 9 10

7 2 4

� Los coeficientes distintos de cero y ceros son:1 2 3 4 5 6 7 8 9 10

1

2

3

4

5

6

7

8

9

10

2666666666666664

�� �� 0 �� � 0 �� 0 � 0 �� 0 0 0 � �� 0 0 0 0 �� 0 � 0 0 �� 0 � 0 0 �� 0 � 0 0 � �

3777777777777775:

El ancho de banda de esta matriz es 6. El número de coeficientes de laenvolvente es 46; de ellos, 20 cero.La elección del nudo inicial, una vez más, es una cuestión crítica.

Page 62: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

62/94

Selección del nudo inicial

� Normalmente, el mejor nudo de partida es uno periférico. Obtengamos uno.

Paso 1 – Inicialización. Seleccionar un nudo arbitrario r .

Paso 2 – Generar estructura de niveles. Construir la estructura de niveles del grafotomando como nudo raíz 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/ todavía no tratado de grado mínimo: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 nohay más nudos, parar.

Page 63: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

63/94

� Comenzando por cualquier nudo, por ejemplo e, apliquemos este procedimientoal ejemplo: las tres etapas de que consta están la figura.

h i j

d e f g

a b c

2 1 1

10

2 2

2 1 1

h i j

d e f g

a b c

4 3 3

32

3 3

0 1 2

h i j

d e f g

a b c

0 1 2

12

3 3

4 3 3

� Los números al lado de los nudos del grafo indican su excentricidad tomandocomo raíz el que se indica como 0.

� Obsérvese que del resultado del algoritmo se desprende que tanto el nudo acomo el h podrían utilizarse como nudos de partida pues tienen la mismaexcentricidad: 4.

Page 64: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

64/94

El algoritmo inverso de Cuthill-McKee

Reducción de la envolvente de una matriz dispersa simétrica

� En 1971 George descubrió que utilizando el algoritmo de Cuthill-McKee, peroinvirtiendo el orden de la numeración final, se conseguía una matriz con elmismo ancho de banda pero con una envolvente con un número de coeficientesmenor o igual.

Teorema Sea A una matriz cuyo perfil es monótono. El número de coeficientes deEnv.A/, numerando el grafo asociado a A de acuerdo con el resultado obtenido de aplicarel algoritmo inverso de Cuthill-McKee, es a lo sumo el mismo que el de la matriz asociadaal grafo numerado de acuerdo con el resultado del algoritmo ordinario de Cuthill-McKee.

Page 65: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

65/94� Ejemplo Considérese el grafo que venimos manejando.

a

b

c

d

e

f

g

� Si se reordena con el algoritmo de Cuthill-McKee daría:1 2 3 4 5 6 7

A =

1

2

3

4

5

6

7

× ×× × × × × × ×

× × 0 0 0 0

× 0 × 0 0 0

× 0 0 × 0 0

× 0 0 0 × 0

× 0 0 0 0 ×

2

4

3

6

7

5

1

Page 66: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

66/94

� Por el contrario, utilizando el algoritmo de Cuthill-McKee inverso, se conseguiríael efecto siguiente.

1 2 3 4 5 6 7

A =

1

2

3

4

5

6

7

× ×× ×

× ×× ×

× ×× × × × × × ×

× ×

6

4

5

2

1

3

7

� Como se puede observar, desaparecen todos los ceros que aparecían antes,ahorrándose las correspondientes posiciones de memoria para guardarlos. u

Page 67: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

67/94

� Si al grafo que se utilizaba para introducir el algoritmo de Cuthill-McKee, se leaplicada el algoritmo inverso, el resultado que se obtiene es el que describe lafigura.

1

Como el vector de residuos, r = b − Ax, es ortogonal al subespacio (en este caso es unplano) Im(A), lo es a los vectores que lo definen: a1 y a2; es decir, AT (Ax − b) = 0. Si lamatriz AT A es invertible,

r = b − Ax = (I − PIm(A))b,

donde PIm(A) = A(AT A)−1AT es la matriz de proyeccion ortogonal sobre Im(A) paralelamente

a ker(AT ).Como el vector de residuos, r = b − Ax, es ortogonal al subespacio (en este caso esun plano) Im(A), lo es a los vectores que lo definen: a1 y a2; es decir, AT (Ax − b) = 0. Si lamatriz AT A es invertible,

r = b − Ax = (I − PIm(A))b,

donde PIm(A) = A(AT A)−1AT es la matriz de proyeccion ortogonal sobre Im(A) paralelamente

a ker(AT ).

1 2 3 4 5 6 7 8 9 1012345678910

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

×× ×× × ×

× 0 ×× ×× × ×

× × × 0 0 ×× × × ×

× × ×× ×

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

1 2 4

3 7 6 5

10 9 8

� En este caso el ancho de banda sigue siendo 5 y la Env.A/ pasa a ser 29, de losque sólo 3 son cero.

Page 68: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

68/94

Matrices dispersas no simétricas

� También aquí, para evitar nuevos coeficientes de relleno, en un proceso similaral de eliminación de Gauss de la matriz A, se efectúa una reordenación de filasy columnas.

� Si al sistema Ax D b se le aplican unas permutaciones a la izquierda y a laderecha, representadas por las matrices de permutación P y Q, y el sistemaoriginal se reescribe

P A Q QTx D Pb;

donde QTQ D I , haciendo y D QTx y c D Pb, se tiene que,

By D c;

donde B D PAQ es la matriz A reordenada.

Page 69: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

69/94� El objetivo de estas manipulaciones es:

� Que B tenga una dispersidad mejor que la de A;

� que su factorización sea numéricamente estable; y

� que el número de coeficiente de rellenos introducidos por la factorización oeliminación de Gauss sea el menor posible.

� Si A no tiene ninguna estructura especial, siempre se pude reordenar en formatriangular inferior en bloques,26664

A11

A21 A22::: : : :

An1 An2 � � � Ann

3777526664

x1x2:::

xn

37775 D26664

b1b2:::

bn

37775 ;donde los Aij son matrices, siendo las Ai i cuadradas de orden ni :Pn

iD1 ni D n.

Page 70: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

70/94

� Ejemplo El sistema que se ilustra a continuación, sin ordenar y reordenado.

11 s'

I I I i i \

p- iV *

- r- -q -I I " 1

J

E I ' II I I. I

L

P " "I

' ^ "I< .

.I

V"

ii

Vi

y

i - ;

1 \

i

i

i

I

I

I

I II , I I

1,

;l. h 11 ,i.I

II

I I I

il . II ;i i

I Vr

fi 1

L

H

1i - t | : :

f t I J i ! I

' Ii" h . i

Nl.m .> ""

. , ,

\

M

H ? I

1

II

V

In

I. I , I

|'

I 1|I I I

I

V' i V '

l l

l

l I l l l li i i

J .I

1 ll li i li

l

i

l , l

: J :V•m I

VIv

i

i i

i : ij

j i Iii

tvI

II

.1 I'1 x i . I

M

I L - 11 v

i M

i

h -h - i

I .11

\

( 'iS.

h Hr1

r .N

1I ^1 II I

II1I

I

. 1 M ' ' r S. 1

' "Y,P

I

II . .

I I I

I 1Ih ’ l I. ... J J11.!.1

ii

\i I I

i irfi, v

; '

i

h

I I

I .

I

' 1 . . I> 5 „ !

<

.k'

.

iu-

.. « i

\ ,'i i i

i 'VI I I

V -

V...

II

I I

"l^l

1 I- I - I ' II

! ! I^ I

" " " n

11

I!.

I

\ V

I' H .. 1 :

! ,[ ; 1

: .

i-I I

.\ '

Si . . n,.H 1 I I . l

IT\ I

I.I

ii

1

.vr

i

\

I I i

V

I '1\

Page 71: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

71/94

Nociones básicas 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 también finito, E, de arcos. Unarco es un par de nudos. Si los arcos son ordenados, el grafo se denominadigrafo o grafo dirigido.

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

� El número 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 biyección ˛ W f1,2; : : : ; jN jg ! V . Siempre que hablemos de un grafo dirigido se supondránumerado.

Page 72: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

72/94

� El grado de entrada o llegada de un nudo es el número de nudos que a él llegan;el grado de salida, el número 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 talque uiC1 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 lalongitud del camino más corto de u a v (la distancia desde v a u puede serdistinta o incluso indefinida).

� Un digrafo se dice conexo si lo es el grafo no dirigido que se obtiene al suprimirlas direcciones en los arcos del digrafo.

Page 73: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

73/94

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

� En dicho digrafo GA D .V A; EA/, los arcos EA son tales que

.vi ; vj / 2 EA, aij ¤ 0:� A cualquier coeficiente diagonal ai i ¤ 0 también le corresponde un arco queparte y llega a vi . Cuando todos son no nulos –transversal completo–, no serepresentan.

� En la figura se puede ver una matrizno simétrica 15� 15 y su digrafo aso-ciado.

1 2 3 4 5 6 7 8 9 101112131415123456789101112131415

266666666666666666664

� �� �� � �� �

� �� �� �� � � �

� �� � �� �

� � � �� � � �� �

� �

377777777777777777775

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

× ×× ×

× × ×× ×

× ×× ×× ×

× × × ×× ×

× × ×× ×

× × × ×× × × ×

× ×× ×

12 13 14 15

7 8 9 10 11

5 6

1 2 3 4

Page 74: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

74/94

� Los nudos 6, 7 y 9 son adyacentes al nudo 8; si W D f8, 13g, Adj.W / D f6,7, 9, 12, 14g; el nudo 5 tiene un grado de entrada de 2 y de salida de 1; el nudo4 es accesible desde el 8.

1 2 3 4 5 6 7 8 9 101112131415123456789101112131415

266666666666666666664

� �� �� � �� �

� �� �� �� � � �

� �� � �� �

� � � �� � � �� �

� �

377777777777777777775

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

× ×× ×

× × ×× ×

× ×× ×× ×

× × × ×× ×

× × ×× ×

× × × ×× × × ×

× ×× ×

12 13 14 15

7 8 9 10 11

5 6

1 2 3 4

Si a una matriz se le efectúan permutaciones simétricas, en sudigrafo asociado sólo se modifica la numeración de los nudos.

Page 75: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

75/94

Eliminación de Gauss en matrices no simétricas

� Con digrafos. En una etapa k el digrafo de eliminación se forma eliminando delde la fase k � 1 el nudo vk, todos los arcos que a él llegan o de él parten, yañadiendo un arco .u! w/ cuando existe un camino dirigido fu, v, wg.

� En la primera etapa en este digrafo, el grafo de eliminación se obtiene quitandoel nudo 1 y añadiendo el arco .5! 2/, según se indica.

1 2 3 4 5 6 7 8 9 101112131415123456789101112131415

2666666666666666666666664

� �

� �

� � �

� �

� �

� �

� �

� � � �

� �

� � �

� �

� � � �

� � � �

� �

� �

3777777777777777777777775

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

× ×× ×

× × ×× ×

× ×× ×× ×

× × × ×× ×

× × ×× ×

× × × ×× × × ×

× ×× ×

12 13 14 15

7 8 9 10 11

5 6

1 2 3 4

1 2 3 4 5 6 7 8 9 101112131415123456789101112131415

2666666666666666666666664

� �

� �

� � �

� �

� ˝ ˝ ˝ � ˝ ˝

� � ˝ ˝

� � ˝ ˝

� � � �

� �

� � �

� �

� � ˝ ˝ ˝ � � ˝ ˝

� ˝ ˝ ˝ � � � ˝

� ˝ ˝ � ˝

� �

3777777777777777777777775

Page 76: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

76/94

Estructura triangular en bloques y transversal completo

� Para conseguir triangularizar por bloques una matriz A dispersa cualquiera seprocede en dos fases:

Fase 1. – Encontrando un transversal completo de esa matriz.

Fase 2. – Reordenando el resultado de la fase 1 mediante permutacionessimétricas.

� Cualquier matriz regular A se puede reordenar mediante permutaciones nosimétricas de tal forma que PAQ tenga un transversal completo.

� Si la matriz es singular esto puede no cumplirse.

Page 77: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

77/94� Con transversal completo, puede reordenarse mediante permutaciones simétricaspara 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 talforma que entonces sí lo tenga, y así reordenada es reducible, se dicebirreducible.

Algoritmo de Hall para obtener un transversal completo

� Este algoritmo, M. Hall (1956), requiere n etapas en cada una de las cuales secoloca un coeficiente distinto de cero –si no lo está ya– en la correspondienteposición de la diagonal principal.

� Supongamos que se han realizado k etapas y que los primeros k coeficientes dela diagonal principal son ya distintos de cero.

Page 78: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

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 lasubmatriz activa:

� Realizando los intercambios de filas y columnas necesarios se puede llevarese coeficiente a la posición .k C 1; k C 1/.� Los coeficientes de subíndices 1 a k no deben verse afectados por estosintercambios: los k primeros coeficientes de la diagonal principal seguiránsiendo distintos de cero.

c) Que sólo existan coeficientes cero en la submatriz activa:

� Mediante el trazado de un camino creciente se puede conseguir colocarun coeficiente distinto de cero en akC1 kC1. Si no se encuentra esecamino, la matriz será singular.

Page 79: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

79/94� El trazado de un camino creciente comienza, en una etapa k C 1, en elcoeficiente .k C 1; k C 1/:� Continúa por la fila kC 1 hasta que se encuentra con un coeficiente distintode cero, en una columna ` (tal columna debe existir pues de lo contrariotodos los coeficientes de la fila k C 1 serán cero y la matriz, por tanto,singular);

� De aquí al coeficiente .`; `/ a lo largo de la columna `;

� A continuación, por la fila ` hasta hallar un coeficiente distinto de cero, porejemplo en la columna m, etc.

� Este camino no puede atravesar una misma fila o columna más 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 filas1 a k y las columnas k C 1 a n.

Page 80: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

80/94� Para aclarar el procedimiento, consideremos una matriz simbólica 12 � 12 y elprocedimiento descrito es su etapa 9.

12

11

10

9

8

7

6

5

4

3

2

1

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

××

× ×

××

× ×

×

××

××

×

� Esta etapa 9 comienza en la posición .9; 9/.

� La submatriz de coeficientes 9 a 12 son todos cero por lo que se trata de trazarun camino creciente.

Page 81: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

81/94Éste comienza en la posición .9; 9/, sigue por la fila 9 hasta encontrar el coeficiente distinto de cero de la columna 5;continúa por la columna 5 hasta encontrar el correspondiente coeficiente distinto de cero de la diagonal principal; sigue porla fila 5 hasta encontrar el coeficiente distinto de cero de la columna 2; continúa por la columna 2 hasta encontrar elcoeficiente distinto de cero de la diagonal principal en la fila 2; sigue por la fila 2 hasta encontrar el coeficiente distinto decero de la columna 4; continúa por la columna 4 hasta alcanzar el coeficiente distinto de cero de la diagonal principal en lafila 4; sigue por la fila 4 hasta encontrar el coeficiente distinto de cero de la columna 7; continúa por la columna 7 hastaalcanzar el coeficiente distinto de cero de la diagonal principal en la fila 7; sigue por la fila 7 encontrándose que el únicocoeficiente 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 delcamino (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; continúa en la columna 6 hastala diagonal principal en la fila 6; sigue por esa fila 6 hasta llegar al coeficiente distinto de cero de la columna 1; continúa porla columna 1 hasta alcanzar el coeficiente distinto de cero de la diagonal principal en la fila 1; sigue por la fila 1, parándoseal llegar al primer coeficiente distinto de cero que encuentra en la columna 12 por estar en la submatriz que nos interesa.

El camino es puesf9; 5; 2; 6; 1; 12g:

Encontrado el camino, se efectúan los siguientes intercambios de filas

la fila 9 con la 5Ila fila 5 con la 2Ila fila 2 con la 6Ila fila 6 con la 1Ila fila 1 con la 12 yla fila 12 con la 9:

que trasladan el coeficiente distinto de cero .1; 12/ a la posición .9; 12/.

Por último se intercambian las columnas 9 y 12.

Si el coeficiente .6; 1/ fuese cero, hubiésemos encontrado que las filas 9, 5, 2, 4, 7 y 6 tienen coeficientes distintos de cerosólo en las columnas 5, 2, 4, 7 y 6, lo que significaría que la matriz es singular.

Page 82: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

82/94

Permutaciones simétricas para obtener una estructura triangularen bloques

� Obtenido un transversal completo, la siguiente fase para llegar a una matriztriangular en bloques consiste en encontrar otra permutación que haga26664

B11

B21 B22::: : : :

Bn1 Bn2 � � � Bnn

37775 ;donde cada bloque diagonal, B i i , no se pueda reducir más.

� Los algoritmos para conseguir este propósito se basan en encontrar los ciclos“fuertemente conexos” en el digrafo asociado.

Page 83: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

83/94

� Si existiesen dos de estos ciclos fuertes y se renumerasen los nudos de tal formaque los del primero fuesen los nudos 1 al k y los del segundo k C 1 al n, seobtendría una matriz triangular inferior en dos bloques, el primero con kcolumnas y el segundo con n � k.

1 2 3 4

5

� En el grafo dirigido de la figura existen dos ciclos fuertes, el formado por losnudos 1 y 2 y el que definen 3, 4 y 5. La estructura simbólica en 2 bloques desu matriz asociada es

� �� �� � �

� �� �

:

Page 84: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

84/94

Matrices dispersas generales: eliminación de Gauss

� Si el sistema no presenta una estructura de dispersidad especial y tampocointeresa triangularizarla por bloques, la forma más general de abordar suresolución consiste en utilizar directamente la eliminación de Gauss teniendo encuenta 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 economía de 1990.

Page 85: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

85/94� Lo formuló en 1957 y consiste3 en factorizar la matriz mediante eliminación deGauss con pivotación, escogiendo como elemento pivote en una etapa k uno akijde A que sea numéricamente aceptable y que minimice

.rki � 1/.ckj � 1/;donde rki es el número de coeficientes no cero en la fila i de la submatriz activay ckj los no ceros en la columna j .

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

L

U1

11

× × × ×× × × ×× × × ×× × × ×

c

rT Obsérvese que es más conveniente usar .rki � 1/.ckj � 1/que rki c

kj pues de esta manera se fuerza a que se elija un

coeficiente akij tal que en su fila o columna sólo exista élcomo coeficiente distinto de cero.

3La estrategia resultante es similar a la de grado mínimo.

Page 86: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

86/94

Índice

� Matrices dispersas

� Almacenamiento en ordenador de matrices dispersas

� Operaciones algebraicas elementales con matrices dispersas

� Solución de grandes sistemas lineales de matriz dispersa

� Matrices dispersas simétricas

� Matrices dispersas no simétricas

� Mínimos cuadrados

Page 87: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

87/94

Problemas de mínimos cuadrados de grandesdimensiones

� Son problemas de mínimos cuadrados lineales,

minimizarx2Rn

kAx � bk2

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

Page 88: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

88/94

Las ecuaciones normales

� De las ecuaciones normales

minimizarx2Rn

kAx � bk2” AT .Ax � b/ D 0

si suponemos A es de rango completo, ATA es simétrica y definida positiva.

Teorema Supóngase que no se producen errores numéricos de cancelación en el cálculode ATA, entonces, �

ATA�jk¤ 0, aij ¤ 0 y aik ¤ 0

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

� Este resultado permite saber dónde se producirán coeficientes de relleno alobtener ATA.

Page 89: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

89/94

Paso 1 – Determinar la estructura simbólica de ATA.

Paso 2 – Determinar una permutación de columnas Q tal que el factor de Cholesky deQTATAQ tenga una estructura dispersa buena.

Paso 3 – Factorizar simbólicamente por Cholesky QTATAQ y generar las estructurasde datos y memoria necesarias para G .

Paso 4 – Calcular numéricamente B D QTATAQ y c D QTATb; almacenar B enla estructura de datos correspondiente a G .

Paso 5 – Calcular numéricamente la factorización de Cholesky G TG de B. ResolverG T z D c, Gy D z y, por fin, x D Qy .

Algoritmo básico para mínimos cuadrados de matriz dispersa

Page 90: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

90/94

Transformaciones ortogonales_Método de George-Heath

� Recordemos que:

� Un conjunto de transformaciones ortogonales, representadas porQ 2 Rm�m, puede reducir A 2 Rm�n (que supondremos de rango n) yb 2 Rm de la forma

QA D�R1

0

�y Qb D

�c

d

�;

donde R1 2 Rn�n es una matriz triangular superior y c 2 Rn.

� La solución del problema de mínimos cuadrados se obtiene de R1x D c; lasuma de residuos al cuadrado es kdk22.

Page 91: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

91/94

� El algoritmo de George y Heath [1980] procesa las filas de A secuencialmentecon esta mecánica.

1. Ri�1 designa la matriz triangular superior que se obtiene después de procesarlas filas aT1 ; : : : ; a

Ti�1.

Al procesar la fila aTi D Œai1, ai2; : : : ; ain� se buscan de izquierda a derecha loscoeficientes distintos de cero.Para cada aij ¤ 0, i > j , se define una transformación de Givens que involucrea la fila j de Ri�1 y anule aij .

� Procediendo así se pueden crear nuevos coeficientes distintos de cero enRi�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 Ri�1 todavía no se ha visto afectada por ninguna rotación y debeser toda cero:� Lo que resulta de la fila i debe insertarse en la fila j .

Page 92: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

92/94

� Un ejemplo de este proceso actuando sobre los coeficientes de la fila 9 de unamatriz 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 símbolos ˝ designan los coeficientes involucrados en la eliminación de aT9 .Los que se crean de relleno en R8 y aT9 durante la eliminación se designanmediante ˚.

� Obsérvese que los tres últimos coeficientes de la fila 9, una vez anulados del 1 al5, reemplazan a los de la fila 6, que eran 0.

Page 93: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

93/94Ordenación de filas

� El número de operaciones del proceso descrito depende también del orden de lasfilas. Por ejemplo, las matrices

A D

266666666666664

� � � � ��:::

������

377777777777775

9>>=>>;m9>>>>=>>>>;ny PA D

266666666666664

��:::

�� � � � �����

377777777777775

9>>=>>;m9>>>>=>>>>;n

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 elprimero fi , ordenar primero las filas cuyos índices fi , i D 1, 2; : : : cumplan que fi � fksi i < k y luego, para cada grupo de filas tales que fi D k, k D 1; : : : ;mKaxi fi , ordenarlas filas según `i crecientes.

Page 94: New MatemáticasdeEspecialidad–IngenieríaEléctrica Matrices … · 2016. 3. 6. · Solución de sistemas lineales de matriz dispersa Algoritmogeneralpararesolvergrandessistemaslineales

h i j

d e f g

a b c

10 8 7

9 4 6 5

1 2 3

94/94

� Con las consideraciones anteriores, el algoritmo de ortogonalización de George yHeath para mínimos cuadrados queda así:

Paso 1 – Llevar a cabo los Pasos 1 a 3 del Algoritmo básico anterior.

Paso 2 – Determinar una permutación de filas P tal que las filas de PAQ tengan unosíndices de columnas `i crecientes.

Paso 3 – Calcular numéricamente R1 y c procesando las filas de ŒPAQ, Pb� mediantetransformaciones de Givens.

Paso 3 – Resolver Ry D c. Hacer x D Qy .