Advanced Data Indexing

Σχετικά έγγραφα
Advanced Data Indexing

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

Μπαλτάς Αλέξανδρος 21 Απριλίου 2015

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

Διάλεξη 14: Δέντρα IV - B-Δένδρα

Προηγμένη Ευρετηρίαση Δεδομένων (ΠΜΣ) Ενδεικτικές ερωτήσεις-θέματα για την εξέταση της θεωρίας

Κεφ.11: Ευρετήρια και Κατακερματισμός

Advanced Data Indexing

Red-black δέντρα (Κεφ. 5)

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης

Εκτενείς Δομές Δεδομένων

Εκτενείς Δομές Δεδομένων

Red- black δέντρα Εκτενείς Δομές Δεδομένων (Κεφ. 5)

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

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S

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

Δομές Δεδομένων. Ενότητα 13: B-Δέντρα/AVL-Δέντρα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων

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

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

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

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

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

Αλγόριθμοι Ταξινόμησης Μέρος 4

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

AVL-trees C++ implementation

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

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

Advanced Data Indexing

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ουρές Προτεραιότητας. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

Βάσεις Δεδομένων ΙΙ Ενότητα 6

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

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

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

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

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

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

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε:

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

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

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

R-Trees, kd-trees, QuadTrees. Εαρινό Εξάμηνο Τμήμα Μηχανικών Η/Υ και Πληροϕορικής Πολυτεχνική Σχολή, Πανεπιστήμιο Πατρών

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

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

ΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 8-1

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

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

Τα δεδοµένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Για να επεξεργαστούµε τα δεδοµένα θα πρέπει αυτά να βρίσκονται στη

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research

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

2.3 Στάσιμο κύμα. ημ 2π. συν = 2A. + τα οποία T. t x. T λ T λ ολ

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

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

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας

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

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

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

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

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

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

Κεφάλαιο 14. Δομές Ευρετηρίων για Αρχεία. Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση,

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

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

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης

Insert (P) : Προσθέτει ένα νέο πρότυπο P στο λεξικό D. Delete (P) : Διαγράφει το πρότυπο P από το λεξικό D

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

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Πίνακες Κατακερματισμού. Hash Tables. Προγραμματισμός II 1

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

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1

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

Διαχρονικές δομές δεδομένων

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

Άσκηση 1. με κόκκινο χρώμα σημειώνονται οι κρίσιμοι κόμβοι

6. ΑΡΙΘΜΗΤΙΚΗ ΟΛΟΚΛΗΡΩΣΗ

Δυναμικές Δομές Δεδομένων Λίστες Δένδρα - Γράφοι

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων

Λύσεις Προαιρετικής Eργασίας Τεχνικές Εκτίμησης

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

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

Ευρετήρια. Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου. Ευρετήρια. Ευρετήρια. Ευρετήρια

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

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 6: Δομές ευρετηρίων για αρχεία

ιαφάνειες παρουσίασης #10 (β)

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

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

Transcript:

Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Αναζήτηση Δέντρα ( ο Μέρος)

Αναζήτηση (Searching)

Η Αναζήτηση Searching (Αναζήτηση) ενός αντικειμένου μέσα από N ταξινομημένα αντικείμενα. Είναι στοιχειώδης διαδικασία, πού σημαντική σχεδόν σε όα τα προβήματα που αφορούν δεδομένα. Προϋποθέτει τα αντικείμενα να είναι ταξινομημένα αν θέουμε να έχουμε την βέτιστη πουποκότητα: Search(N) = Θ(log B N) Στην κύρια μνήμη ή (D=) Search(N) = Θ(log DB N) Στο μοντέο PDM (D>)

Η Αναζήτηση απαιτεί Δομές Για να υποστηριχθεί η αποδοτική αναζήτηση (ογαριθμική πουποκότητα) απαιτείται η χρήση δομών-ευρετηρίων (indexing) πάνω στα ταξινομημένα δεδομένα. Οι δομές αυτές πρέπει να είναι κατάηες ώστε οι εξής 3 πράξεις να υποστηρίζονται αποδοτικά:. Εύρεση (find) ενός στοιχείου στο σύνοο. 2. Ένθεση (insert) ενός νέου στοιχείου στο σύνοο. 3. Διαγραφή (delete) ενός υπάρχοντος στοιχείου από το σύνοο. Απαραίτητη προϋπόθεση για τις πράξεις insert, delete είναι τα δεδομένα μετά από αυτές να παραμένουν ταξινομημένα.

