Sei sulla pagina 1di 52

Calcul Stiinic t

Capitolul 3: Matrice rare


Bogdan Dumitrescu Facultatea de Automatica si Calculatoare Universitatea Politehnica Bucuresti

CS cap. 3: Matrice rare p. 1/52

Cuprins
Noiuni de baza despre matrice rare t Formate de memorare

Permutari pentru produsul MV: algoritmul Cuthill-McKee Rezolvarea sistemelor triunghiulare Factorizarea Cholesky umplere, arbore de eliminare, factorizare simbolica factorizare numerica Algoritmi iterativi pentru rezolvarea sistemelor liniare

Algoritmi de nmulire matrice-vector t

permutare, algoritmi: grad minim, nested dissection

CS cap. 3: Matrice rare p. 2/52

Matrice rare
O matrice rara are majoritatea elementelor egale cu zero Lucram doar cu matrice patrate n n In general: N Z = O(n) Notam N Z numarul de elemente nenule Exemplu (didactic): matrice de dimensiune 6 6
0

11 15 26 21 22 32 33 34 A= 43 44 45 41 52 54 55 56 62 65 66

3 nz = 19

CS cap. 3: Matrice rare p. 3/52

Memorarea matricelor rare


n practica dimensiunile pot mult mai mari Memorarea a n2 elemente (ca pentru matrice pline), ar

deveni prohibitiva

De aceea se memoreaza valorile elementelor nenule Formate de memorare Triplet ("trivial") poziiile lor t

Comprimat pe linii (compressed row storage) Comprimat pe coloane (compressed column) Diagonale "zimate" (jagged diagonal) t . . . si altele

CS cap. 3: Matrice rare p. 4/52

Memorare si algoritmi
Modul de memorare are efect asupra formei algoritmilor si

deci asupra vitezei de execuie pe diverse arhitecturi de t calcul matrice-vector (util n rezolvarea iterativa a sistemelor liniare)
A Rnn , x, y Rn

Vom ilustra ecare format cu algoritmul de nmulire t

Algoritmul standard pentru calculul y y + Ax, cu

Pentru i = 1 : n Pentru j = 1 : n yi yi + aij xj


Pentru matrice plina sunt 2n2 operaii si n2 accese la t

memorie pentru elementele lui A (o data la ecare element)

CS cap. 3: Matrice rare p. 5/52

Formatul triplet
Pentru ecare element nenul aij se memoreaza poziia (i, j) t Se utilizeaza doi vectori, II si JJ , de lungime N Z ecare Memorie necesara: N Z reali, 2N Z ntregi

nzval = 11 15 21 22 26 32 33 34 41 43 44 45 52 54 55 56 62 65 66 II = 1 1 2 2 2 3 3 3 4 4 4 4 5 5 5 5 6 6 6 JJ = 1 5 1 2 6 2 3 4 1 3 4 5 2 4 5 6 2 5 6
Elementele nenule pot aranjate n orice ordine Acces dicil la un element oarecare Informaie redundanta t

CS cap. 3: Matrice rare p. 6/52

Formatul triplet produsul MV


nmulire matrice-vector: t

Pentru k = 1 : N Z y(II(k)) y(II(k)) + nzval(k) x(JJ(k))


2N Z operaii, 2N Z accese la memorie, exact ct e nevoie t Algoritmul nu depinde de ordinea de memorare n nzval Accesele la x si y nu sunt neaparat localizate

CS cap. 3: Matrice rare p. 7/52

Formatul comprimat pe linii (CL)


Elementele nenule se memoreaza n ordinea liniilor Indicii de coloane se memoreaza integral Indicii primelor elemente ale unei linii se memoreaza

separat

nzval = 11 15 21 22 26 32 33 34 41 43 44 45 52 54 55 56 62 65 66 colind = 1 5 1 2 6 2 3 4 1 3 4 5 2 4 5 6 2 5 6 rowptr = 1 3 6 9 13 17 20


Daca nzval(k) = aij , atunci rowptr(i) k < rowptr(i + 1) Convenional, se pune rowptr(n + 1) = N Z + 1 t Memorie necesara: N Z reali, N Z + n + 1 ntregi

