sparse vectors & matrices jyh-shing roger jang ( 張智星 ) csie dept, national taiwan...
TRANSCRIPT
![Page 1: Sparse Vectors & Matrices Jyh-Shing Roger Jang ( 張智星 ) CSIE Dept, National Taiwan University](https://reader035.vdocuments.mx/reader035/viewer/2022071709/56649f505503460f94c72754/html5/thumbnails/1.jpg)
Sparse Vectors & Matrices
Jyh-Shing Roger Jang (張智星 )CSIE Dept, National Taiwan University
![Page 2: Sparse Vectors & Matrices Jyh-Shing Roger Jang ( 張智星 ) CSIE Dept, National Taiwan University](https://reader035.vdocuments.mx/reader035/viewer/2022071709/56649f505503460f94c72754/html5/thumbnails/2.jpg)
2
Array Representation of Polynomials
A polynomial of order n anxn + an-1xn-1 + ... + a2x2 + a1x + a0
Straightforward representation Unique exponent arranged in increasing order For instance: 7 x5 + 4 x3 + 2 x2 + 3
Characteristics Easy to implement addition & subtraction Waste of space to represent a sparse polynomial Complexity of addition: O(max(m, n))
Order of a(x).
Order of b(x).
![Page 3: Sparse Vectors & Matrices Jyh-Shing Roger Jang ( 張智星 ) CSIE Dept, National Taiwan University](https://reader035.vdocuments.mx/reader035/viewer/2022071709/56649f505503460f94c72754/html5/thumbnails/3.jpg)
3
Sparse Array Representation of Polynomials
A polynomial of order n anxn + an-1xn-1 + ... + a2x2 + a1x + a0
Representation Keep non-zero terms only For instance, see the right figure.
How to add two polynomials Traverse each polynomials Add terms of the same exponent
Characteristics Takes only necessary memory Complexity of addition & subtraction: O(m+n)
No. of terms in a(x).
No. of terms in b(x).
![Page 4: Sparse Vectors & Matrices Jyh-Shing Roger Jang ( 張智星 ) CSIE Dept, National Taiwan University](https://reader035.vdocuments.mx/reader035/viewer/2022071709/56649f505503460f94c72754/html5/thumbnails/4.jpg)
4
Sparse Matrices Matrix representation
Dense: Sparse:
Sparse format The first row stores the numbers of rows, columns, and non-zero elements, respectively. Elements are sorted by row first, by column second.
Example usage index = binarySearch(vec, 0, vec.size()-1, value)
![Page 5: Sparse Vectors & Matrices Jyh-Shing Roger Jang ( 張智星 ) CSIE Dept, National Taiwan University](https://reader035.vdocuments.mx/reader035/viewer/2022071709/56649f505503460f94c72754/html5/thumbnails/5.jpg)
5
Complexity of Operations on Dense Matrices
Operations c=transpose O(mn)
c=add(a, b) O(mn)
c=multiply(a, b) O(pqr)
![Page 6: Sparse Vectors & Matrices Jyh-Shing Roger Jang ( 張智星 ) CSIE Dept, National Taiwan University](https://reader035.vdocuments.mx/reader035/viewer/2022071709/56649f505503460f94c72754/html5/thumbnails/6.jpg)
6
Algorithm 1 for Transposing a Sparse Matrix
Algorithm 1 Pseudo code
For example (0, 0, 15) (0, 0, 15) (0, 3, 22) (3, 0, 22) (0, 5, -15) (5, 0, -15) (1, 1, 11) (1, 1, 11) …
Complexity: O(#NZ)+O(#NZ*log(#NZ))+O(#NZ*log(#NZ)) O(#NZ*log(#NZ))
for each entry { take term (i, j, value) and store it as (j, i, value)}
#NZ = No. of non-zero elements= No. of entries
![Page 7: Sparse Vectors & Matrices Jyh-Shing Roger Jang ( 張智星 ) CSIE Dept, National Taiwan University](https://reader035.vdocuments.mx/reader035/viewer/2022071709/56649f505503460f94c72754/html5/thumbnails/7.jpg)
7
Algorithm 2 for Transposing a Sparse Matrix
Algorithm 2 Idea: Find all terms in column 0 and store them in row 0; find
all terms in column 1 and store them in row 1, and so on. Pseudo code
Example:
Complexity: O(#col*#NZ)
for (j=0; j<colNum; j++) for all term in column j place the entry (i, j, value) in the next position of the output
![Page 8: Sparse Vectors & Matrices Jyh-Shing Roger Jang ( 張智星 ) CSIE Dept, National Taiwan University](https://reader035.vdocuments.mx/reader035/viewer/2022071709/56649f505503460f94c72754/html5/thumbnails/8.jpg)
8
Algorithm 3 for Transposing a Sparse Matrix
Algorithm 3 A fast algorithm that scans the term list only twice, as follows
Find number of terms in a row and then find the starting position of each row.
Fill the output matrix. Example
Complexity: O(#row + #NZ)