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

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

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

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

Λεξικό, Union Find. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Union Find, Λεξικό. Δημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Πρόβληµα (ADT) Λεξικού. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Λεξικό, Union - Find 2

Cuckoo Hashing. Αλγόριθμοι και Πολυπλοκότητα. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

Ουρά Προτεραιότητας: Heap

Αναδρομικές Σχέσεις «ιαίρει-και-βασίλευε»

Ουρά Προτεραιότητας: Heap

Αλγόριθμοι Αναζήτησης

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

ΕΝΟΤΗΤΑ 9 ΕΝΩΣΗ ΞΕΝΩΝ ΣΥΝΟΛΩΝ ( ΟΜΕΣ UNION-FIND)

Ουρά Προτεραιότητας: Heap

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1

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

υαδικά έντρα Αναζήτησης

έντρα Πολλαπλής ιακλάδωσης και (a, b)- έντρα

Ουρά Προτεραιότητας: Heap

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

Επιλογή. Πρόβλημα Επιλογής. Μέγιστο / Ελάχιστο. Εφαρμογές

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

Quicksort. Πρόβλημα Ταξινόμησης. Μέθοδοι Ταξινόμησης. Συγκριτικοί Αλγόριθμοι

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

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

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

Ασυμπτωτικός Συμβολισμός

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

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

Δοµές Δεδοµένων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2

Βασικές Έννοιες Θεωρίας Γραφημάτων

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

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

Μετασχηματισμοί, Αναπαράσταση και Ισομορφισμός Γραφημάτων

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

Συνδετικότητα γραφήματος (graph connectivity)

ιµελής Σχέση ιατεταγµένο ζεύγος (α, β): ύο αντικείµενα (όχι κατ ανάγκη διαφορετικά) σε καθορισµένη σειρά. Γενίκευση: διατεταγµένη τριάδα (α, β, γ), δι

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

Αναζήτηση Κατά Πλάτος

Ασυμπτωτικός Συμβολισμός

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

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

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

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

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

Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2

υναμικός Προγραμματισμός

Συντομότερες ιαδρομές

Το εσωτερικό ενός Σ Β

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ουρές προτεραιότητας

Οι βασικές πράξεις που ορίζουν τον ΑΤ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

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

Κεφάλαιο 6 Ουρές Προτεραιότητας

Βασικές Έννοιες Θεωρίας Γραφημάτων

(Γραμμικές) Αναδρομικές Σχέσεις

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

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

Πληροφορική 2. Δομές δεδομένων και αρχείων

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

υναμικός Προγραμματισμός

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

Μέγιστη Ροή Ελάχιστη Τομή

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Συντομότερες ιαδρομές

Επεξεργασία Ερωτήσεων

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1

Επεξεργασία Ερωτήσεων

Αναζήτηση Κατά Πλάτος

(Γραμμικές) Αναδρομικές Σχέσεις

Ασυμπτωτικός Συμβολισμός

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

Κατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

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

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

Σχέση Μερικής ιάταξης Σχέση Μερικής ιάταξης (ή µερική διάταξη): ανακλαστική, αντισυµµετρική, και µεταβατική. Αριθµοί: α β (αλλά όχι α < β), α β, Σύνολ

Ασυμπτωτικός Συμβολισμός

Δυναμικός Προγραμματισμός

Συντομότερες Διαδρομές

(Γραμμικές) Αναδρομικές Σχέσεις

Ουρά Προτεραιότητας (priority queue)

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

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

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

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

8. Σωροί (Heaps)-Αναδρομή- Προχωρημένη Ταξινόμηση

Transcript:

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

Πρόβλημα (ADT) Λεξικού υναμικά μεταβαλλόμενη συλλογή αντικειμένων που αναγνωρίζονται με κλειδί (π.χ. κατάλογοι, πίνακες Β ). Λεξικό : συλλογή αντικειμένων με μοναδικό κλειδί. Κλειδί: αριθμός ή τύπος δεδομένων με ολική διάταξη. Γενίκευση και για μη-μοναδικά κλειδιά. ADT λεξικού υποστηρίζει ακολουθίες λειτουργιών: Αναζήτηση στοιχείου με κλειδί x member(x): ελέγχει ύπαρξη στοιχείου με κλειδί x search(x): επιστρέψει δείκτη σε θέσεις x Εισαγωγή στοιχείου με κλειδί x ιαγραφή στοιχείου με κλειδί x Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2010) Λεξικό, Union - Find 2