Τι είδους Δομές; Ποές φορές απαιτείται ο σχεδιασμός δομών ανάογα:. Με το είδος των δεδομένων [π.χ. αριθμητικά, κειμένου (εξικά), χωρικά, πουμεσικά, κπ.] 2. Με το είδος των ερωτημάτων που θέουμε να υποστηριχθούν [π.χ. simple find queries, nearestneighor queries, range queries, top- queries, κπ.] Διατηρούν τα στοιχεία ταξινομημένα, οπότε υποστηρίζουν range queries Κατακερματισμός Δέντρα

Δέντρα Αναζήτησης Εσωτερικής Μνήμης Δυαδικό Δέντρο Αναζήτησης (Binary Tree): Υποθέτουμε ότι τα στοιχεία είναι στα φύα. Η εύρεση (απή αναζήτηση ενός στοιχείου) γίνεται διασχίζοντας ένα μονοπάτι από τη ρίζα μέχρι το φύο που βρίσκεται: Ο(log 2 N) Συνεπώς η εύρεση γίνεται σε Ο(log 2 N) χρόνο. Το δέντρο όμως πρέπει να είναι ισοζυγισμένο. Για να διατηρηθεί έτσι χρειάζονται ειδικοί αγόριθμοι κατά την εισαγωγή και την διαγραφή στοιχείων.

Δέντρα Αναζήτησης Εσωτερικής Μνήμης Αν τα στοιχεία στα φύα είναι και μεταξύ τους συνδεδεμένα, τότε μπορούμε να υποστηρίξουμε εύρεση επομένου ή προηγουμένου καθώς και ερωτήματα περιοχής (range queries): Ο(log 2 N) Γίνεται η εύρεση των δύο άκρων με απή αναζήτηση. Διασχίζουμε την συνδεδεμένη ίστα των φύων ανάμεσα στα δύο άκρα. Συνοικό κόστος: Ο(Ζ+2log 2 N)= Ο(Ζ+log 2 N) Ζ

Δένδρα Αναζήτησης Εξωτερικής Μνήμης Το δέντρο είναι αποθηκευμένο σε πήθος μποκ μεγέθους Β. Στο μέγεθος ενός μποκ Β χωράει ένα σταθερό πήθος κόμβων (είτε εσωτερικών είτε φύων). Για να εκμεταευτούμε την τοπικότητα θα πρέπει στο ίδιο μποκ να είναι αποθηκευμένοι γειτονικοί κόμβοι του δέντρου. Εφόσον διαβάζονται και γράφονται οόκηρα μποκ, στο κόστος μετράει και το ύψος του δέντρου ως προς τα μποκ. Θ(B)

Δένδρα Αναζήτησης Εξωτερικής Μνήμης Ο(log 2 B) Ο(log 2 N) Ζ Θ(B) Το ύψος του δέντρου ως προς τα μποκ είναι: Ο(log 2 N)/Ο(log 2 B)=O(log B N) Τα κειδιά των Z αντικειμένων που επιστρέφονται ως απάντηση σε ένα ερώτημα εξάγονται επίσης σε πήθος μποκ. I/O κόστος ερωτημάτων αναζήτησης (search): O(log B N) [Βέτιστο] I/O κόστος ερωτημάτων περιοχής (range): O(log B N + Z/Β) [Βέτιστο] Απαιτούμενος χώρος (ισοζυγισμένο): O(N/B) [Βέτιστος]

Δένδρα Αναζήτησης Εξωτερικής Μνήμης Για να διατηρηθεί η τοπικότητα πρέπει να διατηρηθεί η σειρά των κατά πάτους μποκ (BFS) σε ενημερώσεις (insert, delete, update) Μία τεχνική είναι η επαναζύγιση με περιστροφές: x y y x Φαίνεται δύσκοο να διατηρηθεί το BFS κατά την περιστροφή! Αν μάιστα έχουμε συχνές ενημερώσεις που προκαούν επαναζυγίσεις σε μεγάο ποσοστό, συμφέρει καύτερα να κτίσουμε όο το δέντρο από την αρχή! (Bulload)

Δένδρα Αναζήτησης Εξωτερικής Μνήμης Επίσης συμφέρει τα μποκ κατά BFS να αντιστοιχούν σε δέντρο με βαθμό Θ(B) Β-Δέντρα Αν επιτρέψουμε την διακύμανση του βαθμού θα πετύχουμε πιο αποδοτική επαναζύγιση (διάσπαση, συγχώνευση, διαμοίραση) (α,)-δέντρα

