Αποδοτικη ιαχειριση Κειµενικης Πληροφοριας εικτοδοτηση, Αποθηκευση, Επεξεργασια και Εφαρµογες

Σχετικά έγγραφα
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Ανάκτηση Πληροφορίας

Ερώτημα 1. Μας δίνεται μια συλλογή από k ακολοθίες, k >=2 και αναζητούμε το πρότυπο Ρ, μεγέθους n.

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

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

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

Κεφάλαιο 3 ο : Εισαγωγή στο δέντρο επιθεµάτων (Suffix Tree) και στις Εφαρµογές του

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

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

Κεφάλαιο 5 ο : Αλγόριθµοι Σύγκρισης Ακολουθιών Βιολογικών εδοµένων

Κεφάλαιο 10 Ψηφιακά Λεξικά

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

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

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

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

Ανάκτηση Πληροφορίας

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

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

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

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

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

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

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

Αριθµητική Ανάλυση 1 εκεµβρίου / 43

Γ. Κορίλη Αλγόριθµοι ροµολόγησης

Λύση (από: Τσιαλιαμάνης Αναγνωστόπουλος Πέτρος) (α) Το trie του λεξιλογίου είναι

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

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

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

Σηµειώσεις στις σειρές

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

Ανάκτηση Πληροφορίας

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

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

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

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

Περίληψη ιπλωµατικής Εργασίας

Ανάκτηση πληροφορίας

Φροντιστήριο 4. Άσκηση 1. Λύση. Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών HY463 - Συστήµατα Ανάκτησης Πληροφοριών Εαρινό Εξάµηνο

ΚΕΦΑΛΑΙΟ Μηχανική Μάθηση

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.

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

Επιµέλεια Θοδωρής Πιερράτος

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

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

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

Προγραµµατιστικές Τεχνικές

Κατακερματισμός (Hashing)

Κατηγορίες Συμπίεσης. Συμπίεση με απώλειες δεδομένων (lossy compression) π.χ. συμπίεση εικόνας και ήχου

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

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

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

Εισαγωγή στον Προγραµµατισµό. Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί)

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

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

Θέματα Υπολογισμού στον Πολιτισμό - Δένδρα. Δένδρα

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

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

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

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

Ενδεικτικές Ερωτήσεις Θεωρίας

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

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

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

Σειρά Προβλημάτων 4 Λύσεις

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

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

Εισαγωγή στον Προγραµµατισµό. Σύντοµες Σηµειώσεις. Γιώργος Μανής

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

Search and Replication in Unstructured Peer-to-Peer Networks

Δοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης

Κώδικες µεταβλητού µήκους

Τα µπιτ και η σηµασία τους. Σχήµα bit. ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (1/2) 1.7 Αποθήκευση κλασµάτων 1.8 Συµπίεση δεδοµένων 1.9 Σφάλµατα επικοινωνίας

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

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

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Επαναληπτικές δοµές. µτ α.τ. Όχι. ! απαγορεύεται µέσα σε µία ΓΙΑ να µεταβάλλουµε τον µετρητή! διότι δεν θα ξέρουµε µετά πόσες επαναλήψεις θα γίνουν

Αρχές κωδικοποίησης. Τεχνολογία Πολυµέσων 08-1

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

όπου D(f ) = (, 0) (0, + ) = R {0}. Είναι Σχήµα 10: Η γραφική παράσταση της συνάρτησης f (x) = 1/x.

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

Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών

Αριθµητική Ολοκλήρωση

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

Στοιχεία Θεωρίας Γραφηµάτων (4) - έντρα

7ο ΕΡΓΑΣΤΗΡΙΟ AAAABBBBAAAAABBBBBBCCCCCCCCCCCCCCBBABAAAABBBBBBCCCCD

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

Ακρότατα υπό συνθήκη και οι πολλαπλασιαστές του Lagrange

Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον

Δοµές Δεδοµένων. 18η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ

Βασικές Έννοιες Δοµών Δεδοµένων

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

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

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

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

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

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

Transcript:

Τµηµα Μηχανικων Ηλεκτρονικων Υπολογιστων και Πληροφορικης Πανεπιστηµιο Πατρων Αποδοτικη ιαχειριση Κειµενικης Πληροφοριας εικτοδοτηση, Αποθηκευση, Επεξεργασια και Εφαρµογες Ευάγγελος Θεοδωρίδης Επιβλέπων Καθηγητής Αθανάσιος Τσακαλίδης 20 Απριλίου 2009

Τµηµα Μηχανικων Ηλεκτρονικων Υπολογιστων και Πληροφορικης Πανεπιστηµιο Πατρων Αποδοτικη ιαχειριση Κειµενικης Πληροφοριας εικτοδοτηση, Αποθηκευση, Επεξεργασια και Εφαρµογες Ευάγγελος Θεοδωρίδης Επταµελής Επιτροπή: Καθηγητής Αθανάσιος Τσακαλίδης Καθηγητής Σπύρος Λυκοθανάσης Αναπληρωτής Καθηγητής Ιωάννης Γαροφαλάκης Αναπληρωτής Καθηγητής Χρήστος Ζαρολιάγκης Αναπληρωτής Καθηγητής Βασίλειος Μεγαλοοικονόµου Επίκουρος Καθηγητής Χρήστος Μακρής Επίκουρος Καθηγητής Ιωάννης Χατζηλυγερούδης 20 Απριλίου 2009 3

Ευχαριστίες Σε αυτό το σηµείο ϑα ήθελα να εκφράσω την ευγνωµοσύνη µου στην πολυαγαπηµένη µου οικογένεια, Βασίλη, έσποινα και Κώστα για την αµέριστη αγάπη και υποστήριξη που απλόχερα µου έδωσαν όλα αυτά τα χρόνια. Χωρίς την συµβολή τους, η πορεία των τελευταίων χρόνων ϑα ήταν αδύνατη. Επίσης απευθύνω τις ευχαριστίες µου σε όλους µου τους ϕίλους για την στήριξη τους και τους Ϲητώ συγνώµη για τις ϕορές που στερήθηκαν την παρουσία µου καθόλη την διάρκεια της διατριβής µου. Ιδιαίτερα ευχαριστώ τον Γιώργο Μυλωνά για την ϐοήθεια του στην αποσφαλµάτωση του παρόντος κειµένου. Απευθύνω επίσης τις ευχαριστίες µου στον επιβλέποντα αυτής της εργασίας καθηγητή Αθανάσιο Τσακαλίδη για την τιµή που µου έκανε να είµαι συνεργάτης του και για την παρακίνησή του να ασχοληθώ µε τα ϑέµατα αυτής της εργασίας καθώς και τις πολύτι- µες συµβουλές του. Ευχαριστώ ϑερµά και τα υπόλοιπα µέλη της τριµελούς επιτροπής κ. Χρήστο Μακρή, Επίκουρο Καθηγητή, και κ. Χρήστο Ζαρολιάγκη, Αναπληρωτή Καθηγητή, για τις χρήσιµες συµβουλές τους. Ιδιαίτερα, ϑα ήθελα να ευχαριστήσω τον Επίκουρο Καθηγητή Χρήστο Μακρή για την υποστήριξή του και τις ευχάριστες ερευνητικές συζητήσεις που κάναµε καθ όλη τη διάρκεια της διατριβής µου. Ευχαριστώ ϑερµα τα υπόλοιπα µέλη της επταµελούς επιτροπής καθηγητή Σπύρο Λυκοθανάση, αναπληρωτές καθηγητές Ιωάννη Γαροφαλάκη,Βασίλη Μεγαλοοικονόµου και επίκουρο καθηγητή Ιωάννη Χατζηλυγερούδη για την τιµή που µου έκαναν καθώς και για τα χρήσιµα σχόλια τους. Τέλος ευχαριστώ όλους τους συνεργάτες µου στο εργαστήριο Πολυµέσων, Γραφικών και Γεωγραφικών Συστηµάτων για την παραγωγική δράση που είχαµε. Θεοδωρίδης Ευάγγελος 20 Απριλίου 2009 5

Περίληψη Βασική επιδίωξη της παρούσας διατριβής είναι η διερεύνηση των δυνατοτήτων του πεδίου της επιστήµης των υπολογιστών που πραγµατεύεται την αποθήκευση και την επεξεργασία πληροφορίας, µέσα στο περιβάλλον που έχουν σχηµατίσει οι σύγχρονες εφαρµογές. Τα τελευταία χρόνια, η πληροφορία που είναι διαθέσιµη σε ηλεκτρονική µορφή, έχει γιγαντωθεί µε αποτέλεσµα να είναι αναγκαία η ανάπτυξη νέων τεχνικών για την αποτελεσµατική αποθήκευση και επεξεργασία αυτής. ύο πολύ χαρακτηριστικές και σηµαντικές εφαρ- µογές, στις οποίες ανακύπτουν συνεχώς νέα προβλήµατα, είναι η διαχείριση Βιολογικών εδοµένων, όπως π.χ. οι ακολουθίες γονιδιωµάτων, καθώς και η διαχείριση πληροφορίας από τον παγκόσµιο ιστό, όπως π.χ. τα έγγραφα HTML, XML ή οι συντοµεύσεις (urls). Στόχος είναι ανάπτυξη δοµών δεικτοδότησης πάνω στην πληροφορία έτσι ώστε τα σχετικά ερωτήµατα µε αυτή να απαντώνται αποδοτικά και πολύ πιο γρήγορα από το να ψάχνα- µε εκτενώς µέσα σε αυτή. Χαρακτηριστικά τέτοια ερωτήµατα είναι η εύρεση προτύπων (pattern matching) ή ο εντοπισµός επαναλαµβανόµενων µοτίβων (motif extraction). Πιο συγκεκριµένα, τα ϑέµατα στα οποία εστίασε η παρούσα διατριβή είναι τα ακόλου- ϑα: Εντοπισµός Περιοδικοτήτων σε συµβολοσειρές [5, 33, 56, 60] Στην ενότητα αυτή δίνεται µια σειρά από αλγόριθµους για την εξαγωγή περιοδικοτήτων από συµβολοσειρές. ίνονται αλγόριθµοι για την εξαγωγή µέγιστων επαναλήψεων, της περιόδου του καλύµµατος και της ϱίζας µιας συµβολοσειράς. Οι αλγόριθµοι αυτοί χρησιµοποιούν ώς ϐάση το δένδρο επιθεµάτων και οι περισσότεροι από αυτούς είναι γραµµικοί. εικτοδότηση Βεβαρηµένων Ακολουθιών [90, 59, 91]. Στην επόµενη ενότητα η µελέτη εστιάζει στην δεικτοδότηση ϐεβαρηµένων ακολουθιών, καθώς και στην απάντηση ερωτηµάτων σε αυτές όπως η εύρεση προτύπων, η εύρεση επαναλήψεων, η εύρεση καλυµµάτων, κ.α.. Οι ϐεβαρηµένες ακολουθίες είναι ακολουθίες όπου σε κάθε ϑέση τους έχουµε εµφάνιση όλων των συµβόλων του αλφαβήτου της ακολουθίας, έχοντας λάβει ένα συγκεκριµένο ϐάρος. Οι ϐεβαρηµένες ακολουθίες αναπαριστούν ϐιολογικές ακολουθίες είτε νουκλεοτιδίων είτε αµινοξέων και στην ουσία περιγράφουν την πιθανότητα εµφάνισης ενός συµβόλου του αλφαβήτου σε µια συγκεκριµένη ϑέση της ακολουθίας ή κάποιες συγκεκριµένες ϐιολογικές ιδιότητες που διαθέτουν οι ϱυθµιστικές πρωτεΐνες σε κάθε ϑέση της ακολουθίας. Για την διαχείριση αυτών των ιδιόµορφων ακολουθιών προτείνεται ως δοµή δεικτοδότησης το ϐεβαρηµένο δένδρο επιθεµάτων (Weighted Suffix Tree), ένα δένδρο µε παρόµοια δοµικά χαρακτηριστικά µε αυτά του γενικευµένου δένδρου επιθεµάτων. Στην παρούσα εργασία δίνεται ο ορισµός του ϐεβαρηµένου δένδρου επιθεµάτων και αλγόριθµοι κατασκευής του σε γραµµικό χρόνο και χώρο. Εξαγωγή µοτίβων από ϐεβαρηµένες Ακολουθίες [161, 150, 149] Με την χρήση του ϐεβαρηµένου δένδρου επιθεµάτων υλοποιούνται ένα σύνολο αλγόριθµων εξαγωγής επαναληπτικών δοµών από ϐεβαρηµένες ακολουθίες. Πιο συγκεκριµένα, δίνονται αλγόριθµοι για την εύρεση µέγιστων Ϲευγών,επαναλαµβανόµενων µοτίβων και κοινών µοτίβων από περισσότερες της µίας ϐεβαρηµένες ακολουθίες. 7