CS cap. 3: Matrice rare p. 8/52

Formatul CL produsul MV
nmulire matrice-vector: t

Pentru i = 1 : n Pentru k = rowptr(i) : rowptr(i + 1) 1 y(i) y(i) + nzval(k) x(colind(k))


2N Z operaii, 2N Z accese la memorie t Accesele la x nu sunt localizate Vectorii care apar in produsul scalar din a doua bucla sunt

de regula scuri t

Exerciiu: algoritm pentru y y + AT x ! t

CS cap. 3: Matrice rare p. 9/52

Formatul comprimat pe coloane (CC)


Similar cu CL, dar pe coloane Identic cu CL pentru AT

Numit si formatul Harwell-Boeing

nzval = 11 21 41 22 32 52 62 33 43 34 44 54 15 45 55 65 26 56 66 rowind = 1 2 4 2 3 5 6 3 4 3 4 5 1 4 5 6 2 5 6 colptr = 1 4 8 10 13 17 20


Daca nzval(k) = aij , atunci colptr(j) k < colptr(j + 1) Memorie necesara: N Z reali, N Z + n + 1 ntregi

CS cap. 3: Matrice rare p. 10/52

Formatul CC produsul MV
nmulire matrice-vector: t

Pentru j = 1 : n Pentru k = colptr(j) : colptr(j + 1) 1 y(rowind(k)) y(rowind(k)) + nzval(k) x(j)


2N Z operaii, 2N Z accese la memorie t Accesele la y nu sunt localizate Vectorii care apar in SAXPY din a doua bucla sunt de

regula scuri t

CS cap. 3: Matrice rare p. 11/52

Formatul diagonale zimtate (DZ-ITPACK)


Forma simplicata: ITPACK

Idee: memorare ntr-o matrice plina n L, unde L este

numarul cel mai mare de elemente nenule pe o linie


11 21 32 41 42 62 15 22 33 43 54 65 0 0 26 0 34 0 44 45 55 56 66 0

nzval =

colind =

1 1 2 1 2 2

5 2 3 3 4 5

0 6 4 4 5 6

0 0 0 5 6 0

Prima coloana din nzval e o "diagonala zimata", etc. t Memorie necesara: nL N Z reali, nL ntregi Ecient cnd numarul de elemente nenule de pe ecare

linie este cam acela i s

CS cap. 3: Matrice rare p. 12/52

Formatul DZ-ITPACK produsul MV


nmulire matrice-vector: t

Pentru i = 1 : n Pentru j = 1 : L y(i) y(i) + nzval(i, j) x(colind(i, j))


2nL 2N Z operaii (apar nmuliri cu 0) t t Accesele la x nu sunt localizate Vectori lungi (N ) !

Ecient pe calculatoare vectoriale

CS cap. 3: Matrice rare p. 13/52

Formatul DZ
Ranare a formatului ITPACK

Liniile matricii sunt permutate n ordinea descrescatoare a

numarului de elemente nenule (permutarea trebuie memorata ntr-un vector suplimentar)

Matricea redusa memorata ntr-un vector, ca n formatul CC La fel indicii de coloane Format avantajos tot pe calculatoare vectoriale

CS cap. 3: Matrice rare p. 14/52

Cresterea vitezei produsului MV


Am vazut ca formatul dicteaza algoritmul MV si deci timpul

de execuie t

Alte idei de cre tere a vitezei: s Format pe blocurichiar daca matricele sunt rare, ele

pot conine blocuri aproape pline t Matricea poate permutata (explicit sau nu) nainte de nmulire; se calculeaza P T y P T y + (P T AP )(P T x), t unde P e o matrice de permutare. Calculul permutarii depinde de scopul propus.

CS cap. 3: Matrice rare p. 15/52

Format comprimat pe blocuri


Presupunem ca matricea A este partiionata n blocuri t

nb nb

15 11 21 22 32 33 34 A= 41 42 43 44 51 52 55 62 65

16 26 56 66

Se utilizeaza unul din formatele prezentate anterior,

memornd nsa blocuri n loc de elemente

