Διδάσκων: Παναγιώτης Ανδρέου

Σχετικά έγγραφα
Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Ελάχιστα Γεννητορικά ένδρα

Αλγόριθμοι εύρεσης ελάχιστων γεννητικών δέντρων (MST)

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Δένδρα επικάλ επικ υψης ελάχιστου στους

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

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

Διάλεξη 18: B-Δένδρα

Εργαστήριο 2: Πίνακες

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

Διάλεξη 26: Σωροί. Διδάσκων: Παναγιώτης Ανδρέου

ηδάζθσλ: εµήηξεο Εετλαιηπνύξ

Θεωρία και Αλγόριθμοι Γράφων

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

έντρα ιδάσκοντες:. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

Διδάσκων: Κωνσταντίνος Κώστα

ιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Διάλεξη 29: Γράφοι. Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 21: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους

Διδάσκων: Παναγιώτης Ανδρέου

ΑΣΚΗΣΗ 1 Για τις ερωτήσεις 1-4 θεωρήσατε τον ακόλουθο γράφο. Ποιές από τις παρακάτω προτάσεις αληθεύουν και ποιές όχι;

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθμοι Γραφημάτων

Αλγόριθµοι και Πολυπλοκότητα

Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Ελάχιστο Γεννητικό Δένδρο. Παράδειγμα - Αλγόριθμος Prim. Γιατί δουλεύουν αυτοί οι αλγόριθμοι;

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

Διδάσκων: Κωνσταντίνος Κώστα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

Εργαστήριο 6: Αναζήτηση, Ανάλυση Πολυπλοκότητας

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17)

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου

Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα

Δένδρα επικάλυψης ελάχιστου κόστους και το πρόβλημα του πλανόδιου πωλητή (Traveling Salesman Problem: TSP)

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

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

Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Κατανεμημένα Συστήματα Ι

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

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

Εισαγωγή στην Επιστήμη των Υπολογιστών

Διάλεξη 11: Φροντιστήριο για Στοίβες. Διδάσκων: Παναγιώτης Ανδρέου. ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

ΕΠΛ 232: Αλγόριθµοι και Πολυπλοκότητα. Κατ οίκον Εργασία 2A Σκελετοί Λύσεων

Εισαγωγή στην Επιστήμη των Υπολογιστών

Προγραμματισμός Ι (ΗΥ120)

Διάλεξη 24: B-Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII. Διδάσκων: Παναγιώτης Ανδρέου

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

Διάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing)

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

Διάλεξη 13: Δέντρα ΙΙΙ - Ισοζυγισμένα Δέντρα, AVL Δέντρα

Άσκηση 3 (ανακοινώθηκε στις 24 Απριλίου 2017, προθεσμία παράδοσης: 2 Ιουνίου 2017, 12 τα μεσάνυχτα).

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

Πρόβλημα του ελάχιστα εκτεταμένου δένδρου - Minimum spanning tree. Κηρυττόπουλος Κωνσταντίνος Επ. Καθηγητής ΕΜΠ

Κινητός και ιάχυτος Υπολογισµός (Mobile & Pervasive Computing) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D.

Βασικές Προτάσεις. έντρα. υαδικά έντρα Αναζήτησης ( Α) Ισοζυγισµένα έντρα και Υψος. Κάθε δέντρο µε n κόµβους έχει n 1 ακµές.

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

3η Σειρά Γραπτών Ασκήσεων

Αλγόριθµοι και Πολυπλοκότητα

Ελάχιστο Συνδετικό Δέντρο

Ελάχιστο Συνδετικό Δέντρο

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ελάχιστο Συνδετικό Δέντρο

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

Ελάχιστο Συνδετικό έντρο

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

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

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

Κατ οίκον Εργασία 4 Σκελετοί Λύσεων

Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 Προγραμματιστική Άσκηση 1 7 Προγραμματιστική Άσκηση 2 (CoReLab - NTUA) Αλγόριθμοι - 3

Εργαστήριο 8: Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ

Αλγόριθµοι και Πολυπλοκότητα

3η Σειρά Γραπτών Ασκήσεων

Διδάσκων: Παναγιώτης Ανδρέου

Γέφυρες σε Δίκτυα. Μας δίνεται ένα δίκτυο (κατευθυνόμενο γράφημα) αφετηριακός κόμβος. Γέφυρα του (με αφετηρία τον ) :