8 Αλγόριθµοι Σύστασης Σελίδων Παγκόσµιου Ιστού µε χρήση τεχνικών επεξεργασίας συµβολοσειρών [57, 58] Αρκετές εφαρµογές παγκόσµιου ιστού (συστήµατα σύστασης ή συστήµατα κρυφής µνήµης) προσπαθούν να προβλέψουν τις προθέσεις ενός επισκέπτη είτε για να του προτείνουν είτε για να προφορτώσουν µία σελίδα. Για το σκοπό αυτό προσπαθούν να εκµεταλλευτούν οποιαδήποτε εµπειρία που έχει καταγραφεί στο σύστηµα από προηγούµενες προσπελάσεις. Προτείνεται νέος τρόπος δεικτοδότησης και αναπαράστασης της πληροφορίας που εξάγεται από τα διαθέσι- µα δεδοµένα, όπως οι προσβάσεις των χρηστών από τα log files και το περιεχόµενο των σελίδων. Για την εξόρυξη γνώσης από τα παραπάνω δεδοµένα, αυτά αναπα- ϱιστώνται ως συµβολοσειρές και στη συνέχεια επεξεργάζονται και δεικτοδοτούνται από ένα γενικευµένο ϐεβαρηµένο δένδρο επιθεµάτων. Το δένδρο αυτό συµπυκνώνει αποδοτικά τα πιο συχνά αλλά και πιο ουσιαστικά µοτίβα προσπελάσεων και χρησι- µοποιείται, αφότου κατασκευαστεί, σαν ένα µοντέλο για την πρόβλεψη των κινήσεων τον επισκεπτών ενός ιστοτόπου.

Περιεχόµενα 1 Εισαγωγή στην ιαχείριση Κειµενικής Πληροφορίας 11 1.1 Κειµενική Πληροφορία, Συµβολοσειρές, Αρχεία Χαρακτήρων........ 11 1.2 Συνεισφορά της Παρούσας ιατριβής..................... 13 1.3 Συµβολισµοί.................................. 17 1.4 οµή Παρούσας Εργασίας........................... 18 2 Βασικοί Αξονες ιαχείρισης Κειµενικής Πληροφορίας 19 2.1 Λεξική εικτοδότηση (word based indices).................. 19 2.2 Πλήρης εικτοδότηση Συµβολοσειρών..................... 22 2.2.1 ένδρα Επιθεµάτων (Suffix Trees)................... 22 2.2.2 Πίνακες Επιθεµάτων (Suffix Arrays).................. 35 2.2.3 Άκυκλα Κατευθυνόµενα Γραφήµατα Λέξεων (DAWG & cdawg).... 43 2.3 εικτοδότηση Συµβολοσειρών στη ευτερεύουσα Μνήµη........... 51 2.3.1 Εφαρµογές του Β-δένδρου Συµβολοσειρών............... 70 2.4 υναµική εικτοδότηση Συµβολοσειρών.................... 71 2.4.1 Η λύση των Ferragina et al....................... 73 2.4.2 Η λύση των Alstrup et al........................ 78 3 Εύρεση Κανονικοτήτων σε Συµβολοσειρές 91 3.1 Εύρεση Πολυ-Επαναλήψεων σε Σύνολο Συµβολοσειρών........... 91 3.1.1 Ορισµοί................................. 93 3.1.2 Προηγούµενες Προσεγγίσεις...................... 95 3.1.3 Μέγιστα Ζεύγη χωρίς Περιορισµούς στα Κενά............. 95 3.1.4 Μέγιστα Ζεύγη µε Περιορισµούς στα Κενά............... 98 3.2 Εντοπισµός Περιοδικοτήτων.......................... 101 3.2.1 Ορισµοί................................. 102 3.2.2 Προηγούµενες Προσεγγίσεις...................... 103 3.2.3 Υπολογισµός Καλυµµάτων....................... 104 3.2.4 Υπολογισµός Σπόρων.......................... 105 3.3 Στοίχιση συµβολοσειρών µε τη χρήση του String B tree........... 107 3.4 Συµπεράσµατα................................. 110 4 εικτοδότηση Βεβαρηµένων Ακολουθιών 111 4.1 Βεβαρηµένες Ακολουθίες............................ 112 4.2 Βεβαρηµένο ένδρο Επιθεµάτων........................ 113 4.3 Αλγόριθµος Κατασκευής............................ 115 4.4 Εφαρµογές................................... 120 4.4.1 Εύρεση Προτύπων............................ 120 4.4.2 Υπολογισµός Επαναλήψεων...................... 121 4.4.3 Εύρεση Μέγιστης Κοινής Υποσυµβολοσειράς µεταξύ συνόλου Βεβα- ϱηµένων ακολουθιών.......................... 122 4.5 Συµπεράσµατα................................. 122 9

10 Αναφορές 5 Εξαγωγή Μοτίβων Από Βεβαρηµένες Ακολουθίας 125 5.1 Εύρεση Απλών Μοντέλων από Σύνολο Βεβαρηµένων Συµβολοσειρών (maximal pairs)...................................... 125 5.2 Εξαγωγή Επαναλαµβανόµενων Μοτίβων.................... 130 5.3 Εξαγωγή Κοινών Μοτίβων από σύνολο Βεβαρηµένων Ακολουθιών...... 132 5.4 Συµπεράσµατα................................. 133 6 Σύσταση Σελίδων Παγκόσµιου Ιστού 135 6.1 Εισαγωγή.................................... 135 6.2 Μοντέλο Πρόβλεψης / Σύστασης........................ 137 6.2.1 Επεξεργασία Συνόδων Προσπέλασης.................. 138 6.2.2 Οµαδοποίηση Συνόδων Προσπέλασης................. 138 6.2.3 Οµαδοποίηση Ακολουθιών Προσπέλασης µε χρήση του Περιεχοµένου Σελίδων................................. 141 6.2.4 Αναπαράσταση Οµάδων Ακολουθιών Προσπέλασης.......... 143 6.3 Μοντέλο Σύστασης / Πρόβλεψης........................ 144 6.4 Αξιολόγηση Μεθόδου.............................. 146 6.4.1 Αξιολόγηση Χρησιµοποιώντας Ακολουθίες Προσπέλασης....... 147 6.4.2 Αξιολόγηση Χρησιµοποιώντας Ακολουθίες Προσπέλασης και Περιεχοµένου................................. 149 6.5 Συµπεράσµατα................................. 150 7 Επίλογος - Ανοιχτά Προβλήµατα 151 8 ηµοσιεύσεις 155 8.1 Περιοδικά.................................... 155 8.2 Συνέδρια.................................... 155 8.3 Κεφάλαια σε Βιβλία............................... 157 9 Αναφορές 159

1 Εισαγωγή στην ιαχείριση Κειµενικής Πληροφορίας 1.1 Κειµενική Πληροφορία, Συµβολοσειρές, Αρχεία Χαρακτήρων Τα κείµενα ή αλλιώς συµβολοσειρές ή, εναλλακτικά, αρχεία που έχουν κατασκευαστεί µε την διαδοχική τοποθέτηση συµβόλων από ένα αλφάβητο, αποτελούν έναν τύπο δεδοµένων ο οποίος συναντάται στην επιστήµη της πληροφορικής σε πολλές, αν όχι σε όλες, τις εφαρµογές της. Προσπαθώντας να ορίσουµε τι είναι συµβολοσειρά ϑα λέγαµε ότι : Ορισµός 1. Συµβολοσειρά είναι µια ακολουθία συµβόλων, διαλεγµένων από ένα ή περισσότερα αλφάβητα, τα οποία παρατίθενται από τα αριστερά προς τα δεξιά. Με ϐάση τον ορισµό αυτό τα hello world, καλησπέρα, και acgtttcatccctaag είναι συµβολοσειρές που έχουν σχηµατισθεί από το λατινικό, το ελληνικό και το αλφάβητο του DNA αντίστοιχα. Η συµβολοσειρά το σύνολο της χρέωσης είναι 12.456 ευρώ έχει σχηµατισθεί από το ελληνικό και το αλφάβητο του δεκαδικού συστήµατος αρίθµησης ({0, 1,, 9}). Η διαχείριση και η επεξεργασία συµβολοσειρών απαντάται σε µια µυριάδα εφαρµογών ενώ οι πράξεις που ϑέλουµε να εκτελέσουµε πάνω στα αντικείµενα αυτού του τύπου επιγραµµατικά είναι: Εύρεση Προτύπων: εύρεση των ϑέσεων που εµφανίζεται µια συµβολοσειρά προτύπο µέσα σε ένα µεγαλύτερο κείµενο, όπου σε κάθε εµφάνιση υπάρχει ακριβές ταίριασµα των συµβόλων. Προσεγγιστική Εύρεση Προτύπων: εύρεση των ϑέσεων που εµφανίζεται µια συµβολοσειρά προτύπο µέσα σε ένα µεγαλύτερο κείµενο, όπου σε κάθε εµφάνιση της επιτρέπεται ορισµένα σύµβολα να µην ταυτίζονται. εικτοδότηση: κατασκευή ενός καταλόγου για µια συµβολοσειρά για την πιο γρήγορη εύρεση προτύπων (προσεγγιστικά ή ακριβώς) µέσα σε αυτή. Στοίχιση: τοποθέτηση δύο ή παραπάνω ακολουθιών την µία κάτω από την άλλη, µε τέτοιο τρόπο που τα κοινά τους σύµβολα να είναι τοποθετηµένα στην ίδια ϑέση. Σκοπός είναι να ϐρεθεί η ϐέλτιστη στοίχιση, δηλαδή η στοίχιση στην οποία οι ακολουθίες ταιριάζουν περισσότερο µεταξύ τους. Ενηµέρωση: υποβολή των αντικειµένων στις πράξεις διαγραφής χαρακτήρων, εισαγωγής χαρακτήρων µε ταυτόχρονη διατήρηση και των δοµών που τις δεικτοδοτούν. 11

