ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Σχετικά έγγραφα
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Αλγόριθμοι και πολυπλοκότητα Τα συντομότερα μονοπάτια(shortest Paths)

Αλγόριθμοι και πολυπλοκότητα Minimum Spanning Trees

Αλγόριθμοι και πολυπλοκότητα Περιήγηση Πανεπιστημίων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 2: Εφαρμογές Δικτυωτής Ανάλυσης (1 ο Μέρος)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5

Αλγόριθμοι και πολυπλοκότητα Οριζόντια διερεύνηση

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Εισαγωγή στους Αλγορίθμους

Διοικητική Λογιστική

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 8

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Ψηφιακή Επεξεργασία Εικόνων

Εισαγωγή στους Αλγορίθμους

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Εισαγωγή στους Αλγορίθμους Ενότητα 10η

Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort)

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 3: Εφαρμογές Δικτυωτής Ανάλυσης (2 ο Μέρος)

Μάρκετινγκ Αγροτικών Προϊόντων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Δομές Δεδομένων Ενότητα 6

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Διοικητική Λογιστική

Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Βάσεις Περιβαλλοντικών Δεδομένων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Δομές δεδομένων. Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Βάσεις Περιβαλλοντικών Δεδομένων

Εισαγωγή στους Αλγορίθμους Ενότητα 9η

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Τεχνικό Σχέδιο - CAD

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Δομές Δεδομένων Ενότητα 1

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Εισαγωγή στην Διοίκηση Επιχειρήσεων

ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ

Κβαντική Επεξεργασία Πληροφορίας

Διαχείριση Πολιτισμικών Δεδομένων

Τεχνικό Σχέδιο - CAD

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 8: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΝΤΡΟΥ ΚΑΙ ΣΩΡΟΥ ΓΙΑ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗΣ ΑΛΓΟΡΙΘΜΟΣ HEAPSORT

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Στατιστική. 6 ο Μάθημα: Διαστήματα Εμπιστοσύνης και Έλεγχοι Υποθέσεων. Γεώργιος Μενεξές Τμήμα Γεωπονίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Διαφήμιση και Δημόσιες Σχέσεις Ενότητα 9: Σχέσεις διαφημιστή-διαφημιζόμενου

Μάρκετινγκ Αγροτικών Προϊόντων

Βέλτιστος Έλεγχος Συστημάτων

Μηχανολογικό Σχέδιο Ι

Μάρκετινγκ Αγροτικών Προϊόντων

ΗΛΕΚΤΡΟΝΙΚΗ Ι Ενότητα 5

Διδακτική Πληροφορικής

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΚΑΛΑΘΟΣΦΑΙΡΙΣΗΣ ΙΙ

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Ψηφιακή Επεξεργασία Εικόνων

Βάσεις Περιβαλλοντικών Δεδομένων

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 9: Άπληστοι Αλγόριθμοι. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

Τεχνικό Σχέδιο - CAD. Τόξο Κύκλου. Τόξο Κύκλου - Έλλειψη. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Οικονομική Γεωργικών Εκμεταλλεύσεων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Δομές Δεδομένων Ενότητα 4

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 4

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Κβαντική Επεξεργασία Πληροφορίας

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 1: Δικτυωτή Ανάλυση (Θεωρία Γράφων)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Εννοιες και Παράγοντες της Ψηφιακής Επεξεργασίας Εικόνας

Προσχολική Παιδαγωγική Ενότητα 2: Οργάνωση χρόνου και χώρου στα νηπιαγωγεία

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Αλγόριθμοι και πολυπλοκότητα Bucket-Sort και Radix-Sort

Εκπαιδευτική Διαδικασία και Μάθηση στο Νηπιαγωγείο Ενότητα 1: Εισαγωγή

Δομές Δεδομένων Ενότητα 3

Transcript:

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Κρήτης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Σημείωμα αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση, Όχι Παράγωγο Έργο.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-nd/.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί..

Minimum Spanning Tree Minimum Spanning Tree

