Download - Δένδρα van Emde Boas

Transcript
Page 1: Δένδρα  van  Emde  Boas

Δένδρα van Emde Boas

Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών ,

, τα οποίo είναι υποσύνολο του .

Υποστηριζόμενες λειτουργίες

αναζήτηση(S,x):

εισαγωγή(S,x):

διαγραφή(S,x):

επιστρέφει το στοιχείο x αν υπάρχει στο S

θέτει

θέτει

διάδοχος(S,x):

προκάτοχος(S,x):

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

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

Οι λειτουργίες εύρεσης διαδόχου και προκατόχου αυξάνουν την πολυπλοκότητα

του προβλήματος. Χωρίς αυτές ο δυναμικός πλήρης κατακερματισμός λύνει το

πρόβλημα σε σταθερό αναμενόμενο αντισταθμιστικό χρόνο και χώρο.

Με χώρο αρκεί ένας πίνακας δυαδικών ψηφίων .

Page 2: Δένδρα  van  Emde  Boas

Δένδρα van Emde Boas

Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών ,

, τα οποίo είναι υποσύνολο του .

Συναρτήσεις επιλογής δυαδικών ψηφίων

μισά πιο σημαντικά δυαδικά ψηφία

μισά λιγότερο σημαντικά δυαδικά ψηφία

Για απλότητα θα θεωρήσουμε ότι το είναι δύναμη του .

Τότε

Page 3: Δένδρα  van  Emde  Boas

Δένδρα van Emde Boas

Χωρίζουμε το χώρο σε τμήματα μεγέθους

Αν τότε . Η θέση του εντός του είναι η .

Ενεργό τμήμα : περιέχει στοιχεία του

Page 4: Δένδρα  van  Emde  Boas

Δένδρα van Emde Boas

Είναι το μικρότερο στοιχείο τέτοιο ώστε , αν υπάρχει.

Διαφορετικά είναι το μικρότερο στοιχείο του επόμενου ενεργού τμήματος ,

Η αναζήτηση μπορεί να γίνει αναδρομικά αν διατηρήσουμε σε μια δομή για τα

πιο σημαντικά ψηφία τα ενεργά τμήματα . Για κάθε ενεργό τμήμα η

δομή για το αποθηκεύει την τιμή .

Εύρεση διαδόχου ενός στοιχείου

Page 5: Δένδρα  van  Emde  Boas

Δένδρα van Emde Boas

Εύρεση διαδόχου ενός στοιχείου

Επομένως ο διάδοχος του μπορεί να βρεθεί με το πολύ τρεις αναδρομικές

κλήσεις: μια για την αναζήτηση εντός του , μια για την εύρεση στο του

επόμενου ενεργού τμήματος και μια για την αναζήτηση εντός του .

Άρα ο χρόνος για την εύρεση του διαδόχου στη χειρότερη περίπτωση δίνεται από

την αναδρομή

Αντικαθιστούμε και οπότε έχουμε

Page 6: Δένδρα  van  Emde  Boas

Δένδρα van Emde Boas

Εισαγωγή ενός στοιχείου

Η εισαγωγή του μπορεί να προκαλέσει το πολύ δύο αναδρομικές κλήσεις:

μια για την εισαγωγή του στην δομή για το , αν το ήταν

προηγουμένως ανενεργό, και μια για την εισαγωγή του εντός της δομής για

το .

Άρα ο χρόνος εισαγωγής στη χειρότερη περίπτωση δίνεται από την αναδρομή

Αντικαθιστούμε και οπότε έχουμε

Page 7: Δένδρα  van  Emde  Boas

Δένδρα van Emde Boas

Για να βελτιώσουμε τους χρόνους εκτέλεσης των λειτουργιών πρέπει να

μειώσουμε τον αριθμό των αναδρομικών κλήσεων…

Page 8: Δένδρα  van  Emde  Boas

Δένδρα van Emde Boas

Για να βελτιώσουμε τους χρόνους εκτέλεσης των λειτουργιών πρέπει να

μειώσουμε τον αριθμό των αναδρομικών κλήσεων…

Αρκεί να διατηρούμε σε κάθε αναδρομική δομή το μέγιστο και το ελάχιστο

