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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΗΥ360 Αρχεία και Βάσεις εδοµένων

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

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

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

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

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

ΘΕΜΑ 1: Αλγόριθμος Ford-Fulkerson

Προσεγγιστικοί Αλγόριθμοι

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

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

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

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

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

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

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

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

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

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

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φ Ρ Ο Ν Τ Ι Σ Τ Η Ρ Ι Ο 1 : ΤΑΞΙΝΟΜΗΣΗ Δ Ρ Ι Τ Σ Α Σ Η Λ Ι Α Σ Υ Π Ο Ψ Η Φ Ι Ο Σ Δ Ι Δ Α Κ Τ Ο Ρ Α Σ

Διερεύνηση γραφήματος

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

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

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

Γ. Κορίλη Αλγόριθµοι ροµολόγησης

ΠΛΗ111. Ανοιξη Μάθηµα 10 ο. Γράφοι. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

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

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

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

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

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

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

1 Διάσχιση κατευθυνόμενων γραφημάτων

Θεωρία Γράφων Αλγόριθμοι BFS, Prim, Dijkstra, Bellman-Ford

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

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

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

Γράφοι: κατευθυνόμενοι και μη

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

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

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

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

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

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

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

Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής και Τηλεπικοινωνιών. Παραλληλία. Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

έντρα ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη

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

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

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

Κεφάλαιο 3 : εδοµένα. Πίνακες Στοίβα Ουρά Αναζήτηση Ταξινόµηση. Προγράµµατα

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

Ενότητα 5: Αλγόριθμοι γράφων και δικτύων

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

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

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

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

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

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

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

Τομές Γραφήματος. Γράφημα (μη κατευθυνόμενο) Συνάρτηση βάρους ακμών. Τομή : Διαμέριση του συνόλου των κόμβων σε δύο μη κενά σύνολα

Transcript:

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

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

Παράδειγμα κτέλεσης Αρχική Κατάσταση ράφος G Μετά από επιλογή της πρώτης ακμής (Β,) 6 Β Β -E = - = Β- = - = Β- = 5 - = 6 Α-Β = 7 Α- = ΠΛ 35 ομές εδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. -3

Παράδειγμα κτέλεσης Μετά από επιλογή της δεύτερης ακμής (,) Μετά από επιλογή της τρίτης ακμής (Β,) 6 -E = - = Β- = - = Β- = 5 - = 6 Α-Β = 7 ΠΛ 35 ομές εδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. Α- = -4

Παράδειγμα κτέλεσης Μετά από επιλογή της τέταρτης ακμής (Β,) Μετά από επιλογή της πέμπτης ακμής (Α,Β) 7 5 5 ράφος G 6 -E = - = Β- = - = Β- = 5 - = 6 Α-Β = 7 Α- = (Κύκλος) (Κύκλος) Τέλος -5

Αποδοτική ξάλειψη Κύκλων H ταξινόμηση των Άκμων είναι απλή, δηλαδή ταξινομούμε μια φορά όλες τις ακμές με κάποιο αλγόριθμο ταξινόμησης. Βασικό Πρόβλημα: Το πρόβλημα που απομένει είναι πως θα βρίσκουμε αποδοτικά εάν μια ακμή μπορεί να δημιουργήσει κύκλο Λύση Θα χρησιμοποιήσουμε ένα πίνακα [n] (TreeID) ο οποίος μας υποδεικνύει για κάθε κορυφή v σε πιο δένδρο ανήκει η v. Π.χ. εάν θέλω να προσθέσω μια ακμή (u,v) και u & v ανήκουν στο ίδιο δένδρο ([u]==τid[v]), τότε αυτή η ακμή θα δημιουργήσει κύκλο. πομένως δε θα προσθέσω την (u,v) u v To (u,v) θα δημιουργήσει κύκλο γιατί και τα δυο ανήκουν στο ίδιο (i.e., ) To (u,w) δεν θα δημιουργήσει κύκλο γιατί οι δυο κόμβο ανήκουν σε διαφορετικά ΤΙD (i.e., και ) w -6

Υλοποίηση του Αλγορίθμου Kruskal Kruskal(graph G(V,E)){ Tree = {}; // Το : Ένα σύνολο ακμών (αρχικά κενό) [ V ] = {} // Πίνακας που κρατά το TreeID του κάθε κόμβου Count = ; // Μετρητής που κρατά από πόσες κορυφές πέρασα sortedges(e); // Ταξινόμηση Άκμων σε χρόνο O( E.log E ) // ημιουργούμε ένα δάσος από δένδρα μεγέθους for (i=; i< V ; i++) // χρόνο Θ( V ) [i] = i; for (i=; i< E ; i++) { // χρόνο O( E ) // ανάκτηση επόμενης (μικρότερης) ακμής (u,v) = nextedge(); // χρόνο Θ() If ([u]!= [v]) { Tree = Tree {(u,v)}; // Αν ανήκουν σε διαφορετικά δένδρα // Προσθήκη Ακμής } } // Μετρούμε ποιος από τους u,v εμφανίζεται περισσότερο στο // και επιστρέφουμε τον μεγαλύτερο σαν TreeID x x = occurence(, u, v); // χρόνο O( V ) // Ανάθεση TreeID x σε όλους που έχουν [u] ή [v] count = merge([u],[v],x); } if (count == V ) break; 3 4 5 Συνολικός χρόνος: O( E.log E + V + E * V ) -7 V

κτέλεση της Υλοποίησης Kruskal 6 3 4 5 { -E =, - =, Β- =, - =, Β- = 5, - = 6, Α-Β = 7, Α- = }. Nextedge => (,E). []!= [E]? => YES, πομένως Tree = {} {(Β,)}; 3. Merge([],[E],); 3 5 4. Nextedge => (,) 5. []!= [E]? => YES, πομένως Tree={(Β,)} {(,)}; 6. Merge([],[E],); 5 ΠΛ 35 ομές εδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. -8

κτέλεση της Υλοποίησης Kruskal 6 5 { -E =, - =, Β- =, - =, Β- = 5, - = 6, Α-Β = 7, Α- = } 7. Nextedge => (,) 8. []!= []? => YES,πομένως Tree = {(Β,),(,)} {(Β,)};. Merge([],[],);. Nextedge => (,). []!= []? => ΝΟ, πομένως δεν χρησιμοποιούμε το (,); ΠΛ 35 ομές εδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. -

κτέλεση της Υλοποίησης Kruskal 6 { -E =, - =, Β- =, - =, Β- = 5, - = 6, Α-Β = 7, Α- = }. Nextedge => (,) 3. []!=[]? => YES,πομένως Tree = {(Β,),(,), (Β,)} {(Β,)}; 4. Merge([],[],); 5. Nextedge => (,) 6. []!= []? => ΝΟ, πομένως δεν χρησιμοποιούμε το (,); 7. Nextedge => (Α,Β) 8. [Α]!= [Β]? => YES, πομένως Tree = {(Β,),(,), (Β,), (Β,)} {(Α,Β)}; δώ βρήκαμε V vertices, επομένως διακόπτουμε την αναζήτηση. TO είναι το Τree = {(Β,),(,), (Β,), (Β,),(Α,Β)}; ΠΛ 35 ομές εδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. -