Λειτουργίες Λεξικού Λεξικό υποστηρίζει λειτουργίες: Αναζήτηση/εισαγωγή/διαγραφή στοιχείου με κλειδί x Εκτύπωση στοιχείων σε αύξουσα / φθίνουσα σειρά Προηγούμενο και επόμενο στοιχείο. Μέγιστο και ελάχιστο στοιχείο. k-οστό μικρότερο στοιχείο Βοηθητικές λειτουργίες... Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2010) Λεξικό, Union - Find 3

Υλοποιήσεις Λεξικού Μη-ταξινομημένη διασυνδεδεμένη λίστα: Εισαγωγή: Ο(1) Αναζήτηση / διαγραφή: Ο(n) Κατάλληλη όταν συχνές εισαγωγές, σπάνιες αναζητήσεις / μεμονωμένες διαγραφές (π.χ. log file). Ταξινομημένος πίνακας: ( υαδική) αναζήτηση: Ο(log n) Στατική συλλογή : «εισαγωγή» Ο(log n) / στοιχείο Χρόνος ταξινόμησης : Ο(n log n) υναμική συλλογή : εισαγωγή / διαγραφή Ο(n) Κατάλληλη όταν συχνές αναζητήσεις και δεδομένα μεταβάλλονται σπάνια (π.χ. αγγλο-ελληνικό λεξικό). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2010) Λεξικό, Union - Find 4

Υλοποιήσεις Λεξικού Ζυγισμένο ( υαδικό) έντρο Αναζήτησης: Αναζήτηση / εισαγωγή / διαγραφή: Ο(log n) Μέγιστο / ελάχιστο / προηγούμενο / επόμενο / k-οστό: Ο(log n) Range queries σε γραμμικό χρόνο. Πλήρως δυναμική επιπλέον χώρος για δείκτες! Πίνακας Κατακερματισμού: Αναζήτηση / διαγραφή : Ο(1) Εισαγωγή : Ο(1) expected amortized, Ο(log n) (ακόμη και Ο(1)) whp., O(n) χ.π. εν υποστηρίζει αποδοτικά άλλες λειτουργίες. υναμική επιπλέον χώρος στον πίνακα (util 50%) Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2010) Λεξικό, Union - Find 5

ιαχείριση ιαμερίσεων Συνόλου Στοιχεία σύμπαντος διαμερίζονται σε κλάσεις ισοδυναμίας που μεταβάλλονται δυναμικά με ένωση. Λειτουργίες: Εύρεση find(x): αντιπρόσωπο κλάσης όπου ανήκει x. Ένωση union(x, y): ένωση κλάσεων όπου ανήκουν x και y. Λεξικό, Union - Find 6

Πρόβλημα Union Find Στοιχεία U = {1, 2,, n} αρχικά σε n κλάσεις. Κάθε κλάση προσδιορίζεται από στοιχείο αντιπρόσωπο. find(x): αντιπρόσωπος κλάσης όπου ανήκει x. Ελέγχουμε αν x και y ανήκουν στην ίδια κλάση. ιατηρούμε μοναδικό αντιπρόσωπο για κάθε κλάση. union(x, y): αντικατάσταση (αντιπροσώπων) κλάσεων x και y με κλάση που προκύπτει από ένωση. Νέος αντιπρόσωπος από τους αντιπροσώπους κλάσεων x, y Πάντα διαμέριση του U σε κλάσεις. n 1 ενώσεις (μετά από n 1, μία μόνο κλάση). ομή δεδομένων που ελαχιστοποιεί συνολικό χρόνο για ακολουθία m ευρέσεων και n 1 ενώσεων. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2010) Λεξικό, Union - Find 7