Blocurile se memoreaza ca ind pline, deci inclusiv zerourile Format avantajos pe calculatoare cu memorie ierarhica

CS cap. 3: Matrice rare p. 16/52

Format CL pe blocuri
Format comprimat pe linii (un bloc e memorat pe coloane)

nzval = 11 21 0 22 15 0 16 26 . . . 55 65 56 66 colind = 1 3 1 2 2 3 rowptr = 1 3 5 7


NZB numarul de blocuri nenule (6 mai sus) Memorie necesara: N ZB n2 N Z reali b N ZB + n/nb + 1 ntregi Exerciiu: produsul MV ! t

Se memoreaza mai puini ntregi dect n formatul CL scalar t

CS cap. 3: Matrice rare p. 17/52

Permutari si produsul MV
Matrice de permutare: matricea unitate cu liniile (coloanele)

permutate

P T y P T y + (P T AP )(P T x): se schimba doar

numerotarea variabilelor

Scop posibil: cre terea localitaii accesului la x (n formatul t s

CL) sau la y (CC)

Produsului MV pentru CL

Ideal ar ca indicii lui x sa e apropiai pentru valori k t

Pentru k = rowptr(i) : rowptr(i + 1) 1 y(i) y(i) + nzval(k) x(colind(k))

apropiate, astfel nct valorile x respective sa ramna in memoria rapida grupai n jurul valorii corespunzatoare diagonalei. t

Situaia ideala: matrice bandaindicii de coloana sunt t

CS cap. 3: Matrice rare p. 18/52

Permutarea reverse Cuthill-McKee


Se poate deci cauta o permutare P astfel nct P T AP sa

aiba elementele ct mai aproape de diagonala

Problema e dicila, se utilizeaza metode euristice

Reverse Cuthill-McKee: algoritm de reducere a benzii


0 0

10

10

20

20

30

30

40

40

50

50

60 0 10 20 30 nz = 180 40 50 60

60 0 10 20 30 nz = 180 40 50 60

CS cap. 3: Matrice rare p. 19/52

Graf de conectivitate
(Ne gndim de acum nainte doar la matrice simetrice) Asociem matricei A un graf de conectivitate Nodurile sunt numerotate de la 1 la n Arcul (i, j) exista daca aij = 0

Gradul unui nod este numarul de arce adiacente: numarul

de elemente nenule de pe linia (coloana) respectiva a matricei numerotare a nodurilor

Matricea P T AP are un graf cu structura identica, dar cu alta Exerciiu: matrice rara 4 4, graful asociat, efectul unei t

permutari elementare (care schimba ntre ele doua linii/coloane)

CS cap. 3: Matrice rare p. 20/52

Algoritmul Cuthill-McKee
Se porne te de la graful de conectivitate al unei matrice s Scop: reordonarea nodurilor ntr-o lista L astfel nct

matricea asociata are largime de banda maxaij =0 |i j| ct mai mica acela i grad, ordinea e aleatoare) s

Primul n L e nodul cu grad minim (ntre mai multe noduri cu Urmatoarele poziii n L sunt ocupate de vecinii primului t

nod, n ordine crescatoare a gradului nu sunt deja n L), etc.