Στοιχεία Θεωρίας Γράφων (Graph Theory)

Διδάσκων: Παναγιώτης Ανδρέου

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

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25)

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (3)

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

Transcript:

Διάλεξη 3: Ελάχιστα Γεννητορικά Δέντρα Ο λγόριθμος Kruskal Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Ο αλγόριθμος του Kruskalγια εύρεση ΕΓΔ σε γράφους - Παράδειγμα Εκτέλεσης Διδάσκων: Παναγιώτης νδρέου ΕΠΛ03 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

Ο αλγόριθμος του Kruskal κόμα ένας άπληστος (greedy)αλγόριθμος που υπολογίζει το Ελάχιστο Γεννητορικό Δένδρο (ΕΓΔ). Ενώ ο αλγόριθμος του Primεπεξεργάζεται μια-μια τιςκορυφές, ο αλγόριθμος του Kruskalεπεξεργάζεται μια-μια τις ακμέςτου γράφου. Επίσης, ενώ σε κάθε βήμα του αλγόριθμου του Primοι επιλεγμένες ακμές σχηματίζουν ένα δένδρο, στην περίπτωση του αλγόριθμου Kruskal, σχηματίζουν ένα δάσος(ένα σύνολο από δένδρα). Κεντρική ιδέα. ρχικά τοδάσος Τ είναι άδειο. Επεξεργαζόμαστε μια-μια τις ακμές, σε αύξουσα σειρά βάρους. Aν η εισαγωγή της e στο Τ δεν προκαλεί κύκλο,τότε προσθέτουμε την eστο Τ, δηλαδή Τ := Τ {e}. ΕΠΛ03 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

Παράδειγμα Εκτέλεσης Ταξινομημένες κμές με το Βάρος ΕΠΛ03 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 3 3 4 8

Παράδειγμα Εκτέλεσης ρχική Κατάσταση Μετά από επιλογή της πρώτης ακμής (Β,Ε) Ταξινομημένες κμές 3 4 8 ΕΠΛ03 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 4

Παράδειγμα Εκτέλεσης ΕΠΛ03 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 4 8 3 Ταξινομημένες κμές Μετά από επιλογή της πρώτης ακμής (,Ε)

Παράδειγμα Εκτέλεσης ΕΠΛ03 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 4 8 3 Ταξινομημένες κμές Μετά από επιλογή της τρίτης ακμής (Β,)

Παράδειγμα Εκτέλεσης ΕΠΛ03 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 4 8 3 Ταξινομημένες κμές Μετά από επιλογή της τέταρτης ακμής (Β,)

Παράδειγμα Εκτέλεσης ΕΠΛ03 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 8 4 8 3 Ταξινομημένες κμές Μετά από επιλογή της τέταρτης ακμής (Β,)

ποδοτική Εξάλειψη Κύκλων H ταξινόμηση των Άκμων είναι απλή, δηλαδή ταξινομούμε μια φορά όλες τις ακμές με κάποιο αλγόριθμο ταξινόμησης. Βασικό Πρόβλημα:Το πρόβλημα που απομένει είναι πως θα βρίσκουμε αποδοτικά εάν μια ακμή μπορεί να δημιουργήσει κύκλο Λύση Θα χρησιμοποιήσουμε ένα πίνακαti[n](treei)ο οποίος μας υποδεικνύει για κάθε κορυφή v σε πιο δένδρο ανήκειη v. Π.χ. εάνθέλω να προσθέσω μια ακμή (u,v)και u & v ανήκουν στο ίδιο δένδρο (TI[u]==ΤI[v]), τότε αυτή η ακμή θα δημιουργήσει κύκλο. Επομένως δε θα προσθέσω την (u,v) w u To (u,v) θα δημιουργήσει κύκλο γιατί και τα δυο ανήκουν στο ίδιο TI (i.e., ) To (u,w) δεν θα δημιουργήσει κύκλο γιατί οι δυο κόμβο ανήκουν σε διαφορετικά ΤΙ (i.e., και ) ΕΠΛ03 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