Γενικά σημεία για μελέτη Minimum Spanning Trees (.) Ορισμοί Ένα σημαντικό γεγονός Αλγόριθμος των Prim-Jarnik s (..) Ο αλγόριθμος του Kruskal (..1) Minimum Spanning Tree

Minimum Spanning Tree Spanning υπογράφος Ένας υπογράφος του G που περιέχει όλους τους κόμβους του G Spanning δέντρο Ένας Spanning υπογράφος που είναι από μόνος του (ελεύθερο ) δέντρο Minimum spanning tree (MST) Το Spanning δέντρο ενός ζυγισμένου γράφου με το ελάχιστο άθροισμα βαρών των ακμών Εφαρμογές Δίκτυα επικοινωνιών Μεταφορικά δίκτυα DEN DFW 1 9 ORD STL 6 10 ATL PIT DCA Minimum Spanning Tree 6

Ιδιότητα Κύκλου Iδιότητα Κύκλου: Έστω T το ελάχιστο spanning δέντρο ενός ζυγισμένου γράφου G Έστω e μια ακμή του G η οποία δεν ανήκει στο T και C είναι ο κύκλος που σχηματίζεται από την e μαζί με το T Για κάθε ακμή f του C, weight(f) weight(e) Απόδειξη: Εις άτοπον απαγωγή Αν weight(f) > weight(e) μπορούμε να έχουμε ένα spanning δέντρο μικρότερου βάρους αντικαθιστώντας την e με την f f C 9 6 e Αντικαθιστώντας την f με την e δημιουργείται καλύτερο spanning δέντρο f C 9 6 e Minimum Spanning Tree

Ιδιότητα τμηματοποίησης Ιδιότητα τμηματοποίησης: Θεωρείστε ένα τμήμα των κόμβων του G μέσα στα υποσύνολα U και V Έστω e είναι μια ακμή ελάχιστου βάρους κατά μήκος του τμήματος Υπάρχει ένα ελάχιστο spanning δέντρο του G που περιέχει την ακμήe Απόδειξη: Έστω T ένα MST του G ΑΝ το T δεν περιέχει την e,θεωρείστε τον κύκλο C που σχηματίζεται από την e με το T και έστω f μια ακμή του C κατά μήκος του τμήματος Από την κυκλική ιδιότητα, weight(f) weight(e) Επομένως, weight(f) = weight(e) Παίρνουμε άλλο MST αντικαθιστώντας την f με την e U U Αντικαθιστώντας την f με την e προκύπτει άλλο MST f e f e Minimum Spanning Tree 9 9 V V

Ο αλγόριθμος των Prim-Jarnik s Ο αλγόριθμος των Prim-Jarnik s για τον υπολογισμό ενός MST είναι παρόμοιος με τον αλγόριθμο του Dijkstra Θεωρούμε ότι ο γράφος είναι συνδεδεμένος Διαλέγουμε έναν τυχαίο κόμβο s και δημιουργούμε το MST σαν ένα σύννεφο από κόμβους, αρχίζοντας από τον s Μαζί με κάθε κόμβο v αποθηκεύουμε και μια ετικέτα d(v) που αναπαριστά το μικρότερο βάρος μιας ακμής που συνδέει τον v με έναν κόμβο στο σύννεφο Σε κάθε βήμα Αποθηκεύουμε στο σύννεφο τον κόμβο u με την μικρότερη τιμή της ετικέτας απόστασης Ανανεώνουμε τις ετικέτες των κόμβων που είναι προσκείμενες στον u Minimum Spanning Tree 9

Ο αλγόριθμος των Prim-Jarnik Μια ουρά προτεραιότητας αποθηκεύει τους κόμβους έξω από το σύννεφο Key: απόσταση Element: κόμβος Locator-based μέθοδοι insert(k,e) επιστρέφει έναν locator replacekey(l,k) αλλάζει το κλειδί ενός αντικειμένου Αποθηκεύουμε τρεις ετικέτες με κάθε κόμβο: Απόσταση Την ακμή πατέρα σε ένα MST Τον Locator σε μια ουρά προτεραιότητας (συν.) Algorithm PrimJarnikMST(G) Q new heap-based priority queue s a vertex of G for all v G.vertices() if v = s setdistance(v, 0) else setdistance(v, ) setparent(v, ) l Q.insert(getDistance(v), v) setlocator(v,l) while Q.isEmpty() u Q.removeMin() for all e G.incidentEdges(u) z G.opposite(u,e) r weight(e) if r < getdistance(z) setdistance(z,r) setparent(z,e) Q.replaceKey(getLocator(z),r) Minimum Spanning Tree