12 ΚΕΦ ΑΛΑΙΟ 1. ΕΙΣΑΓΩΓ Η ΣΤΗΝ ΙΑΧΕ ΙΡΙΣΗ ΚΕΙΜΕΝΙΚ ΗΣ ΠΛΗΡΟΦΟΡ ΙΑΣ Συµπίεση: αποµάκρυνση από τα αρχεία πλεονάζουσας πληροφορίας µε απώτερο σκοπό την χρήση συνολικά µικρότερου αριθµού bytes. Τοποθέτηση σε Αποθηκευτικά Μεσα : αποδοτική τοποθέτηση των κειµένων και εκτέλεση των παραπάνω πράξεων ελαχιστοποιώντας των αριθµό προσπελάσεων (IOs) από τα δευτερεύοντα αποθηκευτικά µέσα (σκληρούς δίσκους, οπτικούς δίσκους κ.λ.π.). Τόσο αντικείµενα συµβολοσειρών, όπως και οι παραπάνω λειτουργίες χρησιµοποιούνται σε ένα µεγάλο αριθµό από εφαρµογές πληροφορικής. Τέτοιες εφαρµογές είναι οι: ψηφιακές ϐιβλιοθήκες και ϐάσεις δεδοµένων: ηλεκτρονικές ϐιβλιοθήκες, κατάλογοι προϊόντων, καταχωρήσεις των τηλεφώνων του χρυσού οδηγού, πελατολόγια διαφό- ϱων εταιριών, δηµοτολόγια, κ.λ.π.. κειµενογράφοι: κειµενογράφοι για την σύνταξη εγγράφων ή για την επεξεργασία πηγαίου κώδικα. συστήµατα αρχείων: αναζήτηση αρχείων µε ϐάση το περιεχόµενο, τα αρχεία λειτουργίας (log files) ενός υπολογιστικού συστήµατος. παγκόσµιος ιστός: δεικτοδότηση παγκόσµιου ιστού και µηχανές αναζήτησης. συµπίεση αρχείων. ανάκτηση πληροφορίας:ανάκτηση κειµένων, οµαδοποίηση/κατηγοριοποίηση κει- µένων. µελέτη µοριακών ακολουθιών: ϐάσεις δεδοµένων γονιδιωµάτων ή πρωτεϊνών (DNA sequences, protein databases), εύρεση επαναλήψεων, παλινδρόµων, περιοδικοτήτων, ελάχιστης κοινής υπερσυµβολοσειράς, µέγιστης κοινής υποσυµβολοσειράς κ.λ.π.. Σε κάθε µία από τις παραπάνω εφαρµογές υπάρχει ήδη ένας µεγάλος αριθµός εγγρά- ϕων 1, όπου κάθε έγγραφο µπορεί να διαθέτει αυθαίρετα µεγάλο µήκος, και καθηµερινά προστίθενται νέα ή µεταβάλλονται τα ήδη υπάρχοντα. Το ερώτηµα που προκύπτει είναι µέσα σε τόσο µεγάλες συλλογές κειµένου πως ϑα ψάξω γρήγορα για σηµεία που µε ενδιαφέρουν, π.χ., για τις σελίδες του παγκόσµιου ιστού που αναφέρουν τον όρο αλγό- ϱιθµος ή τα σηµεία του ανθρώπινου γονιδιώµατος στα οποία εµφανίζεται η συµβολοσειρά acatcct (η οποία ενδεχοµένως να έχει ϐιολογικό ενδιαφέρον). Συνεπώς το πρόβληµα το οποίο ανακύπτει είναι το εξής : Πρόβληµα 1. Σε ένα σύνολο k συµβολοσειρών S = {T 1,T 2,,T k } αναζητούνται οι ϑέσεις που εµφανίζεται µια συµβολοσειρά P µέσα σε κάθε µία από τις συµβολοσειρές του S. Η P συνήθως καλείται κλειδί ερωτήµατος ( pattern) και το πρόβληµα ταίριασµα κλειδιού ερωτήµατος (pattern matching) 1 Για παράδειγµα ο παγκόσµιος ιστός υπολογίζεται σε τουλάχιστον 203 εκατοµµύρια σελίδες [28], που προσεγγιστικά αυτό ισοδυναµεί µε τουλάχιστον ένα κείµενο µήκους 10 12 χαρακτήρων.

1.2. ΣΥΝΕΙΣΦΟΡ Α ΤΗΣ ΠΑΡΟ ΥΣΑΣ ΙΑΤΡΙΒ ΗΣ 13 Η απλοϊκή αναζήτηση, η οποία για κάθε ϑέση µιας συµβολοσειράς από τα αριστερά προς τα δεξιά ελέγχει, έναν προς έναν τους χαρακτήρες του κλειδιού ερωτήµατος και της συµβολοσειράς για να διαπιστώσει αν υπάρχει εµφάνιση, σε καµία περίπτωση δεν µπο- ϱεί να εφαρµοσθεί, εξαιτίας της µεγάλης χρονικής πολυπλοκότητας O(nm), όπου n το µήκος της συµβολοσειράς και m το µήκος του κλειδιού. Επίσης, οι αλγόριθµοι αναζήτησης όπως του Knuth Morris Pratt [102] ή του Boyer Moore [22], οι οποίοι ϐελτιώνουν τον παραπάνω απλοϊκό αλγόριθµο µετακινώντας το κλειδί παραπάνω από µία ϑέση σε κάθε επανάληψη, παρόλο που στην χειρότερη και στη µέση αντίστοιχα είναι γραµµικοί µε χρόνο O(n + m) δεν ενδείκνυται να χρησιµοποιηθούν παρά µόνο σε µικρό εύρος εφαρµογών. Το ότι η χρονική τους πολυπλοκότητα εξαρτάται γραµµικά από το µήκος της συµβολοσειράς µέσα στην οποία ψάχνουµε τους κάνει πολύ αργούς για χρήση σε συστήµατα πραγµατικού χρόνου. Ετσι λοιπόν, στόχος είναι η µείωση του χρόνου αναζήτησης µε τίµηµα κάποιο αρχικό χρόνο προεπεξεργασίας και χώρο για την αποθήκευση της ενδιάµεσης πληροφορίας που ϑα ϐοηθήσει στην γρηγορότερη απάντηση. Στόχος µας λοιπόν είναι η ανάπτυξη δοµών δεδοµένων δεικτοδότησης ή αλλιώς καταλόγων (indices). Ως δοµή δεδοµένων δεικτοδότησης (ή αλλιώς κατάλογος) ϑα µπορούσε να χαρακτηρισθεί οτιδήποτε µας ϐοηθάει να ϐρούµε την απάντηση µας, σε ερωτήµατα εύρεσης µέλους σε ένα σύνολο, γρηγορότερα από το να διαβάσουµε όλα τα δεδοµένα. Χαρακτηριστικό παράδειγµα καταλόγου είναι η οργάνωση των λεξικών κατά αλφαβητική σειρά, η οποία µας ϐοηθάει να ϐρούµε το λήµµα που αναζητούµε χωρίς να χρειαστεί να διαβάσουµε όλα τα λήµµατα από το Α µέχρι το Ω. Σύµφωνα µε τον Ferragina [65], ένας κατάλογος είναι µία δοµή δεδοµένων η οποία µας επιτρέπει κατά το χρόνο της ερώτησης να επικεντρώσουµε την αναζήτηση για ένα κλειδί ερωτήµατος σε ένα µικρό µέρος των δεδοµένων και πιο συγκεκριµένα κοντά στις ϑέσεις που ϐρίσκεται αυτό το κλειδί. 1.2 Συνεισφορά της Παρούσας ιατριβής Στην παρούσα διατριβή γίνεται αρχικά µια παρουσίαση των ϐασικών δοµών δεικτοδότησης για συµβολοσειρές, παρατίθενται τα πλεονεκτήµατα και τα µειονεκτήµατα της κάθε µίας, καθώς και οι συνθήκες στις οποίες κάθε τέτοια δοµή ενδείκνυται να χρησιµοποιηθεί. Οι δοµές δεικτοδότησης συµβολοσειρών που ϑα παρουσιασθούν εξετάζονται ως προς τρεις ϐασικούς άξονες: Τον τύπο των συµβολοσειρών που µπορούν να δεικτοδοτήσουν και τα ερωτήµατα που µπορούν να απαντήσουν αποδοτικά. Στην ϐιβλιογραφία οι δοµές δεικτοδότησης συµβολοσειρών χωρίζονται σε δύο µεγάλες κατηγορίες: τις δοµές που δεικτοδοτούν συµβολοσει- ϱές/κείµενα ϕυσικού λόγου (linguistic texts) και τις δοµές πλήρους δεικτοδότησης (fulltext indices). Οι δοµές της πρώτης κατηγορίας, οι οποίες συνήθως καλούνται κατάλογοι ϐασισµένοι σε λέξεις (word based indices) µε κύριους αντιπρόσωπους τα ανεστραµµένα αρχεία (inverted files), τα αρχεία υπογραφών (signature files) και τα bitmaps, εκµεταλλεύονται κυρίως διάφορα χαρακτηριστικά που έχουν τα κείµενα ϕυσικής γλώσσας µε κεντρικό το γεγονός ότι τα κείµενα αυτά µπορούν να διασπαστούν σε στοιχειώδεις συµ- ϐολοσειρές, τις λέξεις. Οι δοµές αυτές απαντούν γρήγορα ερωτήµατα λέξεων σε τέτοιου είδους κείµενα και συνήθως δεν απαιτούν υπερβολικά επιπρόσθετο χώρο, όµως σε καµιά περίπτωση δεν µπορούν να εφαρµοσθούν σε τυχαία κείµενα όπως ϐιολογικές ή µουσικές ακολουθίες ή για αναζήτηση κλειδιών που δεν είναι στοιχειώδεις λέξεις. Τις περιπτώσεις που αποτυγχάνουν να εξυπηρετήσουν οι δοµές της πρώτης κατηγορίας έρχονται να κα-