στοιχείο που αποθηκεύει!

Page 9: Δένδρα  van  Emde  Boas

Δένδρα van Emde Boas

Είναι το μικρότερο στοιχείο τέτοιο ώστε , το οποίο

υπάρχει αν το μέγιστο στοιχείο του είναι μεγαλύτερο του .

Διαφορετικά είναι το μικρότερο στοιχείο του επόμενου ενεργού τμήματος ,

Στη δεύτερη περίπτωση αρκεί μια αναδρομική κλήση στη δομή του .

Εύρεση διαδόχου ενός στοιχείου

Page 10: Δένδρα  van  Emde  Boas

Δένδρα van Emde Boas

Εύρεση διαδόχου ενός στοιχείου

Επομένως ο διάδοχος του μπορεί να βρεθεί με το πολύ μία αναδρομικές

κλήσεις, είτε εντός του είτε στο για την εύρεση του επόμενου

ενεργού τμήματος.

Άρα ο χρόνος για την εύρεση του διαδόχου στη χειρότερη περίπτωση δίνεται από

την αναδρομή

Αντικαθιστούμε και οπότε έχουμε

Page 11: Δένδρα  van  Emde  Boas

Δένδρα van Emde Boas

δομή για τα στοιχεία του

δομή για τα στοιχεία του

Page 12: Δένδρα  van  Emde  Boas

Δένδρα van Emde Boas

Εισαγωγή ενός στοιχείου

Σταματάμε την αναδρομή για την εισαγωγή του όταν φτάσουμε είτε σε κενή

δομή (οπότε θέτουμε απλά ) και τελειώνουμε εισάγοντας το στην

άνω δομή.

Άρα ο χρόνος εισαγωγής στη χειρότερη περίπτωση δίνεται από την αναδρομή

Αντικαθιστούμε και οπότε έχουμε

Page 13: Δένδρα  van  Emde  Boas

Δένδρα van Emde Boas

Page 14: Δένδρα  van  Emde  Boas

Δένδρα van Emde Boas

Πολυπλοκότητα χώρου

top bottom min, max, size

Αντικαθιστούμε και οπότε έχουμε

Page 15: Δένδρα  van  Emde  Boas

Δένδρα van Emde Boas

Βελτίωση πολυπλοκότητας χώρου

Χωρίζουμε το σύνολο σε υποσύνολα

μεγέθους . Αν και με τότε .

Κάθε αποθηκεύεται σε ένα ισορροπημένο δυαδικό δένδρο αναζήτησης.

(Χώρος , χρόνος αναζήτησης .)

Από κάθε επιλέγουμε το μέγιστο στοιχείο του ως αντιπρόσωπο.

Οι αντιπρόσωποι αποθηκεύονται σε μία δομή vEB με τη διαφορά ότι αντί για

στατικό πίνακα χρησιμοποιούμε δομή δυναμικού πλήρους κατακερματισμού για τα

τμήματα . Ο συνολικός χώρος για τη δομή vEB είναι .

Page 16: Δένδρα  van  Emde  Boas

Δένδρα van Emde Boas

Βελτίωση πολυπλοκότητας χώρου

Εύρεση διαδόχου ενός στοιχείου

Η δομή vEB μας επιστρέφει τον μικρότερο αντιπρόσωπο τέτοιον ώστε

. Στη συνέχεια αναζητούμε τον διάδοχο του στο . Επομένως

ο συνολικός χρόνος αναζήτησης είναι .

Page 17: Δένδρα  van  Emde  Boas

Δένδρα van Emde Boas

Βελτίωση πολυπλοκότητας χώρου

Εισαγωγή στοιχείου

Βρίσκουμε το σύνολο στο οποίο ανήκει ο διάδοχος του .

Αν η εισαγωγή του στο αυξάνει το μέγεθος του σε τότε

διασπάμε το σε δύο νέα σύνολα και κάνουμε τις κατάλληλες αλλαγές στη

δομή vEB αντιπροσώπων.

Η δομή επιτυγχάνει αναμενόμενο αντισταθμιστικό χρόνο εισαγωγής.