(α,)-δέντρα Τα Β-Δέντρα είναι ειδική περίπτωση μίας γενικότερης ομάδας δέντρων τα (a,)-δέντρα. Ένα Δέντρο T είναι (a,)-δέντρο (a 2 και 2a-) όταν: Όα τα φύα του Τ είναι στο ίδιο επίπεδο και περιέχουν από a έως στοιχεία (min=a, max=) Εκτός της ρίζας, όοι οι κόμβοι έχουν βαθμό μεταξύ a και Η ρίζα έχει βαθμό μεταξύ 2 και και περιέχει από ως - στοιχεία. (2,) δέντρο

(α,)-δέντρα Συνήθως τα N στοιχεία είναι αποθηκευμένα μόνο στα φύα, ενώ οι εσωτερικοί κόμβοι χρησιμοποιούνται βοηθητικά για να καθοδηγούν τα μονοπάτια των αναζητήσεων. Έτσι το (a,)-δέντρο χρησιμοποιεί γραμμικό χώρο: O(N/B) και έχει ύψος Ο(log α Ν). Αν επιέξουμε a, = Θ(Β) [Β-Δέντρα] τότε θα έχουμε ύψος ως προς μποκ: Ο(log α N)/Ο(log α B)=O(log B N). Συνεπώς: I/O κόστος ερωτημάτων αναζήτησης (search): O(log B N)

(α,)-δέντρα Στα ερωτήματα περιοχής (διάστημα [q, q 2 ]) εντοπίζονται τα άκρα q, q 2 σε O(log B N) και διασχίζονται τα φύα που πάι είναι συνδεδεμένα μεταξύ τους σε σειρά. Αν Ζ τα στοιχεία στο [q, q 2 ]: I/O κόστος ερωτημάτων περιοχής: O(log B N + Z/Β) q q 2 Ζ

Ένθεση ενός Στοιχείου Βρίσκεται και εισάγεται το νέο στοιχείο στο φύο που αντιστοιχεί (v) Αν το v φτάσει τα + στοιχεία/παιδιά τότε διασπάται (split) σε δύο νέα φύα v, v με + και + a στοιχεία. Στον πατέρα του v διαγράφεται ο δείκτης για τον v και προστίθενται οι δείκτες για τους v, v. Αν και ο πατέρας του v φτάσει τα + στοιχειά διασπάται ομοίως. 2 Συνεχίζεται ο έεγχος αναδρομικά προς τα πάνω μέχρι και την ρίζα (αν χρειαστεί). 2 + v v v + + 2 Κόστος: O(log α N) 2

Διαγραφή ενός Στοιχείου Βρίσκεται και διαγράφεται το στοιχείο από το φύο που αντιστοιχεί (v) Αν το v φτάσει τα α- στοιχεία/παιδιά τότε συγχωνεύεται (fuse) με έναν αδερφό του v. Μετακινούνται όα τα στοιχεία του v στον v. Διαγράφεται ο δείκτης για τον v. Αν ο v έχει > (και <a-+<2) στοιχεία/ παιδιά τότε διασπάται (split). Συνεχίζεται ο έεγχος αναδρομικά προς τα πάνω μέχρι και την ρίζα (αν χρειαστεί). v a v v 2a Κόστος: O(log α N)

Άες Ιδιότητες των (α,)-δέντρων Αν =2a- κάθε ενημέρωση προκαεί ποές επαναζυγίσεις: O(log a N) διαγραφή ένθεση (2,3)-δένδρο Το χειρότερο αυτό κόστος επιτυγχάνεται αν γίνεται εισαγωγή και διαγραφή του ίδιου στοιχείου διαδοχικά. Αν 2a οι ενημερώσεις προκαούν επιμερισμένες επαναζυγίσεις: O( loga N) a

B-Δέντρα B-Δέντρα είναι απά (a,)-δέντρα όπου a, = Θ(Β). Απαιτούμενος χώρος: O(N/B) I/O κόστος ερωτημάτων αναζήτησης (search): O(log B N) I/O κόστος ερωτημάτων περιοχής (range): O(log B N+Z/B) B + -Δέντρα είναι τα B-Δέντρα που τα στοιχεία τους είναι αποθηκευμένα μόνο στα φύα, ενώ οι εσωτερικοί κόμβοι χρησιμοποιούνται βοηθητικά για να καθοδηγούν τα μονοπάτια των αναζητήσεων.