Αναπαράσταση με έντρα Κλάση : δέντρο με ρίζα στοιχείο-αντιπρόσωπο. size : μέγεθος κλάσης. par ρίζας : στον εαυτό της (ή NULL ή 0). Στοιχείο: κόμβος με πεδία id : όνομα στοιχείου. par : δείκτης σε «επόμενο» (στην κατεύθυνση του αντιπροσώπου) στοιχείο στην ίδια κλάση. Υλοποίηση με πίνακα προγόνων: A[x] : par στοιχείου x. Ρίζα στοιχείο αντιπρόσωπος έχει Α[x] = x και πεδίο size. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2010)

Αναπαράσταση με έντρα find(x): ακολουθούμε δείκτες par μέχρι ρίζα. elem find(elem x) { while (x!= A[x]) x = A[x]; return(x); } union(x, y): x και y αντιπρόσωποι διαφορετικών συνόλων Συνένωση δέντρων: par ρίζας 2 ου συν. = ρίζα 1 ου συν. Ενημέρωση μεγέθους Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2010) Λεξικό, Union - Find 9

Ένωση uniontree(elem x, elem y) { if (x == y) return; A[y] = x; A[x].size += A[y].size; } Λεξικό, Union - Find 10

Απόδοση Χρόνος χ.π. για m finds και n unions: O(mn+ n) Union : Ο(1) χρόνος. Find : Ο(ύψος δέντρου) Χειρότερη περίπτωση: ύψος = n 1 union(n-1, n), union(n-2, n-1), union(n-3, n-2), union(n-4, n-3),, union(3, 2), union(1, 2). Απλή δομή, εύκολη υλοποίηση, ακριβό find! Ισοδύναμη υλοποίηση με δέντρα και pointers. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2010) Λεξικό, Union - Find 11

Βεβαρυμένη Ένωση εύτερο σύνολο με λιγότερα στοιχεία. Λογαριθμικό ύψος δέντρου : Ο(log n). Βεβαρυμένη ένωση: δέντρο ύψους h έχει 2 h στοιχεία. Απόδειξη με επαγωγή: Ισχύει για h = 0 (δέντρο ενός στοιχείου). Ένωση δέντρων x και y με ύψη h x, h y, και στοιχεία s x s y Επαγωγικά, υποθέτουμε s 2 h (για x και y) Ύψος ένωσης = h x : στοιχεία ένωσης 2 ύψος Ύψος ένωσης = h y + 1 : στοιχεία ένωσης 2 s y 2 ύψος Χρόνος χ.π. για m finds και n unions: O(m log n + n) Απλή υλοποίηση και αποδεκτή απόδοση. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2010) Λεξικό, Union - Find 12

Σύμπτυξη Μονοπατιών Find ακριβό γιατί στοιχεία μακριά από ρίζα. Σύμπτυξη μονοπατιού όταν find(x): Κάνουμε παιδιά ρίζας τους προγόνους του x και το x. έντρο «κονταίνει» (όχι επιβάρυνση ασυμπτωτικού χρόνου). Στο μέλλον, θα βρίσκουμε σύνολο των στοιχείων γρήγορα. Λεξικό, Union - Find 13

Σύμπτυξη Μονοπατιών elem findtreepathcompression(elem x) { if (x!= A[x]) A[x] = findtreepathcompression(a[x]); return(a[x]); } Ανεβαίνουμε μέχρι ρίζα. Επιστρέφοντας μέχρι x, όλοι οι δείκτες par τίθενται να δείχνουν στη ρίζα. Λεξικό, Union - Find 14

Απόδοση έντρα, βεβαρυμένη ένωση, και σύμπτυξη μονοπατιών. Χρόνος χ.π. για m n finds και n unions: O(m α(n, m)) α(n, m): αντίστροφη συνάρτηση Ackermann. Μεγαλώνει εξαιρετικά αργά! Στην πράξη, μπορεί να θεωρηθεί σταθερά. Απλή δομή, εύκολη υλοποίηση, και ουσιαστικά γραμμικός χρόνος! Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2010) Λεξικό, Union - Find 15