14 ΚΕΦ ΑΛΑΙΟ 1. ΕΙΣΑΓΩΓ Η ΣΤΗΝ ΙΑΧΕ ΙΡΙΣΗ ΚΕΙΜΕΝΙΚ ΗΣ ΠΛΗΡΟΦΟΡ ΙΑΣ λύψουν οι δοµές πλήρους δεικτοδότησης, µε κύριους αντιπρόσωπους τα pat trees, τα δένδρα επιθεµάτων (suffix trees) και τους πίνακες επιθεµάτων (suffix arrays). Οι δο- µές αυτές µπορούν να δεικτοδοτήσουν αυθαίρετες συµβολοσειρές και να απαντήσουν πιο γενικά ερωτήµατα µε τίµηµα ότι συνήθως χρησιµοποιούν παραπάνω µνήµη από ότι οι δοµές τις πρώτης κατηγορίας. Στην εργασία αυτή ασχολούµαστε µε την κατηγορία δοµών δεδοµένων πλήρους δεικτοδότησης κειµένων εξαιτίας της δυνατότητας να απαντούν σε πιο σύνθετα και ευρεία ερωτήµατα και να επιλύουν προβλήµατα ιδιαίτερα από τον χώρο της µοριακής ϐιολογίας [79]. Στην επόµενη ενότητα της εισαγωγής παρουσιάζονται συνοπτικά οι κατάλογοι ϐασισµένοι σε λέξεις καθώς και οι τύποι ερωτηµάτων που µπορούν να απαντήσουν. Την συµπεριφορά τους στη δευτερεύουσα µνήµη. Σε πολλές εφαρµογές το µέγεθος των δεδοµένων είναι τόσο µεγάλο έτσι ώστε να επιβάλλεται η χρησιµοποίηση της δευτερεύουσας µνήµης. Σε αυτές τις περιπτώσεις τόσο τα δεδοµένα όσο και οι δοµές δεικτοδότησης αποθηκεύονται σε δίσκους µαγνητικούς ή οπτικούς ή σε µαγνητικές ταινίες. Κύριο χα- ϱακτηριστικό αυτών των µέσων είναι οι µεγάλοι χρόνοι προσπέλασης ενός στοιχείου οι οποίοι µπορεί και να είναι έως και 10 5 ϕορές πιο µεγάλοι από τον χρόνο προσπέλασης ενός στοιχείου στην κύρια µνήµη. Επειδή από την δευτερεύουσα µνήµη τα στοιχεία προσκοµίζονται υπό µορφή σελίδων (κάθε σελίδα περιέχει έναν σταθερό αριθµό στοιχείων B) αναγκαίο είναι η πληροφορία και οι κατάλογοι να διαταχθούν κατάλληλα σε αυτά τα µέσα έτσι ώστε να ελαχιστοποιείται ο αριθµός προσπελάσεων. Σε αυτό το περιβάλλον λειτουργίας οι δοµές δεικτοδότησης συγκρίνονται κατά κύριο λόγο µε τον αριθµό προσπελάσεων στην δευτερεύουσα µνήµη για κάθε πράξη που υποστηρίζουν, µε την χρονική τους πολυπλοκότητα (cpu time) καθώς και µε τις σελίδες που καταλαµβάνουν επιπρόσθετα από τα δεδοµένα. Την απόδοση τους όταν δεικτοδοτούν συµβολοσειρές που µεταβάλλονται. Σε πραγµατικές εφαρµογές τις περισσότερες ϕορές τα δεδοµένα που διαθέτουµε δεν είναι στατικά αλλά υποβάλλονται σε έναν αριθµό πράξεων που τα µεταβάλλουν. Για το πρόβληµα που εξετάζουµε οι πράξεις αυτές µπορεί να είναι: η εισαγωγή µιας νέας συµβολοσειράς ή διαγραφή µιας άλλης καθώς και η µεταβολή µιας ήδη υπάρχουσας εισάγοντας, διαγράφοντας ή αλλάζοντας ένα µέρος της. Οι δοµές δεικτοδότησης που υποστηρίζουν πράξεις τέτοιου τύπου είναι συνήθως σύνθετες και δεν τις αντιµετωπίζουν όλες αποδοτικά. Οπως ϑα δού- µε και στην συνέχεια υπάρχει αντιστάθµισµα (trade off) µεταξύ του χρόνου εκτέλεσης των πράξεων ενηµέρωσης και του χρόνου εκτέλεσης των ερωτηµάτων. Εν συνεχεία της σύνοψης των ϐασικών τεχνικών στην περιοχή γίνεται εστίαση σε συγκεκριµένα προβλήµατα διαχείρισης κειµενικών αντικειµένων και παρουσιάζονται αλγόριθ- µοι και µέθοδοι για την επίλυση τους. Πιο συγκεκριµένα τα προβλήµατα που εστιάσαµε κατά την διάρκεια της µελέτης είναι τα ακόλουθα είναι: Εντοπισµός Κανονικοτήτων σε συµβολοσειρές: Τα προβλήµατα που αντιµετωπίζονται είναι η εύρεση ταυτόχρονων πολυεπαναλήψεων και µέγιστων Ϲευγαριών σε ένα σύνολο από συµβολοσειρές. Βελτιώνονται υπάρχοντες αλγόριθµοι που επιλύουν το πρόβληµα σε µία συµβολοσειρά και επεκτείνονται για να δοθεί λύση στην περίπτωση συνόλου συµβολοσειρών. Το πρόβληµα εύρεσης κοινών οµοιοτήτων µέσα σε ένα σύνολο συµβολοσειρών είναι σηµαντικό (ανατρέξτε [79] Κεφ. 14 και 15) και έχει αρκετές σηµαντικές εφαρµογές. Στις ϐιολογικές συµβολοσειρές (DNA,RNA, ή πρωτεΐνες) το πρόβληµα εύρεσης επαναλήψεων σε ένα σύνολο συµβολοσειρών εφαρ- µόζεται σε πολλά πεδία, όπως για παράδειγµα στην αναζήτηση σε ϐάσεις δεδοµένων.

1.2. ΣΥΝΕΙΣΦΟΡ Α ΤΗΣ ΠΑΡΟ ΥΣΑΣ ΙΑΤΡΙΒ ΗΣ 15 Είναι καίριας σηµασίας η εύρεση κανονικοτήτων σε γενετικές DNA ακολουθίες, κα- ϑώς εκφράζουν και αναδεικνύουν αρκετές ϐιολογικές λειτουργίες. Για παράδειγµα, η εύρεση DNA ή πρωτεϊνικών υποσυµβολοσειρών που εµφανίζονται σε ένα ευρύ σύνολο ειδών ϐοηθά στην εύρεση προτύπων που περιγράφουν την λειτουργία και τη δοµή των ακολουθιών. Επιπρόσθετα το πρόβληµα εύρεσης κοινών υποσυµβολοσειρών σε ένα σύνολο διαφορετικών συµβολοσειρών είναι ένα υποπρόβληµα ενός µεγάλου αριθµού αλγορίθµων και ευρετικών µεθόδων για την στοίχιση ενός συνόλου από συµβολοσειρές Ενα παράδειγµα µιας τέτοιας χρήσης δίνεται στην [107], όπου ο αλγόριθµος της [79] για τα µέγιστα Ϲεύγη χρησιµοποιείται για την εύρεση προσεγγιστικών επαναλήψεων σε συµβολοσειρές χρησιµοποιώντας σαν ϐασική υπο- ϱουτίνα της µεθόδου τους την εύρεση ακριβών µέγιστων Ϲευγαριών. Επιπρόσθετα στην [77] δηλώνεται ότι η αναζήτηση µέγιστων Ϲευγαριών µε µικρά κενά µπορεί να χρησιµοποιηθεί για την εύρεση tandem επαναλήψεων ή επαναλήψεων µε µικρές διαφοροποιήσεις. Επίσης εξετάζουµε και το πρόβληµα της εύρεσης της περιόδου, των καλυµµάτων και των σπόρων µιας συµβολοσειράς. Τα στοιχεία αυτά (περίοδος, κάλυµµα και σπόρος) είναι υποσυµβολοσειρές που επαναλλαµβανόµενες µπορούν να σχηµατίσουν και να περιγράψουν τις συσχετίσεις των υποτµηµάτων µιας υπό µελέτης συµβολοσειράς. Η ανακάλυψη αυτής της περιοδικότητας µιας ακολουθίας µπορεί να περιγράψει και να ερµηνέυσει εξελικτικά ϕαινόµενα στις ϐιολογικές ακολουθίες καθώς και να οδηγήσει σε πιο αποδοτική συµπίεση αυτής υπονοώντας την επαναλαµβανόµενη πληροφορία. Παρουσιάζονται γραµµικοί αλγόριθµοι για τον υπολογισµό των παραπάνω χωρίς ϐέβαια να ϐελτιώνεται το όριο χειρότερης περίπτωσης για την επίλυση των προβληµάτων που υπάρχει στην ϐιβλιογραφία. Η συνεισφορά µας έγκειται στον νέο τρόπο υπολογισµού ο οποίος στηρίζεται στο δένδρο επιθεµάτων µιας συµβολοσειράς. Εχοντας στη διάθεση αυτή τη δοµή ο γραµµικός υπολογισµός µπορεί να γίνει πρακτικά πιο γρήγορα, κατά µία σταθερά, από τις υπόλοιπες µεθόδους. Τα παραπάνω αποτελέσµατα έχουν παρουσιαστεί στις εργασίες [5, 33, 56, 60]. εικτοδότηση Βεβαρηµένων Ακολουθιών. Επίσης αντιµετωπίσαµε το πρόβληµα της δεικτοδότησης ϐεβαρηµένων ακολουθιών καθώς και µε την απάντηση ερωτη- µάτων σε αυτές όπως η εύρεση προτύπων, η εύρεση επαναλήψεων, η εύρεση καλυµµάτων κ.α. Οι ϐεβαρηµένες ακολουθίες είναι ακολουθίες όπου σε κάθε ϑέση τους έχουµε εµφάνιση όλων των συµβόλων του αλφαβήτου της ακολουθίας έχοντας λάβει ένα συγκεκριµένο ϐάρος. Οι ϐεβαρηµένες ακολουθίες αναπαριστούν ϐιολογικές ακολουθίες είτε νουκλεοτιδίων είτε αµινοξέων και στην ουσία περιγράφουν είτε την πιθανότητα εµφάνισης ενός συµβόλου του αλφαβήτου σε µια συγκεκριµένη ϑέση της ακολουθίας είτε κάποιες συγκεκριµένες ϐιολογικές ιδιότητες που διαθέτουν οι ϱυθµιστικές πρωτεΐνες σε κάθε ϑέση της ακολουθίας. Εκ κατασκευής τους οι ϐεβαρηµένες ακολουθίες προσδίδουν µια αυξηµένη συνδιαστική πολυπλοκότητα σε προβλήµατα που συναντώνται σε απλές συµβολοσειρές. Για την διαχείριση αυτών των ιδιόµορφων ακολουθιών προτείνεται ως δοµή δεικτοδότησης το ϐεβαρη- µένο δένδρο επιθεµάτων (Weighted Suffix Tree) ένα δένδρο µε παρόµοια δοµικά χαρακτηριστικά µε αυτά του γενικευµένου δένδρου επιθεµάτων. Η συνεισφορά µας έγκειται στο ότι παρουσιάσθηκε ο ορισµός του ϐεβαρηµένου δένδρου επιθεµάτων και αναπτύχθηκε αλγόριθµος κατασκευής του σε γραµµικό χρόνο και χώρο. Τα

