+ All Categories
Home > Documents > Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30...

Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30...

Date post: 18-Aug-2019
Category:
Upload: phamnhu
View: 221 times
Download: 0 times
Share this document with a friend
30
1 AΠΘ Σποραδικές Μήτρες (Sparse Matrices) ᾿Αθανάσιος Μυγδαλ˜ ας ΑΠΘ 17 Μαρτίου 2010 c Α.Μ. /1
Transcript
Page 1: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

1

AΠΘ

Σποραδικές Μήτρες (Sparse Matrices)

᾿Αθανάσιος Μυγδαλα̃ς

ΑΠΘ

17 Μαρτίου 2010 c� Α.Μ. /1

Page 2: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

30

AΠΘ

Τρόποι αποθήκευσης σποραδικών µητρών

Υπάρχουν πολλοί τρόποι αποθήκευσης σποραδικών µητρώναναλόγως των δοµικών χαρακτηριστικών τους (π.χ. συµµετρικήµήτρα, ασύµµετρη µήτρα, ταινιοειδής µήτρα) και της επιλογήςµεθόδου επίλυσης του συστήµατος εξισώσεων. (Π.χ. στιςεπαναληπτικές µεθόδους, η επιλογή τρόπου αποθήκευσης γίνεταικυρίως µε αναφορά στην αλγοριθµική απόδοση του γινοµένουµήτρας-διανύσµατος.)

17 Μαρτίου 2010 c� Α.Μ. /30

Page 3: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

-058>24.2;�<:8982�*98103.=;.2;�;98:*-23A6�50<:A6

;=592.;5.60�*98103.=;0�3*<*�;<82?8=;��'SQTVIWWIH�6S[�7XSVEKI

;=592.;5.60�*98103.=;0�3*<*�;<04.;��'SQTVIWWIH�'SPYQR�7XSVEKI

*98103.=;0�;.�<=?*2*�-2*<*70�3*<*�<:2948<0<.;��6ERHSQ�7XSVEKI�SJ�8VMTTPIXW

<*2628.2-0;�*98103.=;0��&ERH�7XSVEKI

5.<*+40<0�<*2628.2-0;�*98103.=;0��:EVMEFPI�&ERH�7XSVEKI��7O]PMRI�7XSVEKI

-2*6=;5*<230�*98103.=;0

,QI�\OU�[XWYILQRF�TF\YI� %b�R�\�R �_YO[QTWXWQWeTM�EUI�LQDU][TI�:%09)�RIQ�

IXWPORMeW]TM�\W�[\WQ_MGW�%�M�N �IXd�\WU�[\WG_W�M�RIQ�\OU�[\FSO�� N�aZ�:%09)�0 �

0�PE[O��M�N �\W]�[\WQ_MGW]�IXWPORMeM\IQ�[��EUI�IREYIQW�LQDU][TI�437-8-32�aZM��N�� �R�[\W�[\WQ_MGW�437-8-32�0 �

9*:*-.2,5*

%�!�

��

��

�� ��

� ��

0 :%09) 437-8-32

� � �

� �� �

� �� �

� �� �

� � �

� �� �

� � ��

� �� ��

� �� ��

�� � ��

?A:2;�.35.<*44.=;0�;=55.<:2*;

5.�.35.<*44.=;0�;=55.<:2*;

3*2�<06�-2*,A628�?A:2;<*

0 :%09) 437-8-32

� �� �

� �� �

� �� ��

��

(-%+32%0� ���������

Page 4: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

;98:*-230�50<:*

A;�-2*<*70�;<82?.2A6 ;.�;?.;0�5.�,:*>05*

,.6230

9.:29<A;0

.2-23.;

9.:29<A;.2;

3*<*48,8;

<87A6

42;<.;

,.2<62*;.A;

50<:*5.<*1.;0;

-2*,A628;

50<:*

<:2,A6230

50<:*

<*2628-0;

50<:*

;=55.<:230� *;=55.<:0

50<:* 50<:*

<=?*2*

-2*<*70

>=;230��*=78=;*

-2*<*70

9.:29<A;.2;

*98103.=;0 ;=55.<:2* -2*<*70 5.:8; -2*,A628;

3I\D�;\WG_W]Z

3I\D�;\FSMZ

3I\D�<YQXSd\O\MZ

6*2�8?2 <=?*2*�>=;230940:0;

*6A�<:2,A6230

3*<A�<:2,A6230

?aYQ[\D

&_Q�_aYQ[\D

5WUDLMZ

;\OU�XMYGX\a[O�I]\F�LMU�IXWPORMeM\IQ�O�LQIKfUQWZ

Page 5: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

.6-.?85.60�-850�-.-85.6A6�;<06�*SVXVER

,.6230�9.:29<A;0�5.�.6;A5*<A5.60�-2*,A628��*[eTTM\YO�F�[]TTM\YQRF�XMYGX\a[O

8=4)��49&0-'����7TEVWIC1EXVM\

6)%0��%003'%8%&0)��(-1)27-32�� ����:EPYI

-28)+)6��%003'%8%&0)��(-1)27-32�� ����4SWMXMSR

-28)+)6����3VHIV��1E\7M^I��2SR>IVSIW

)2(�8=4)

