sporadikèc m trec - users.auth.grusers.auth.gr/~samig/courses/sparsematrices2010/lecture_no2.pdf30...

Post on 18-Aug-2019

220 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

AΠΘ

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

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

ΑΠΘ

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

30

AΠΘ

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

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

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

-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� ���������

;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

.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

*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����

<: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����

<*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

%����

%����

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

%����

%����

%���� %����

%����

%����

%����

%����

%���� %����

?%���� `%���� `%���� �%���� `%���� `%���� �%���� �%���� �%���� �%���� `%���� �����%���� 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�

32

AΠΘ

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

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

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

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

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

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

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

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

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

36

AΠΘ

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

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

1 2

6

5 3

4

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

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

38

AΠΘ

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

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

1 2

6

5 3

4

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

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

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

41

AΠΘ

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

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

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

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

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

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

43

AΠΘ

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

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

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

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

45

AΠΘ

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

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

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

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

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

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

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

49

AΠΘ

Ασκήσεις

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

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

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

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

50

AΠΘ

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

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

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

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

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

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

2

AΠΘ

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

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

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

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

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

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

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

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

top related