16 ΚΕΦ ΑΛΑΙΟ 1. ΕΙΣΑΓΩΓ Η ΣΤΗΝ ΙΑΧΕ ΙΡΙΣΗ ΚΕΙΜΕΝΙΚ ΗΣ ΠΛΗΡΟΦΟΡ ΙΑΣ παραπάνω αποτελέσµατα έχουν παρουσιαστεί στις εργασίες [90, 59, 91]. Εξαγωγή µοτίβων από ϐεβαρηµένες Ακολουθίες Με την χρήση του ϐεβαρηµένου δένδρου επιθεµάτων υλοποιούνται ένα σύνολο αλγόριθµων εξαγωγής επαναληπτικών δοµών από ϐεβαρηµένες ακολουθίες. Πιο συγκεκριµένα δίνονται αλγόριθµοι για την εύρεση µέγιστων Ϲευγών, επαναλαµβανόµενων µοτίβων και κοινών µοτίβων από περισσότερες της µίας ϐεβαρηµένες ακολουθίες. Εγινε επέκταση και ϐελτίωση αλγόριθµων που επιλύουν το πρόβληµα για κανονικές συµβολοσειρές. Τα παραπάνω αποτελέσµατα έχουν παρουσιαστεί στις εργασίες [161, 150, 149]. Αλγόριθµοι Σύστασης Σελίδων Παγκόσµιου Ιστού µε χρήση τεχνικών επεξεργασίας συµβολοσειρών. Αρκετές εφαρµογές παγκόσµιου ιστού (συστήµατα σύστασης ή συστήµατα κρυφής µνήµης) προσπαθούν να προβλέψουν τις προθέσεις ενός επισκέπτη είτε για να του προτείνουν είτε για να προφορτώσουν µία σελίδα. Για το σκοπό αυτό προσπαθούν να εκµεταλλευτούν οποιαδήποτε εµπειρία που έχει καταγραφεί στο σύστηµα από προηγούµενες προσπελάσεις. Προτείνεται νέος τρόπος δεικτοδότησης και αναπαράστασης της πληροφορίας που εξάγεται από τα διαθέσιµα δεδοµένα όπως: οι προσβάσεις των χρηστών από τα log files και το περιεχόµενο των σελίδων. Για την επεξεργασία τα παραπάνω δεδοµένα αναπαριστώνται ως συµβολοσειρές και στη συνέχεια επεξεργάζονται και δεικτοδοτούνται από ένα γενικευµένο ϐεβαρηµένο δένδρο επιθεµάτων. Το δένδρο αυτό συµπυκνώνει αποδοτικά τα πιο συχνά αλλά και πιο ουσιαστικά µοτίβα προσπελάσεων και χρησιµοποιείται αφότου κατασκευαστεί σαν ένα µοντέλο για την πρόβλεψη των κινήσεων τον επισκεπτών ενός ιστοτόπου. Στις παραπάνω προσεγγίσεις προτάθηκαν νέες συναρτήσεις στοίχισης ακολουθιών προσαρµοσµένες στις συνθήκες του προβλήµατος καθώς και ένας νέος τρόπος οµαδοποίησης και αναπαράστασης τους. Οι παραπάνω προσεγγίσεις παρουσιάστηκαν στις εργασίες [57, 58]. Τέλος ανακεφαλαιώνουµε τα συµπεράσµατα µας και παραθέτουµαι ανοιχτά προβλή- µατα και κατευθύνσεις που έχουν µεγάλο ενδιαφέρον για περαιτέρω έρευνα και µελέτη.

