Autoorgan menec Domèc Dedomènwn Kosvmatìpouloc Andrèac AEM: 1490 Epiblèpwn Kajhght c KwnsvtantÐnoc TsvÐqlac, Lèktorac tm. Plhroforik c APJ Septèmbrioc 2010
Abstract Ecient data storage and fast data manipulation have been two prominent research topics in the past few decades. There are many types of data structures that seek to achieve these goals, one of them being the Binary Search Tree (BST). Typical BSTs generally oer Ω (logn) time for each operation in the worst-case scenario and that is adequate in many cases. However there are many self-adjusting BSTs whose aim is to lower the total execution cost of a sequence of operations rather than a single operation. These BSTs are said to guarantee good amortized time and can be used in many real-world applications. This thesis explores the inner-workings of a self-adjusting form of linked list, the Move-to-front linked list, and two self-adjusting BSTs, the Splay Tree and the Tango tree. Detailed analysis on each of the three data structures is provided and some interesting properties for each of the data structures are presented. Next, several experiments on Splay and Tango trees are conducted and their performance is compared using metrics such as total execution time and total number of comparisons. Finally, some currently open problems of the area are stated such as the Dynamic Optimality conjecture that hypotheses the existence of an asymptotically best binary search tree (within a constant factor).
Prìlogoc Η αποδοτική αποθήκευσ η δεδομένων καθώς και η γρήγορη επεξεργασ ία τους έχουν υπάρξει δύο από τα σ ημαντικότερα ερευνητικά θέματα των τελευταίων δεκαετιών. Υπάρχουν αρκετοί τύποι δομών δεδομένων οι οποίοι αποσ κοπούν σ την εκπλήρωσ η αυτών των σ τόχων, και ένας από αυτούς είναι το Δυαδικό Δέντρο Αναζήτησ ης (ΔΔΑ). Τα τυπικά ΔΔΑ προσ φέρουν Ω (logn) χρόνο για την εκτέλεσ η κάθε ενέργειας σ τη χειρότερη περίπτωσ η και αυτό είναι αρκετό σ ε πολλές περιπτώσ εις. Υπάρχουν όμως αρκετά αυτοοργανώμενα ΔΔΑ τα οποία σ τοχεύουν σ την μείωσ η του σ υνολικού χρόνου εκτέλεσ ης μιας ακολουθίας ενεργειών αντί για μιας μεμονωμένης ενέργειας. Αυτά τα ΔΔΑ εξασ φαλίζουν καλό επιμερισ μένο χρόνο και μπορούν να χρησ ιμοποιηθούν σ ε πολλές πρακτικές εφαρμογές. Στη παρούσ α εργασ ία πραγματοποιείται μια γενικότερη μελέτη των αυτοοργανώμενων δομών δεδομένων. Στην αρχή, γίνεται μια γενικότερη εισ αγωγή και παρουσ ιάζονται μερικές βασ ικές έννοιες που είναι απαραίτητες για την κατανόησ η των αυτοοργανώμενων δομών δεδομένων. Ακολουθεί μια γενική περιγραφή των αυτοοργανώμενων δομών δεδομένων και αναλύεται το σ κεπτικό και ο μηχανισ μός λειτουργίας τους, όπως και τα πλεονεκτήματα και τα μειονεκτήματά τους. Επιπλέον δίνεται μια επισ κόπησ η της σ υγκεκριμένης ερευνητικής περιοχής και παραθέτονται τα θεωρήματα που έχουν αποδειχθεί σ χετικά με τις σ υγκεκριμένες δομές. Στη σ υνέχεια πραγματοποιείται μια πλήρης ανάλυσ η πολυπλοκότητας των Splay Trees (αρθρωμένα δέντρα) και αναφέρονται οι ιδιότητες που αυτά ικανοποιούν. Επιπλέον εξετάζονται τα Tango Trees (Tango δέντρα) και το σ κεπτικό λειτουργίας τους ενώ αναλύεται και ο τρόπος με τον οποίο προσ παθούν να αντιμετωπίσ ουν την εικασ ία της δυναμικής βελτισ τότητας. Πραγματοποιούνται επίσ ης πειραματικές μελέτες πάνω σ τις αυτοοργανώμενες δομές δεδομένων, χρησ ιμοποιώντας διάφορες μετρικές για τη σ ύγκρισ η όπως για παράδειγμα τον σ υνολικό χρόνο εκτέλεσ ης μιας ακολουθίας ενεργειών. Ακολούθως, γίνεται μια παράθεσ η των εικασ ιών και των ανοικτών προβλημάτων της περιοχής ενώ δίνεται ιδιαίτερη σ ημασ ία σ την εικασ ία της δυναμικής βελτισ τότητας. Στο τέλος δίνονται κάποιες προτάσ εις για μελλοντική έρευνα και παρουσ ιάζεται μια σ ύνοψη της πτυχιακής εργασ ίας.
Θα ήθελα να ευχαρισ τήσ ω τον επιβλέποντα καθηγητή μου Κώσ τα Τσ ίχλα για την βοήθεια και σ τήριξή του καθ όλη τη διάρκεια εκπόνησ ης της πτυχιακής εργασ ίας. Η σ υμβολή του σ την επεξήγησ η δύσ κολων εννοιών και η καθοδήγησ ή του ήταν σ ημαντική και σ υνέβαλε απόλυτα σ το να ολοκληρωθεί με επιτυχία αυτή η εργασ ία. Ευχαρισ τώ επίσ ης τους φίλους και γνωσ τούς μου για τα λόγια ενθάρρυνσ ης και τις σ υμβουλές που έδιναν όταν βρισ κόμουν σ ε δύσ κολες σ τιγμές. Τέλος, ένα μεγάλο ευχαρισ τώ θέλω να δώσ ω σ την οικογένεια μου για την υπομονή, την εμπισ τοσ ύνη και την σ τήριξη που μου έδειξαν όλα τα χρόνια της μαθητικής και φοιτητικής μου ζωής. Η μητέρα μου Εύη υπήρξε πάντα αρωγός σ τις προσ πάθειες μου και πάντα ήταν σ το πλάι μου για να μ εμψυχώσ ει όταν κάτι δε πήγαινε καλά. Ο αδερφός μου Μιχάλης με τις πολλές πρακτικές γνώσ εις του γύρω από τους υπολογισ τές αποτέλεσ ε πολύτιμο σ υνοδοιπόρο κατά τη σ υγγραφή της σ υγκεκριμένης εργασ ίας. Ειδική αναφορά θέλω να κάνω σ τον πατέρα μου Κώσ τα Κοσ ματόπουλο που διετέλεσ ε Λέκτορας σ το τμήμα Φυσ ικής του Αρισ τοτελείου Πανεπισ τημίου Θεσ σ αλονίκης μέχρι τον Απρίλιο του 2009 και ο οποίος δε βρίσ κεται πλέον μαζί μας. Τον ευχαρισ τώ από τα βάθη της καρδιάς μου για τις πολύτιμες γνώσ εις του, για την καλοσ ύνη του και για την ανεξάντλητη προθυμία του να βοηθήσ ει όταν αντιμετώπιζα κάποιο πρόβλημα. Υπήρξε ένας άνθρωπος που κέρδιζε την αγάπη όχι μόνο από την οικογένεια του, αλλά κι απ όλο τον επαγγελματικό και κοινωνικό του περίγυρο. Μακάρι να ήταν εδώ για να με δει να ολοκληρώνω τις σ πουδές μου. 5
Sth mn mh tou patèra mou
Perieqìmena 1 Εισαγωγή 12 1.1 Επιμερισ μένη ανάλυσ η πολυπλοκότητας............... 13 1.1.1 Τεχνική του Αθροίσ ματος.................. 13 1.1.2 Τεχνική του Λογισ τή..................... 14 1.1.3 Τεχνική του Φυσ ικού..................... 14 1.2 Το BST μοντέλο........................... 15 2 Αυτοοργανώμενες Δομές Δεδομένων 17 2.1 Περιγραφή............................... 17 2.2 Move To Front Λίσ τα......................... 19 2.3 Βασ ικά Θεωρήματα.......................... 23 2.3.1 Άνω φράγματα........................ 23 2.3.1.1 Θεώρημα σ τατικής βελτισ τότητας......... 23 2.3.1.2 Θεώρημα σ τατικής δακτυλοδότησ ης........ 25 2.3.1.3 Θεώρημα δυναμικής δακτυλοδότησ ης....... 26 2.3.1.4 Θεώρημα σ υνόλου εργασ ίας............ 26 2.3.1.5 Θεώρημα σ ειριακής προσ πέλασ ης......... 26 2.3.1.6 Θεώρημα προδιατεταγμένης προσ πέλασ ης..... 27 2.3.1.7 Το Ενοποιημένο Θεώρημα............. 27 2.3.1.8 Ιεραρχία Θεωρημάτων............... 27 2.3.2 Κάτω Φράγματα........................ 28 2.3.2.1 Πρώτο κάτω φράγμα του Wilber......... 28 2.3.2.2 Δεύτερο κάτω φράγμα του Wilber........ 30 2.4 Επισ κόπησ η ερευνητικής περιοχής.................. 31 2.4.1 Splay Δέντρα......................... 31 2.4.2 Tango Δέντρα......................... 31 2.4.3 Multi-Splay Δέντρα..................... 31 2.4.4 Chain-Splay Δέντρα..................... 32 2.4.5 Poke Δέντρα......................... 32 2.4.6 Zipper Δέντρα........................ 32 2.4.7 Working Set Δομή...................... 32 2.4.8 Unied και Dynamic Unied Δομή............. 32 2.4.9 Skip-Splay Δέντρα...................... 33 2.4.10 Layered Working-Set Δέντρα................ 33 8
ΠΕΡΙΕΧ ΟΜΕΝΑ 9 2.4.11 Cache-Splay Δέντρα..................... 34 2.4.12 Άλλες δομές δεδομένων................... 34 3 Splay Δέντρα 36 3.1 Περιγραφή............................... 36 3.2 Ο ευρισ τικός μηχανισ μός Splaying.................. 38 3.3 Αποδείξεις βασ ικών θεωρημάτων................... 43 3.3.1 Θεώρημα Ισ ορροπίας..................... 44 3.3.2 Θεώρημα σ τατικής βελτισ τότητας.............. 45 3.3.3 Θεώρημα σ τατικής δακτυλοδότησ ης............. 46 3.3.4 Θεώρημα σ υνόλου εργασ ίας................. 47 3.3.5 Άλλα θεωρήματα....................... 49 3.4 Ενέργειες ανανέωσ ης......................... 49 3.5 Παραλλαγές σ τα Splay δέντρα.................... 52 3.6 Πειραματικές μελέτες......................... 53 4 Tango δέντρα 54 4.1 Interleave κάτω φράγμα........................ 54 4.2 Περιγραφή Tango δέντρου...................... 55 4.2.1 Διαισ θητικός τρόπος λειτουργίας.............. 56 4.2.2 Βοηθητικά δέντρα....................... 57 4.2.3 Tango αλγόριθμος...................... 59 4.3 Ανάλυσ η Πολυπλοκότητας...................... 60 5 Πειραματικές Μελέτες 62 5.1 Μεθοδολογία Συγκρίσ εων...................... 62 5.2 Λεπτομέρειες Υλοποίησ ης...................... 63 5.3 Αποτελέσ ματα............................. 64 5.4 Συμπεράσ ματα............................. 68 6 Ανοικτά Προβλήματα 69 6.1 Εικασ ία δυναμικής βελτισ τότητας.................. 69 6.2 Εικασ ία της διπλοουράς........................ 70 6.3 Εικασ ία της διάσ χισ ης........................ 71 6.4 Εικασ ία του διαχωρισ μού....................... 71 7 Επίλογος - Προτάσεις για μελλοντική έρευνα 72 Βιβλιογραφία 74
Katˆlogoc Sqhmˆtwn 1.1 Παραδείγματα περισ τροφών...................... 16 2.1 Γραμμική Λίσ τα: access (3) με κόσ τος 3............... 19 2.2 Γραμμική Λίσ τα: Αντιμετάθεσ η των σ τοιχείων 3 και 22 με κόσ τος 1 20 2.3 Παραδείγματα ανασ τροφών - (28, 34), (28, 2), (34, 2), (6, 13).... 20 2.4 Παράδειγμα δημιουργίας ανασ τροφής μετά από αντιμετάθεσ η των x και y.................................. 21 2.5 Οι L i 1 και L i 1 αμέσ ως πριν την προσ πέλασ η του σ τοιχείου x.. 22 2.6 Βέλτισ το σ τατικό δέντρο για την ακολουθία S πάνω σ τα σ τοιχεία του σ υνόλου K............................ 24 2.7 Finger Δέντρο - Ο ροζ κόμβος είναι ένα nger από το οποίο μπορεί να ξεκινήσ ει μια αναζήτησ η..................... 25 2.8 Ιεραρχία Θεωρημάτων......................... 28 2.9 Τέλειο δυαδικό δέντρο για το σ ύνολο σ τοιχείων K = {1, 2,..., 16} 28 2.10 Τέλειο δυαδικό δέντρο - Προσ πέλασ η του σ τοιχείου 3....... 29 2.11 Τέλειο δυαδικό δέντρο - Προσ πέλασ η των σ τοιχείων 3 και 5.... 29 2.12 Υπολογισ μός του W il2 (8)...................... 30 2.13 Προσ πέλασ η του κόκκινου κόμβου σ ε ένα skip-splay δέντρο. Στην αρχή κάνουμε splay τον κόκκινο κόμβο, σ τη σ υνέχεια τον πράσ ινο και τέλος τον μπλε.......................... 34 3.1 Προσ πέλασ η του κόμβου B. Με διαδοχικές περισ τροφές ο κόμβος B μεταφέρεται σ τη ρίζα του δέντρου................. 37 3.2 Η σ ειριακή προσ πέλασ η των σ τοιχείων του δέντρου απαιτεί O ( n 2) χρόνο................................. 38 3.3 Περίπτωσ η 1 - Zig........................... 39 3.4 Περίπτωσ η 2 - Zig-Zig........................ 39 3.5 Περίπτωσ η 3 - Zig-Zag........................ 39 3.6 Παράδειγμα splaying σ τον κόμβο B. Στην αρχή πραγματοποιείται μια Zig-Zag περισ τροφή και σ τη σ υνέχεια μια Zig-Zig περισ τροφή. 39 3.7 Διαφορά μεταξύ move-to-root και splay............... 40 3.8 Υπολογισ μός Φ (T ) για ένα σ τιγμιότυπο ενός δέντρου. Στο δεξί μέρος φαίνονται τα μεγέθη s (x)................... 41 10
ΚΑΤ ΑΛΟΓΟΣ ΣΧΗΜ ΑΤΩΝ 11 4.1 Η αρισ τερή περιοχή του y σ ηματοδοτείται με κόκκινο χρώμα ενώ η δεξιά με πράσ ινο............................ 55 4.2 Μετασ χηματισ μός από P i σ ε T i................... 56 4.3 Διαχωρισ μός και Ενωσ η αναφορικά με το P............ 57 4.4 Υλοποίησ η Διαχωρισ μού και Ενωσ ης χάρη σ την Διάσ πασ η και σ την Συνένωσ η............................ 59 5.1 Χρόνοι εκτέλεσ ης των δέντρων για την ομοιόμορφη κατανομή... 64 5.2 Αριθμός σ υγκρίσ εων των δέντρων για την ομοιόμορφη κατανομή. 65 5.3 Χρόνοι εκτέλεσ ης των δέντρων για την Zipf κατανομή με α = 1.. 66 5.4 Αριθμός σ υγκρίσ εων των δέντρων για την Zipf κατανομή με α = 1 66 5.5 Χρόνοι εκτέλεσ ης των δέντρων για την Zipf κατανομή με α = 1.42 67 5.6 Αριθμός σ υγκρίσ εων των δέντρων για την Zipf κατανομή με α = 1.42 67
Kefˆlaio 1 Eisagwg Οι ηλεκτρονικοί υπολογισ τές της σ ημερινής εποχής, έχουν τη δυνατότητα να αποθηκεύουν και να επεξεργάζονται αποδοτικά πολύ μεγάλες ποσ ότητες δεδομένων. Ενας από τους παράγοντες που σ υντελούν σ το να σ υμβεί αυτό, είναι η χρησ ιμοποίησ η δομών δεδομένων οι οποίες έχουν σ αν σ τόχο την αποδοτική οργάνωσ η του μεγάλου όγκου δεδομένων για να είναι δυνατή η γρήγορη αναζήτησ η χρήσ ιμης πληροφορίας μέσ α σ ε αυτά. Υπάρχουν πολλές και διαφορετικές δομές δεδομένων. Ορισ μένες από αυτές είναι ιδιαίτερα απλοϊκές και προσ φέρουν μια σ τοιχειώδη κατηγοριοποίησ η των δεδομένων, ενώ άλλες είναι πιο πολύπλοκες και επικεντρώνονται κυρίως σ ε σ υγκεκριμένες απαιτήσ εις μιας εφαρμογής. Οι πιο γνωσ τές και διαδεδομένες δομές δεδομένων (π.χ. ισ οζυγισ μένα δέντρα) έχουν ως σ τόχο να ελαττωθεί, όσ ο αυτό είναι δυνατό, ο χρόνος εκτέλεσ ης μίας μεμονωμένης ενέργειας (εισ αγωγή, διαγραφή, αναζήτησ η) μέσ α σ τη δομή. Ωσ τόσ ο, υπάρχει και μια κατηγορία δομών δεδομένων οι οποίες σ τοχεύουν σ την ελάττωσ η του σ υνολικού χρόνου εκτέλεσ ης μιας ακολουθίας από εισ αγωγές, διαγραφές και αναζητήσ εις. Στις δομές δεδομένων αυτής της κατηγορίας, μια μεμονωμένη ενέργεια (εισ αγωγή/διαγραφή/αναζήτησ η) μπορεί να έχει μεγάλο χρόνο εκτέλεσ ης, ωσ τόσ ο αυτό δεν έχει μεγάλη σ ημασ ία καθώς κάποιες από τις υπόλοιπες ενέργειες θα έχουν μικρό χρόνο εκτέλεσ ης, ε- ξισ ορροπώντας έτσ ι τον τελικό και σ υνολικό χρόνο εκτέλεσ ης της ακολουθίας των ενεργειών. Ενας τρόπος για να επιτευχθεί αυτό είναι να ευνοηθούν τα σ τοιχεία για τα οποία γίνονται αναζητήσ εις τις περισ σ ότερες φορές. Αν η δομή επιτρέπει γρήγορες αναζητήσ εις γι αυτά τα σ τοιχεία τότε θα έχει, σ τη γενική περίπτωσ η, καλή απόδοσ η. Αυτή την ιδιότητα την ικανοποιούν κατά κύριο λόγο οι αυτοοργανώμενες δομές δεδομένων οι οποίες θα μελετηθούν σ τη σ υνέχεια αυτής της εργασ ίας. Αυτή τη σ τιγμή σ τη βιβλιογραφία υπάρχει μια πληθώρα αυτοοργανώμενων δομών δεδομένων και ένας μεγάλος αριθμός θεωρημάτων και ιδιοτήτων που πλαισ ιώνουν αυτές τις δομές. Υπάρχουν επίσ ης αρκετά ανοικτά προβλήματα για τα οποία η επισ τημονική κοινότητα δεν έχει κατορθώσ ει ακόμα να βρει απάντησ η. Ισ ως το μεγαλύτερο ανοικτό πρόβλημα, είναι η εικασ ία της δυναμικής βελτισ τότητας η οποία περιληπτικά εικάζει ότι υπάρχει κάποια ασ υμπτωτικά βέλτισ τη δομή δεδομένων η οποία είναι καλύτερη από τις υπόλοιπες του αντίσ τοιχου είδους. Αυτή είναι μια 12
ΚΕΦ ΑΛΑΙΟ 1. ΕΙΣΑΓΩΓ Η 13 πολύ ισ χυρή υπόθεσ η και αποτελεί το μεγαλύτερο θέμα έρευνας του σ υγκεκριμένου πεδίου των δομών δεδομένων. Στη σ υνέχεια του κεφαλαίου, θα αναλύσ ουμε κάποιες βασ ικές έννοιες οι οποίες είναι απαραίτητες για τις ενότητες που θα ακολουθήσ ουν. 1.1 Epimerisvmènh anˆlusvh poluplokìthtac Η σ υνηθέσ τερη ανάλυσ η πολυπλοκότητας που πραγματοποιείται σ ε μια δομή δεδομένων είναι η ανάλυσ η χειρότερης περίπτωσ ης για κάθε λειτουργία της. Οι δομές που εξασ φαλίζουν χαμηλά άνω φράγματα πολυπλοκότητας για τις λειτουργίες τους, είναι αυτές οι οποίες προτιμώνται σ υνήθως για να χρησ ιμοποιηθούν σ ε πρακτικές εφαρμογές. Ωσ τόσ ο, υπάρχουν εφαρμογές με δομές δεδομένων για τις οποίες γνωρίζουμε ότι δεν θα εκτελέσ ουν μόνο μία ενέργεια, αλλά μια ακολουθία από ενέργειες. Σε αυτές τις δομές μας ενδιαφέρει ο σ υνολικός χρόνος εκτέλεσ ης της ακολουθίας, αντί για τον χρόνο εκτέλεσ ης των μεμονωμένων ενεργειών. Σαν πρώτη σ κέψη θα μπορούσ αμε να πούμε ότι ο σ υνολικός χρόνος εκτέλεσ ης των ενεργειών της ακολουθίας είναι ίσ ος με το άθροισ μα των χρόνων χειρότερης περίπτωσ ης των επί μέρους ενεργειών. Αυτή όμως είναι μια ιδιαίτερα απαισ ιόδοξη σ κέψη, καθώς δε λαμβάνει υπόψη της κάποια πιθανή σ χέσ η μεταξύ των ε- νεργειών της ακολουθίας. Από την άλλη αν εκτελέσ ουμε τον ίδιο σ υλλογισ μό αλλά με τους χρόνους μέσ ης περίπτωσ ης, δε μπορούμε να είμασ τε σ ίγουροι για τις τιμές των πιθανοτήτων, οπότε η ανάλυσ η μπορεί να είναι άσ τοχη. Με βάσ η τα παραπάνω θα προσ εγγίσ ουμε το πρόβλημα με μία άλλη λογική, αυτή της επιμερισ μένης ανάλυσ ης. Παρακάτω ακολουθεί σ ε απλή μορφή ο ορισ μός του επιμερισ μένου κόσ τους: Ορισμός 1.1.1. Το επιμερισ μένο κόσ τος μιας ενέργειας για μια ακολουθία n ενεργειών, είναι ίσ ο με το σ υνολικό κόσ τος των ενεργειών διαιρούμενο με το n. Ενας διαφορετικός τρόπος να το ορίσ ουμε είναι ότι η επιμερισ μένη ανάλυσ η βρίσ κει για κάθε ενέργεια της ακολουθίας τον μέσ ο χρόνο εκτέλεσ ής της πάνω σ την ακολουθία. Στη σ υνέχεια θα αναλύσ ουμε τρεις τεχνικές υπολογισ μού του επιμερισ μένου κόσ τους. 1.1.1 Teqnik tou AjroÐsvmatoc Θα δώσ ουμε τον ορισ μό της τεχνικής του αθροίσ ματος, με ένα παράδειγμα: Παράδειγμα 1.1.2. Εσ τω μια ακολουθία ενεργειών S = s 1, s 2, s 3, s 4 όπου s i η i-οσ τή ενέργεια της ακολουθίας. Εσ τω ότι το κόσ τος εκτέλεσ ης κάθε ενέργειας υπολογίζεται σ ε μονάδες κόσ τους και έχουμε cost (s 1 ) = 2 μονάδες κόσ τους, cost (s 2 ) = 3 μ.κ., cost (s 3 ) = 1 μ.κ. και τέλος cost (s 4 ) = 6 μ.κ. Μπορούμε να φράξουμε το σ υνολικό κόσ τος της κάθε ενέργειας με βάσ η το υψηλότερο κόσ τος που υπάρχει για ενέργεια της ακολουθίας. Αυτό είναι 6 μ.κ. οπότε πραγματοποιώντας μια ανάλυσ η χειρότερης περίπτωσ ης, έχουμε ότι η ακολουθία θα σ τοιχίσ ει σ υνολικά cost (S) = 4 6 = 24 μ.κ.
ΚΕΦ ΑΛΑΙΟ 1. ΕΙΣΑΓΩΓ Η 14 Το επιμερισ μένο, όμως, κόσ τος κάθε ενέργειας είναι ίσ ο με το μέσ ο κόσ τος για κάθε ενέργεια, δηλαδή ίσ ο με 2+3+1+6 4 = 3 μ.κ. Δυσ τυχώς, η διαδικασ ία για τον υπολογισ μό του επιμερισ μένου κόσ τους μιας ενέργειας δεν είναι σ χεδόν ποτέ τόσ ο απλή. Συνήθως δε μπορούμε να υπολογίσ ουμε επακριβώς το κόσ τος κάθε ενέργειας οπότε πρέπει να καταφύγουμε σ ε άλλες μεθόδους. 1.1.2 Teqnik tou Logisvt Μια άλλη τεχνική υπολογισ μού είναι η Τεχνική του Λογισ τή η οποία διατυπώθηκε πρώτη φορά σ το [12] και αναπτύχθηκε περισ σ ότερο σ τα [27, 28]. Εσ τω ότι ο Η/Υ για να εκτελέσ ει μια από τις ενέργειες της ακολουθίας, πρέπει να πληρωθεί σ ε χρήματα από τον χρήσ τη. Για κάθε ενέργεια ο χρήσ της δίνει ένα σ υγκεκριμένο ποσ ό χρημάτων (όχι απαραίτητα ίσ ο με το πραγματικό κόσ τος της ενέργειας) από τα οποία ο Η/Υ παίρνει όσ α του χρειάζονται για να εκτελέσ ει την ενέργεια. Το υπόλοιπο των χρημάτων που μένουν ανεκμετάλλευτα φυλάσ σ ονται για μελλοντική χρήσ η. Κάποια σ τιγμή, μία από τις ενέργειες προς εκτέλεσ η μπορεί να απαιτεί περισ σ ότερα χρήματα από αυτά που θα πληρώσ ει ο χρήσ της τον Η/Υ. Σε αυτή τη περίπτωσ η ο Η/Υ θα πάρει το ποσ ό που υπολείπεται, από τα χρήματα που είχε αποταμιεύσ ει σ τις προηγούμενες ενέργειες. Ετσ ι, αν σ το τέλος της ακολουθίας έχουν εκτελεσ τεί όλες οι ενέργειες και έχει απομείνει θετική ποσ ότητα χρημάτων (ή μηδέν) που έχει μείνει ανεκμετάλλευτη, σ υμπεραίνουμε ότι τα χρήματα που έδωσ ε σ υνολικά ο χρήσ της ήταν αρκετά για να καλύψουν τις ανάγκες του Η/Υ. Το ποσ ό χρημάτων που δίνει ο χρήσ της σ τον Η/Υ για μια ενέργεια είναι σ την ουσ ία το επιμερισ μένο κόσ τος της. Το γεγονός ότι σ το τέλος απομένουν κάποια χρήματα ανεκμετάλλευτα σ ημαίνει πρακτικά ότι το σ υνολικό επιμερισ μένο κόσ τος των ενεργειών φράσ σ ει το πραγματικό κόσ τος της ακολουθίας και έτσ ι η ανάλυσ η είναι έγκυρη. Η δυσ κολία αυτής της τεχνικής βρίσ κεται σ τη σ ωσ τή αντισ τοίχισ η των επιμερισ μένων κοσ τών σ ε κάθε πράξη. 1.1.3 Teqnik tou FusvikoÔ Η τελευταία τεχνική υπολογισ μού που θα αναλύσ ουμε ονομάζεται Τεχνική του Φυσ ικού και προτάθηκε πρώτη φορά σ το [40] ενώ αναλύθηκε και σ το [44]. Βασ ίζεται σ την ιδέα ότι η δομή ανά πάσ α σ τιγμή χαρακτηρίζεται από ένα δυναμικό ενέργειας, το οποίο χρησ ιμοποιεί για να πληρώσ ει πράξεις της ακολουθίας. Εσ τω S = s 1, s 2,..., s m μια ακολουθία ενεργειών πάνω σ ε μια δομή δεδομένων και D i η κατάσ τασ η και η διάρθρωσ η της δομής μετά την εφαρμογή της i-οσ τής ενέργειας (D 0 η αρχική κατάσ τασ η της δομής). Ονομάζουμε σ υνάρτησ η δυναμικού μια σ υνάρτησ η Φ η οποία δεδομένης μιας κατάσ τασ ης D i υπολογίζει το δυναμικό Φ (D i ) της δομής για την κατάσ τασ η αυτή. Ορίζουμε το επιμερισ μένο κόσ τος ac i της i-οσ τής ενέργειας ως το άθροισ μα του πραγματικού της κόσ τους c i αυξημένο κατά τη μεταβολή του δυναμικού της δομής. Δηλαδή: ac i = c i + Φ (D i ) Φ (D i 1 )
ΚΕΦ ΑΛΑΙΟ 1. ΕΙΣΑΓΩΓ Η 15 Ετσ ι το σ υνολικό επιμερισ μένο κόσ τος για m ενέργειες είναι: m m ac i = (c i + Φ (D i ) Φ (D i 1 )) και επειδή το Φ είναι τηλεσ κοπικό, έχουμε: m m ac i = c i + Φ (D m ) Φ (D 0 ) Παρατηρούμε ότι το σ υνολικό επιμερισ μένο κόσ τος είναι ίσ ο με το σ υνολικό πραγματικό κόσ τος αυξημένο κατά την μεταβολή από την D 0 σ την D m. Για να είναι έγκυρη η σ υνάρτησ η δυναμικού θα πρέπει να ισ χύει Φ (D i ) Φ (D 0 ) για κάθε i. Αν έχουμε μια έγκυρη σ υνάρτησ η δυναμικού τότε το σ υνολικό πραγματικό κόσ τος οποιασ δήποτε ακολουθίας ενεργειών θα είναι πάντοτε μικρότερο από το σ υνολικό επιμερισ μένο κόσ τος, αφού: m m m c i = ac i Φ (D m ) + Φ (D 0 ) ac i Άρα σ υμπεραίνουμε ότι με μία έγκυρη σ υνάρτησ η δυναμικού, το επιμερισ μένο κόσ τος φράσ σ ει το πραγματικό κόσ τος. Η τεχνική του φυσ ικού εσ τιάζει κυρίως σ το δυναμικό, το οποίο υπολογίζεται σ υναρτήσ ει ολόκληρης της δομής (π.χ. αριθμός σ τοιχείων σ ε μια σ τοίβα) ενώ η τεχνική του λογισ τή εσ τιάζει κυρίως σ το πόσ ο κοσ τίζει μια σ υγκεκριμένη ενέργεια ανάλογα με τον τύπο της. Οι δύο τεχνικές είναι απόλυτα ισ οδύναμες και αν χρησ ιμοποιηθούν ορθώς θα δώσ ουν τα ίδια αποτελέσ ματα. 1.2 To BST montèlo Θα δώσ ουμε έναν ορισ μό για τον τρόπο δόμησ ης και λειτουργίας ενός δυαδικού δέντρου αναζήτησ ης (BST). Ορίζουμε ως κόμβο του BST ένα κελί μνήμης το οποίο περιέχει τρεις δείκτες: έναν δείκτη προς τον γονέα, έναν δείκτη προς το αρισ τερό παιδί και έναν δείκτη προς το δεξί παιδί. Επιπρόσ θετα κάθε κόμβος αποθηκεύει ένα κλειδί και είναι δυνατό να διατηρεί και επιπλέον πληροφορία σ ε βοηθητικά πεδία. Κάθε ένα από τα n κλειδιά που αποθηκεύονται σ το BST έχει το δικό του κόμβο BST και αυτοί οι n κόμβοι ενώνονται όλοι μαζί για να σ χηματίσ ουν το δέντρο T. Στο BST μοντέλο κάθε κόμβος επιτρέπεται να αποθηκεύσ ει O (1) επιπλέον πληροφορία μαζί με το κλειδί του, ενώ απαγορεύονται οι επιπλέον δείκτες προς άλλους κόμβους. Κατά τη διάρκεια της εκτέλεσ ης μιας ακολουθίας ενεργειών η δομή του T μεταβάλλεται μόνο από μία ενέργεια που κοσ τίζει O (1) και η οποία αποκαλείται περισ τροφή. Η περισ τροφή ορίζεται για κάθε BST κόμβο που έχει πατέρα. Κατά τη διάρκεια της περισ τροφής ενός κόμβου x πάνω από τον τωρινό του πατέρα y, ο κόμβος x γίνεται πατέρας του y και ένα από τα παιδιά του x μετακινείται και γίνεται παιδί του y με τέτοιο τρόπο ώσ τε το T να παραμένει δυαδικό. Στην
ΚΕΦ ΑΛΑΙΟ 1. ΕΙΣΑΓΩΓ Η 16 εικόνα 1.1 φαίνονται δύο παραδείγματα περισ τροφών, μιας δεξιόσ τροφης και μιας αρισ τερόσ τροφης. Αξίζει να σ ημειωθεί ότι η περισ τροφή αλλάζει την δομή του δέντρου μόνο τοπικά και δεν μεταβάλλει καμία από τις υπόλοιπες σ χέσ εις γονέαπαιδιού σ το δέντρο. y x x C A y A B B C Σχήμα 1.1: Παραδείγματα περισ τροφών
Kefˆlaio 2 Autoorgan menec Domèc Dedomènwn Σε αυτό το κεφάλαιο, θα αναλύσ ουμε τις αυτοοργανώμενες δομές δεδομένων και θα εξηγήσ ουμε τον τρόπο λειτουργίας τους καθώς και τις διαφορές που παρουσ ιάζουν με τις σ υνηθισ μένες δομές δεδομένων. Επίσ ης θα δώσ ουμε μερικές κοινές αρχές οι οποίες διέπουν την πλειοψηφία των δομών της σ υγκεκριμένης κατηγορίας. Στην επόμενη ενότητα θα δείξουμε μια από τις πιο απλές αυτοοργανώμενες δομές δεδομένων, την MTF λίσ τα και θα αναλύσ ουμε το επιμερισ μένο κόσ τος της αναζήτησ ης σ τοιχείου μέσ α σ ε αυτή. Τέλος, θα προχωρήσ ουμε σ ε μια επισ κόπησ η της ερευνητικής περιοχής αναφέροντας τα θεωρήματα που ισ χύουν για ορισ μένες αυτοοργανώμενες δομές δεδομένων. 2.1 Perigraf Οπως αναφέρθηκε και σ το εισ αγωγικό κεφάλαιο, μέχρι σ ήμερα έχουν προταθεί πολλές και διαφορετικές δομές δεδομένων σ την βιβλιογραφία. Ορισ μένες από αυτές (AVL δέντρα [1], μελανέρυθρα δέντρα [6], Β-δέντρα [5] και οι παραλλαγές τους [27, 28]) φράσ σ ουν τον χρόνο εκτέλεσ ης χειρότερης περίπτωσ ης μιας ενέργειας σ ε O (logn), προσ φέροντας έτσ ι καλή απόδοσ η για την εκτέλεσ η μιας ενέργειας. Ωσ τόσ ο σ ε πολλές εφαρμογές αντί για μια μεμονωμένη ενέργεια, οι δομές δεδομένων καλούνται να εκτελέσ ουν μια ακολουθία ενεργειών. Σε αυτές τις περιπτώσ εις μεγαλύτερο βάρος πρέπει να δοθεί σ τον σ υνολικό χρόνο εκτέλεσ ης της ακολουθίας σ ε αντίθεσ η με αυτόν των επί μέρους ενεργειών. Για να επιτευχθεί μικρός χρόνος εκτέλεσ ης για όλη την ακολουθία, θα πρέπει να μειωθεί όσ ο είναι δυνατό το επιμερισ μένο κόσ τος κάθε ενέργειας. Οι αυτοοργανώμενες δομές δεδομένων έχουν σ αν κύριο χαρακτηρισ τικό τους ότι εξασ φαλίζουν μικρά επιμερισ μένα κόσ τη για την εκτέλεσ η των ενεργειών μιας ακολουθίας. Ακολουθεί ένας ορισ μός για μια γενική αυτοοργανώμενη δομή: 17
ΚΕΦ ΑΛΑΙΟ 2. ΑΥΤΟΟΡΓΑΝ ΩΜΕΝΕΣ ΔΟΜ ΕΣ ΔΕΔΟΜ ΕΝΩΝ 18 Ορισμός 2.1.1. Μια αυτοοργανώμενη δομή δεδομένων βρίσ κεται κάθε σ τιγμή σ ε μια αυθαίρετη κατάσ τασ η η οποία δεν είναι απαραίτητο να ικανοποιεί κάποιο κριτήριο ισ οζύγισ ης (όπως π.χ. το ύψος σ τα ισ οζυγισ μένα δέντρα). Στο τέλος κάθε ενέργειας εφαρμόζουμε μια κίνησ η αναδόμησ ης πάνω σ τη δομή η οποία πραγματοποιείται έτσ ι ώσ τε η δομή να είναι αποτελεσ ματικότερη σ τις μελλοντικές ενέργειες. Για παράδειγμα, μια κίνησ η αναδόμησ ης σ ε μια γραμμική λίσ τα μετά από μια επιτυχή αναζήτησ η ενός σ τοιχείου, είναι η μετακίνησ η του σ τοιχείου αυτού από τη θέσ η που βρισ κόταν σ την κορυφή της λίσ τας (MTF λίσ τα). Ετσ ι, αν οι αναζητήσ εις ακολουθούν κάποια μη-ομοιόμορφη κατανομή (π.χ. κανονική) τα σ τοιχεία για τα οποία γίνεται σ υχνά αναζήτησ η μέσ α σ την ακολουθία, θα τείνουν να βρίσ κονται κοντά σ την κορυφή της λίσ τας. Με αυτόν τον τρόπο θα πετυχαίναμε καλύτερη απόδοσ η από το αν χρησ ιμοποιούσ αμε μια απλή γραμμική λίσ τα. Οι αυτοοργανώμενες δομές δεδομένων έχουν αρκετά πλεονεκτήματα σ ε σ χέσ η με τις δομές που βασ ίζονται σ ε κριτήριο ισ οζύγισ ης όπως τα ισ οζυγισ μένα δέντρα. Μερικά από αυτά είναι: 1. Με βάσ η το επιμερισ μένο κόσ τος οι αυτοοργανώμενες δομές δε μπορεί να είναι ποτέ πολύ χειρότερες από τις δομές που βασ ίζονται σ ε κριτήριο ισ οζύγισ ης. Επιπλέον, επειδή η αναδόμησ ή τους γίνεται με βάσ η τα σ τοιχεία για τα οποία γίνεται αναζήτησ η, οι αυτοοργανώμενες δομές δεδομένων είναι πολύ πιο αποδοτικές όταν τα σ τοιχεία προς αναζήτησ η επιλέγονται με μία μηομοιόμορφη κατανομή. 2. Απαιτούν λιγότερο χώρο, καθώς δεν αποθηκεύεται πουθενά πληροφορία ισ οζύγισ ης. 3. Οι αλγόριθμοι ενημέρωσ ης και αναζήτησ ης σ τοιχείων είναι εύκολα κατανοήσ ιμοι και εύκολα υλοποιήσ ιμοι. Οι αυτοοργανώμενες δομές δεδομένων έχουν και δύο πιθανά μειονεκτήματα τα οποία είναι: 1. Πραγματοποιείται αναδόμησ η της δομής ακόμα και μετά από ενέργειες αναζήτησ ης. Στις δομές που βασ ίζονται σ ε κριτήριο ισ οζύγισ ης η κατάσ τασ η της δομής μεταβάλλεται μόνο μετά από ενέργειες ενημέρωσ ης (εισ αγωγή ή διαγραφή σ τοιχείου). 2. Οι μεμονωμένες ενέργειες μέσ α σ ε μια ακολουθία ενεργειών μπορεί να είναι χρονοβόρες και αυτό μπορεί να αποτελέσ ει πρόβλημα σ τις εφαρμογές πραγματικού χρόνου. Τέλος θα δώσ ουμε τρεις ορισ μούς οι οποίοι είναι απαραίτητοι για τη σ υνέχεια. Εσ τω S μια ακολουθία ενεργειών προς εκτέλεσ η. Ονομάζουμε online αλγόριθμο έναν αλγόριθμο ο οποίος εκτελεί τις ενέργειες της S μία-μία χωρίς να έχει επίγνωσ η για το ποιες είναι οι μελλοντικές ενέργειες της ακολουθίας. Αντίθετα, ένας oine αλγόριθμος γνωρίζει εξ αρχής όλη την ακολουθία S και τις ενέργειες που την αποτελούν. Εσ τω C A (S) το κόσ τος εκτέλεσ ης της ακολουθίας από έναν online
ΚΕΦ ΑΛΑΙΟ 2. ΑΥΤΟΟΡΓΑΝ ΩΜΕΝΕΣ ΔΟΜ ΕΣ ΔΕΔΟΜ ΕΝΩΝ 19 αλγόριθμο A, και C OP T (S) το κόσ τος εκτέλεσ ης της ακολουθίας από τον OP T, δηλαδή τον βέλτισ το oine αλγόριθμο για τη σ υγκεκριμένη ακολουθία. Τότε έχουμε ότι: Ορισμός 2.1.2. Ο αλγόριθμος A είναι c-ανταγωνισ τικός αν υπάρχει σ ταθερά k τέτοια ώσ τε για κάθε ακολουθία ενεργειών S να ισ χύει C A (S) c C OP T (S) + k Το παραπάνω είδος ανάλυσ ης ονομάζεται ανταγωνισ τική ανάλυσ η. Η ανταγωνισ τική ανάλυσ η σ υγκρίνει πρακτικά την απόδοσ η ενός online αλγόριθμου ενάντια σ την απόδοσ η του βέλτισ του oine αλγορίθμου για κάθε ακολουθία ενεργειών. Αν δηλαδή το κόσ τος ενός αλγορίθμου για κάθε ακολουθία S φράσ σ εται από O (c C OP T (S)) (όπου OP T ο βέλτισ τος oine αλγόριθμος για τη σ υγκεκριμένη ακολουθία S) τότε ο αλγόριθμος είναι c-ανταγωνισ τικός. Στη σ υνέχεια θα περιγράψουμε μια πολύ απλή αυτοοργανώμενη δομή δεδομένων, την MTF λίσ τα και θα αναλύσ ουμε το επιμερισ μένο της κόσ τος για την αναζήτησ η σ τοιχείου μέσ α σ ε αυτή. 2.2 Move To Front LÐsvta Θα δώσ ουμε πρώτα μια περιγραφή για τις απλές γραμμικές λίσ τες και σ τη σ υνέχεια θα προχωρήσ ουμε σ τις MTF λίσ τες. Εσ τω L μια απλή γραμμική λίσ τα η οποία αποτελείται από n σ τοιχεία. Ορίζουμε ως pos (x i ) τη θέσ η του σ τοιχείου x i μέσ α σ τη λίσ τα, δηλαδή το πλήθος των σ τοιχείων που παρεμβάλλονται από το αρισ τερό άκρο της λίσ τας μέχρι το σ τοιχείο x i (μαζί με το σ τοιχείο x i ). Μια γραμμική λίσ τα υποσ τηρίζει τις παρακάτω ενέργειες: access (x i ), δηλαδή αναζήτησ η σ τοιχείου με κόσ τος pos (x i ) αφού τόσ α σ τοιχεία πρέπει να εξετασ θούν μέχρι να βρούμε το σ τοιχείο x i (Εικόνα 2.1) insert (x i ), δηλαδή εισ αγωγή σ τοιχείου με κόσ τος n+1 καθώς πρέπει πρώτα να διαπεράσ ουμε όλα τα σ τοιχεία για να επαληθεύσ ουμε ότι το x i δε βρίσ κεται μέσ α σ τη λίσ τα και σ τη σ υνέχεια να προσ θέσ ουμε το σ τοιχείο σ τη κορυφή της λίσ τας delete (x i ), δηλαδή διαγραφή σ τοιχείου με κόσ τος pos (x i ) αφού τόσ α σ τοιχεία πρέπει να εξετασ θούν μέχρι να βρούμε το σ τοιχείο x i Επίσ ης θα θεωρήσ ουμε ότι μπορούμε να αντιμεταθέσ ουμε δυο γειτονικά σ τοιχεία μέσ α σ τη λίσ τα με κόσ τος 1 (Εικόνα 2.2) 14 5 3 22 25 Σχήμα 2.1: Γραμμική Λίσ τα: access (3) με κόσ τος 3 Μια MTF λίσ τα, είναι μια απλή γραμμική λίσ τα σ την οποία εφαρμόζουμε τον ευρετικό κανόνα Move to front (προτάθηκε σ το [36]). Συγκεκριμένα η εισ αγωγή και
ΚΕΦ ΑΛΑΙΟ 2. ΑΥΤΟΟΡΓΑΝ ΩΜΕΝΕΣ ΔΟΜ ΕΣ ΔΕΔΟΜ ΕΝΩΝ 20 14 5 22 3 25 Σχήμα 2.2: Γραμμική Λίσ τα: Αντιμετάθεσ η των σ τοιχείων 3 και 22 με κόσ τος 1 η διαγραφή ενός σ τοιχείου γίνεται με τον ίδιο τρόπο με μια απλή γραμμική λίσ τα. Ομως, σ το τέλος κάθε αναζήτησ ης μεταφέρουμε το σ τοιχείο που βρέθηκε, σ την κορυφή της MTF λίσ τας με διαδοχικές αντιμεταθέσ εις. Ετσ ι, το σ υνολικό κόσ τος αναζήτησ ης σ ε MTF λίσ τα είναι ίσ ο με 2pos (x i ) 1 και αυτό γιατί έχει pos (x i ) κόσ τος να βρούμε το σ τοιχείο x i ενώ σ τη σ υνέχεια πραγματοποιούμε pos (x i ) 1 αντιμεταθέσ εις για να το φέρουμε σ τη κορυφή. Θα αποδείξουμε ότι η MTF λίσ τα είναι O (1)-ανταγωνισ τική και σ υγκεκριμένα 4-ανταγωνισ τική. Η απόδειξη θα περιορισ τεί σ τις επιτυχημένες αναζητήσ εις τις οποίες αποκαλούμε προσ πελάσ εις. Θεώρημα 2.2.1. Η MTF λίσ τα είναι 4-ανταγωνισ τική ως προς τις αυτοοργανώμενες γραμμικές λίσ τες [40]. Απόδειξη. Εσ τω L i η MTF λίσ τα μετά την i-οσ τή προσ πέλασ η και έσ τω L i η OPT λίσ τα (δηλαδή η βέλτισ τη oine γραμμική λίσ τα για τη σ υγκεκριμένη ακολουθία) μετά την i-οσ τή προσ πέλασ η. Εσ τω επίσ ης c i το κόσ τος της MTF λίσ τας για την i-οσ τή προσ πέλασ η, δηλαδή c i = 2pos i 1 (x) 1 όπου pos i 1 (x) η θέσ η του σ τοιχείου x σ την L i 1. Κατά αντίσ τοιχο τρόπο έχουμε ότι c i είναι το κόσ τος της OPT λίσ τας για την i-οσ τή προσ πέλασ η, δηλαδή c i = pos i 1 (x) + t i όπου pos i 1 (x) η θέσ η του σ τοιχείου x σ την L i 1 και t i ο αριθμός των αντιμεταθέσ εων που πραγματοποιεί η OP T (αφού το κόσ τος t i αντιμεταθέσ εων είναι t i 1 = t i ). Θα αναλύσ ουμε το επιμερισ μένο κόσ τος μιας προσ πέλασ ης για την MTF λίσ τα χρησ ιμοποιώντας την Τεχνική του Φυσ ικού. Ορίζουμε σ αν σ υνάρτησ η δυναμικού Φ : {L i } R για την MTF λίσ τα, τη σ υνάρτησ η: Φ (L i ) = 2 { (x, y) : x Li y και y L i x } = 2 #ανασ τροφές Ανασ τροφή έχουμε όταν σ τη λίσ τα MTF ένα σ τοιχείο x βρίσ κεται μπροσ τά από ένα σ τοιχείο y ενώ την ίδια σ τιγμή σ τη λίσ τα OP T το σ τοιχείο y βρίσ κεται αυτό μπροσ τά από το σ τοιχείο x. Ενα παράδειγμα υπάρχει σ την εικόνα 2.3, όπου υπάρχουν 4 ανασ τροφές. Αυτές αποτελούνται από τα ζεύγη σ τοιχείων (28, 34), (28, 2), (34, 2), (6, 13). L L* 5 28 34 2 6 13 5 2 34 28 13 6 Σχήμα 2.3: Παραδείγματα ανασ τροφών - (28, 34), (28, 2), (34, 2), (6, 13)
ΚΕΦ ΑΛΑΙΟ 2. ΑΥΤΟΟΡΓΑΝ ΩΜΕΝΕΣ ΔΟΜ ΕΣ ΔΕΔΟΜ ΕΝΩΝ 21 Με βάσ η τον ορισ μό της σ υνάρτησ ης δυναμικού παρατηρούμε ότι: Φ (L i ) 0 για i = 0, 1, 2,... αφού οι δύο λίσ τες θα έχουν πάντα 0 ανασ τροφές. Επίσ ης υποθέτουμε ότι οι δύο λίσ τες ξεκινούν την εκτέλεσ η των ενεργειών της ακολουθίας έχοντας τα ίδια σ τοιχεία σ τις ίδιες θέσ εις. Ετσ ι προκύπτει ότι Φ (L 0 ) = 0. Τέλος παρατηρούμε ότι μία αντιμετάθεσ η σ τοιχείων σ την L i είτε δημιουργεί μόνο μία νέα ανασ τροφή, είτε κατασ τρέφει μόνο μία υπάρχουσ α. Ενα παράδειγμα υπάρχει σ την εικόνα 2.4. Η αντιμετάθεσ η των σ τοιχείων x και y δημιουργεί ή κατασ τρέφει μια ανασ τροφή διατηρώντας όμως παράλληλα τα σ τοιχεία των τμημάτων La και Lb σ τις θέσ εις που βρισ κόταν. Με αυτό τον τρόπο διατηρούνται και οι σ χέσ εις μεταξύ αυτών των σ τοιχείων και έτσ ι δε δημιουργείται (ή κατασ τρέφεται) κάποια επιπλέον ανασ τροφή. Άρα με βάσ η τα παραπάνω, η διαφορά σ το δυναμικό λόγω μίας αντιμετάθεσ ης σ τοιχείων είναι το πολύ Φ = ±2 (επειδή Φ (L i ) = 2 #ανασ τροφές). La x y Lb La y x Lb Σχήμα 2.4: Παράδειγμα δημιουργίας ανασ τροφής μετά από αντιμετάθεσ η των x και y Στη σ υνέχεια θα εξετάσ ουμε τι σ υμβαίνει σ την i-οσ τή ενέργεια η οποία υποθέτουμε ότι πραγματοποιεί προσ πέλασ η σ το σ τοιχείο x. Ορίζουμε τα παρακάτω σ ύνολα τα οποία περιγράφουν την σ χέσ η του σ τοιχείου x με τα υπόλοιπα σ τοιχεία κάθε λίσ τας. A = B = C = D = { } y L i 1 : y Li 1 x και y L i 1 x { } y L i 1 : y Li 1 x και y L i 1 x { } y L i 1 : y Li 1 x και y L i 1 x { } y L i 1 : y Li 1 x και y L i 1 x Στην εικόνα 2.5 απεικονίζονται οι λίσ τες L i 1 και L i 1 και οι σ χέσ εις των παραπάνω σ υνόλων με τα σ τοιχεία κάθε λίσ τας. Παρατηρούμε ότι r = A + B +1 ενώ r = A + C + 1. Η MTF λίσ τα αφού πραγματοποιήσ ει προσ πέλασ η σ το σ τοιχείο x, το μεταφέρει σ την κορυφή της λίσ τας, δημιουργώντας έτσ ι A ανασ τροφές και κατασ τρέφοντας B ανασ τροφές. Η OPT λίσ τα μετά την προσ πέλασ η σ το σ τοιχείο x, πραγματοποιεί t i αντιμεταθέσ εις οι οποίες με τη σ ειρά τους δημιουργούν το πολύ t i ανασ τροφές. Άρα η διαφορά δυναμικού που προκαλείται από την i-οσ τή ενέργεια είναι το πολύ 2 ( A B + t i ) δηλαδή Φ (L i ) Φ (L i 1 ) 2 ( A B + t i ). Το επιμερισ μένο κόσ τος για την i-οσ τή ενέργεια πρόσ βασ ης διαμορφώνεται ως εξής:
ΚΕΦ ΑΛΑΙΟ 2. ΑΥΤΟΟΡΓΑΝ ΩΜΕΝΕΣ ΔΟΜ ΕΣ ΔΕΔΟΜ ΕΝΩΝ 22 L A B r x C D L* A C x r* B D Σχήμα 2.5: Οι L i 1 και L i 1 αμέσ ως πριν την προσ πέλασ η του σ τοιχείου x ac i = c i + Φ (L i ) Φ (L i 1 ) 2r 1 + 2 ( A B + t i ) = 2r 1 + 2 ( A (r 1 A ) + t i ) (αφού r = A + B + 1) = 2r 1 + 4 A 2r + 2 + 2t i = 4 A + 1 + 2t i 4 A + 4 + 4t i 4 (r + t i ) (αφού r = A + C + 1 A + 1) = 4 ( pos ) i 1 (x) + t i = 4c i Άρα έχουμε ότι το επιμερισ μένο κόσ τος για την i-οσ τή ενέργεια προσ πέλασ ης είναι ίσ ο με ac i 4c i. Για το σ υνολικό κόσ τος εκτέλεσ ης όλων των ενεργειών της ακολουθίας S έχουμε: C MT F (S) = = S c i S (ac i + Φ (L i 1 ) Φ (L i )) S 4c i + Φ (L 0 ) Φ ( L S ) 4 C OP T (S) (αφού Φ (L 0 ) = 0 και Φ ( L S ) 0) Άρα τελικά η MTF λίσ τα είναι 4-ανταγωνισ τική ως προς τις αυτοοργανώμενες γραμμικές λίσ τες. Το παραπάνω θεώρημα είναι πολύ ισ χυρό και αν το ερμηνεύσ ουμε με απλά λόγια έχουμε ότι Για μια ακολουθία S, μια MTF λίσ τα θα είναι το πολύ 4 φορές χειρότερη από μια οποιαδήποτε άλλη αυτοοργανώμενη γραμμική λίσ τα, ακόμα και αν αυτή η γραμμική λίσ τα γνωρίζει εξ αρχής την ακολουθία S (οπότε και θα
ΚΕΦ ΑΛΑΙΟ 2. ΑΥΤΟΟΡΓΑΝ ΩΜΕΝΕΣ ΔΟΜ ΕΣ ΔΕΔΟΜ ΕΝΩΝ 23 μπορεί να πραγματοποιήσ ει αντιμεταθέσ εις για να ευνοήσ ει μελλοντικές αναζητήσ εις σ τοιχείων). Μπορούμε να επεκτείνουμε την παραπάνω ανάλυσ η με δύο τρόπους. Αν θεωρήσ ουμε ότι μετά την προσ πέλασ η ενός σ τοιχείου, η MTF λίσ τα μπορεί να το μεταφέρει σ την κορυφή σ ε O (1) χρόνο, αποφεύγοντας δηλαδή τις διαδοχικές α- ντιμεταθέσ εις, τότε η MTF-λίσ τα είναι 2-ανταγωνισ τική [40]. Το σ υγκεκριμένο μοντέλο είναι μάλισ τα πιο ρεαλισ τικό αφού σ υνήθως απαιτούνται οι ενημερώσ εις τριών μόνο δεικτών για να μεταφερθεί επιτυχώς ένα σ τοιχείο σ την κορυφή της λίσ τας. Τέλος, αν θεωρήσ ουμε ότι σ την αρχή της ανάλυσ ης οι δύο λίσ τες δε ξεκινούν με τα ίδια σ τοιχεία σ τις ίδιες θέσ εις (δηλαδή ότι L 0 L 0), τότε σ τη χειρότερη περίπτωσ η θα έχουν τα σ τοιχεία αντίσ τροφα μεταξύ τους κι έτσ ι Φ (L 0 ) = Θ ( n 2). Άρα θα ισ χύει C MT F (S) 4 C OP T (S) + Θ ( n 2) και η MTF-λίσ τα θα είναι και πάλι 4-ανταγωνισ τική γιατί το n 2 θεωρείται σ ταθερά όταν S. 2.3 Basvikˆ Jewr mata Το υπόλοιπο της πτυχιακής εργασ ίας θα επικεντρωθεί κατά κύριο λόγο σ ε αυτοοργανώμενες δομές δεδομένων που βασ ίζονται σ τα δυαδικά δέντρα αναζήτησ ης γιατί αυτά είναι που παρουσ ιάζουν το μεγαλύτερο ερευνητικό ενδιαφέρον. Η μελέτη των σ υγκεκριμένων δομών δεδομένων πραγματοποιείται με βάσ η το BST μοντέλο, το οποίο αναλύεται σ την ενότητα 1.2. Σε πρώτη φάσ η θα αναλύσ ουμε κάποια άνω και κάτω φράγματα τα οποία χαρακτηρίζουν τα BST και σ τη σ υνέχεια θα παρουσ ιάσ ουμε σ υγκεκριμένες δομές οι οποίες ικανοποιούν τα παραπάνω φράγματα. 2.3.1 'Anw frˆgmata Υπάρχουν αρκετά θεωρήματα που παρέχουν άνω φράγματα τα οποία μπορούν να χαρακτηρίσ ουν ένα αυτοοργανώμενο BST. Από αυτά τα κυριότερα είναι το θεώρημα της σ τατικής βελτισ τότητας, το θεώρημα σ τατικής δακτυλοδότησ ης, το θεώρημα δυναμικής δακτυλοδότησ ης, το θεώρημα σ υνόλου εργασ ίας και το ενοποιημένο θεώρημα. Υπάρχουν επίσ ης και άλλα πιο εξειδικευμένα θεωρήματα όπως το θεώρημα της σ ειριακής προσ πέλασ ης, το θεώρημα της προδιατεταγμένης προσ πέλασ ης και άλλα. Για τη μελέτη των σ υγκεκριμένων θεωρημάτων και εικασ ιών θα θεωρήσ ουμε ότι έχουμε μια ακολουθία S μήκους m, όπου S = (s 1, s 2,..., s m ) μια ακολουθία αναζητήσ εων πάνω σ ε n διαφορετικά σ τοιχεία. 2.3.1.1 Θεώρημα σ τατικής βελτισ τότητας Προτού δώσ ουμε τον ορισ μό του θεωρήματος της σ τατικής βελτισ τότητας (Static Optimality), θα πρέπει να περιγράψουμε τα χαρακτηρισ τικά ενός βέλτισ του σ τατικού δέντρου.
ΚΕΦ ΑΛΑΙΟ 2. ΑΥΤΟΟΡΓΑΝ ΩΜΕΝΕΣ ΔΟΜ ΕΣ ΔΕΔΟΜ ΕΝΩΝ 24 Εσ τω ένα σ ύνολο K = {k 1, k 2, k 3, k 4, k 5 } πέντε σ τοιχείων για τα οποία θα πρέπει να δημιουργηθεί ένα σ τατικό δυαδικό δέντρο, δηλαδή ένα BST που δεν υποσ τηρίζει περισ τροφές (έσ τω T ), το οποίο να εξυπηρετεί με βέλτισ το τρόπο μια ακολουθία αναζητήσ εων S. Αν έχουμε ότι S = (k 2, k 2, k 2, k 1, k 2, k 3 ) προκύπτει διαισ θητικά ότι το σ τοιχείο k 2 θα πρέπει να είναι η ρίζα του T αφού είναι το σ τοιχείο για το οποίο γίνεται αναζήτησ η περισ σ ότερες φορές. Με αντίσ τοιχο τρόπο τα σ τοιχεία k 1 και k 3 θα πρέπει να βρίσ κονται πιο ψηλά σ το δέντρο από τα σ τοιχεία k 4 και k 5. Ενα παράδειγμα βέλτισ του δέντρου για την S υπάρχει σ την εικόνα 2.6. k2 k1 k3 k4 k5 Σχήμα 2.6: Βέλτισ το σ τατικό δέντρο για την ακολουθία S πάνω σ τα σ τοιχεία του σ υνόλου K Ο Donald Knuth πρότεινε μια αλγοριθμική διαδικασ ία [32], που βασ ίζεται σ τις αρχές του δυναμικού προγραμματισ μού, με την οποία μπορούμε να υπολογίσ ουμε ένα βέλτισ το σ τατικό δέντρο για μια δεδομένη ακολουθία S αν γνωρίζουμε τον αριθμό προσ πελάσ εων κάθε σ τοιχείου μέσ α σ την ακολουθία. Το κόσ τος εκτέλεσ ης ( ολόκληρης της ακολουθίας για ένα βέλτισ το σ τατικό δέντρο είναι ίσ ο με n ) O q i log m q i όπου q i το πλήθος προσ πελάσ εων του σ τοιχείου i σ την ακολου- θία S. Με βάσ η τα παραπάνω μπορούμε τώρα να δώσ ουμε έναν ορισ μό για το θεώρημα σ τατικής βελτισ τότητας. Θεώρημα 2.3.1. Εσ τω q i το πλήθος προσ πελάσ εων του σ τοιχείου i σ την ακολουθία S. Εσ τω m = n q i ο σ υνολικός αριθμός προσ πελάσ εων της ακολουθίας S ενώ υποθέτουμε επίσ ης ότι q i > 0, για κάθε i. Ενα BST που επαληθεύει το( θεώρημα σ τατικής ) βελτισ τότητας, εκτελεί την ακολουθία S σ ε σ υνολικό χρόνο O m + n q i log m q i και αποκαλείται σ τατικά βέλτισ το (statically optimal). Η εννοιολογική σ ημασ ία του θεωρήματος είναι ότι ένα σ τατικά βέλτισ το δυαδικό δεντρό μπορεί να εξυπηρετήσ ει όλες τις ακολουθίες S σ τον ίδιο (ασ υμπτωτικά) χρόνο με το βέλτισ το σ τατικό δέντρο που αντισ τοιχεί σ ε κάθε μια από αυτές τις ακολουθίες. Αποτελεί μια σ ημαντική ιδιότητα ειδικά για τους online αλγορίθμους
ΚΕΦ ΑΛΑΙΟ 2. ΑΥΤΟΟΡΓΑΝ ΩΜΕΝΕΣ ΔΟΜ ΕΣ ΔΕΔΟΜ ΕΝΩΝ 25 οι οποίοι δε γνωρίζουν εξ αρχής την ακολουθία S και τα q i που την χαρακτηρίζουν και σ υνεπώς δε μπορούν να προβλέψουν τις μελλοντικές προσ πελάσ εις. 2.3.1.2 Θεώρημα σ τατικής δακτυλοδότησ ης Το θεώρημα σ τατικής δακτυλοδότησ ης (Static Finger) βασ ίζεται εννοιολογικά σ τις δομές δεδομένων που υποσ τηρίζουν ngers (δάχτυλα) όπως nger-λίσ τες, nger-δέντρα κ.α. οι οποίες προτάθηκαν σ το [26]. Πιο σ υγκεκριμένα, ένα κλασ ικό nger δέντρο επιτρέπει την αναζήτησ η σ τοιχείων να ξεκινήσ ει από άλλα σ τοιχεία του δέντρου εκτός από την ρίζα. Αυτά τα σ τοιχεία αποκαλούνται ngers και σ την ουσ ία βελτιώνουν την απόδοσ η του δέντρου όταν πραγματοποιούνται αναζητήσ εις για σ τοιχεία τα οποία βρίσ κονται κοντά μεταξύ τους (με βάσ η τη σ υμμετρική διάταξη του δέντρου). Ενα παράδειγμα από κλασ ικό nger δέντρο υπάρχει σ την εικόνα 2.7. Σχήμα 2.7: Finger Δέντρο - Ο ροζ κόμβος είναι ένα nger από το οποίο μπορεί να ξεκινήσ ει μια αναζήτησ η Με βάσ η τα παραπάνω το θεώρημα σ τατικής δακτυλοδότησ ης διατυπώνεται ως εξής: Θεώρημα 2.3.2. Εσ τω f ένα σ τοιχείο του δέντρου (το nger) που παραμένει σ ταθερό και i j το σ τοιχείο j-οσ τό σ τοιχείο που προσ πελάσ τηκε μέσ α σ την ακολουθία S. Ενα BST που επαληθεύει το θεώρημα ( σ τατικής δακτυλοδότησ ης, ) εκτελεί την ακολουθία S σ ε σ υνολικό χρόνο O m + nlogn + m log ( i j f + 1) όπου i j f η απόσ τασ η των σ τοιχείων i j και f σ τη σ υμμετρική διάταξη του δέντρου. Πρακτικά το θεώρημα περιγράφει ότι το σ υνολικό κόσ τος της ακολουθίας S θα είναι σ χετικά μικρό αν τα σ τοιχεία για τα οποία γίνεται αναζήτησ η βρίσ κονται κοντά σ το nger f. Αποτελεί μια σ ημαντική ιδιότητα γιατί εξασ φαλίζει ότι τα BST που j=1
ΚΕΦ ΑΛΑΙΟ 2. ΑΥΤΟΟΡΓΑΝ ΩΜΕΝΕΣ ΔΟΜ ΕΣ ΔΕΔΟΜ ΕΝΩΝ 26 επαληθεύουν το θεώρημα θα έχουν καλή απόδοσ η σ ε δεδομένα που βρίσ κονται χωρικά κοντά, δηλαδή σ ε δεδομένα που αποθηκεύονται σ ε κοντινές θέσ εις σ τη μνήμη (spatial locality). 2.3.1.3 Θεώρημα δυναμικής δακτυλοδότησ ης Το θεώρημα δυναμικής δακτυλοδότησ ης (Dynamic Finger) είναι παρόμοιο με το θεώρημα σ τατικής δακτυλοδότησ ης με τη διαφορά ότι το σ τοιχείο f που λειτουργεί ως nger δεν είναι σ ταθερό και κάθε φορά μετακινείται σ το σ τοιχείο σ το οποίο έγινε προσ πέλασ η τελευταία φορά. Ακολουθεί ο ορισ μός του θεωρήματος δυναμικής δακτυλοδότησ ης: Θεώρημα 2.3.3. Εσ τω i j το j-οσ τό σ τοιχείο που προσ πελάσ τηκε μέσ α σ την ακολουθία S. Ενα BST που επαληθεύει το θεώρημα ( δυναμικής δακτυλοδότησ ης, ) εκτελεί την ακολουθία S σ ε σ υνολικό χρόνο O m + n + m log ( i j i j 1 + 1) όπου i j i j 1 η απόσ τασ η των σ τοιχείων i j και i j 1 σ τη σ υμμετρική διάταξη του δέντρου. 2.3.1.4 Θεώρημα σ υνόλου εργασ ίας Ενα πολύ σ ημαντικό θεώρημα είναι το θεώρημα σ υνόλου εργασ ίας (Working Set) το οποίο έχει να κάνει με τις χρονικές αποσ τάσ εις μεταξύ των προσ πελάσ εων ενός σ τοιχείου. Ο ορισ μός του θεωρήματος σ υνόλου εργασ ίας είναι ο εξής: Θεώρημα 2.3.4. Εσ τω i j το j-οσ τό σ τοιχείο που προσ πελάσ τηκε μέσ α σ την ακολουθία S και t (j) το πλήθος των προσ πελάσ εων διαφορετικών σ τοιχείων που σ υνέβησ αν ανάμεσ α σ τη προσ πέλασ η του i j και σ τη προηγούμενη προσ πέλασ η του ίδιου σ τοιχείου. Ενα BST που επαληθεύει ( το θεώρημα σ υνόλου εργασ ίας, ) εκτελεί την ακολουθία S σ ε σ υνολικό χρόνο O m + nlogn + m log (t (j) + 1). Το θεώρημα σ υνόλου εργασ ίας εξετάζει την απόδοσ η ενός BST από μια διαφορετική σ κοπιά, αυτή του χρόνου που παρήλθε μεταξύ των προσ πελάσ εων ίδιων σ τοιχείων. Συγκεκριμένα τα BST που επαληθεύουν το θεώρημα θα έχουν καλή απόδοσ η σ την προσ πέλασ η των σ τοιχείων για τα οποία είχε ξαναγίνει πρόσ φατα αναζήτησ η. Με αυτόν τον τρόπο ευνοούνται οι αναζητήσ εις για σ τοιχεία τα οποία βρίσ κονται χρονικά κοντά (temporal locality). 2.3.1.5 Θεώρημα σ ειριακής προσ πέλασ ης Το θεώρημα της σ ειριακής (Sequential) προσ πέλασ ης γενικεύεται από το θεώρημα δυναμικής δακτυλοδότησ ης και ο ορισ μός του είναι ο εξής: Θεώρημα 2.3.5. Εσ τω ένα BST με n σ τοιχεία. Το κόσ τος μιας ακολουθίας που προσ πελαύνει ένα-ένα όλα τα n σ τοιχεία του δέντρου με βάσ η τη σ υμμετρική του διάταξη είναι O (n). j=1 j=1
ΚΕΦ ΑΛΑΙΟ 2. ΑΥΤΟΟΡΓΑΝ ΩΜΕΝΕΣ ΔΟΜ ΕΣ ΔΕΔΟΜ ΕΝΩΝ 27 Το σ υγκεκριμένο θεώρημα, όπως και το θεώρημα δυναμικής δακτυλοδότησ ης, είναι ειδικές περιπτώσ εις της εικασ ίας της δυναμικής βελτισ τότητας που θα αναλύσ ουμε σ τη σ υνέχεια και αποτελούν θετικές ενδείξεις για την επαλήθευσ ή της. 2.3.1.6 Θεώρημα προδιατεταγμένης προσ πέλασ ης Το θεώρημα της προδιατεταγμένης (Preorder) προσ πέλασ ης αποτελεί μια γενίκευσ η του θεωρήματος της σ ειριακής προσ πέλασ ης και ο ορισ μός του είναι: Θεώρημα 2.3.6. Εσ τω ένα αρχικό δέντρο T. Αν προσ πελάσ ουμε τους κόμβους του T με βάσ η την προδιατεταγμένη διάταξη των σ τοιχείων του τότε το σ υνολικό κόσ τος είναι O ( T ). 2.3.1.7 Το Ενοποιημένο Θεώρημα Το θεώρημα του σ υνόλου εργασ ίας και το θεώρημα δυναμικής δακτυλοδότησ ης, αποτελούν δύο από τις καλύτερες μεθόδους ανάλυσ ης της απόδοσ ης ενός BST. Ωσ τόσ ο για μερικές ακολουθίες προσ πελάσ εων, το άνω όριο που δίνει το κάθε θεώρημα μπορεί να μην είναι σ φιχτό και ο πραγματικός χρόνος εκτέλεσ ης της ακολουθίας να είναι σ την ουσ ία μικρότερος. Για το λόγο αυτό, ο Iacono [30] πρότεινε ένα ενοποιημένο θεώρημα (Unied Theorem) το οποίο βασ ίζεται σ τα θεωρήματα σ υνόλου εργασ ίας και δυναμικής δακτυλοδότησ ης: Θεώρημα 2.3.7. Εσ τω S = (s 1, s 2,..., s m ) μια ακολουθία σ τοιχείων, t i (y) το πλήθος των διαφορετικών σ τοιχείων που προσ πελάσ τηκαν μεταξύ της τελευταίας προσ πέλασ ης σ το y και σ τη τελευταία προσ πέλασ η σ το s i. Εσ τω επίσ ης d i (y) το πλήθος των σ τοιχείων ανάμεσ α από το y και το s i με βάσ η τη σ υμμετρική διάταξη του BST σ υμπεριλαμβανομένων των y και s i. Τότε ο επιμερισ μένος χρόνος προσ πέλασ ης του σ τοιχείου s i είναι ( ) O logmin (t i (y) + d i (y) + 1) (2.1) y S Το σ υγκεκριμένο θεώρημα περιγραφικά λέει ότι μια προσ πέλασ η είναι γρήγορη αν το σ τοιχείο που προσ πελαύνεται είναι κοντά σ ε ένα σ τοιχείο το οποίο έχει προσ πελασ τεί πρόσ φατα. Ενα BST που επαληθεύει το Ενοποιημένο Θεώρημα επαληθεύει και τα θεωρήματα σ υνόλου εργασ ίας και δυναμικής δακτυλοδότησ ης. 2.3.1.8 Ιεραρχία Θεωρημάτων Τα θεωρήματα που αναπτύχθηκαν παραπάνω σ υνδέονται μεταξύ τους, με την έννοια ότι αν ένα BST επαληθεύει κάποιο θεώρημα, τότε απαραίτητα επαληθεύει και κάποιο ακόμα θεώρημα. Στην εικόνα απεικονίζονται σ χηματικά οι σ χέσ εις μεταξύ των θεωρημάτων. Συγκεκριμένα αν Θεώρημα 1 Θεώρημα 2 τότε όταν για ένα BST ισ χύει το Θεώρημα 1 θα ισ χύει απαραίτητα και το Θεώρημα 2. Παρατηρούμε ότι το ενοποιημένο θεώρημα υπονοεί τα θεωρήματα σ υνόλου εργασ ίας και δυναμικής δακτυλοδότησ ης. Ο Iacono έδειξε σ το [29] και σ το [30] ότι το θεώρημα σ υνόλου εργασ ίας υπονοεί το θεώρημα σ τατικής βελτισ τότητας. Επίσ ης
ΚΕΦ ΑΛΑΙΟ 2. ΑΥΤΟΟΡΓΑΝ ΩΜΕΝΕΣ ΔΟΜ ΕΣ ΔΕΔΟΜ ΕΝΩΝ 28 Συνόλου Εργασίας Στατικής Βελτιστότητας Ενοποιημένο Στατικής Δακτυλοδότησης Δυναμικής Δακτυλοδότησης Σχήμα 2.8: Ιεραρχία Θεωρημάτων τα θεωρήματα σ τατικής βελτισ τότητας και δυναμικής δακτυλοδότησ ης υπονοούν το θεώρημα σ τατικής δακτυλοδότησ ης. 2.3.2 Kˆtw Frˆgmata Υπάρχουν δύο κύρια κάτω φράγματα τα οποία αναπτύχθηκαν από τον Wilber σ το [47]. Τα δύο φράγματα φράσ σ ουν από κάτω το κόσ τος ενός βέλτισ του BST για μια ακολουθία ενεργειών S που εκτελείται πάνω σ ε ένα σ ύνολο σ τοιχείων K, αλλά κανένα από αυτά δεν είναι εύκολα περιγράψιμο καθώς και τα δύο υπολογίζονται σ υναρτήσ ει της S. 2.3.2.1 Πρώτο κάτω φράγμα του Wilber Το πρώτο φράγμα του Wilber βασ ίζεται σ ε ένα τέλειο δυαδικό δέντρο (έσ τω P ) μεγέθους 2n 1 το οποίο κατασ κευάζεται με τέτοιο τρόπο έτσ ι ώσ τε όλα τα σ τοιχεία του K να βρίσ κονται σ τα φύλλα του. Ενα παράδειγμα υπάρχει σ την εικόνα 2.9. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Σχήμα 2.9: Τέλειο δυαδικό δέντρο για το σ ύνολο σ τοιχείων K = {1, 2,..., 16} Κάθε κόμβος του P αποθηκεύει μια επιπλέον πληροφορία πέρα από το κλειδί του η οποία ονομάζεται προτιμητέα κατεύθυνσ η. Σε μια προσ πέλασ η ενός σ τοιχείου x i της S η προτιμητέα κατεύθυνσ η ενός κόμβου y του P ορίζεται ως:
ΚΕΦ ΑΛΑΙΟ 2. ΑΥΤΟΟΡΓΑΝ ΩΜΕΝΕΣ ΔΟΜ ΕΣ ΔΕΔΟΜ ΕΝΩΝ 29 L αν το x i βρίσ κεται σ το αρισ τερό υποδέντρο του y, R αν το x i βρίσ κεται σ το δεξιό υποδέντρο του y, κενό(-) αν το x i είναι ίσ ο με το κλειδί του y ή αν το x i δε βρίσ κεται σ ε κάποιο υποδέντρο του y. Στην εικόνα 2.10 βλέπουμε τις προτιμητέες κατευθύνσ εις των κόμβων του P μετά την προσ πέλασ η του σ τοιχείου 3 και σ την εικόνα 2.11 τις προτιμητέες κατευθύνσ εις μετά την προσ πέλασ η των σ τοιχείων 3 και 5. Παρατηρούμε σ την εικόνα 2.11 ότι ο χρωματισ μένος κόμβος είχε προτιμητέα κατεύθυνσ η L μετά την προσ πέλασ η του 3 αλλά R μετά την προσ πέλασ η του 5. Ονομάζουμε εναλλαγή προτιμητέας κατεύθυνσ ης όταν η προτιμητέα κατεύθυνσ η ενός κόμβου αλλάζει από L σ ε R ή το αντίσ τροφο. L L - R - - - - L - - - - - - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Σχήμα 2.10: Τέλειο δυαδικό δέντρο - Προσ πέλασ η του σ τοιχείου 3 L R - R L - - - L L - - - - - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Σχήμα 2.11: Τέλειο δυαδικό δέντρο - Προσ πέλασ η των σ τοιχείων 3 και 5 Για να υπολογίσ ουμε το κάτω φράγμα του κόσ τους όλων των BST όταν ε- κτελούν την ακολουθία S ακολουθούμε τα εξής βήματα: Εκτελούμε μία-μία τις προσ πελάσ εις της S και για κάθε κόμβο y του P υπολογίζουμε τον αριθμό IL (y) που είναι ίσ ος με τον σ υνολικό αριθμό εναλλαγών προτιμητέας κατεύθυνσ ης για τον κόμβο y από την πρώτη ενέργεια της S μέχρι και
ΚΕΦ ΑΛΑΙΟ 2. ΑΥΤΟΟΡΓΑΝ ΩΜΕΝΕΣ ΔΟΜ ΕΣ ΔΕΔΟΜ ΕΝΩΝ 30 την τελευταία. Στη σ υνέχεια υπολογίζουμε τον αριθμό W il1 (S) = 2n 1 y=1 IL (y) ο οποίος αποτελεί το κάτω φράγμα κόσ τους που απαιτείται από κάθε BST (σ υνεπώς και του βέλτισ του) για την εκτέλεσ η της ακολουθίας S. Το πρώτο κάτω φράγμα του Wilber είναι αυτό που χρησ ιμοποιείται περισ σ ότερο από τα δύο φράγματα και χρησ ιμεύει κυρίως σ την ανταγωνισ τική ανάλυσ η ορισ μένων BST δομών. 2.3.2.2 Δεύτερο κάτω φράγμα του Wilber Ο Wilber πρότεινε και ένα δεύτερο κάτω φράγμα σ το [47] το οποίο αναπτύχθηκε εκτενέσ τερα σ το [31] και είναι αρκετά παρόμοιο με το πρώτο φράγμα αν και αυτή τη σ τιγμή δεν έχει ιδιαίτερη πρακτική αξία. Εσ τω η ακολουθία προσ πελάσ εων x 1, x 2,..., x m. Για κάθε προσ πέλασ η x j θα υπολογίσ ουμε έναν αριθμό W il2 (x j ). Θέλουμε να βρούμε που ανήκει το x j μεταξύ των x i, x i+1,..., x j 1 για i = j 1, j 2,... μετρώντας δηλαδή προς τα πίσ ω από την j 1 προσ πέλασ η μέχρι την προηγούμενη προσ πέλασ η του x j. Εχουμε ότι a i < x j < b i όπου a i και b i είναι τα πιο σ φιχτά όρια για το x j που έχουν βρεθεί μέχρι σ τιγμής. Κάθε φορά που μειώνεται το i είτε αυξάνεται το a i είτε μειώνεται το b i (φράσ σ οντας πιο σ φιχτά το x j ) είτε η προσ πέλασ η είναι αδιάφορη σ χετικά με το x j. Ο αριθμός W il2 (x j ) είναι ίσ ος με τον αριθμό των εναλλαγών μεταξύ της αύξησ ης του a i και της μείωσ ης του b i. Ενα παράδειγμα με τρεις εναλλαγές βρίσ κεται σ την εικόνα 2.12. 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 Στοιχεία Χρόνος Σχήμα 2.12: Υπολογισ μός του W il2 (8) Το κάτω φράγμα κόσ τους που απαιτείται από κάθε BST για την εκτέλεσ η της ακολουθίας S είναι ο αριθμός W il2 (S) = m W il2 (x j ). j=1