Δένδρα van Emde Boas
-
Author
sybil-nunez -
Category
Documents
-
view
46 -
download
3
Embed Size (px)
description
Transcript of Δένδρα van Emde Boas

Δένδρα van Emde Boas
Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών ,
, τα οποίo είναι υποσύνολο του .
Υποστηριζόμενες λειτουργίες
αναζήτηση(S,x):
εισαγωγή(S,x):
διαγραφή(S,x):
επιστρέφει το στοιχείο x αν υπάρχει στο S
θέτει
θέτει
διάδοχος(S,x):
προκάτοχος(S,x):
επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S
επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S
Οι λειτουργίες εύρεσης διαδόχου και προκατόχου αυξάνουν την πολυπλοκότητα
του προβλήματος. Χωρίς αυτές ο δυναμικός πλήρης κατακερματισμός λύνει το
πρόβλημα σε σταθερό αναμενόμενο αντισταθμιστικό χρόνο και χώρο.
Με χώρο αρκεί ένας πίνακας δυαδικών ψηφίων .

Δένδρα van Emde Boas
Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών ,
, τα οποίo είναι υποσύνολο του .
Συναρτήσεις επιλογής δυαδικών ψηφίων
μισά πιο σημαντικά δυαδικά ψηφία
μισά λιγότερο σημαντικά δυαδικά ψηφία
Για απλότητα θα θεωρήσουμε ότι το είναι δύναμη του .
Τότε

Δένδρα van Emde Boas
Χωρίζουμε το χώρο σε τμήματα μεγέθους
Αν τότε . Η θέση του εντός του είναι η .
Ενεργό τμήμα : περιέχει στοιχεία του

Δένδρα van Emde Boas
Είναι το μικρότερο στοιχείο τέτοιο ώστε , αν υπάρχει.
Διαφορετικά είναι το μικρότερο στοιχείο του επόμενου ενεργού τμήματος ,
Η αναζήτηση μπορεί να γίνει αναδρομικά αν διατηρήσουμε σε μια δομή για τα
πιο σημαντικά ψηφία τα ενεργά τμήματα . Για κάθε ενεργό τμήμα η
δομή για το αποθηκεύει την τιμή .
Εύρεση διαδόχου ενός στοιχείου

Δένδρα van Emde Boas
Εύρεση διαδόχου ενός στοιχείου
Επομένως ο διάδοχος του μπορεί να βρεθεί με το πολύ τρεις αναδρομικές
κλήσεις: μια για την αναζήτηση εντός του , μια για την εύρεση στο του
επόμενου ενεργού τμήματος και μια για την αναζήτηση εντός του .
Άρα ο χρόνος για την εύρεση του διαδόχου στη χειρότερη περίπτωση δίνεται από
την αναδρομή
Αντικαθιστούμε και οπότε έχουμε

Δένδρα van Emde Boas
Εισαγωγή ενός στοιχείου
Η εισαγωγή του μπορεί να προκαλέσει το πολύ δύο αναδρομικές κλήσεις:
μια για την εισαγωγή του στην δομή για το , αν το ήταν
προηγουμένως ανενεργό, και μια για την εισαγωγή του εντός της δομής για
το .
Άρα ο χρόνος εισαγωγής στη χειρότερη περίπτωση δίνεται από την αναδρομή
Αντικαθιστούμε και οπότε έχουμε

Δένδρα van Emde Boas
Για να βελτιώσουμε τους χρόνους εκτέλεσης των λειτουργιών πρέπει να
μειώσουμε τον αριθμό των αναδρομικών κλήσεων…

Δένδρα van Emde Boas
Για να βελτιώσουμε τους χρόνους εκτέλεσης των λειτουργιών πρέπει να
μειώσουμε τον αριθμό των αναδρομικών κλήσεων…
Αρκεί να διατηρούμε σε κάθε αναδρομική δομή το μέγιστο και το ελάχιστο
στοιχείο που αποθηκεύει!

Δένδρα van Emde Boas
Είναι το μικρότερο στοιχείο τέτοιο ώστε , το οποίο
υπάρχει αν το μέγιστο στοιχείο του είναι μεγαλύτερο του .
Διαφορετικά είναι το μικρότερο στοιχείο του επόμενου ενεργού τμήματος ,
Στη δεύτερη περίπτωση αρκεί μια αναδρομική κλήση στη δομή του .
Εύρεση διαδόχου ενός στοιχείου

Δένδρα van Emde Boas
Εύρεση διαδόχου ενός στοιχείου
Επομένως ο διάδοχος του μπορεί να βρεθεί με το πολύ μία αναδρομικές
κλήσεις, είτε εντός του είτε στο για την εύρεση του επόμενου
ενεργού τμήματος.
Άρα ο χρόνος για την εύρεση του διαδόχου στη χειρότερη περίπτωση δίνεται από
την αναδρομή
Αντικαθιστούμε και οπότε έχουμε

Δένδρα van Emde Boas
δομή για τα στοιχεία του
δομή για τα στοιχεία του

Δένδρα van Emde Boas
Εισαγωγή ενός στοιχείου
Σταματάμε την αναδρομή για την εισαγωγή του όταν φτάσουμε είτε σε κενή
δομή (οπότε θέτουμε απλά ) και τελειώνουμε εισάγοντας το στην
άνω δομή.
Άρα ο χρόνος εισαγωγής στη χειρότερη περίπτωση δίνεται από την αναδρομή
Αντικαθιστούμε και οπότε έχουμε

Δένδρα van Emde Boas

Δένδρα van Emde Boas
Πολυπλοκότητα χώρου
top bottom min, max, size
Αντικαθιστούμε και οπότε έχουμε

Δένδρα van Emde Boas
Βελτίωση πολυπλοκότητας χώρου
Χωρίζουμε το σύνολο σε υποσύνολα
μεγέθους . Αν και με τότε .
Κάθε αποθηκεύεται σε ένα ισορροπημένο δυαδικό δένδρο αναζήτησης.
(Χώρος , χρόνος αναζήτησης .)
Από κάθε επιλέγουμε το μέγιστο στοιχείο του ως αντιπρόσωπο.
Οι αντιπρόσωποι αποθηκεύονται σε μία δομή vEB με τη διαφορά ότι αντί για
στατικό πίνακα χρησιμοποιούμε δομή δυναμικού πλήρους κατακερματισμού για τα
τμήματα . Ο συνολικός χώρος για τη δομή vEB είναι .

Δένδρα van Emde Boas
Βελτίωση πολυπλοκότητας χώρου
Εύρεση διαδόχου ενός στοιχείου
Η δομή vEB μας επιστρέφει τον μικρότερο αντιπρόσωπο τέτοιον ώστε
. Στη συνέχεια αναζητούμε τον διάδοχο του στο . Επομένως
ο συνολικός χρόνος αναζήτησης είναι .

Δένδρα van Emde Boas
Βελτίωση πολυπλοκότητας χώρου
Εισαγωγή στοιχείου
Βρίσκουμε το σύνολο στο οποίο ανήκει ο διάδοχος του .
Αν η εισαγωγή του στο αυξάνει το μέγεθος του σε τότε
διασπάμε το σε δύο νέα σύνολα και κάνουμε τις κατάλληλες αλλαγές στη
δομή vEB αντιπροσώπων.
Η δομή επιτυγχάνει αναμενόμενο αντισταθμιστικό χρόνο εισαγωγής.