1.3. ΣΥΜΒΟΛΙΣΜΟ Ι 17 1.3 Συµβολισµοί Στον ακόλουθο πίνακα παρατίθενται οι συµβολισµοί που ϑα χρησιµοποιηθούν στην συνέχεια του κειµένου: Συµβολισµός Περιγραφή Σ το αλφάβητο από το οποίο σχηµατίζονται οι συµβολοσειρές. µέγεθος συνόλου ή µήκος συµβολοσειράς S το σύνολο k συµβολοσειρών που ϑέλουµε να δεικτοδοτήσουµε ( S = k) T 1 n συµβολοσειρά n χαρακτήρων ( T = n) T i ο i-οστος χαρακτήρας της συµβολοσειράς T 1 n T i j η υποσυµβολοσειρά της T 1 n που ξεκινά από την ϑέση i και καταλήγει στην j (T i j = T i T i+1 T j ) T i n το i-οστο επίθεµα suffix) της T 1 n (T i n = T i T i+1 T n ) T 1 i το i-οστο πρόθεµα (prefix) (της T 1 n (T 1 i = T 1 T 2 T i ) P 1 m κλειδί ερωτήµατος (pattern) m χαρακτήρων ( P = m) I δοµή δεικτοδότησης πάνω στο S T = T η ισότητα δυο συµβολοσειρών Τ,Τ ισχύει αν και µόνο αν T = T και T i = T i, i < L τελεστής λεξικογραφικής σειράς µεταξύ δύο συµβολοσειρών π.χ. θάλασσα < L πανεπιστήµιο LCP(T,T ) µέγιστο κοινό πρόθεµα δύο συµβολοσειρών LCP(T,T ) = {max i : T 1 i = T 1 i} LCA(node 1,node 2 ) ϐαθύτερος κοινός πρόγονος δύο κόµβων σε µία δενδρική δοµή Prefixes(T) το σύνολο των προθεµάτων µιας συµβολοσειράς Suffixes(T) το σύνολο των επιθεµάτων µιας συµβολοσειράς ST T το δένδρο επιθεµάτων µιας συµβολοσειράς T SA T ο πίνακας επιθεµάτων µιας συµβολοσειράς T T = T T συνένωση δύο συµβολοσειρών T και T δηλ. T = T 1T 2 T T T 1 T 2 T T i = 1 : x n η µεταβλητή i λαµβάνει τιµές από το 1 µέχρι το n µε ϐήµα x για x = 1 το x παραλείπεται. period(t) = π περίοδος συµβολοσειράς T = π t π µε π πρόθεµα της π και t 0

18 ΚΕΦ ΑΛΑΙΟ 1. ΕΙΣΑΓΩΓ Η ΣΤΗΝ ΙΑΧΕ ΙΡΙΣΗ ΚΕΙΜΕΝΙΚ ΗΣ ΠΛΗΡΟΦΟΡ ΙΑΣ 1.4 οµή Παρούσας Εργασίας Η δοµή της παρούσας εργασίας έχει ως εξής: στην Ενότητα 2 περιγράφονται οι ϐασικές αρχές διαχείρισης κειµενικής πληροφορίας όπως παρουσιάζονται στην ϐιβλιογραφία. Στην Ενότητα 3 παρουσιάζονται οι µέθοδοι για την εύρεση πολυεπαναλήψεων και µέγιστων Ϲευγών από σύνολο συµβολοσειρών καθώς και οι αλγόριθµοι για τον υπολογισµό των καλυµµάτων και των σπόρων. Στην Ενότητα 4 αναλύεται το ϐεβαρηµένο δένδρο επι- ϑεµάτων, ο αλγόριθµος κατασκευής του καθώς και διάφοροι τρόποι χρήσης αυτού. Η Ενότητα 5 περιέχει τους αλγόριθµους για την εξαγωγή περιοδικοτήτων από ϐεβαρηµένες ακολουθίες ενώ στην Ενότητα 6 παρουσιάζεται το σύστηµα σύστασης σελίδων παγκόσµιου ιστού κατασκευασµένο µε χρήση τεχνικών διαχείρισης συµβολοσειρών. Τέλος στην Ενότητα 7 συνοψίζουµε µε τα συµπεράσµατα τις διατριβής αυτής και παραθέτουµε ανοιχτές Ϲητήµατα άξια περαιτέρω διερεύνησης.

2 Βασικοί Άξονες ιαχείρισης Κειµενικής Πληροφορίας Σε αυτή την ενότητα περιγράφονται οι ϐασικές αρχές διαχείρισης κειµενικής πληροφορίας όπως παρουσιάζονται στη ϐιβλιογραφία. Αρχικά περιγράφονται οι δοµές για κείµενα που µπορούν να κατακερµατιστούν σε λεκτικές µονάδες και στη συνέχεια για κείµενα, όπου κάτι τέτοιο δεν είναι δυνατό. 2.1 Λεξική εικτοδότηση (word-based indices) Σε αυτή την παράγραφο ϑα παρουσιασθούν συνοπτικά οι κατάλογοι κειµένων ϕυσικής γλώσσας, οι οποίοι στηρίζονται στο γεγονός ότι τα κείµενα αποτελούνται από στοιχειώδεις υποσυµβολοσειρές, τις λέξεις (word based indices). Οι τρεις πιο δηµοφιλείς κατάλογοι της κατηγορίας αυτής είναι τα ανεστραµµένα αρχεία (inverted files), τα αρχεία υπογρα- ϕών (signature files) και τα bitmaps (για εκτενή παρουσίαση, δείτε το [159]) µε τα ανεστραµµένα αρχεία να επικρατούν. Μετά από εκτενή πειραµατικά αποτελέσµατα [163], διαπιστώθηκε ότι είναι πιο αποδοτικά όσον αφορά το χρόνο απάντησης ερωτηµάτων αλλά και τον επιπρόσθετο χώρο που καταλαµβάνουν. Ορισµός 2. Ενα ανεστραµµένο αρχείο αποτελείται από δύο ϐασικά συστατικά: το λεξιλόγιο ( vocabulary ή lexicon), το οποίο είναι το σύνολο των λέξεων που συναντάµε στα κείµενα που ϑέλουµε να δεικτοδοτήσουµε, καθώς και τις ανεστραµµένες λίστες, µία για κάθε όρο του λεξιλογίου. Η ανεστραµµένη λίστα µιας λέξης t του λεξιλογίου είναι µια λίστα όπου σηµειώνονται µε αύξουσα σειρά τα έγγραφα στα οποία αυτή εµφανίζεται. Παράδειγµα 1. Εστω ότι έχουµε ένα σύνολο από τρία κείµενα: t 1 = παγωτό ϐανίλια λεµόνι t 2 = παγωτό ϐανίλια σοκολάτα t 3 = παγωτό σοκολάτα σοκολάτα παρφέ τότε το ανεστραµµένο αρχείο για αυτά ϑα είναι: Λεξιλόγιο Συχνότητα Ανεστραµµένες Λίστες Ορου ϐανίλια 2 {1, 2} λεµόνι 1 {1} παγωτό 3 {1, 2, 3} σοκολάτα 3 {2, 3} παρφέ 1 {3} 19

20 ΚΕΦ ΑΛΑΙΟ 2. ΒΑΣΙΚΟ Ι ΑΞΟΝΕΣ ΙΑΧΕ ΙΡΙΣΗΣ ΚΕΙΜΕΝΙΚ ΗΣ ΠΛΗΡΟΦΟΡ ΙΑΣ Αν τώρα το ερώτηµα µας είναι ο όρος σοκολάτα τότε από το ανεστραµµένο αρχείο αµέσως µπορούµε να δούµε, από την αντίστοιχη ανεστραµµένη λίστα, ότι ϐρίσκεται στα κείµενα t 2,t 3. Τα ανεστραµµένα αρχεία µπορούν επίσης να απαντήσουν και σε πιο σύνθετα ερωτή- µατα όπως π.χ., ϐρες τα κείµενα που περιέχουν τον όρο t και t οπότε και λαµβάνεται η τοµή των δύο ανεστραµµένων λιστών για αυτούς τους όρους. Αν αναζητούµε τα κείµενα που δεν περιέχουν έναν όρο, τότε απαντώνται όλες οι λίστες πλην αυτής του συγκεκριµένου όρου. Τέλος, µπορεί να αναζητούνται τα κείµενα που είτε εµφανίζεται ένας όρος είτε ένας άλλος, οπότε λαµβάνεται η ένωση των ανεστραµµένων λιστών τους. Σε εφαρµογές που µας ενδιαφέρει και η ϑέση του κάθε όρου µέσα σε κάθε κείµενο τότε στις ανεστραµµένες λίστες δίπλα από κάθε εγγραφή κειµένου σηµειώνονται και οι ϑέσεις που εµφανίζονται µέσα σε αυτό. Ετσι π.χ. για τον όρο σοκολάτα η ανεστραµµένη λίστα ϑα είναι {2@[16], 3@[8, 17]}. Με αυτό το πιο εκλεπτυσµένο σχήµα το µέγεθος του καταλόγου τουλάχιστον διπλασιάζεται αφού σηµειώνεται και τουλάχιστον µία ϑέση δίπλα από κάθε κείµενο. Αξίζει να παρατηρήσουµε ότι το µέγεθος ενός ανεστραµµένου αρχείου είναι υπογραµµικό, δηλαδή καταλαµβάνει χώρο το πολύ όσο και το µέγεθος το κειµένων που δεικτοδοτεί. Αν ένας όρος του λεξιλογίου έχει µέγεθος z χαρακτήρες και εµφανίζεται x ϕορές µέσα στα κείµενα τότε στο ανεστραµµένο αρχείο αποθηκεύεται µία ϕορά καταλαµ- ϐάνοντας χώρο z και όχι zx χαρακτήρων. Οταν χρησιµοποιούνται οι µη-εκλεπτυσµένες ανεστραµµένες λίστες καταλαµβάνονται επιπρόσθετα και x log k bits όπου k είναι το πλή- ϑος των κειµένων. Ετσι, ο συνολικός χώρος που καταλαµβάνει ένας όρος είναι 8z+x log k bits το οποίο εν δυνάµει µπορεί να είναι λιγότερο από 8zx bits που καταλαµβάνει συνολικά µέσα στα δεδοµένα. Σύµφωνα µε το [159] για τυπικά αγγλικά κείµενα ένα ανεστραµµένο αρχείο αυτού του τύπου καταλαµβάνει χώρο ίσο µε το 50% µέχρι 100% του χώρου της πληροφορίας. Για την εξοικονόµηση χώρου ο δείκτης που υποδεικνύει την ϑέση ενός όρου µέσα σε ένα κείµενο της συλλογής µπορεί να µην είναι η ϑέση του χαρακτήρα που ξεκινά αλλά η σειρά της λέξης. Με αυτό τον τρόπο χρησιµοποιούνται µικρότεροι σε πλή- ϑος bits δείκτες. Ενας επιπρόσθετος τρόπος εξοικονόµησης χώρου είναι οι λεκτικοί όροι, όπως τα άρθρα ή οι σύνδεσµοι, να µην ενσωµατώνονται στο λεξιλόγιο. Παραδείγµατος χάρη η αναζήτηση για το άρθρο το ϑα επιστρέψει µεγάλο αριθµό απαντήσεων, ίσως και ολόκληρη την συλλογή, χωρίς καµία ιδιαίτερη αξία. Τέλος, τόσο για την εξοικονόµηση χώρου όσο και την ϐελτίωση των απαντήσεων, όλοι οι όροι του λεξιλογίου γράφονται µε µικρά (έτσι οι όροι Σοκολάτα και σοκολάτα δεν υπάρχουν ταυτόχρονα). Επίσης γίνεται προσπάθεια να αποθηκεύονται σαν όροι οι ϱίζες µιας λέξης. Αυτό γίνεται για να µην υπάρχουν λέξεις µέσα στην δοµή µε διαφορετικές καταλήξεις. Ο χώρος που καταλαµβάνουν τα ανεστραµµένα αρχεία µπορεί να µειωθεί ακόµη πε- ϱισσότερο συµπιέζοντας µε διάφορες µεθόδους τις ανεστραµµένες λίστες. Οπως είδαµε προηγουµένως µια ανεστραµµένη λίστα είναι µία λίστα από αριθµούς {t 1,t 2,,t x }. Αν αποθηκευόταν η λίστα σηµειώνοντας τον αριθµό του πρώτου κειµένου και µετά τις διαφο- ϱές των γειτονικών αριθµών ϑα έπαιρνε την µορφή {t 1,t 2 t 1,,t x t x 1 } η οποία είναι ακριβώς αντίστοιχη της προηγούµενης αφού τα στοιχεία προσπελάζονται από τα αριστερά προς τα δεξιά. Οι διαφορές έχουν το πολύ µέγεθος k, όσο και το πλήθος των κειµένων, έτσι το πολύ να χρειάζονται log k bits. Σε εφαρµογές όπου οι διαφορές είναι µικρές υπάρχει µεγάλη εξοικονόµηση σε χώρο. Υπάρχει µεγάλος αριθµός τρόπων κωδικοποίησης των διαφορών αυτών (ανατρέξτε στο [159] για αναλυτική περιγραφή) που προσπαθούν να

2.1. ΛΕΞΙΚ Η ΕΙΚΤΟ ΟΤΗΣΗ (WORD-BASED INDICES) 21 δώσουν µικρές αναπαραστάσεις σε bits µικρών διαφορών που εµφανίζονται συχνά και µεγαλύτερες αναπαραστάσεις στις µεγάλες και όχι τόσο συχνές διαφορές. Η πιο διαδεδοµένη κωδικοποίηση είναι η Golomb, η οποία είναι κατάλληλη για ακέ- ϱαιους που είναι κατανεµηµένοι σύµφωνα µε τη γεωµετρική πρόοδο, κατά την οποία µια διαφορά x εµφανίζεται µε πιθανότητα Pr(x) = (1 p) x 1 p για δεδοµένη πιθανότητα p. Μια διαφορά x 1 κωδικοποιείται από ένα µοναδικό κωδικό code(x) = qr που σχηµατίζεται από το πηλίκο q = (x 1)div b (αυτό είναι q 1 bits ακολουθούµενα από ένα µηδέν) ακολουθούµενο από υπόλοιπο r = (x 1)mod b σε δυαδική αναπαράσταση. Το b συνήθως είναι δύναµη του δύο. Εποµένως για διαφορές 2,3,20 και µε b = 4 ϑα έχουµε τους κωδικούς 0 01, 0 10, 11110 11 αντίστοιχα ενώ για b = 8 0 001, 0 010, 110 011. Οπως παρατηρούµε για µικρές διαφορές δίνονται µικροί κωδικοί ενώ για µεγάλες κωδικοί µε περισσότερα bits. Αν το b = log 2 p = 0.69N f t, όπου N είναι ο αριθµός των κει- µένων της συλλογής και f t είναι ο αριθµός αυτών που περιέχουν τον όρο t. Με πειράµατα [159] διαπιστώθηκε ότι κάθε διαφορά καταλάµβανε περίπου 6 bits. Η κατασκευή ενός ανεστραµµένου αρχείου είναι µια διαδικασία αρκετά σύνθετη, επειδή δεν µπορεί να γίνει εξολοκλήρου στην κύρια µνήµη ενός υπολογιστικού συστήµατος. Φανταστείτε ότι χτίζεται ένας κατάλογος πάνω στην Βίβλο, όπου κάθε ενότητα της λαµ- ϐάνεται ως ξεχωριστό κείµενο, εποµένως υπάρχουν 31.101 κείµενα, και εµφανίζει 8.965 όρους. Ο πίνακας του ανεστραµµένου αρχείου σε αυτή την περίπτωση ϑα έχει µέγεθος τουλάχιστον 31.101 8.965 bytes 4.7 10 9 bytes = 4.7 Gbytes µε αποτέλεσµα οριακά να χωράει στην κύρια µνήµη κάποιου συστήµατος. Σειρά αλγορίθµων (ανατρέξτε στο [159]) χτίζουν ένα αρχείο τµηµατικά χρησιµοποιώντας την κύρια µνήµη και την δευτερεύουσα ταυτόχρονα. Ο δεύτερος τύπος καταλόγων αυτής της κατηγορίας είναι τα αρχεία υπογραφών (signaturefiles). Ορισµός 3. Σε ένα αρχείο υπογραφών κάθε κείµενο της συλλογής λαµβάνει µια υπογραφή ή οποία είναι µια συµβολοσειρά από bits που περιγράφουν κατά κάποιο τρόπο το περιεχόµενο του κειµένου. Εστω ότι χρησιµοποιείται υπογραφή µήκους d bits, για κάθε όρο του κειµένου λαµβάνονται µερικές τιµές, έστω x, από αντίστοιχο αριθµό διαφορετικών συναρτήσεων κατακερµατισµού. Οι τιµές που απαντούν αυτές οι συναρτήσεις είναι οι ϑέσεις στην υπογραφή που το bit γίνεται 1. Ετσι αν έχει υπολογιστεί η υπογραφή ενός κειµένου και αναζητούµε τον όρο t χρησι- µοποιώντας τις ίδιες συναρτήσεις κατακερµατισµού ϐλέπουµε ποιες ϑέσεις για αυτόν τον όρο πρέπει να εµφανίζουν 1. Εστω και µια ϑέση από αυτές να είναι 0 τότε δεν υπάρχει ο όρος µέσα σε αυτό το κείµενο. Αν όλες οι ϑέσεις εµφανίζουν 1 τότε είτε υπάρχει ο όρος στο κείµενο, είτε οι ϑέσεις αυτές ενεργοποιήθηκαν από άλλους όρους οπότε και πρέπει να ανακτηθεί το κείµενο και να αναζητηθεί αν όντως ϐρίσκεται µέσα σε αυτό ο όρος. Αυτό είναι ένα γεγονός που κάνει τα ερωτήµατα πιο αργά σχετικά µε τα ανεστραµµένα αρχεία. Με την κατάλληλη επιλογή του µήκους της υπογραφής καθώς και των συναρτήσεων κατακερµατισµού η πιθανότητα να έχουµε εµφάνιση ενός όρου κατά την υπογραφή αλλά όχι µέσα στο κείµενο γίνεται πολύ µικρή (ανατρέξτε στα [159],[62]). Τέλος υπάρχουν και οι κατάλογοι bitmap οι οποίοι συνδυάζουν στοιχεία και από τους προηγούµενους δύο τύπους. Ορισµός 4. Ενα bitmap έχει δοµή παρόµοια µε τα ανεστραµµένα αρχεία. Στην ϑέση

22 ΚΕΦ ΑΛΑΙΟ 2. ΒΑΣΙΚΟ Ι ΑΞΟΝΕΣ ΙΑΧΕ ΙΡΙΣΗΣ ΚΕΙΜΕΝΙΚ ΗΣ ΠΛΗΡΟΦΟΡ ΙΑΣ όµως των ανεστραµµένων λιστών υπάρχει µια συµβολοσειρά από k bits, όπου k το πλήθος των κειµένων. Το i οστό bit γίνεται 1 αν ο όρος εµφανίζεται και στο i οστό κείµενο. Για την αναζήτηση ενός όρου t ελέγχοντας ποια bit είναι 1 διαπιστώνεται σε ποια κείµενα περιέχεται ο όρος. Για την εύρεση της ϑέσης του όρου µέσα σε κάθε κείµενο της απάντησης αναγκαία είναι η αναζήτηση, γεγονός που κάνει τα bitmaps πιο αργά σε σχέση µε τα ανεστραµµένα αρχεία. Τέλος, για µια συλλογή k κειµένων µε N όρους ο χώρος που απαιτεί ένα bitmap είναι k N bits. Επειδή το k µπορεί να είναι αρκετά µεγάλο και επειδή αποθηκεύεται ένα bit για κάθε κείµενο (ακόµη και αν δεν υπάρχει ο όρος µέσα σε αυτό, παρατηρήστε ότι τα ανεστραµµένα αρχεία αποθηκεύουν περίπου 1 µε 2 byte µόνο για τα κείµενα που περιέχουν τον όρο), ο χώρος που απαιτείται για τον κατάλογο µπορεί να είναι πολύ µεγαλύτερος και από την πληροφορία αυτή καθαυτή. 2.2 Πλήρης εικτοδότηση Συµβολοσειρών Στη παρούσα παράγραφο ϑα εξετάσουµε αναλυτικά τις τρεις κύριες δοµές πλήρους δεικτοδότησης συµβολοσειρών, τα δένδρα επιθεµάτων, τους πίνακες επιθεµάτων και τα άκυκλα κατευθυνόµενα γραφήµατα λέξεων, µε πρόθεση να ϕωτιστούν όλα τα ιδιαίτερα χαρακτη- ϱιστικά τους και να αναδειχθούν οι δυνατότητες τους. 2.2.1 ένδρα Επιθεµάτων (Suffix Trees) Το δένδρο επιθεµάτων είναι η καλύτερη γνωστή δοµή δεδοµένων πλήρους δεικτοδότησης συµβολοσειρών, η οποία παρουσιάσθηκε πρώτη ϕορά από τον Weiner το 1973 [157]. Πρόκειται για την πιο παλιά και πιο µελετηµένη δοµή σε αυτό το πεδίο η οποία πέρα από το ότι απαντάει αποδοτικά στο Πρόβληµα 1 έχει την δυνατότητα να απαντάει αποδοτικά σε πολύ πιο σύνθετα ερωτήµατα. Στην ενότητα 2.2.1 ϑα δούµε ορισµένες από τις ϐασικές εφαρµογές του δένδρου επιθεµάτων ενώ για µια ευρεία παρουσίαση ανατρέξτε στα [79, 126, 75]. Βέβαια αυτή η καλή συµπεριφορά, όπως ϑα δούµε και στη συνέχεια, υπάρχει µε τίµηµα σηµαντική επιπρόσθετη χρήση χώρου, η οποία κυµαίνεται από 10 µέχρι 20 ϕορές παραπάνω από τα δεδοµένα που δεικτοδοτούνται. Ορισµός - Περιγραφή Ορισµός 5. Το δένδρο επιθεµάτων ST T µιας συµβολοσειράς T είναι ένα συµπαγές ψηφιακό δένδρο αναζήτησης ( compacted digital search tree ή trie) που περιέχει ως κλειδιά όλα τα επιθέµατα της T$ (Suffixes(T)). Ο χαρακτήρας $, ο οποίος είναι εκτός του αλφάβητου Σ από το οποίο κατασκευάστηκε η T, χρησιµοποιείται για να έχουν διαφορετική αναπαράσταση, σε ξεχωριστό ϕύλλο του δένδρου, δύο επιθέµατα T i n και T j n µε i j όταν το ένα τυγχάνει να είναι πρόθεµα του άλλου 1. Στο ϕύλλο του δένδρου που αντιστοιχεί για το επίθεµα T i n αποθηκεύεται ο ακέραιος i. Παράδειγµα 2. Εστω ότι έχουµε τη συµβολοσειρά T =µνηµη$ τα επιθέµατα της είναι τα εξής: 1 Από εδώ και στο εξής γίνεται η παραδοχή ότι κάθε συµβολοσειρά T, για την οποία κατασκευάζεται ένα δένδρο επιθεµάτων, έχει ως τερµατικό χαρακτήρα τον $.

2.2. ΠΛ ΗΡΗΣ ΕΙΚΤΟ ΟΤΗΣΗ ΣΥΜΒΟΛΟΣΕΙΡ ΩΝ 23 123456 T=ìíçìç$ ì í çì ç í ç ç $ ì $ 2 ç $ 1 4 ç ì ç $ $ $ 3 5 6 (6,6) (1,1) (3,3) (2,6) (2,6) (5,6) 2 (6,6) (4,6) 1 4 3 5 6 á) â) Σχήµα 2.1: ένδρο Επιθεµάτων συµβολοσειράς µνηµη$ T 1 6 = µνηµη$ T 2 6 = νηµη$ T 3 6 = ηµη$ T 4 6 = µη$ T 5 6 = η$ T 6 6 = $ το δένδρο επιθεµάτων της T ϕαίνεται στο σχήµα 2.1α) : Το δένδρο επιθεµάτων, όπως ϕαίνεται και στο παραπάνω παράδειγµα, για µια συµ- ϐολοσειρά µήκους n αποτελείται από n ϕύλλα. Οντας ένα k-δικο συµπαγές trie, όπου k = Σ +1, κάθε εσωτερικός κόµβος ϑα έχει τουλάχιστον 2 και το πολύ k παιδιά. Συνεπώς οι εσωτερικοί κόµβοι και οι ακµές ϑα είναι το πολύ n 1 και 2n 2 αντίστοιχα. Κάθε ακµή του δένδρου επιθεµάτων αναπαριστά και µια υποσυµβολοσειρά T i j συνεπώς για εξοικονόµηση χώρου δεν είναι αναγκαίο να αποθηκεύονται πάνω σε αυτή όλοι οι χαρακτήρες παρά µόνα τα όρια (i, j). Ετσι προκύπτει η συµπαγής αναπαράσταση του σχήµατος 2.1ϐ. Αφού το δένδρο επιθεµάτων αποτελείται το πολύ από 2n 1 κόµβους και 2n 2 ακµές και κάθε ένα από τα στοιχεία αυτά έχει σταθερό µέγεθος, απαιτεί τελικά γραµµικό χώρο αποθήκευσης O(n). Το δένδρο επιθεµάτων διαθέτει τα εξής δοµικά χαρακτηριστικά που απορρέουν από τον ορισµό του. Ιδιότητα 1. Υπάρχουν n ϕύλλα, ένα ϕύλλο για κάθε επίθεµα της T. Η συνένωση των υποσυµβολοσειρών των πλευρών που συναντώνται κινούµενοι από την ϱίζα προς ένα ϕύλλο i σχηµατίζουν το επίθεµα T i n. Ιδιότητα 2. Εστω δύο διαφορετικά επιθέµατα T i n = xa και T j n = xb, τα οποία µοιρά- Ϲονται ένα κοινό πρόθεµα x. Στο δένδρο επιθεµάτων τα δύο ϕύλλα που αντιστοιχούν στα δύο αυτά επιθέµατα έχουν ένα κοινό πρόγονο u για τον όποιο η συνένωση των υποσυµβολοσειρών των πλευρών που συναντώνται κινούµενοι από την ϱίζα προς τον u, σχηµατίζει το κοινό πρόθεµα x. Αυτό µπορεί να διατυπωθεί και αντίστροφα. Για κάθε εσωτερικό κόµβο u, ενός δένδρου επιθεµάτων, τα επιθέµατα που αντιστοιχούν σε ϕύλλα του υποδένδρου του µοιράζονται ένα κοινό πρόθεµα x, το οποίο αναπαρίσταται από τις πλευρές του µονοπατιού από την ϱίζα προς τον κόµβο. Η υποσυµβολοσειρά που προκύπτει από τη συνένωση των υποσυµβολοσειρών των πλευρών που συναντώνται κινούµενοι από την ϱίζα προς τον u καλείται ετικέτα µονοπατιού (path label) του κόµβου u.