Se continua punnd n L vecinii celui de-al doilea nod (daca Ordonarea corespunde unei traversari n laime a unui t

arbore de acoperire al grafului

"Reverse": n nal L se ordoneaza invers

CS cap. 3: Matrice rare p. 21/52

Cuthill-McKee: exemplu
Pentru matricea din stnga, rezultatul este: 5, 3, 2, 1, 4, 6 Matricea reordonata este cea din dreapta

1 2 3 4 5 6

5 3 2 1 4 6

CS cap. 3: Matrice rare p. 22/52

De ce reverse ?
Inversarea ordinii nu modica laimea de banda t n schimb mic oreaza (nu cre te, de fapt) prolul s s Notam fi indicele celui mai mic j pentru care aij = 0 Notam di = i fi (ct de departe este cel mai departat

element de diagonala, pe linia i)


n i=1 di

Prolul este

Un prol mai mic nseamna o mai buna localitate a

acceselor la x n produsul MV, format CL

CS cap. 3: Matrice rare p. 23/52

Algoritmul GPS
Ali algoritmi de reducere a largimii benzii utilizeaza euristici t

sau optimizare

Un exemplu: algoritmul Gibbs-Poole-Stockmeyer (GPS)

Se gase te nti un pseudo-diametru, adica doua noduri s

aate la distana aproape maxima unul de altul t

(Distana dintre doua noduri este lungimea drumului cel mai t

scurt ntre ele)

Se construie te lista L ca n Cuthill-McKee, dar pornind de s

la ambele capete rapid

Rezultatele nu sunt mult mai bune, dar algoritmul e mai

CS cap. 3: Matrice rare p. 24/52

Rezolvarea sistemelor triunghiulare


Fie A o matrice inferior triunghiulara: aij = 0, i < j Algoritm pentru rezolvarea Ax = b, pe linii

xb Pentru i = 1 : n Pentru j = 1 : i 1 xi xi aij xj xi xi /aii Algoritm pentru rezolvarea Ax = b, pe coloane xb Pentru j = 1 : n xj xj /ajj Pentru i = j + 1 : n xi xi aij xj

Fiecare element al matricei A e folosit exact o data

CS cap. 3: Matrice rare p. 25/52

Rezolvare sisteme triunghiulare n format CL


Matricea A este rara, memorata n format CL

Presupunem ca toate elementele diagonale sunt nenule Daca aij = 0, nu se efectueaza nici o operaie, deci e t

Matricea ind memorata pe linii, folosim algoritmul pe linii

sucient sa parcurgem elementele nenule

Numar de operaii: aprox. 2N Z t

(Elementul diagonal este ultimul pe linia lui !)

xb Pentru i = 1 : n Pentru k = rowptr(i) : rowptr(i + 1) 2 x(i) x(i) nzval(k) x(colind(k)) x(i) x(i) / nzval(rowptr(i + 1) 1)

CS cap. 3: Matrice rare p. 26/52

Rezolvare sisteme triunghiulare n format CC


Matricea A este acum memorata n format CC Transformam algoritmul pe coloane:

(Elementul diagonal este primul pe coloana lui !)

xb Pentru j = 1 : n x(j) x(j) / nzval(colptr(j)) Pentru k = colptr(j) + 1 : colptr(j + 1) 1 x(rowind(k)) x(rowind(k)) nzval(k) x(j)

Exerciiu: cum se transforma algoritmul n cazul unui format t

CC pe blocuri ?

Exerciiu: algoritm pentru rezolvarea unui sistem superior t

triunghiular (matrice memorata CC sau CL)

CS cap. 3: Matrice rare p. 27/52

Factorizarea Cholesky
Fie A o matrice simetrica si pozitiv denita Factorizarea Cholesky: A = LLT , cu L inferior triunghiulara
j k=1 ik jk ,

La nivel de element (ne intereseaza doar triunghiul inferior):

aij =

ij

De aici rezulta ca se poate calcula

jj = ajj ij = aij

1/2 j1 2 , k=1 jk j1 k=1 ik jk /jj ,

i>j

jj depinde doar de elementele de pe linia j din L ij depinde de elementele de pe liniile i si j din L

CS cap. 3: Matrice rare p. 28/52

Algoritm pe coloane
Factorul L se poate calcula pe loc n A (din care e memorat

doar triunghiul inferior)

Algoritm de calcul

Pentru j = 1 : n Pentru k = 1 : j 1 % calcul element diagonal ajj ajj a2 jk ajj ajj Pentru i = j + 1 : n % restul elementelor de pe coloana j Pentru k = 1 : j 1 aij aij aik ajk aij aij /ajj
Algoritmul se poate scrie mai compact (dar cu acela i s

numar de operaii), prin unicarea unor bucle t

CS cap. 3: Matrice rare p. 29/52

Algoritm compact
Algoritmul compact:

Pentru j = 1 : n Pentru k = 1 : j 1 Pentru i = j : n % cmod(j, k) aij aij aik ajk ajj ajj Pentru i = j + 1 : n % cdiv(j) aij aij /ajj
Numar de operaii: aprox. n3 /3 t

CS cap. 3: Matrice rare p. 30/52

Cholesky pentru matrice rare


Daca A este rara, L rezulta de obicei rara Numar de operaii mai mic, n acest caz t Caz favorabil extrem:

A=

= L =

Caz nefavorabil extrem:

A=

= L =

CS cap. 3: Matrice rare p. 31/52

Ce structura are L ?
L mo tene te elementele nenule ale lui A s s n plus, n L apar elemente nenule noi (ll-in, umplere) Unele elemente ale lui L ar putea rezulta nule n urma j = 1: prima coloana a lui L e identica cu cea a lui A j = 2: i2 = (ai2 i1 21 )/22 Rezulta ca i2 = 0 daca 21 = 0 SI i1 = 0

calculelor, dar nu ne intereseaza dect zerourile structurale

Deci, daca 21 = 0, coloana 2 se "umple" cu toate

elementele coloanei 1 (pe lnga cele mo tenite de la A) s


jk (i > j ) produc un element nenul nou ij

n general, doua elemente nenule pe coloana k , anume ik , Umplerea poate caracterizata minimal de un arbore

(numit arbore de eliminare)

CS cap. 3: Matrice rare p. 32/52

Arbore de eliminare
Notam p(j) =
ij =0, i>j

min

n arborele de eliminare, p(j) este parintele nodului j Legenda: nenule n A, umplere

5 d d 3 4 1 2

CS cap. 3: Matrice rare p. 33/52

Comentarii
Coloana p(j) mo tene te ntreaga structura a coloanei j s s

(vezi de exemplu n pagina anterioara p(1) = 3)

Pentru a determina structura unei coloane, e sucient sa ne

uitam la nodurile "u" ale unui nod (atenie nsa, structura lui t L se calculeaza dinamic, arborele trebuie parcurs de la frunze spre radacina)

n exemplul anterior: coloana 1 transmite structura sa coloanei 3, deoarece

a31 = 0 coloana 3 transmite structura sa coloanei 5, deoarece 53 a devenit nenul indirect, coloana 1 transmite structura sa coloanei 5, dar transferul se face prin intermediul coloanei 3, deci nu mai trebuie studiat explicit

CS cap. 3: Matrice rare p. 34/52

Graful asociat lui L


O coloana k din L transmite structura sa tuturor coloanelor i

pentru care ik = 0

n graful asociat lui L, ace ti indici i formeaza o clica s

(conexiune ecare cu ecare)

Arborele de eliminare este un arbore de acoperire a acestui

graf

Exerciiu: construii graful asociat matricei din exemplul t t

anterior, completnd pna la 9 coloane (matricea are 9 linii)

CS cap. 3: Matrice rare p. 35/52

Factorizare simbolica
Factorizarea Cholesky se face n doi pa i s Factorizare simbolica: se determina structura lui L si se

Notam cstruct(X, j) mulimea poziiilor elementelor nenule t t

rezerva memoria corespunzatoare Factorizare numerica: se calculeaza efectiv L

din coloana j a matricei X

Algoritm de factorizare simbolica

Pentru j = 1 : n cstruct(L, j) = cstruct(A, j) Pentru j = 1 : n calculeaza p(j) cstruct(L, p(j)) = cstruct(L, p(j)) cstruct(L, j)

CS cap. 3: Matrice rare p. 36/52

Factorizare simbolica pe coloane


Algoritmul precedent are defectul ca se opereaza de mai

multe ori cu aceea i coloana s

n cazul unei memorari pe coloane, e de preferat sa se Algoritmul devine

determine necesarul de memorie n ordinea coloanelor

Pentru j = 1 : n cstruct(L, j) = cstruct(A, j) Pentru k = 1 : j 1 Dac p(k) = j atunci a cstruct(L, j) = cstruct(L, j) cstruct(L, k) calculeaza p(j)
Pentru eciena, vectorul p se poate organiza sub forma t

unei liste, avnd n vedere ca un element e folosit o singura data


CS cap. 3: Matrice rare p. 37/52

Factorizare numericaalgoritm fan-in


Notam lstruct(L, i) mulimea indicilor coloanelor cu t

elemente nenule pe linia i din L

Presupunem ca factorizarea simbolica a fost efectuata Algoritmul compact pe coloane devine

Pentru j = 1 : n Pentru k lstruct(L, j) \ {k} Pentru i cstruct(L, k), i j aij aij aik ajk ajj ajj Pentru i cstruct(L, j) \ {j} aij aij /ajj

% cmod(j, k) % cdiv(j)

Exerciiu: scriei algoritmul cu L n format CC. Dicultai: t t t parcurgerea lstruct(L, j) gasirea elementelor din cstruct(L, k) n cstruct(L, j)
CS cap. 3: Matrice rare p. 38/52

Comentarii
n algoritmul anterior, toate operaiile pe coloana j se fac n t

ultimul moment, dupa calculul coloanelor anterioare dat algoritmului

Coloana j e "beneciarul" calculelor, de aici numele "fan-in" Numarul de operaii este minim, n sensul ca operaiile din t t

cmod se fac doar cnd ambii factori sunt nenuli

CS cap. 3: Matrice rare p. 39/52

Algoritm fan-out
Se poate adopta strategia opusa: de ndata ce o coloana

este calculata, ea este utilizata pentru actualizarea coloanelor urmatoare

Rezulta algoritmul "fan-out":

Pentru k = 1 : n akk akk Pentru i cstruct(L, k) \ {k} aik aik /akk Pentru j cstruct(L, k) \ {k} Pentru i cstruct(L, k), i j aij aij aik ajk

% cdiv(k) % cmod(j, k)

Avantaj: se acceseaza doar coloane, nu e necesara cautare

pe linii

Numar minim de operaii t


CS cap. 3: Matrice rare p. 40/52

Algoritmi la nivel de bloc


Algoritmii de mai sus funcioneaza si daca se lucreaza la t

nivel de bloc

Factorizarea simbolica e identica !

Pentru factorizarea numerica inem seama ca A = LLT t

implica

Aij =

j Lik LT , jk k=1

ij

Modicari n factorizarea numerica: akk se nlocuie te cu o factorizare Cholesky a blocului s

Akk = Lkk LT kk aik aik /akk se nlocuie te cu Aik X , unde X este s soluia sistemului superior triunghiular XAT = Aik t kk
aij aij aik ajk devine Aij Aij Aik AT kj

CS cap. 3: Matrice rare p. 41/52

Permutare
O permutare a matricei A poate modica umplerea

Daca P este o matrice de permutare, calculam factorizarea

Cholesky a matricei P T AP

De obicei calculam factorizarea Cholesky pentru rezolvarea

sistemului Ax = b

Permutarea revine la a rezolva (P T AP )(P T x) = P T b: Se factorizeaza P T AP = LLT Se rezolva sistemul inf. triunghiular Ly = P T b Se rezolva sistemul sup. triunghiular LT z = y Soluia este: x = P z t

Mic orarea umplerii reduce numarul de operaii n s t

factorizarea Cholesky si rezolvarea de sisteme triunghiulare, compensnd permutarile

CS cap. 3: Matrice rare p. 42/52

Exemplu
Matrice sageata cu factor L plin

A=

4 3 2 1

Matrice sageata fara umplere

A=

4 1 2 3

A doua matrice se obine din prima prin permutarea inversa t


CS cap. 3: Matrice rare p. 43/52

Ordonare pe baza gradului minim


Calculul permutarii optime este dicil folosim euristici

Reamintire: o coloana j din L transmite structura sa tuturor

coloanelor din cstruct(L, j). n concluzie, nodurile din cstruct(L, j) formeaza o clica n graful asociat mai mica

Cu ct aceasta clica este mai mica, cu att umplerea este Idee: la un moment dat, se aduce pe prima poziie libera t Algoritmul e "lacom": nu se evalueaza umplerea n

nodul cu grad minim (coloana cu |cstruct(L, j)| minim) adncime, ci doar la pasul curent

CS cap. 3: Matrice rare p. 44/52

Algoritmul grad minim


Pas 1: se aduce n prima poziie nodul cu grad minim din t

graful asociat lui A

Se adauga la graf arcele necesare pentru a forma o clica

ntre nodurile legate de nodul cu grad minim

Se actualizeaza gradele nodurilor

Se elimina nodul din prima poziie t

Pas 2: se continua similar pe graful ramas

Diverse variante ale algoritmului folosesc diverse metode de

alegere ntre noduri cu acela i grad, aproximeaza gradul n s loc sa-l calculeze exact, etc.

Funcii Matlab: amd, symamd t

CS cap. 3: Matrice rare p. 45/52

Exemplu: matrice originala


Pentru matricea din stnga, cu 150 de elemente nenule n

triunghiul inferior, factorul Cholesky din dreapta are 519 elemente nenule
0 0

10

10

20

20

30

30

40

40

50

50

60 0 10 20 30 nz = 240 40 50 60

60 0 10 20 30 nz = 519 40 50 60

CS cap. 3: Matrice rare p. 46/52

Exemplu: permutare AMD


Dupa permutarea cu funcie symamd (stnga), factorul t

Cholesky (dreapta) are 351 elemente nenule


0 0

10

10

20

20

30

30

40

40

50

50

60 0 10 20 30 nz = 240 40 50 60

60 0 10 20 30 nz = 351 40 50 60

CS cap. 3: Matrice rare p. 47/52

Nested dissection
B 0 Idee: o permutare care aduce A la forma 0 C S LB 0 0 Factorul Cholesky va avea forma 0 LC 0 L
Interpretare: nodurile sunt grupate n trei mulimi, astfel t

nct graful asociat sa nu conina arce ntre noduri din prima t si a doua aceluia i algoritm s ct mai mica

B si C se factorizeaza separat. Fiecare e permutat conform Dicultate: gasirea rapida a unui separator S de dimensiune

CS cap. 3: Matrice rare p. 48/52

Utilitate
Permutarea e utila pentru factorizarea pe calculatoare

paralele

Exemplu, dupa doua bisecii t

B1 0 0 0 0 0 C1 0 0 0 S1 0 0 0 0 0 0 B2 0 0 0 0 0 C2 0 0 0 S1 S

Blocurile B1 , C1 , B2 , C2 pot factorizate n paralel. Bloc

liniile 3 si 6, idem

Daca blocurile au dimensiuni apropiate, eciena buna t


CS cap. 3: Matrice rare p. 49/52

Exemplu standard grila


Graful asociat matricei A are forma regulata pentru diverse

probleme de discretizare

Exemplu: grila ordonata natural (stnga)

Un separator evident este coloana centrala. Renumerotare

(dreapta)

5 10 15 20 25 4 3 2 1 9 14 19 24 8 13 18 23 7 12 17 22 6 11 16 21

3
4 2 1

5 10 25 15 20 9 24 14 19

18 8 23 13
7 22 12 17 6 21 11 16

Fiecare grup de coloane poate separat de linia centrala.

Exerciiu: renumerotai ! t t

CS cap. 3: Matrice rare p. 50/52

Rezolvarea sistemelor liniare


Metode pentru rezolvarea sistemului Ax = b directe, bazate pe factorizari (Cholesky, LU, QR) iterative, n care ecare iteraie consta n produs t Factorizarile LU si QR utilizeaza acelea i etape ca s

matrice-vector si/sau rezolvare de sisteme triunghiulare

Cholesky (permutare, factorizare simbolica), factorizare numerica), dar sunt mai complicate bune ale soluiei t

Metodele iterative construiesc aproximaii din ce n ce mai t Pentru sisteme mari, metodele iterative pot eciente, att

ca viteza, ct si ca memorie (se memoreaza doar A)

CS cap. 3: Matrice rare p. 51/52

Metode iterative
Tipuri de metode iterative: metode de relaxare (Jacobi, Gauss-Seidel,

supra-relaxare) metode de proiecie (steepest descent, reziduu maxim) t metode pe subspaii Krylov (Arnoldi, GMRES, Lanczos, t gradient conjugat)

Cursul va conine, n masura timpului disponibil, ntre 0 si 3 t

din metodele Jacobi, Gauss-Seidel, proiecie t

CS cap. 3: Matrice rare p. 52/52