,.6230�9.:29<A;0�5.�<06�-2*,A628�?A:2;<*��*[eTTM\YO�F�[]TTM\YQRF�XMYGX\a[O

8=4)��49&0-'����7TEVWIC1EXVM\

6)%0��%003'%8%&0)��(-1)27-32�� ����:EPYI��(MEKSREP

-28)+)6��%003'%8%&0)��(-1)27-32�� ����4SWMXMSR

-28)+)6����3VHIV��1E\7M^I��2SR>IVSIW

)2(�8=4)

.ULM_WTEUaZ�XYW[PFRO�IUIKUfYQ[OZ�\aU�XMYQX\f[MaU��XSFYO�I[eTTM\YO��XSFYO�F

RI\D�\W�FTQ[]�[]TTM\YQRF�IXWPFRM][O��R�S�X�

0�LMe\MYO�LWTF�IXW\MSMG�MXER\I[O�\OZ�XYf\OZ��WXd\M�PI�TXWYWe[M�U��IU\QRI\I[\IPMGIXd

<=4)��)<8)2(7�7TEVWIC1EXVM\ ��49&0-'����7TEVWIC1EXVM\C[C(MEKSREP6)%0��%003'%8%&0)��(-1)27-32�� ����(MEKSREP

)2(�8=4)

8YGNM\IQ�E\[Q�O�RSD[O� 7TEVWIC1EXVM\ RIQ�WQ�WXWQM[LFXW\M�TEPWLWQ�IUIX\]_PWeU

PI�TXWYWeU�UI�M^IYTW[PWeU�RIQ�[\OU�LWTF� 7TEVWIC1EXVM\C[C(MEKSREP

Page 6: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

*6*3*<*;3.=0�;<82?8=�3*2�;<040;

0�[\FSO�� N��IU\Q[\WQ_MG�[\WU�TQRYd\MYW�IREYIQW�IYQPTd�� 437-8-32�0 �R

RIQ�W�[\WG_WZ��M��]XWSWKGNM\IQ�aZ

M�!�437-8-32�0 �����N����� ���R

<8=�;<82?.28=��%�M�N

9*:*-.2,5*

,QI��0!��E_WTM��437-8-32�� �!����!"�;\FSO�� N�!�?437-8-32�� �RA�!�?����A�!�

!"�;\WG_WZ�M�!�437-8-32�� �����N����� ���R�!������������!��

!YI��:%09)�� ��IU\Q[\WQ_MG�[\W��%���� �

*9*2<0;.2;�56050;

,.6230�9.:29<A;0�

;=55.<:230�5.�?A:2;<0�-2*,A628��

�Q����

Q����

Q�!�94018;�50�50-.623A6�;<82?.2A6

523:8<.:.;�*9*2<0;.2;�56050;�*9���84.;�<2;�.6*44*3<23.;

9:*7.2;�,2*�<06�<*=<89820;0�.68;�;<82?.28=

��-MU�TW]�MGUIQ�KUa[\EZ�RDXWQMZ�[]KRYG[MQZ����

Page 7: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

<:2,A6230�50<:*

*XWPFRM][O�RD\a�\YQKaUQRFZ�RI\D�[\WG_W]Z�[M�LQDU][TI�R�R�� ���[\WQ_MGaU�

0�!�

0����

0���� 0����

0�R�� 0�R�� 0�R�R

!"�?0���� `0���� �0���� `���`����0�R�R A

8S�0�M�N �IXWPORMeM\IQ�[\OU�PE[O��M��M�� �����N

9*:8582A;�KQI�DUa�\YQKaUQRF��9�!�0��.XG[OZ�IUDSWKO�IXWPFRM][O�RI\D�[\FSMZ���![RO[O

<

50<:*�,)77)2&)6+

,�!�

\��\��\��\��\��\��\\��\��\��\��\��\

\��\��\��\��\

\��\��\��\

\��\��\

\��\

\

\

\

\

\

\

\

*XWPFRM][O�RI\D�[\WG_W]Z�[M�LQDU][TI

R�R�� ������� [\WQ_MGaU�

!"�?,���� �����,���R `,���� �����,���R `���`,�R�R�� �,�R�R A

8S�,�M�N ��IXWPORMeM\IQ�[\OU�PE[O��M���R���M �����R���N����

Page 8: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

<*2628.2-.2;�50<:.;

\��\��\

\��\��\��\

\��\��\��\��\

\��\��\��\��\

\��\��\��\

\��\��\

%�!�

YWF[�!��

PWF[�!��

9SD\WZ�\IQUGIZ��FERH[MHXL �!

XSD\WZ�RD\a�OTQ\IQUGIZ

�PS[IV�WIQM�FERH[MHXL

XSD\WZ�DUa�OTQ\IQUGIZ

�YTTIV�WIQM�FERH[MHXL

ReYQI�LQIKfUQWZ��QEMR�HMEKSREP

!�����������!��>*3.448;�*98103.=;0;

�7XSVEKI�)RZIPSTI

,2*�;=55.<:230�<*2628.2-0�50<:*� <YQLQIKfUQMZ�TF\YMZ�[M�LQD\IVO

�R�\���

<*262.;�5.<*+40<8=�94*<8=;��:EVMEFPI�FERH[MHXL��WO]PMRI�WXSVEKI

%����

%����

%���� ��������%����

%����

%����

%���� %����

%����

%����

%����

%����

%���� %����

Page 9: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

?%���� `%���� `%���� �%���� `%���� `%���� �%���� �%���� �%���� �%���� `%���� �����%���� A

*XWPFRM][O�RI\D�[\WG_W]Z�\OZ�RD\a�\YQKaUQRFZ�

8Q�PE[MQZ�\aU�LQIKaUGaU�[\WQ_MGaU�IXWLGLWU\IQ�TM�\W�IREYIQW�LQDU][TI

(-%+32%0C437-8-32�!�?�������������A

<W�[\WQ_MGW���*�M�N �IXWPORMeM\IQ�[\OU�PE[O��(-%+32%0C437-8-32�M �N�M

*U\Q[\WG_aZ�IXWPFRM][O�RI\D�[\FSMZ��*XWPFRM][O�\OZ�DUa�\YQKaUQRFZ�

%����

%����

%���� ��������%����

%����

%����

%���� %����

%����

%����

%����

%����

%���� %����

?*���� �*���� `*���� �*���� �*���� `*���� �*���� �*���� `���`*���� �*���� `*���� A3I\D�[\FSMZ�

(-%+32%0C437-8-32!?�������������`���A

(-%+32%0C437-8-32�N�� ���(-%+32%0C437-8-32�N �!�XSFPWZ�TO�TOLMUQRfU�[\WQ_MGaU[\OU�[\FSO� N�

��R���[\WQ_MGI�

#\[Q�MVOKMG\IQ�O�XYW[PFRO�MUdZ�IRdTO�[\WQ_MGW]�[\W�LQDU][TI�(-%+32%0C437-8-32��<W�XYd[PM\W�[\WQ_MGW�[\W�\ESWZ�\W]�LQIUe[TI\WZ�E_MQ�XDU\W\M�\QTF��Q��������dXW]���Q���\W�XSFPWZ�\aU�TO�TOLMUQRfU�[\WQ_MGaU�\OZ�TF\YIZ�

Page 10: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

32

AΠΘ

Συµπιεσµένη αποθήκευση κατά στοίχους ή στήλες

Συµπιεσµένη αποθήκευση κατά στοίχους ή στήλες προσφέρει τογενικώτερο σχήµα αποθήκευσης σποραδικών µητρών διότι δενϑέτει προϋποθέσεις στα δοµικά χαρακτηριστικά τηςσποραδικότητας.

Από την άλλη πλευρά δεν είναι και η πιο αποδοτική για τοσχηµατισµό γινοµένων µήτρας-διανύσµατος.

Βασίζεται στην αντίληψη της σποραδικής µήτρας

µε την µορφή γραφήµατος !

9 Απριλίου 2011 c� Α.Μ. /32

Page 11: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

33

AΠΘ

Σποραδικές Μήτρες και Γραφήµατα

΄Εστω η σποραδική µήτρα A = [aij ]n×n.

Η δοµική σποραδικότητα της µήτρας δύναται ν΄ αποδοθεί µε µίααντίστοιχη µήτρα N = [nij ]n×n, όπου nij = 1 εφόσον aij 6= 0 καιnij = 0 διαφορετικά.

Στην N αναγνωρίζουµε µία µήτρα παρακείµενων κόµβων ήµήτρα γειτνίασης (node adjacency matrix) και συνεπώς ένααντίστοιχο γράφηµα.

΄Αρα οποιαδήποτε δοµή δεδοµένων για την αναπαράσταση τουγραφήµατος στην µνήµη του Η/Υ δύναται να χρησιµοποιηθεί καιγια την αναπαράσταση της σποραδικής µήτρας.

9 Απριλίου 2011 c� Α.Μ. /33

Page 12: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

34

AΠΘ

Παράδειγµα

΄Εστω η σποραδική µήτρα:

A =

5 0 0 0 4 0

9 2 0 0 0 8

0 4 7 6 0 0

7 0 3 2 9 0

0 6 0 7 8 −2

0 −3 0 0 −4 3

9 Απριλίου 2011 c� Α.Μ. /34

Page 13: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

35

AΠΘ

Μήτρα δοµής σποραδικότητας ή µήτρα παρακείµενων κόµβων

N =

1 0 0 0 1 0

1 1 0 0 0 1

0 1 1 1 0 0

1 0 1 1 1 0

0 1 0 1 1 1

0 1 0 0 1 1

9 Απριλίου 2011 c� Α.Μ. /35

Page 14: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

36

AΠΘ

Αντίστοιχο γράφηµα: Πρώτη µορφή

Οι κόµβοι αντιστοιχούν σε στοίχους/στήλες. Τα τόξα αντιστοιχούνστις µονάδες. Φορά των τόξων από στοίχο προς στήλη.

1 2

6

5 3

4

9 Απριλίου 2011 c� Α.Μ. /36

Page 15: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

37

AΠΘ

Συµπιεσµένη αποθήκευση κατά στοίχους

∆οµή δεδοµένων αναπαράστασης του γραφήµατος µε πρόσω

αστέρα (forward star) ή πρόσω κατάλογο γειτνίασης (forwardadjacency list)

∆είκτης στοίχου:row_ptr 1 3 6 9 13 17 20

∆είκτης στήλης:col_ptr

1 5 1 2 6 · · · 2 4 5 6 2 5 6

Τιµές:val 5 4 9 2 8 · · · 6 7 8 -2 -3 -4 3

Σε περίπτωση συµµετρικής µήτρας αποθηκεύουµε µόνον το

άνω τριγωνικό τµήµα της µήτρας.

9 Απριλίου 2011 c� Α.Μ. /37

Page 16: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

38

AΠΘ

Αντίστοιχο γράφηµα: ∆εύτερη µορφή

Οι κόµβοι αντιστοιχούν σε στοίχους/στήλες. Τα τόξα αντιστοιχούνστις µονάδες. Φορά των τόξων από στήλη προς στοίχο.

1 2

6

5 3

4

9 Απριλίου 2011 c� Α.Μ. /38

Page 17: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

39

AΠΘ

Συµπιεσµένη αποθήκευση κατά στήλες ή σχήµα Harwell-Boeing

∆οµή δεδοµένων αναπαράστασης του πρώτου γραφήµατος µεοπίσω αστέρα (backward star) ή οπίσω κατάλογο γειτνίασης(backward adjacency list).Ουσιαστικά αποθήκευση κατά στοίχους της AT .

∆είκτης στήλης:col_ptr 1 4 8 10 13 17 20∆είκτης στοίχου:row_ptr

1 2 4 2 3 5 6 · · · 1 4 5 6 2 5 6Τιµές:val

5 9 7 2 4 6 -3 · · · 4 9 8 -4 8 -2 3Σε περίπτωση συµµετρικής µήτρας αποθηκεύουµε µόνον το κάτω τριγωνικό τµήµα της µήτρας.

9 Απριλίου 2011 c� Α.Μ. /39

Page 18: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

40

AΠΘ

Παρατηρήσεις

• Κάθε τόξο του γραφήµατος αντιστοιχεί σ΄ ένα µη-µηδενικόστοιχείο της µήτρας.

• Η αποθήκευση απαιτεί n + 1 + 2m στοιχεία, όπου n το πλήθοςστοίχων (στηλών) και m το πλήθος µη-µηδενικών στοιχείων.

• Ο δείκτης row_ptr(i) (αντιστοίχως col_ptr(i)) αποθηκεύει τηνϑέση του col_ptr και val (αντίστοίχως row_ptr και val) όπουαποθηκεύονται η στήλη (ο στοίχος) και η τιµή του πρώτουµη-µηδενικού στοιχείου του στοίχου (στήλης) i.

• Το πλήθος µη-µηδενικών στοιχείων στον στοίχο (στήλη) i

δίδεται από row_ptr(i+1)−row_ptr(i) (αντιστοίχωςcol_ptr(i+1)−col_ptr(i)).

9 Απριλίου 2011 c� Α.Μ. /40

Page 19: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

41

AΠΘ

Τυχαία αποθήκευση (Random Storage)

Ουσιαστικά παραλλαγή των προηγουµένων σχηµάτωναποθήκευσης. Αντιστοιχεί σε ϱητό κατάλογο των τόξων τουγραφήµατος. Απαιτούνται και πάλι τρία διανύσµατα, ένα για τουςαρχικούς κόµβους των τόξων, ένα για τους τερµατικούς κόµβουςκαι ένα για τις µη-µηδενικές τιµές. ΄Ετσι για κάθε µη-µηδενικόστοιχείο της µήτρας αποθηκεύουµε τρία στοιχεία : τον στοίχο καιτην στήλη που το περιέχουν και την τιµή του. Οι τριπλέττεςµπορούν ν΄ αποθηκευθούν µε παντελώς τυχαία σειρά.

΄Ενα πλεονέκτηµα είναι ότι νέα µη-µηδενικά στοιχεία δύνανται ναεισαχθούν στην µήτρα προσθέτοντάς τα στο τέλος του καταλόγου.

Απαιτήσεις µνήµης: 3m

9 Απριλίου 2011 c� Α.Μ. /41

Page 20: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

42

AΠΘ

row col val

1 1 5

2 6 8

3 4 6

4 3 3

5 2 6

6 2 -3...

......

2 1 9

5 5 8

1 5 4

9 Απριλίου 2011 c� Α.Μ. /42

Page 21: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

43

AΠΘ

Για την συστηµατική σάρωση των µη-µηδενικών στοιχείων τηςµήτρας απαιτείται η εισαγωγή ενός ακόµη διανύσµατος δεικτών(next). Οι δείκτες αυτοί υποδεικνύουν το αµέσως επόµενο στοιχείο(κατά στοίχο ή στήλη) προς τα εµπρός ή προς τα πίσω, ορίζονταςουσιαστικά µία αλυσίδα την οποία µπορούµε να διατρέξουµε γιατην ανεύρεση κάποιου συγκεκριµένου στοιχείου aij .

Το επόµενο σχήµα αποθήκευσης της µήτρας είναι της µορφής«κατά στοίχο προς τα εµπρός». Η αλυσίδα διακόπτεταικαταχωρώντας την µηδενική τιµή στον δείκτη του τελευταίουστοιχείου. Η αναζήτηση του στοιχείου aij γίνεται σειριακάεκκινώντας από την διεύθυνση (ϑέση) i εάν i < j ή από τηνδιεύθυνση i− 1 εάν j < i και ακολουθώντας τους δείκτες nextέως ότου ευρεθεί το Ϲητούµενο στοιχείο aij ή αποδειχθεί πως ητιµή του είναι µηδενική µε την άφιξη στο τέρµα της αλυσίδας τωνδεικτών next. Απατήσεις µνήµης: 4m

9 Απριλίου 2011 c� Α.Μ. /43

Page 22: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

44

AΠΘ

row col val next

1 1 5 19

2 6 8 15

3 4 6 11

4 3 3 12

5 2 6 9

6 2 -3 8...

......

...

2 1 9 16

5 5 8 10

1 5 4 17

9 Απριλίου 2011 c� Α.Μ. /44

Page 23: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

45

AΠΘ

Μειονεκτήµατα

• Μεγαλύτερη απαίτηση µνήµης.

• Μέθοδος δηµιουργίας των δεικτών ;

• Σπατάλη χρόνου σε σειριακές αναζητήσεις.΄Αλλοι τρόποι αποθήκευσης

Η συµπιεσµένη διαγώνια αποθήκευση, η οδοντωτή διαγώνιααποθήκευση και η µεταβλητή ταινιοειδής αποθήκευση αφορούνσε µήτρες ταινιοεδούς δοµής και ϑα εξεταστούν χωριστά.

9 Απριλίου 2011 c� Α.Μ. /45

Page 24: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

46

AΠΘ

Τµηµατική αποθήκευση κατά στοίχους

΄Οταν η σποραδική (n× n)-µήτρα A αποτελείται από τετράγωναπυκνά τµήµατα (υποµήτρες) δοµικά οργανωµένες, µπορούµε τότενα εκµεταλλευθούµε αυτό το γεγονός για την αποθήκευσή της.

Ας είναι ns η διάσταση του κάθε τετραγώνου και K το πλήθοςτους. Τότε η απαίτηση µνήµης είναι Kn2

s. Θέσε nb = n/ns. Ηαποθήκευση της A, σε αναλογία µε την συµπιεσµένηαποθήκευση κατά στοίχους, απαιτεί µία µήτραval(1 : K,1 : ns,1 : ns) για τις τιµές, ένα διάνυσµα col_ptr(1 : K)για την στήλη του πρώτου στοιχείου κάθε τετραγώνου και έναδιάνυσµα row_ptr(1 : nb + 1) για τους δείκτες που καταδεικνύουντην αρχή κάθε στοίχου τετραγώνου στοval και στο col_ptr. Τακέρδη σε µνήµη αλλά και σε χρόνο πρόσβασης στα στοιχεία είναισηµαντικά σε σύγκριση µε την συµπιεσµένη αποθήκευση γιαµεγάλο ns.

9 Απριλίου 2011 c� Α.Μ. /46

Page 25: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

49

AΠΘ

Ασκήσεις

1. Ν΄ αναπτυχθούν αλγόριθµοι υπολογισµού του γινοµένουµήτρας-διανύσµατος Ab όταν η A είναι σποραδική καιαποθηκευµένηα) συµπιεσµένη κατά στοίχους,ϐ) συµπιεσµένη κατά στήλες,γ) τυχαία,δ) τυχαία µε δείκτες σάρωσης.

2. Ν΄ αναπτυχθεί αλγόριθµος που µετατρέπει την τυχαίααποθήκευση σε τυχαία µε δείκτες σάρωσης.

3. Ν΄ αναπτυχθεί αλγόριθµος που µετατρέπει την τυχαίααποθήκευση µε δείκτες σάρωσης σε συµπιεσµένη κατάστοίχους.

9 Απριλίου 2011 c� Α.Μ. /49

Page 26: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

50

AΠΘ

4. Ν΄ αναπτυχθεί αλγόριθµος που µετατρέπει τη συµπιεσµένηαποθήκευση κατά στοίχους σε κατά στήλες.

5. Υπόθεσε ότι η συµµετρική σποραδική µήτρα A έχειαποθηκευµένο το άνω τριγωνικό τµήµα της κατά στοίχους. Ναεπεκταθεί η δοµή έτσι ώστε ν΄ αποθηκευτούν και τα υπό τηνδιαγώνιο στοιχεία της. Ν΄ αναπτυχθεί αλγόριθµος και για τοαντίστροφο.

6. Ν΄ αναπτυχθούν αλγόριθµοι πρόσθεσης δύο σποραδικώνµητρών για τις περιπτώσεις της 1.

7. Ν΄ αναπτυχθούν αλγόριθµοι αναστροφής σποραδικής µήτραςγια τις περιπτώσεις της 1.

9 Απριλίου 2011 c� Α.Μ. /49

Page 27: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

1

AΠΘ

∆οµές ∆εδοµένων στην Fortran

TYPE, PUBLIC : : Sparse_MatrixINTEGER, ALLOCATABLE, DIMENSION ( : ) : : First , AdjacentREAL, ALLOCATABLE, DIMENSION ( : ) : : ValueINTEGER : : NumRows, NumCols, NonZeroes , MaxSize

END TYPE

TYPE, EXTENDS( Sparse_Matrix ) , PUBLIC : : Sparse_Matrix_w_DiagonalREAL, ALLOCATABLE, DIMENSION ( : ) : : Diagonal

END TYPE

April 9, 2011 © A.M. /1

Page 28: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

2

AΠΘ

• Η δεύτερη δοµή έχει νόηµα µόνον για τετραγωνικές µήτρες(NumRows=NumCols=Order) και δη για συµµετρικές.

• Το MaxSize ≥ NonZeroes στην πρώτη και MaxSize ≥NonZeroes-Order στην δεύτερη περίπτωση.

• Η ίδια δοµή για αποθήκευση κατά στοίχο, κατά στήλη ή κατάτριπλότητα !

• Η ίδια δοµή για την σύµµετρη και την συµµετρική περίπτωση.

• Ενδεχοµένως ϑα έπρεπε ν΄ αποθηκεύεται και η περίπτωση.

9 Απριλίου 2011 c� Α.Μ. /2

Page 29: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

3

AΠΘ

Ιεραρχία από τα γραφήµατα

Είναι δυνατόν ν΄ αναπτυχθούν οι σποραδικές µήτρες στα πλαίσιαµιας ιεραρχίας κλάσεων εκκινώντας από µία δοµή γιαγραφήµατα:

TYPE, PUBLIC : : Adjacency_ListINTEGER, ALLOCATABLE, DIMENSION ( : ) : : FirstOut , AdjacentINTEGER : : NumNodes, NumArcs, MaxSize

END TYPE

TYPE, EXTENDS( Adjacency_List ) , PUBLIC : : Weighted_GraphREAL, ALLOCATABLE, DIMENSION ( : ) : : Weight

END TYPE

9 Απριλίου 2011 c� Α.Μ. /3

Page 30: Sporadikèc M trec - users.auth.grusers.auth.gr/~samig/courses/SparseMatrices2010/Lecture_no2.pdf30 A Trìpoi apoj keushc sporadik¸n mhtr¸n Up rqoun polloÐ trìpoi apoj keushc sporadik¸n

4

AΠΘ

TYPE, EXTENDS( Weighted_Graph ) , PUBLIC : : Sparse_MatrixINTEGER : : NumCols

END TYPE

TYPE, EXTENDS( Sparse_Matrix ) , PUBLIC : : Sparse_Matrix_w_DiagonalREAL, ALLOCATABLE, DIMENSION ( : ) : : Diagonal

END TYPE

Ταυτοποιούµε NumNodes (πλήθος κόµβων) µε το πλήθος στοίχωνκαι NumArcs (πλήθος τόξων) µε το πλήθος µη-µηδενικώνστοιχείων.

9 Απριλίου 2011 c� Α.Μ. /4


Recommended