Κατασκευή B-Δέντρων Μέθοδος Insertion-Load: Τα N στοιχεία εισέρχονται ένα-ένα χωρίς κάποια διατεταγμένη σειρά απαραίτητα. I/O Κόστος κατασκευής: O(Nlog B N) Μέθοδος Bul-Load: Ταξινομούνται όα τα N στοιχεία στην δευτερεύουσα μνήμη. Κατασκευάζονται τα φύα συνδέοντας τα ταξινομημένα στοιχεία. Χτίζεται το δένδρο από κάτω προς τα πάνω (ανά επίπεδο). I/O Κόστος κατασκευής: Θ N log N ) ( B M B B

Παραδείγματα Insertion Load και ειτουργία του B + -Tree με επτομέρειες υοποίησης (Διαφάνειες). Γιατί δεν συμφέρει το Insertion Load σε ήδη ταξινομημένα δεδομένα (Προσομοιωτής). Εισαγωγές, διαγραφές, διασπάσεις, συγχωνεύσεις, επαναζυγίσεις σε B + -Tree (Προσομοιωτής). https://www.cs.usfca.edu/~galles/visualization/ BPlusTree.html (University of San Francisco)

B-Δέντρα παρααγές των (α,) B-Δέντρο με παράμετρο διακάδωσης (ranching factor) και παράμετρο φύων (, 8): Όα τα φύα είναι στο ίδιο επίπεδο και περιέχουν από / έως στοιχεία. Εκτός της ρίζας, όοι οι κόμβοι έχουν βαθμό μεταξύ / και. Η ρίζα έχει βαθμό μεταξύ 2 και. B-Δέντρο με παράμετρο φύων =Ω(Β): Χρησιμοποιεί O(N/B) χώρο. Έχει ύψος Ο(log (N/B)). Κάνει Ο((/())log (N/B)) επιμερισμένες επαναζυγίσεις (split/fuse) εσωτερικών κόμβων. N Το I/O κόστος κατασκευής του (ul-load) είναι: Θ( N B log M ) B-Δέντρο με παράμετρο διακάδωσης Θ(B c B B ), 0<c, και παράμετρο φύων Θ(B): Χρησιμοποιεί O(N/B) χώρο. Έχει I/O κόστος ενημερώσεων/αναζητήσεων: Ο(log B cn) =Ο(log B N). Έχει I/O κόστος ερωτημάτων περιοχής: Ο(log B N+Z/Β).

Η ανάγκη προσθήκης βαρών Όταν δευτερεύουσες δομές ή πράξεις είναι συνδεδεμένες με τους εσωτερικούς κόμβους, τότε δεν πρέπει να γίνονται συχνά επαναζυγίσεις στους πιο σημαντικούς. Το βάρος w(v) ενός κόμβου v ορίζεται ως το πήθος όων των στοιχείων που περιαμβάνονται σε όα τα φύα του υπόδεντρού του. Είναι χρήσιμο ένα δέντρο στο οποίο κάθε κόμβος v με βάρος w(v) συμμετέχει σε μία μόνο πράξη επαναζύγισης για κάθε Ω(w(v)) ενημερώσεις που γίνονται κάτω από αυτόν. Οι κόμβοι των (α,)-δέντρων και κατά συνέπεια και των Β-Δέντρων δεν έχουν αυτή την ιδιότητα. (2,)-δένδρο

Βαροζυγισμένα B-Δέντρα Βασική Ιδέα: Τοποθετούνται Περιορισμοί Βάρους στους κόμβους. Είναι καύτερα ζυγισμένα από τα B-Δέντρα μετά από επαναζυγίσεις όγω διασπάσεων συγχωνεύσεων και ενημερώσεων. Βαροζυγισμένο B-Δέντρο με παράμετρο διακάδωσης και παράμετρο φύων ( 8, 8) είναι το B-Δέντρο όπου: Όα τα φύα είναι στο ίδιο επίπεδο (level-0) και κάθε φύο v έχει βάρος: / w(v). Κάθε εσωτερικός κόμβος v στο επίπεδο έχει βάρος: w(v). Εκτός της ρίζας, κάθε εσωτερικός κόμβος v στο επίπεδο έχει βάρος: w(v) (/). Η ρίζα έχει περισσότερα από ένα παιδιά....... Επίπεδο Επίπεδο -

Βαροζυγισμένα B-Δέντρα Οι περιορισμοί στους κόμβους από τα βάρη στην πραγματικότητα προκαούν περιορισμούς και στον βαθμό τους (όπως έχουμε και στα απά Β-Δέντρα): Εάχιστος Βαθμός: Μέγιστος Βαθμός: / = / = Συνεπώς, κάθε βαροζυγισμένο δέντρο έχει ύψος: O(log N )... Επίπεδο... Επίπεδο -

Ένθεση Στοιχείου Εύρεση κατάηου φύου u και ένθεση του νέου στοιχείου. Έεγχος βαρών στο μονοπάτι από το u μέχρι τη ρίζα: Αν ο κόμβος v στο επίπεδο έχει w(v)= + τότε διασπάται σε v και v με ιδανικά βάρη: + w( v') = ( + ) w( v'') = 2 ( + ) 2... Επειδή όμως είναι απίθανο να πετύχουμε επαναζυγίσεις με ιδανικά βάρη μπορούμε πάντα να επιέξουμε κατάηο πήθος παιδιών στη μοιρασιά στους v και v ώστε τα βάρη τους να κυμαίνονται από: 3 μέχρι 2 > 8 + 5 2 + 8 + < και να διατηρηθούν έτσι οι ιδιότητες του δέντρου. Αυτό συμβαίνει καθώς οι κόμβοι του επιπέδου (-) έχουν το πού βάρος: αφού 8. 8... + +

Ένθεση Στοιχείου Με τον τρόπο αυτό απαιτούνται Ω( ) ενημερώσεις κάτω από τους κόμβους v και v μέχρι την επόμενη πράξη επαναζύγισης. Πιο συγκεκριμένα απαιτούνται: 8 + διαγραφές ή 3 8 ενθέσεις κάτω από αυτούς.... + + +...

Διαγραφή Στοιχείου...... + + Εύρεση κατάηου φύου u και διαγραφή του στοιχείου. Έεγχος βαρών στο μονοπάτι από το u μέχρι τη ρίζα: Αν ο κόμβος v στο επίπεδο έχει w(v)=(/) - τότε συγχωνεύεται με έναν αδερφό του. Ο τεικός κόμβος, έστω v, θα έχει βάρος: Αν w(v ) (7/8) τότε διασπάμε σε δύο κόμβους (share) με κατάηη μοιρασιά ώστε τα βάρη να κυμαίνονται από: μέχρι και να διατηρηθούν έτσι οι ιδιότητες του δέντρου. ') ( ') ( 5 2 + + w v w v 6 5 6 7 > < + 8 6 8 5

Διαγραφή Στοιχείου Με τον τρόπο αυτό πάι απαιτούνται Ω( ) ενημερώσεις μέχρι την επόμενη πράξη επαναζύγισης. Πιο συγκεκριμένα απαιτούνται: 8 + ενθέσεις ή 6 διαγραφές κάτω από αυτούς.... + +...

Βαροζυγισμένα B-Δέντρα στη δευτερεύουσα μνήμη Βαροζυγισμένο B-Δέντρο με παράμετρο διακάδωσης και παράμετρο φύων =Ω(B): Χρησιμοποιεί γραμμικό χώρο: O(N/B). Έχει ύψος: Ο(log (N/B)). Απαιτεί O(log (N/B)) επαναζυγιστικές πράξεις (splits/fuses) μετά από κάποια ενημέρωση. Μεταξύ δύο διαδοχικών επαναζυγίσεων σε έναν κόμβο v απαιτούνται το ιγότερο Ω(w(v)) ενημερώσεις. N Το I/O κόστος κατασκευής του (ul-load) είναι: Θ( N B log M ) B B Έχει I/O κόστος ενημερώσεων/αναζητήσεων: Ο(log (N/B)). Έχει I/O κόστος ερωτημάτων περιοχής: Ο(log (N/B)+Z/Β).

Βαροζυγισμένα B-Δέντρα στη δευτερεύουσα μνήμη Βαροζυγισμένο B-Δέντρο με παράμετρο διακάδωσης =Θ(B c ), 0<c, και παράμετρο φύων =Θ(B), (π.χ. =B/, =B): Χρησιμοποιεί γραμμικό χώρο: O(N/B). Έχει ύψος: Ο(log B N). Απαιτεί O(log B N) επαναζυγιστικές πράξεις (splits/fuses) μετά από κάποια ενημέρωση. Μεταξύ δύο διαδοχικών επαναζυγίσεων σε έναν κόμβο v απαιτούνται το ιγότερο Ω(w(v)) ενημερώσεις. Το I/O κόστος κατασκευής του (ul-load) είναι: Θ N log M Έχει I/O κόστος ενημερώσεων/αναζητήσεων: Ο(log B N). Έχει I/O κόστος ερωτημάτων περιοχής: Ο(log B N+Z/Β). N ( B B B )

ΤΕΛΟΣ 3