24 ΚΕΦ ΑΛΑΙΟ 2. ΒΑΣΙΚΟ Ι ΑΞΟΝΕΣ ΙΑΧΕ ΙΡΙΣΗΣ ΚΕΙΜΕΝΙΚ ΗΣ ΠΛΗΡΟΦΟΡ ΙΑΣ Ας δούµε τώρα πως αντιµετωπίζει το δένδρο επιθεµάτων το κύριο πρόβληµα του ταιριάσµατος (Πρόβληµα 1). Εστω ότι έχουµε ένα κείµενο T για το οποίο έχουµε κατασκευάσει το δένδρο επιθεµάτων ST T και αναζητούµε µέσα σε αυτό ένα πρότυπο P. Ξεκινώντας από την ϱίζα του ST T ακολουθείται το µονοπάτι που υπαγορεύεται από το P. Αν αυτή η διαδικασία είναι σε εσωτερικό κόµβο και µέχρι στιγµής έχουν ταιριάξει οι i πιο αριστεροί χαρακτήρες του P ακολουθείται η εξερχόµενη ακµή που ξεκινά µε τον χαρακτήρα P i+1, ενώ αν είναι η διαδικασία πάνω σε ακµή ελέγχεται αν ο επόµενος χαρακτήρας της ακµής είναι ίδιος µε τον P i+1. Αν αυτή η κάθοδος από την ϱίζα προς τα ϕύλλα εξαντληθεί έχοντας ταιριάζει επιτυχώς και τους P χαρακτήρες του προτύπου, τότε µε ϐάση την ιδιότητα 2 τα επιθέµατα που αντιστοιχούν στο υποδένδρο κάτω από το σηµείο όπου τερµάτισε η διαδικασία του ταιριάσµατος µοιράζονται το ίδιο κοινό πρόθεµα P. Συνεπώς, το πρότυπο που αναζητείται εµφανίζεται στις ϑέσεις υποδεικνύονται από τα κλειδιά στο εν λόγω υποδένδρο. Αν η διαδικασία του ταιριάσµατος από την ϱίζα προς τα ϕύλλα τερµατίσει πριν εξαντληθούν όλοι οι χαρακτήρες του προτύπου, κανένα από τα επιθέµατα της T δεν έχει ως πρόθεµα το P, εποµένως το πρότυπο δεν εµφανίζεται πουθενά µέσα στο κείµενο T. Εν κατακλείδι ϐλέπουµε ότι µε το δένδρο επιθεµάτων το πρόβληµα ταιριάσµατος προτύπων µπορεί να επιλυθεί αποδοτικά µε την εκτέλεση το πολύ P συγκρίσεις και άρα συνολικά σε χρόνο O( P +α), όπου α το µέγεθος της απάντησης και µε την προϋπόθεση ότι σε κάθε εσωτερικό κόµβο η ακµή που ϑα ακολουθηθεί επιλέγεται σε σταθερό χρόνο. Ετσι σε περιβάλλοντα όπου συνεχώς υποβάλλονται συνεχώς νέες ερωτήσεις πάνω σε συγκεκριµένες συµβολοσειρές, ενδείκνυται η δεικτοδότηση αυτών µε δένδρα επιθεµάτων. Αλγόριθµοι Κατασκευής Υπάρχουν αρκετοί σειριακοί αλγόριθµοι για την κατασκευή ενός δένδρου επιθεµάτων σε γραµµικό χρόνο. Οι [157, 119, 153] χρησιµοποιούν την παραδοχή ότι οι συµβολοσει- ϱές έχουν σχηµατισθεί από αλφάβητα σταθερού µεγέθους και κατά ϐάση στηρίζονται σε παρόµοιες κεντρικές ιδέες (για την συσχέτιση τους ανατρέξτε στο [73]) ενώ στην [63] δίνεται γραµµικός αλγόριθµός κατασκευής για µεγάλα αλφάβητα 2 (της τάξης O(n)). Τέλος στις [10, 85, 141] παρουσιάζονται παράλληλοι αλγόριθµοι για το µοντέλο ταυτόχρονης ανάγνωσης/ταυτόχρονης εγγραφής (CRCW PRAM), το οποίο όµως δεν εξετάζεται στην παρούσα εργασία. Πριν δούµε τον αλγόριθµο του McCreight [119], ϑα παρουσιασθεί ο απλοϊκός τρόπος κατασκευής του δένδρου επιθεµάτων σε χρόνο O(n 2 ), µιας και στηρίζεται πάνω σε αυτόν. Στη συνέχεια κάνοντας ορισµένες παρατηρήσεις πάνω στο δένδρο επιθεµάτων επιτυγχάνεται γραµµικός χρόνος κατασκευής. Ο απλοϊκός (naive) αλγόριθµός κατασκευής του δένδρου επιθεµάτων για µια συµβολοσειρά T ( T = n) αρχικά ϑεωρεί ότι το δένδρο αποτελείται µόνο από την ϱίζα και εισάγει σε αυτό διαδοχικά όλα τα επιθέµατα T i n, το i να κινείται από το 1 µέχρι και το n. Αρχικά εισάγεται στο συµπαγές trie το επίθεµα T 1 n (ολόκληρη η συµβολοσειρά δηλαδή) κάτω από την ϱίζα εισάγοντας µία πλευρά και ένα ϕύλλο. Στο i-στο ϐήµα, όπου εισάγουµε το επίθεµα T i n, αρχίζουµε να κατεβαίνουµε από την ϱίζα προς τα ϕύλλα ακολουθώντας το µοναδικό µονοπάτι που ορίζεται από τους χαρακτήρες του επιθέµατος. Πιο συγκεκριµένα, ξεκινώντας από την ϱίζα ακολουθούµε την πλευρά που η ετικέτα της αρχίζει µε 2 Παρατηρήστε ότι το µέγεθος του αλφάβητου είναι ίσο µε τον µέγιστο αριθµό παιδιών που µπορεί να έχει ένας εσωτερικός κόµβος.