Υλοποίηση του λγορίθμου Kruskal Kruskal(graph G(V,)){ Tree = {}; // Το ΕΓ : Ένα σύνολο ακµών (αρχικά κενό) TI[ V ] = {} // Πίνακας που κρατά το TreeI του κάθε κόµβου ount = 0; // Μετρητής που κρατά από πόσες κορυφές πέρασα sortdges(); // Ταξινόµηση Άκµων σε χρόνο O(.log ) // ηµιουργούµε ένα δάσος από δένδρα µεγέθους for (i=0; i< V ; i++) // χρόνο Θ( V ) TI[i] = i; for (i=0; i< ; i++) { // χρόνο O( ) // ανάκτηση επόµενης (µικρότερης) ακµής (u,v) = nextdge(); // χρόνο Θ() If (TI[u]!= TI[v]) { // ν ανήκουν σε διαφορετικά δένδρα Tree = Tree {(u,v)}; // Προσθήκη κµής // Μετρούµε ποιος από τους u,v εµφανίζεται περισσότερο στο TI // και επιστρέφουµε τον µεγαλύτερο σαν TreeI x x = occurence(ti, u, v); // χρόνο O( V ) } } // νάθεση TreeI x σε όλους που έχουν TI[u] ή TI[v] count = merge(ti[u],ti[v],x); } if (count == V ) break; Συνολικός χρόνος: O(.log + V + * V ) ΕΠΛ03 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 0

Εκτέλεση της Υλοποίησης Kruskal. Nextedge => (,). TI[]!= TI[]?=> YS, ΕπομένωςTree = {} {(Β,Ε)}; 3. Merge(TI[],TI[],); 4. Nextedge => (,Ε). TI[]!= TI[]? => YS, Επομένως Tree={(Β,Ε)} {(,Ε)};. Merge(TI[],TI[],); Ταξινομημένες κμές { -=, -Ε=, Β-=, Ε-=, Β-=, -=, -Β=, -= } TI TI TI 0 3 4 A 0 3 A 0 A ΕΠΛ03 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

Εκτέλεση της Υλοποίησης Kruskal. Nextedge => (,) 8. TI[]!= TI[]?=> YS,ΕπομένωςTree = {(Β,Ε),(,Ε)} {(Β,)};. Merge(TI[],TI[],); 0. Nextedge => (Ε,) Ταξινομημένες κμές { -=,-Ε=, Β-=, Ε-=, Β-=, -=, -Β=, -= }. TI[Ε]!= TI[]? => ΝΟ, Επομένως δεν χρησιμοποιούμε το (Ε,); TI TI TI 0 A 0 A 0 A ΕΠΛ03 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

Εκτέλεση της Υλοποίησης Kruskal. Nextedge => (,) 3.TI[]!=TI[]?=> YS,ΕπομένωςTree = {(Β,Ε),(,Ε), (Β,)} {(Β,)}; 4. Merge(TI[],TI[],);. Nextedge => (,) Ταξινομημένες κμές { -=, -Ε=, Β-=, Ε-=, Β-=, -=, -Β=, -= }. TI[Ε]!= TI[]? => ΝΟ, Επομένως δεν χρησιμοποιούμε το (,); TI TI TI 0 A 0 A 0 A ΕΠΛ03 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 3

Εκτέλεση της Υλοποίησης Kruskal. Nextedge => (,Β) 8. TI[]!= TI[Β]? => YS, ΕπομένωςTree = {(Β,Ε),(Δ,Ε), (Β,Ζ), (Β,Γ)} {(,Β)}; Ταξινομημένες κμές { -=, -Ε=, Β-=, Ε-=, Β-=, -=, -Β=, -= } TI 0 A TI A Εδώ βρήκαμε V vertices, επομένως διακόπτουμε την αναζήτηση. TO ΕΓΔ είναι το {(Β,Ε),(Δ,Ε), (Β,Ζ), (Β,Γ),(,Β)}; ΕΠΛ03 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 4

Παράδειγμα Εκτέλεσης ρχική Κατάσταση Ταξινομημένες κμές { A-=, -=, Β-=, Ε-=, Β-=, -=, -Β=, -= } 0. TI 0 3 4 A TI. {A-} TI. {-} TI 3. {-} TI 4. {-}. {-} = τίποτα TI. {-}. break 0 0 4 A 0 0 4 A 0 0 4 A 0 0 A A ΕΠΛ03 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.