Matrice Rare

Seminar
7.5/10 (2 voturi)
Conține 4 fișiere: doc, pdf, cpp
Pagini : 3 în total
Cuvinte : 2959
Mărime: 44.29KB (arhivat)
Publicat de: Gherasim Sima
Puncte necesare: 0

Extras din seminar

Matricele rare îşi găsesc aplicabilitatea în modelarea unor procese de natură industrială, economică, tehnică, socială, etc.

Modelele matematice ale proceselor reale implică un număr foarte mare de variabile şi restricţii care prezintă fenomenul de raritate (sparsity), adică de slabă interconectare a elementelor sale. Luarea în consideraţie a fenomenului de raritate furnizează un nou mod de abordare foarte eficient, ce implică în dezvoltarea aplicaţiilor informatice folosirea unor structuri de date speciale, care să conducă la reducerea resurselor de memorie şi a timpului de calcul.

În general, o matrice - dimensională este rară dacă conţine un număr mic de elemente nenule , adică . Cantitativ, matricele rare sunt caracterizate de ponderea numărului de elemente nenule în totalul de elemente, pondere ce defineşte gradul de umplere al matricei. În aplicaţiile curente se întâlnesc matrice rare cu grade de umplere între 0,15% şi 3%.

O matrice este considerata rara atunci cand folosind o alta modalitate de memorare a elementelor se obtine un grad de utilizare superior memorarii element cu element.

Matricea:

este o matrice rara pentru ca:

- daca este memorata element cu element, fiecare element ocupa K baiti;

- daca are M linii si N coloane, lungimea zonei de memorie LM necesara este LM=K*M*N baiti.

Pentru cazul dat: K=2, M=8, N=10, LM=2*8*10=160 baiti.

Se defineşte gradul de umplere (densitatea) unei matrice prin raportul dintre numărul elementelor nenule şi numărul total al elementelor sale:

unde: p – numărul de elemente nenule;

n – numărul de linii;

m – numărul de coloane.

Se acceptă, în general, că o matrice este rară dacă densitatea sa este de cel mult 3%.

Se observa ca matricea contine multe elemente nule. Se pune problema memorarii numai a elementelor nenule.

Se definesc 3 vectori:

lin[] - pentru memorarea pozitiilor liniilor unde se afla elementele nenule;

col[] - pentru memorarea pozitiilor coloanelor unde se afla elementele nenule;

val[] - pentru memorarea valorilor elementelor nenule.

Adunarea matricelor rare presupune parcurgerea câtorva paşi:

- determinarea numărului de elemente nenule ale matricei sumă;

- alocarea memoriei corespunzătoare acestui număr;

- determinarea acelor elemente din prima matrice care nu au corespondent în cea de-a doua şi adăugarea lor la matricea sumă;

- determinarea elementelor din cea de-a doua matrice care nu au corespondent în prima şi adăugarea lor la matricea sumă;

- determinarea elementelor comune celor două matrice, însumarea lor şi adăugarea la matricea sumă.

Prin “elemente comune” au fost desemnate acele elemente caracterizate prin indicii de linie şi de coloană care sunt nenule în ambele matrice.

Pentru înmulţirea matricei rare A, (m, 1) – dimensională, cu matricea rară B, (l, n) – dimensională, se utilizează o modificare a procedurii standard, considerând influenţa liniilor matricei A asupra matricei produs C, (m,n) – dimensională, prin coloanele matricei B. Procedura standard de înmulţire se modifică astfel încât în bucla internă să se execute toate operaţiile corespunzătoare unui element al matricei A. Întrucât elementul aik al matricei A poate contribui la formarea tuturor elementelor liniei i a matricei C, se determină mai întâi această contribuţie după care se continuă cu următorul element al liniei i a matricei A, până la determinarea completă a liniei i a matricei C.

1. Reprezentare prin vectori

Se definesc trei vectori:

- un vector care memoreaza liniile pe care se afla elementele nenule;

- un vector care memoreaza coloanele pe care se afla elementele nenule;

- un vector care memoreaza valoarea elementelor nenule.

Procedura care initializeaza de la tastatura o matrice rara contine:

- secventa de initializare;

- secventa de citire a liniei pe care se afla elementul nenul;

- secventa de citire a coloanei pe care se afla elementul nenul;

- secventa de introducere a elemntului nenul - mecanismul de incheiere a procesului de introducere elemente nenule;

- procedura returneaza numarul elementelor nenule din matrice;

- se presupune ca dimensiunea matricei este cunoscuta si nu are legatura cu aceasta procedura.

Cei trei vectori au un grad de incarcare dat de faptul ca intre K si numarul maxim de elemente nenule care se memoreaza efectiv exista diferente.

Conținut arhivă zip

  • Matrice Rare
    • ex1.cpp
    • ex2.cpp
    • Seminar_5.doc
    • SparseMatrices.pdf

Alții au mai descărcat și

Întrebări licență mate-info

Programare ˆ1n Pascal 1. Un comentariu ˆ1ntre acolade: a) ajutØa calculatorul sØa ˆ1nt¸eleagØa funct¸ia pe care o realizeazØa programul b)...

Liste Alocate Dinamic

#include <stdio.h> #include <malloc.h> struct lista{ int info_util; lista *next;}; void afisare(lista *l) { while (l)...

Programe în C++

1. /* sa se scrie un program care cere introducerea unei cifre de la tastatura si afiseaza ziua corespunzatoare cifrei introduse, folosindu-se...

Hackeri

Hackerii sunt pasionati ai informaticii, care, de obicei au ca scop „spargerea” anumitor coduri, baze de date, pagini web etc. Ei sunt considerati...

Te-ar putea interesa și

Metode de Programare cu Matrice Rare

Introducere Lucrarea cuprinde metode tradiţionale de calcul matriceal care sunt utilizate frecvent în practică, metode reanalizate şi revăzute...

Analiza repartiției tensiunilor

Capitolul 1 Metoda elementului finit(M.E.F) 1.1. Introducere Metoda elementului finit a devenit, în mai puţin de 25 de ani, o metodă generală de...

Aplicația Prelucrării Matricei Rarefiate prin Memorarea Compactă Sistematica

1.Introducere în limbajul C Acest limbaj de programare cu cel mai scurt nume posibil, a fost creat in 1972 de catre Dennis Ritchie si Brian...

Laborator SDA

LISTE SIMPLU ÎNLANTUITE 1. Continutul lucrarii În lucrare sunt prezentate operatiile importante asupra listelor simplu înlantuite si...

Structuri de Date

Curs2 1.TIPURI DE DATE 1.1. DATE SI INFORMATII În practica se face deosebire între o data si o informatie. Exemplele oferite în cele mai multe...

Optimizare

1. Formularea problemelor de optimizare Din punct de vedere matematic problemele de optimizare se pot pune sub forma: Fie data o functie . Sa se...

Optimization toolbox - capitolul II

Cele mai mici patrate neliniare cu întreg. Modelul Jacobian de raritate. Modelele de dimensiuni mari în Isqlin, Isqcurvefît sl fsolve pot fi...

Ai nevoie de altceva?