2.2. ΠΛ ΗΡΗΣ ΕΙΚΤΟ ΟΤΗΣΗ ΣΥΜΒΟΛΟΣΕΙΡ ΩΝ 25 12345 T=abab$ a b a b $ 1 a b a b $ 1 b a b $ 2 a b a b $ 1 b a b $ $ 2 a b a b $ 1 $ b a b $ $ 3 3 2 4 3 ÂÞìá 1 2 3 4 5 a b a b $ 1 b $ $ a b $ $ 2 5 4 Σχήµα 2.2: Απλοϊκή Κατασκευή του ένδρου Επιθεµάτων της abab$ τον χαρακτήρα T i και διαδοχικά συγκρίνουµε τους χαρακτήρες του επιθέµατος µε τους χαρακτήρες των ετικετών των πλευρών που συναντάµε µέχρι κάποιος χαρακτήρας να µην ταιριάζει. Εστω ότι δεν ταίριαξε ο χαρακτήρας T k,k > i, σε αυτό το σηµείο υπάρχουν δύο ενδεχόµενα: είτε ϐρισκόµαστε σε κάποιο κόµβο (ο οποίος ϑα έχει και ετικέτα µονοπατιού ίση µε T i k 1 ) είτε στο µέσο της ετικέτας µιας πλευράς. Αν ισχύει η πρώτη περίπτωση εισάγουµε το υπόλοιπο του επιθέµατος (T k n ) τοποθετώντας κάτω από τον κόµβο που ϐρίσκεται η διεργασία µία πλευρά και ένα ϕύλλο. Σε αυτό το ϕύλλο ϑα αποθηκευτεί ο αριθµός i ο οποίος και αντιστοιχεί σ αυτό το επίθεµα. Εάν ισχύει η δεύτερη περίπτωση σπάµε στην πλευρά αυτή δηµιουργώντας ένα εσωτερικό κόµβο µε ετικέτα µονοπατιού T i k 1 και εισάγουµε το υπόλοιπο του επιθέµατος (T k n ) δηµιουργώντας µία πλευρά και ένα ϕύλλο κάτω από αυτόν τον νεοσύστατο κόµβο. Παράδειγµα 3. Για την συµβολοσειρά abab$ τα ϐήµατα του απλοϊκού αλγορίθµου ϕαίνονται στο σχήµα 2.2. Αν υποθέσουµε ότι το αλφάβητο έχει σταθερό µέγεθος και άρα ο αλγόριθµος σε κά- ϑε εσωτερικό κόµβο επιλέγει σε σταθερό χρόνο την κατάλληλη εξερχόµενη ακµή τότε ο απλοϊκός αυτός αλγόριθµός κατασκευής του δένδρου επιθεµάτων εκτελεί στην χειρότερη περίπτωση (n 1) + + 2 + 1 = O(n 2 ) συγκρίσεις. Σε περίπτωση που το αλφάβητο δεν ϑεωρείται σταθερό η χρονική πολυπλοκότητα ανέρχεται σε O( Σ n 2 ). Ο αλγόριθµος του McCreight µοιάζει σε µεγάλο ϐαθµό µε τον απλοϊκό αλγόριθµο που δόθηκε παραπάνω. Εισάγει και αυτός στο δένδρο τα επιθέµατα µε ϕθίνουσα σειρά. Ο απλοϊκός αλγόριθµος σε κάθε ϐήµα ξεκινάει πάντα από την ϱίζα για να ϐρει ποιο τµή- µα (για την ακρίβεια το µέγιστο πρόθεµα) του προς εισαγωγή επιθέµατος υπάρχει ήδη µέσα στο δένδρο. Κατεβαίνει από την ϱίζα όσο ϐρίσκει ταιριάσµατα και στο σηµείο που τερµατίζει προσθέτει το υπόλοιπο τµήµα του επιθέµατος. Εν αντιθέσει ο αλγόριθµος του McCreight διατηρεί κάποιους δείκτες µεταξύ των εσωτερικών κόµβων, οι οποίοι καλούνται suffix links, που του επιτρέπουν να µεταβαίνει στο σηµείο αυτό πιο γρήγορα χωρίς να ξεκινάει πάντα από την ϱίζα αλλά από την ϑέση στην οποία είχε ενθέσει το αµέσως προηγούµενο επίθεµα. Οπως ϑα δούµε παρακάτω µε αυτή την παρατήρηση, η κατασκευή του δένδρου επιθεµάτων ολοκληρώνεται σε γραµµικό χρόνο. Για την περιγραφή του αλγορίθµου απαραίτητοι είναι οι ακόλουθοι ορισµοί: Ορισµός 6. Ετικέτα Μονοπατιού ( path label) ενός εσωτερικού κόµβου u στο δένδρο επι- ϑεµάτων είναι η συµβολοσειρά που προκύπτει από την συνένωση των υποσυµβολοσειρών των πλευρών που συναντώνται κινούµενοι από την ϱίζα προς τον u. Συνεπώς κάθε κόµβος

26 ΚΕΦ ΑΛΑΙΟ 2. ΒΑΣΙΚΟ Ι ΑΞΟΝΕΣ ΙΑΧΕ ΙΡΙΣΗΣ ΚΕΙΜΕΝΙΚ ΗΣ ΠΛΗΡΟΦΟΡ ΙΑΣ στο δένδρο επιθεµάτων διαθέτει µοναδική ετικέτα µονοπατιού. Η ετικέτα µονοπατιού ενός κόµβου u συµβολίζεται ως L(u). Ορισµός 7. Θέση ( locus) µιας συµβολοσειράς x µέσα στο δένδρο επιθεµάτων είναι ο κόµβος (αν υπάρχει) που έχει ως ετικέτα µονοπατιού την x. Ορισµός 8. Εγγυηµένη Θέση ( contracted locus) µιας συµβολοσειράς x µέσα στο δένδρο επιθεµάτων είναι η ϑέση του µεγαλύτερου προθέµατος της το οποίο ορίζεται στο δένδρο επι- ϑεµάτων (αν ένα σε ένα σύνολο εσωτερικών κόµβων κάθε κόµβος έχει ως ετικέτα µονοπατιού ένα πρόθεµα της x τότε η εγγυηµένη ϑέση είναι ο κόµβος που αντιστοιχεί στο µεγαλύτερο από αυτά προθέµατα». Γυρνώντας πάλι πίσω στους αλγόριθµους κατασκευής διαπιστώνουµε ότι σε κάθε ϐήµα i όπου εισάγεται το επίθεµα T i n αναζητείται η εγγυηµένη ϑέση του επιθέµατος αυτού και στην συνέχεια προστίθεται στην δοµή το υπόλοιπο του επιθέµατος. ο απλοϊκός αλγόριθµός αναζητεί αυτή την εγγυηµένη ϑέση ξεκινώντας πάντα από την ϱίζα µε αποτέλεσµα να έχει τετραγωνικό χρόνο εκτέλεσης. Εστω ότι κάθε εσωτερικός κόµβος u διατηρεί έναν επιπλέον δείκτη προς έναν άλλο εσωτερικό κόµβο. Ο δείκτης αυτός καλείται δείκτης επιθέµατος (suffix link) και ορίζεται ως εξής: Ορισµός 9. Ο δείκτης επιθέµατος ( suffix link) κάθε εσωτερικού κόµβου µε ετικέτα µονοπατιού ax µε a = 1, x 1 υποδεικνύει τον εσωτερικό κόµβο µε ετικέτα µονοπατιού x. Ας δούµε πως αρχικοποιούνται οι δείκτες επιθέµατος και πως χρησιµοποιούνται από τον αλγόριθµο του McCreight. Ας ϑεωρήσουµε µόλις έχει ολοκληρωθεί το (i 1)-στο ϐήµα όπου εισάγεται το επίθεµα T i 1 n και ας υποθέσουµε ότι όλοι οι κόµβοι που έχουν δηµιουργηθεί σε προηγούµενα ϐήµατα (< i 1) έχουν αρχικοποιηµένο τον δείκτη επιθέ- µατος τους. Η διαδικασία ϐρίσκεται στην εγγυηµένη ϑέση της T i 1 n όπου έχει δηµιουργήσει ένα ϕύλλο και µια πλευρά για την αναπαράσταση του υπόλοιπου του επιθέµατος. Εκεί είτε έχει ϐρει κάποιο ήδη υπάρχον εσωτερικό κόµβο είτε έχει δηµιουργήσει έναν καινούργιο. Ας υποθέσουµε ότι ισχύει το δεύτερο ενδεχόµενο και µόλις έχει δηµιουργη- ϑεί ένας νέος κόµβος u, µε ετικέτα µονοπατιού ax, a = 1, x 1, του οποίου ο δείκτης επιθέµατος δεν έχει αρχικοποιηθεί ακόµη (δείτε το σχήµα 2.3 α.). Από τον u κινούµαστε προς τον πατέρα του w. Εστω ότι η πλευρά που διασχίσαµε έχει σαν ετικέτα την υποσυµ- ϐολοσειρά x η οποία είναι επίθεµα της ax οπότε και ισχύει ax = ax x (ϐλ. σχήµα 2.3 ϐ.). Ο κόµβος w εξ υποθέσεως έχει αρχικοποιήσει τον δείκτη επιθέµατος του σε προηγού- µενο ϐήµα, οπότε και δείχνει τον κόµβο w. Ακολουθώντας τον δείκτη αυτόν η διεργασία µεταφέρεται στον w και κατεβαίνει πάνω στο µονοπάτι που επιτάσσει η υποσυµβολοσειρά q. Ετσι καταλήγει στην εγγυηµένη ϑέση του προς εισαγωγή επιθέµατος σε αυτό το (i)- στο ϐήµα που είναι το x = x x. Αυτή η ϑέση είναι ο κόµβος u ο οποίος υπάρχει ή µόλις δηµιουργείται. Μόλις ϐρεθεί ο u τότε αρχικοποιείται και ο δείκτης επιθέµατος του u ώστε να τον δείχνει (ϐλ. σχήµα 2.3 ϐ.). Αν ο u δηµιουργείται τότε το υπόλοιπο του (i)-στου επιθέµατος προστίθεται κάτω από αυτόν µε µία πλευρά και ένα ϕύλλο. Παρατηρήστε ότι µόλις δηµιουργείται ένας νέος κόµβος αµέσως στο επόµενο ϐήµα αρχικοποιείται ο δείκτης επιθέµατος τους, οπότε έτσι εγγυάται ότι στην αρχή ενός ϐήµατος υπάρχουν όλοι οι δείκτες επιθέµατος πλην ενός. Αν ο u υπάρχει τότε µπορεί να υπάρχει κάποιο µέρος