Minimum Spanning Tree 11 Παράδειγμα B D C A F E 9 0 B D C A F E 9 0 B D C A F E 9 0 B D C A F E 9 0

Παράδειγμα (συν.) A 0 B D 9 F C E A 0 B D 9 F C E Minimum Spanning Tree 1

Λειτουργίες του γράφου Ανάλυση 1 Η μέθοδος incidentedges καλείται μια φορά για κάθε κόμβο Λειτουργίες ετικετών Θέτουμε/ανακτούμε τις ετικέτες απόστασης,πατέρα και locator του κόμβου z O(deg(z)) φορές Ανάθεση/ανάκτηση μιας ετικέτας παίρνει χρόνο O(1) Λειτουργίες ουρών προτεραιότητας Κάθε κόμβος εισάγεται και απομακρύνεται μια φορά από την ουρά προτεραιότητας, όπου κάθε εισαγωγή και απομάκρυνση παίρνει χρόνο O(log n) Το κλειδί ενός κόμβου w σε μια ουρά προτεραιότητας τροποποιείται το πολύ deg(w) φορές, όπου κάθε αλλαγή κλειδιού παίρνει χρόνο O(log n) Minimum Spanning Tree

Ανάλυση Ο αλγόριθμος των Prim-Jarnik τρέχει σε χρόνο O((n + m) log n) δεδομένου ότι ο γράφος αναπαρίσταται με μια δομή adjacency λίστας Θυμηθείτε ότι S v deg(v) = m Ο χρόνος εκτέλεσης είναι O(m log n) δεδομένου ότι ο γράφος είναι συνδεδεμένος Minimum Spanning Tree 1

Dijkstra vs. Prim-Jarnik Algorithm DijkstraShortestPaths(G, s) Q new heap-based priority queue for all v G.vertices() if v = s setdistance(v, 0) else setdistance(v, ) setparent(v, ) l Q.insert(getDistance(v), v) setlocator(v,l) while Q.isEmpty() u Q.removeMin() for all e G.incidentEdges(u) z G.opposite(u,e) r getdistance(u) + weight(e) if r < getdistance(z) setdistance(z,r) setparent(z,e) Q.replaceKey(getLocator(z),r) Algorithm PrimJarnikMST(G) Q new heap-based priority queue s a vertex of G for all v G.vertices() if v = s setdistance(v, 0) else setdistance(v, ) setparent(v, ) l Q.insert(getDistance(v), v) setlocator(v,l) while Q.isEmpty() u Q.removeMin() for all e G.incidentEdges(u) z G.opposite(u,e) r weight(e) if r < getdistance(z) setdistance(z,r) setparent(z,e) Q.replaceKey(getLocator(z),r) Minimum Spanning Tree 1

Ο αλγόριθμος του Kruskal Μια ουρά προτεραιότητας αποθηκεύει τις ακμές έξω από το σύννεφο Key: βάρος Element: ακμή Στο τέλος του αλγόριθμου Μένουμε με ένα σύννεφο που περιγράφει το MST Ένα δέντρο T το οποίο είναι το MST Algorithm KruskalMST(G) for each vertex V in G do define a Cloud(v) of {v} let Q be a priority queue. Insert all edges into Q using their weights as the key T while T has fewer than n-1 edges do edge e = T.removeMin() Let u, v be the endpoints of e if Cloud(v) Cloud(u) then Add edge e to T Merge Cloud(v) and Cloud(u) return T Minimum Spanning Tree 16

Τέλος Ενότητας