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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ"

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Χειρισµός Βεβαρηµένων Ακολουθιών µε Χρήση Ανεστραµµένων Αρχείων και Δέντρων Επιθεµάτων ΜΕΤΑΠΤΥΧΙΑΚΗ ΔΙΑΤΡΙΒΗ Στα πλαίσια του Π.Μ.Σ. «Επιστήµη και Τεχνολογία Υπολογιστών ΕΤΥ» του ΘΕΟΔΩΡΟΥ ΤΟΚΗ Επιβλέπων : Χρήστος Μακρής Επίκουρος Καθηγητής Πάτρα, Σεπτέµβριος 2016

2 Η σελίδα αυτή είναι σκόπιµα λευκή.

3 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Χειρισµός Βεβαρηµένων Ακολουθιών µε Χρήση Ανεστραµµένων Αρχείων και Δέντρων Επιθεµάτων ΜΕΤΑΠΤΥΧΙΑΚΗ ΔΙΑΤΡΙΒΗ Στα πλαίσια του Π.Μ.Σ. «Επιστήµη και Τεχνολογία Υπολογιστών ΕΤΥ» του ΘΕΟΔΩΡΟΥ ΤΟΚΗ Επιβλέπων : Χρήστος Μακρής Επίκουρος Καθηγητής Εγκρίθηκε από την τριµελή εξεταστική επιτροπή την 8η Σεπτεµβρίου (Υπογραφή) (Υπογραφή) (Υπογραφή) Χρήστος Μακρής Ιωάννης Γαροφαλάκης Αθανάσιος Τσακαλίδης Επίκουρος Καθηγητής Καθηγητής Καθηγητής Πάτρα, Σεπτέµβριος 2016

4 (Υπογραφή)... ΘΕΟΔΩΡΟΣ ΤΟΚΗΣ Διπλωµατούχος Μηχανικός Η/Υ και Πληροφορικής 2016 All rights reserved

5 Περίληψη Σκοπός της παρούσας διπλωµατικής διατριβής είναι η αντιµετώπιση του προβλήµατος του χειρισµού βεβαρηµένων ακολουθιών µε εκµετάλλευση του µηχανισµού των ανεστραµµένων αρχείων, στοχεύοντας σε εφαρµογές επεξεργασίας κειµένου όπου τα έγγραφα που εµπλέκονται δεν µπορούν να διαχωριστούν σε λέξεις (όπως κείµενα που αντιπροσωπεύουν βιολογικές ακολουθίες) ή ο διαχωρισµός των λέξεων είναι δύσκολος και περιλαµβάνει επιπλέον γλωσσικές γνώσεις (όπως κείµενα σε ασιατικές γλώσσες). Οι προτεινόµενες τεχνικές συνδυάζουν την κλασική απλή n-gram ευρετηρίαση, µαζί µε την πρόσφατα προτεινόµενη τεχνική δύο επιπέδων n-gram ανεστραµµένων αρχείων. Τα τελικά αποτελέσµατα είναι νέες δο µές δεδοµένων για την n-gram ευρετηρίαση, που έχουν καλύτερες επιδόσεις από την άποψη της κατανάλωσης χώρου σε σχέση µε τις ήδη υπάρχουσες. Τα πειραµατικά αποτελέσµατα είναι ενθαρρυντικά και απεικονίζουν ότι οι τεχνικές αυτές µπορούν σίγουρα να χειριστούν n-gram ευρετήρια περισσότερο αποτελεσµατικά σε σχέση µε το χώρο από τις υπάρχουσες µεθόδους. Στην πραγµατικότητα έχουν εξαιρετικές ιδιότητες κατανάλωσης χώρου, ενώ εκτελούνται αποτελεσµατικά για όλους τους τύπους αρχείων δεδοµένων (ακόµη και αν δεν φαίνεται να είναι ιδιαίτερα επαναλαµβανόµενα), λαµβάνοντας µε άλλα λόγια πλεονέκτηµα της εγγενούς επαναληπτικότητας των εµπλεκόµενων κειµένων. Λέξεις Κλειδιά: Ανεστραµµένα Αρχεία, Δοµές Ευρετηρίου, n-gram Ευρετηρίαση, Επεξεργασία και Βελτιστοποίηση Βιολογικών δεδοµένων, Ανάλυση Ακολουθίας και Συναρµολόγηση, Ακολουθίες µε Βάρη, Σταθµισµένο Δέντρο Επιθεµάτων

6 Η σελίδα αυτή είναι σκόπιµα λευκή.

7 Abstract In this Master Thesis, we address the problem of handling weighted sequences. This is by taking advantage of the inverted files machinery and targeting at text processing applications, where the involved documents cannot be separated into words (such as texts representing biological sequences) or word separation is difficult and involves extra linguistic knowledge (texts in Asian languages). The proposed techniques combine classic straightforward n- gram indexing, with the recently proposed two-level n-gram inverted file technique. The final outcomes are new data structures for n-gram indexing, which perform better in terms of space consumption to the existing ones. Our experimental results are encouraging and depict that these techniques can surely handle n-gram indexes more space efficiently than already existing methods. Actually they have excellent space consumption properties, while they perform efficiently for all types of data les (even if they do not seem to be that highly repetitive) taking advantage of the inherent repetitiveness of the involved text. Keywords: Searching and Browsing, Web Information Filtering and Retrieval, Text Mining, Indexing Structures, In- verted Files, n-gram Indexing, Sequence Analysis and Assembly, Weighted Sequences, Weighted Suffix Trees.

8 Ευχαριστίες Θα ήθελα να ευχαριστήσω τον κ. Μακρή Χρήστο, Επίκουρο Καθηγητή του Τµήµατος Μηχανικ ών Η/Υ και Πληροφορικής του Πανεπιστηµίου Πατρών, για την αµέριστη υποστήριξη, βοήθεια και υποµονή του στην συγγραφή της παρούσας Μεταπτυχιακής Διατριβής. Θα ήθελα επιπλέον να ευχαριστήσω τον κ. Τσακαλίδη Αθανάσιο, Καθηγητή του Τµήµατος Μηχανικών Η/Υ και Πληροφορικής του Πανεπιστηµίου Πατρών και τον κ. Γαροφαλάκη Ιωάννη, Καθηγητή του Τµήµατος Μηχανικών Η/Υ και Πληροφορικής του Πανεπιστηµίου Πατρών, που δέχτηκαν να είναι µέλη της τριµελούς επιτροπής. Επίσης, θα ήθελα να ευχαριστήσω τους συναδέλφους Καναβό Ανδρέα και Diamanti Klev για την συνεισφορά τους στην έρευνα και συγγραφή της δηµοσίευσής µας. Τέλος, θα ήθελα να ευχαριστήσω όλους τους δικούς µου ανθρώπους για την αγάπη τους και την υποµονή τους στο πρόσωπό µου.

9 Πίνακας περιεχοµένων 1 ΕΙΣΑΓΩΓΗ ΚΑΙ ΧΡΗΣΗ ΤΩΝ N-GRAMS Εισαγωγικές Έννοιες Ανεστραµµένα Ευρετήρια Δέντρα Επιθεµάτων N-grams N-gram Ανεστραµµένα Ευρετήρια Τεχνικές Δεικτοδότησης N-grams Αναζήτηση Προτύπων Ταίριασµα Συµβολοσειρών N-Gram Ευρετήριο δυο ή Περισσοτέρων Επιπέδων Στατική Δοµή Κλαδέµατος N-Gram Ευρετηρίων (ΤinyLex) N-grams για Μεγάλες Βάσεις Δεδοµένων Μεταβλητού Μήκους Grams (V-grams) Χρήσεις στην Βιοπληροφορική Ταξινόµηση και Οµαδοποίηση Βιολογικών Ακολουθιών Σύγκριση Βιολογικών Ακολουθιών Συγκριτική Ανάλυση Πρωτεϊνικών Ακολουθιών Μοντελοποίηση Ενεργειών Χρηστών µε Χρήση N-grams ΒΕΒΑΡΗΜΕΝΕΣ ΑΚΟΛΟΥΘΙΕΣ Εισαγωγικές Έννοιες Βεβαρηµένες Ακολουθίες Βεβαρηµένο Δέντρο Επιθεµάτων Αλγόριθµοι και Τεχνικές Χαρτογράφηση Βεβαρηµένων Ακολουθιών Ακριβές Ταίριασµα Προτύπων Υπολογισµός Επαναλήψεων και Κανονικοτήτων... 81

10 2.2.4 Το Βεβαρηµένο Δέντρο Επιθεµάτων Εφαρµογές Βεβαρηµένου Δέντρου Επιθεµάτων ΒΕΒΑΡΗΜΕΝΕΣ ΑΚΟΛΟΥΘΙΕΣ ΜΕ ΧΡΗΣΗ N-GRAMS Θεωρητική Προσέγγιση Σχετικές Εργασίες και Συνεισφορά Αλγόριθµοι η Τεχνική Εντοπισµός Υποακολουθιών η Τεχνική On the fly n-grams η Τεχνική Offline Εντοπισµός Παραδείγµατα Τεχνικών Πειράµατα Πειραµατικές Ρυθµίσεις Αποτελέσµατα Βεβαρηµένων Ακολουθιών ΣΥΜΠΕΡΑΣΜΑΤΑ ΚΑΙ ΜΕΛΛΟΝΤΙΚΗ ΚΑΤΕΥΘΥΝΣΗ Συµπεράσµατα και Επίλογος Μελλοντική Κατεύθυνση Βιβλιογραφία

11 Κατάλογος Εικόνων 1.1 Παράδειγµα συλλογής κειµένων Ανεστραµµένο Ευρετήριο Το δέντρο επιθεµάτων για την συµβολοσειρά S=xabxa Κατασκευή του Δέντρου Επιθεµάτων µε την απλοϊκή προσέγγιση Το Γενικευµένο Δέντρο Επιθεµάτων για τις συµβολοσειρές S={xabxa, babxba} Δηµιουργία αντεστραµµένων λιστών µε grams Trie Αναπαράσταση n-grams ως Tries Δοµή των n-grams Παράδειγµα λιστών καταχωρήσεων του 3-gram ευρετηρίου Ταίριασµα µε χρήση του AS-Index Ο αλγόριθµος AS-Search Συµβολοσειρά και Λίστες Καταχωρήσεων της Επισκόπηση του QS-Gram Δοµή του n-gram/2l ευρετηρίου Αλγόριθµος Κατασκευής n-gram/2l Ευρετηρίου Παράδειγµα n-gram/2l Ευρετηρίου Αλγόριθµος n-gram/2l Index Searching Ψευδοκώδικας Απλής Κατασκευής Ευρετηρίου Βελτιωµένος Ψευδοκώδικας Κατασκευής Ευρετηρίου Γενικό Σχήµα Χαρτογράφηση Αλγορίθµων στους Πολυεπεξεργαστές Διαχωρισµός Δεδοµένων VGRAM Ευρετήριο για Συµβολοσειρές Αλγόριθµος VGEN Gram-Frequency Trie 63

12 1.27 Κλάδεµα για την Επιλογή Gram Παράδειγµα Βεβαρηµένης Ακολουθίας Βεβαρηµένο Δέντρο Επιθεµάτων Αλγόριθµος Χρωµατισµού Παραγωγή Όλων των Πιθανών Υπολέξεων Προεκταµένες και Πραγµατικές Λέξεις Αλγόριθµος Παραγωγής Εισαγωγή Επιθεµάτων Αλγόριθµος Κατασκευής Αλγόριθµος εντοπισµού υποακολουθιών Αλγόριθµος On the fly Βεβαρηµένες Ακολουθίες για Διαφορετικά Μεγέθη του (a) n=2, (b) n=3 και (c) n=4 118

13 1 ΕΙΣΑΓΩΓΗ ΚΑΙ ΧΡΗΣΗ ΤΩΝ N-GRAMS 1.1 Εισαγωγικές Έννοιες Ανεστραµµένα Ευρετήρια Η προσπέλαση στα δεδοµένα κατά την αξιολόγηση ενός ερωτήµατος γίνεται µέσω ενός ευρετηρίου. Το κόστος της αξιολόγησης του ερωτήµατος είναι ανάλογο του πλήθους των όρων στο ερώτηµα (Ο( Q )). Κατά την στιγµή του ερωτήµατος δεν µπορεί κανείς να προβλέψει τις λέξεις κλειδιά που θα χρησιµοποιηθούν. Κάθε λέξη είναι δυναµικά και ένας όρος αναζήτησης. Εποµένως στο ευρετήριο αποθηκεύονται όλοι οι όροι των κειµένων. Τα περιεχόµενα του ευρετηρίου µπορεί να είναι Boolean (δυαδικά) ή στατιστικά ή δεδοµένα θέσης των όρων µέσα στα κείµενα. Επίσης µπορεί να αποθηκεύονται η πρόταση ή η παράγραφος στην οποία ανήκει ο όρος. Στη βιβλιογραφία υπάρχουν διάφορες µέθοδοι για την υλοποίηση ευρετηρίων για κείµενα. Για παράδειγµα έχουµε: Bitmaps, αρχεία υπογραφών (signature files), ανεστραµµένα αρχεία, κατακερµατισµός, n-grams κ.ά. Στα επόµενα θα περιγράψουµε τα 1

14 ανεστραµµένα αρχεία καθόσον αυτά είναι τα πλέον διαδεδοµένα στα συστήµατα ανάκτησης. Τα βασικά στοιχεία ενός ανεστραµµένου ευρετηρίου είναι δύο: Το λεξιλόγιο (dictionary) και οι ανεστραµµένες λίστες (inverted lists, postings) οι οποίες περιέχουν τα κείµενα στα οποία εµφανίζεται κάθε όρος του λεξιλογίου, το βάρος του, η θέση του στο κείµενο κ.ά. Κατά την διάρκεια της αξιολόγησης του ερωτήµατος διασχίζονται οι ανεστραµµένες λίστες των όρων του ερωτήµατος και εφαρµόζονται οι πράξεις: OR : ένωση δύο ανεστραµµένων λιστών AND : Τοµή δύο ανεστραµµένων λιστών Proximity : Τοµή δύο ανεστραµµένων λιστών SUM : ένωση δύο ανεστραµµένων λιστών Έστω ότι τα κείµενα µιας συλλογής δίδονται µ ένα αρχείο του οποίου κάθε γραµµή αντιστοιχεί σ ένα κείµενο (βλέπε Εικόνα 1.1). Υπάρχουν δύο βασικές δο µές για την οργάνωση των δεδοµένων του λεξιλογίου: Δέντρα αναζήτησης (Β, Β+ δέντρα) και κατακερµατισµός. Το κόστος προσπέλασης στα Β δέντρα για τον εντοπισµό µιας ανεστραµµένης λίστας είναι Ο(logmn), όπου m είναι ο βαθµός του δέντρου και στον κατακερµατισµό είναι Ο(1). Στα Β δέντρα η εισαγωγή είναι απλή ενώ στον κατακερµατισµό µπορεί να είναι δαπανηρή. Συνήθως το λεξιλόγιο αποθηκεύεται σε µια δυναµική δοµή δεδοµένων όπως είναι τα Β δέντρα και κάθε στοιχείο συνδέεται µε τη λίστα που περιέχει τα κείµενα που περιέχουν το αντίστοιχο στοιχείο. Για τα κείµενα του παραδείγµατος αν θεωρήσουµε ότι το σύνολο των τετριµµένων λέξεων είναι το: {ΑΠΟ, ΔΕΝ, ΕΙΝΑΙ, ΕΝΑ, Η, ΗΤΑΝ, ΜΙΑ, ΜΙΑΣ, ΠΟΥ, ΤΑ, ΤΗΝ, ΤΗΣ, ΤΟ, ΤΟΥ, ΤΩΝ} και αφού εφαρµόσουµε τον αλγόριθµο αποκοπής καταλήξεων προκύπτει το ανεστραµµένο αρχείο που δίνεται στον πίνακα 4-2. Ο αλγόριθµος κατασκευής του ανεστραµµένου αρχείου περιγράφεται ως εξής: 2

15 1. Λεξική ανάλυση (tokenization). 2. Υπολογισµός της συχνότητας εµφάνισης του όρου σε κάθε κείµενο (tf(t,d)). 3. Υπολογισµός της συχνότητας κειµένων των όρων (df(t)). Αποθήκευση των ανεστραµµένων λιστών στο δίσκο. Εικόνα 1.1 Παράδειγµα συλλογής κειµένων Για µεγάλα αρχεία η δο µή δεν µπορεί να χωρέσει στη µνήµη. Στη περίπτωση αυτή η πλέον αποτελεσµατική προσέγγιση είναι η αντιστροφή του αρχείου κατά τµήµατα στη µνήµη. Δύο προσεγγίσεις υπάρχουν για τη λύση αυτού του προβλήµατος. Η πρώτη περίπτωση περιλαµβάνει ένα αλγόριθµο µε εύκολο χώρισµα του αρχείου σε τµήµατα, την αντιστροφή των τµηµάτων και τέλος την συγχώνευσή τους που ως συνήθως είναι µια δύσκολη διαδικασία. Η δεύτερη περίπτωση περιλαµβάνει τις τρεις διαδικασίας όπως προηγούµενα αλλά η δυσκολία τους είναι ανεστραµµένη. Δηλαδή έχουµε ένα δύσκολο χώρισµα του αρχείου σε τµήµατα, την αντιστροφή τους και τέλος την συγχώνευσή τους που στη περίπτωση αυτή είναι µια απλή συνένωση (append). Αλγόριθµος κατασκευής ανεστραµµένου αρχείου /* Αρχικοποίηση */ Δηµιούργησε µια κενή δοµή dictionary S; /* Φάση 1: Υπολογισµός συχνοτήτων των όρων */ for κάθε κείµενο di της συλλογής (1 i N) διάβασε di; for κάθε όρο tj di 3

16 { υπολόγισε tf(tj,di); Ενηµέρωσε το df(tj) /*Αναζήτησε τον όρο t στο S*/ if t S {εισάγαγε tj στο S; εισάγαγε τον κόµβο (di; tf(tj,di) στην αρχή της ανεστραµµένης λίστας που αντιστοιχεί στον όρο tj;} else εισάγαγε τον κόµβο (di; tf(tj,di) στο τέλος της ανεστραµµένης λίστας που αντιστοιχεί στον όρο tj; } /* Φάση 2: Γράψιµο ανεστραµµένου αρχείου στο δίσκο */ for κάθε όρο tj, 1 j n {ξεκίνησε µια νέα εγγραφή στο ανεστραµµένο αρχείο; for κάθε εγγραφή di; TF(tj,di) στη λίστα του όρου tj if απαιτείται συµπίεσε την εγγραφή; γράψε στο τέλος του αρχείο (append)το (di; TF(t,di); } Εικόνα 1.2 Ανεστραµµένο αρχείο 4

17 1.1.2 Δέντρα Επιθεµάτων Το Δέντρο Επιθεµάτων (Suffix Tree) Πριν ξεκινήσουµε την περιγραφή του Δέντρο Επιθεµάτων (Suffix Tree), θυµίζουµε ότι για µια συµβολοσειρά x=wv, όπου w, v Σ+, η υποσυµβολοσειρά, v, ονοµάζεται κανονικό επίθεµα του x. Εποµένως µια συµβολοσειρά S, µήκους S =m, έχει m δυνατά µη κενά επιθέµατα που είναι τα ακόλουθα: S[1 m], S[2 m],. S[m-1 m] και S[m]. Για παράδειγµα για τη συµβολοσειρά "sequence", τα δυνατά επιθέµατα είναι: sequence, equence, quence, uence, ence, nce, ce, e. Το Δέντρο Επιθεµάτων (Suffix Tree), αποθηκεύει όλα τα δυνατά επιθέµατα της συµβολοσειράς S, όπως φαίνεται και στο ακόλουθο σχήµα. Εικόνα 1.3 Το δέντρο επιθεµάτων για την συµβολοσειρά S=xabxa Ορισµός: Το Δέντρο Επιθεµάτων (Suffix Tree), Τ, µιας συµβολοσειρά S µεγέθους m ( S =m) ορίζεται ως η κατευθυνόµενη δεντρική δοµή µε ακριβώς m φύλλα τα οποία είναι αριθµηµένα από το 1 µέχρι το m. Κάθε εσωτερικός κόµβος,ο οποίος δεν είναι η ρίζα, έχει τουλάχιστον δύο παιδιά και κάθε πλευρά αντιστοιχίζεται σε µία µη-µηδενική υποσυµβολοσειρά του S. Οι υποσυµβολοσειρές των πλευρών που εξέρχονται από τον ίδιο κόµβο δεν επιτρέπεται να έχουν κοινό τον πρώτο τους χαρακτήρα. Τέλος κύριο χαρακτηριστικό του δένδρου επιθεµάτων είναι το γεγονός ότι αν ενώσουµε 5

18 τις ετικέτες µονοπατιών (path labels) που συναντάµε σε µια διαδροµή από τη ρίζα προς κάποιο από τα φύλλα, (έστω το φύλλο µε αριθµό i), σχηµατίζουµε το επίθεµα της συµβολοσειράς S που ξεκινά από την θέση i, δηλαδή το S[i..m]. Από τον παραπάνω ορισµό δεν εξασφαλίζεται ότι υπάρχει Δέντρο Επιθεµάτων για κάθε συµβολοσειρά S. Για παράδειγµα αν από την συµβολοσειρά S=xabxac που είδαµε στο προηγούµενο παράδειγµα αφαιρέσουµε το τελικό χαρακτήρα c προκύπτει η συµβολοσειρά S'=xabxa για την οποία το επίθεµα S[4 5]=xa δεν καταλήγει σε κάποιο φύλλο αλλά σε εσωτερικό κόµβο, αφού αποτελεί ταυτόχρονα και πρόθεµα της συµβολοσειράς. Για να αποφύγουµε αυτό το πρόβληµα κάνουµε την ακόλουθη θεώρηση: σε κάθε συµβολοσειρά, S, προσθέτουµε έναν επιπλέον τελικό χαρακτήρα (τερµατικό χαρακτήρα), ο οποίος δεν ανήκει στο αλφάβητο της συµβολοσειράς, άρα δεν εµφανίζεται πουθενά αλλού στην συµβολοσειρά. Συνήθως προστίθεται ως τερµατικός χαρακτήρας (termination symbol) ο χαρακτήρας "$". Ορισµός: Ορίζουµε ως Ετικέτα Μονοπατιού (Path Label), από τη ρίζα του δέντρου σε κάποιο κόµβο, τη συµβολοσειρά που προκύπτει από τη συνένωση των υπο-συµβολοσειρών που συναντάµε από τη ρίζα στον αντίστοιχο κόµβο. Μια απλοϊκή θεώρηση για την κατασκευή του Δέντρου Επιθεµάτων, για µια συµβολοσειρά S, περιλαµβάνει τα ακόλουθα βήµατα: 1. Ένθεση µιας πλευράς στο δέντρο για το επίθεµα S[1 m]$, 2. Διαδοχική ένθεση των επιθεµάτων S[i m]$, για i=2 m. Στο πρώτο βήµα ο αλγόριθµος θεωρεί ότι το δέντρο αποτελείται µόνο από τη ρίζα και εισάγει σε αυτό το επίθεµα S[1..m]$, (ολόκληρη δηλαδή τη συµβολοσειρά και τον τερµατικό χαρακτήρα), µε αποτέλεσµα το δέντρο Ν 1 να αποτελείται από µια πλευρά µε ετικέτα "S$" και ένα φύλλο αριθµηµένο 6

19 µε τον αριθµό "1". Σε κάθε επόµενο βήµα δηµιουργούµε το δέντρο Ni+1, από το δέντρο Ni, ως εξής: ξεκινώντας από τη ρίζα του δέντρου Ni, βρίσκουµε το µέγιστο σε µήκος µονοπάτι από τη ρίζα, για το οποίο η ετικέτα µονοπατιού ταιριάζει µε κάποιο πρόθεµα του S[i+1..m]$, (συγκρίνοντας διαδοχικά τους χαρακτήρες). Έστω ότι στο χαρακτήρα S[k], µε k i, έχουµε µη-ταίριασµα. Σε αυτή τη θέση υπάρχουν δύο δυνατές καταστάσεις: είτε βρισκόµαστε σε κάποιο κόµβο w του δέντρου Ni είτε στο µέσο κάποιας πλευράς, µεταξύ των κόµβων (u,v). Στη δεύτερη περίπτωση χωρίζουµε την πλευρά στη µέση εισάγοντας ένα νέο εσωτερικό κόµβο, έστω w, αµέσως µετά τον τελευταίο χαρακτήρα του δέντρου που ταίριαζε σε κάποιον χαρακτήρα στο S[i+1 m]. H νέα πλευρά (u, w), έχει ως ετικέτα µονοπατιού το τµήµα της πλευράς (u,v), που ταιριάζει στην υπο-συµβολοσειρά S[i+1 m], ενώ η πλευρά (w, v), αποκτά ως ετικέτα µονοπατιού το υπόλοιπο της πλευράς (u,v). Στη συνέχεια (το βήµα αυτό είναι κοινό και στην 1 η και στη 2 η περίπτωση), ο αλγόριθµος δηµιουργεί µια νέα πλευρά (w, i+1), η οποία εκτείνεται από τον κόµβο w, σε ένα νέο φύλλο µε αριθµό "i+1". H νέα αυτή πλευρά έχει ως ετικέτα µονοπατιού από τη ρίζα στο φύλλο "i+1", το επίθεµα S[i+1..m]$. Η απλοϊκή θεώρηση κατασκευής του Δέντρου Επιθεµάτων στοιχίζει O(m 2 ) χρόνο, για ένα αλφάβητο πεπερασµένου µεγέθους. Δυο διαδοχικά βήµατα του αλγορίθµου φαίνονται στο ακόλουθο σχήµα. Εικόνα Κατασκευή του Δέντρου Επιθεµάτων µε την απλοϊκή προσέγγιση. 7

20 Πιο αποδοτικοί αλγόριθµοι για την κατασκευή του Δέντρου Επιθεµάτων, έχουν προταθεί στη σχετική βιβλιογραφία, ξεκινώντας µε τον αλγόριθµο που παρουσίασε ο Weiner το 1973, ο McCreight το 1976 και τέλος το 1995 ο Ukkonen, ο οποίος απαιτεί γραµµικό χρόνο O(n). Το Γενικευµένο Δέντρο Επιθεµάτων (Generalized Suffix Tree) Το Γενικευµένο Δέντρο Επιθεµάτων (Generalized Suffix Tree), αποτελεί ένα Γενικευµένο Δέντρο Επιθεµάτων το οποίο αποθηκεύει όλα τα δυνατά επιθέµατα ενός συνόλου συµβολοσειρών S={S1, S2,, Sn}. Ορισµός: Το Γενικευµένο Δέντρο Επιθεµάτων (Generalized Suffix Tree), GSΤ, ενός συνόλου συµβολοσειρών S ορίζεται ως η κατευθυνόµενη δεντρική δοµή µε ακριβώς S1 + S2 + + Sn. Κάθε µονοπάτι από την ρίζα προς κάποιο φύλλο αναπαριστά ένα επίθεµα το οποίο µπορεί να ανήκει σε µία ή παραπάνω συµβολοσειρές. Γι αυτό τον λόγο σε κάθε φύλλο σηµειώνονται οι συµβολοσειρές (ή συµβολοσειρά) στις οποίες ανήκει το αντίστοιχο επίθεµα καθώς και οι θέσεις που αρχίζει αυτό σε κάθε µία από αυτές. Για να κατασκευάσουµε το Γενικευµένο Δέντρο Επιθεµάτων (Generalized Suffix Tree), ενός συνόλου συµβολοσειρών {S1, S2,, Sn}, µπορούµε να χρησιµοποιήσουµε οποιονδήποτε από τους α λγορίθµους που ήδη αναφέραµε για την κατασκευή του Δέντρου Επιθεµάτων, µία φορά για κάθε µία από τις συµβολοσειρές. Το µόνο που πρέπει να διευκρινιστεί είναι ότι κάθε εκτέλεση του αλγορίθµου πέραν της πρώτης δεν εισάγει τα επιθέµατα σε κάποια νέο δένδρο επιθέµατος αλλά σ αυτό που σχηµατίσθηκε από την πρώτη εκτέλεση. Επίσης ενηµερώνονται κατάλληλα οι πληροφορίες που υπάρχουν στα φύλλα. Συνολικά ο χρόνος που απαιτείται µέχρι την ολοκλήρωση της δηµιουργίας είναι γραµµικός στο άθροισµα των µηκών των συµβολοσειρών. 8

21 Εικόνα Το Γενικευµένο Δέντρο Επιθεµάτων για τις συµβολοσειρές S={xabxa, babxba} N-grams Με τον όρο n-gram εννοούµε µία υποακολουθία µήκους n, µιας δεδοµένης συµβολοσειράς. Τα n-grams µήκους ένα αναφέρονται ως unigrams, αυτά που έχουν µήκος δύ ο bigrams κ.ο.κ.. Τα n-grams αξιοποιούνται για τη δηµιουργία στατιστικών µοντέλων, την επεξεργασία και µοντελοποίηση της οµιλίας, την αναγνώριση φωνής κ.ά. Έστω ότι εξετάζουµε grams µήκους q. Υ πολογίζουµε ότι αν η edit distance µεταξύ δύο συµβολοσειρές s1 και s2 είναι µικρότερη από k, τότε ο αριθµός των κοινών grams που έχουν οι συµβολοσειρές είναι µεγαλύτερος ή ίσος από ( s1 -q+1)-k*q. Οπότε µπορούµε να πούµε ότι µπορούµε να χρησιµοποιήσουµε τον αριθµό των κοινών grams ως µία µετρική για προσεγγιστικό ταίριασµα συµβολοσειρών. Έτσι, είναι αναγκαίο να δηµιουργηθεί ένας ανεστραµµένο ευρετήριο µε όλα τα n-grams των λέξεων και τις λέξεις στις οποίες αυτά αντιστοιχούν. 9

22 Εάν εξετάζουµε για παράδειγµα 2-grams, όλα τα πιθανά 2-grams της λέξης rich είναι ri, ic, ch. Μπορούµε λοιπόν να αντιστοιχίσουµε το 2-gram ri µε τη λέξη rich αλλά και µε οποιαδήποτε άλλη λέξη το περιέχει. Εάν αναζητάµε µια συµβολοσειρά που περιέχει το 2-gram ri, δεν χρειάζεται να αναζητήσουµε όλες τις συµβολοσειρές αλλά µόνο αυτές µε τις οποίες έχει αντιστοιχηθεί το 2-gram µας. Αυτή η τεχνική που αναφέραµε φαίνεται στην παρακάτω εικόνα: Εικόνα Δηµιουργία αντεστραµµένων λιστών µε grams Κάνοντας χρήση αντεστραµµένων λιστών διαπιστώνουµε ότι µπορούµε να πετύχουµε πολύ καλύτερο χρόνο αναζήτησης σε µεγάλο όγκο δεδοµένων, διότι δεν εξετάζουµε όλες τις συµβολοσειρές αλλά µόνο αυτές που έχουν κοινά grams µε τον όρο που αναζητούµε. Επίσης κερδίζουµε το κόστος εφαρµογής κάποιου αλγορίθµου σύγκρισης για κάθε στοιχείο, γεγονός που συνιστά σηµαντικό πλεονέκτηµα έναντι των on-line αλγορίθµων για µεγάλο πλήθος δεδοµένων. Τις αντεστραµµένες λίστες µπορούµε να τις αναπαραστήσουµε και ως tries. Με τον όρο trie ή prefix tree, εννοούµε µία διατεταγµένη δενδρική δοµή δεδοµένων που χρησιµοποιείται συνήθως για την αποθήκευση συµβολοσειρών. Αντίθετα µε 10

23 ένα δυαδικό δένδρο, κανένας κόµβος στο δένδρο δεν αποθηκεύει το κλειδί (key) που σχετίζεται µε αυτό τον κόµβο. Όλοι οι απόγονοι ενός κόµβου έχουν ένα κοινό πρόθεµα της συµβολοσειράς που σχετίζεται µε αυτό τον κόµβο, ενώ η ρίζα είναι συσχετισµένη µε την κενή συµβολοσειρά. Οι τιµές συνήθως δεν σχετίζονται µε κάθε κόµβο αλλά µόνον µε τα φύλλα και µε µερικούς εσωτερικούς κόµβους που αντιστοιχούν σε κλειδιά ενδιαφέροντος. Για παράδειγµα, έστωσαν τα κλειδιά "A", "to", "tea", "ted", "ten", "i", "in" και "inn". Μπορούµε να κατασκευάσουµε το παρακάτω trie: Εικόνα 1.7 Trie Παρατηρούµε ότι όπως αναφέρθηκε, µόνο τα κλειδιά συνοδεύονται από τιµές, ενώ όλοι οι απόγονοι για κάθε κόµβο έχουν κοινό πρόθεµα µε τον κόµβο (τα παιδιά δηλαδή ενός κόµβου είναι strings που έχουν ως prefix τον κόµβο πχ το tea περιλαµβάνει το te που ανήκει στον πατέρα-). Αντίστοιχα, εξετάζουµε πώς τα παρακάτω n-grams µπορούν να αναπαρασταθούν ως tries: 11

24 Eικόνα 1.8 Αναπαράσταση n-grams ως Tries Στην παραπάνω εικόνα, ο κόµβος n1 είναι το κενό, ο κόµβος n2 το i, ο n7 to iv κ.ο.κ., ενώ τα φύλλα τερµατίζουν µε το χαρακτήρα (#). Χρησιµοποιώντας tries, η αναζήτηση ενός κλειδιού µήκους m στην χειρότερη περίπτωση έχει πολυπλοκότητα O(m). Αν n είναι τα στοιχεία του δένδρου, ο αλγόριθµος πραγµατοποιεί O(log(n)) συγκρίσεις κλειδιών, και άρα στη χειρότερη περίπτωση η χρονική πολυπλοκότητα του αλγορίθµου είναι O(mlogn). Eικονα 1.9 Δοµή των n-grams 12

25 1.1.4 N-gram Ανεστραµµένα Ευρετήρια Το n-gram ευρετ ήριο χρησιµοποιεί τα n-grams σα ν όρους ευρετηρίασης. Έστω ότι έχουµε ένα έγγραφο d, το οποίο αποτελεί µία ακολουθία από χαρακτήρες c0, c1,..., cn 1. Ένα n-gram είναι µια υποακολουθία µήκους n. Η εξαγωγή των n-grams από το έγγραφο d µπορεί να γίνει µε την χ ρήση της 1-sliding τεχνικής, η οποία, µετακινεί ένα παράθυρο µήκους n από τον χαρακτήρα c0 στον cn-1 και αποθηκεύει τους χαρακτήρες υπάρχουν στο παράθυρο αυτό. Το i-οστό n-gram που εξάγεται από την αρχική ακολουθία είναι η υποακολουθία ci, ci+1,..., ci+n 1. Θα παρουσιάσουµε ένα παράδειγµα ώστε να γίνει κατανοητή η αναφορά του. Στην εικόνα 1.10 παρουσιάζεται ένα παράδειγµα από λίστες καταχωρήσεων για ένα 3-gram ευρετήριο που κατασκευάστηκε για έγγραφα που περιλαµβάνουν τις συµβολοσειρές string και data. Τα τέσσερα 3- grams str, tri, rin, και ing εξάγονται από την συµβολοσειρά string, και τα υπόλοιπα δυο 3-grams dat and ata εξάγονται από την συµβολοσειρά data. Σηµειώνουµε ότι στην 1-sliding τεχνική, οι διαφορές των θέσεων των 3-grams που εξάγονται από την ίδια συµβολοσειρά είναι 1. Εικόνα Παράδειγµα λιστών καταχωρήσεων του 3-gram ευρετηρίου. Η διαδικασία ερωτήµατος γίνεται σε δυο βήµατα: (1) διάσπαση ενός δοθέντος ερωτήµατος σε πολλαπλά n-grams και αναζήτηση στις λίστες καταχωρήσεων αυτών των n-grams, και (2) εκτέλεση merge-join µεταξύ 13

26 αυτών των λιστών καταχωρήσεων χρησιµοποιώντας το αναγνωριστικό εγγράφου ως παράµετρο ένωσης. Για παράδειγµα, έστω ότι εκτελούµε το ερώτηµα string χρησιµοποιώντας το ευρετήριο της παραπάνω εικόνας. Στο πρώτο βήµα, το ερώτηµα διασπάται σε τέσσερα 3-grams ( str, tri, rin, και ing ) και γίνεται αναζήτηση στις τέσσερις λίστες καταχωρήσεων αυτών των 3-grams. Στο δεύτερο βήµα, εκτελείται merge-join µεταξύ αυτών των λιστών καταχωρήσεων µε σκοπό την ανεύρεση των εγγράφων όπου αυτά τα τέσσερα 3-grams εµφανίζονται διαδοχικά αποτελώντας την συµβολοσειρά string. Τα αναγνωριστικά εγγράφων 7, 44 και 97 επιστρέφονται ως αποτελέσµατα ερωτήµατος αφού όλα αυτά τα έγγραφα περιέχουν τα 3-grams διαδοχικά. Το n-gram ευρετήριο εµφανίζει δυο κύρια πλεονεκτήµατα. Πρώτον, είναι ανεξάρτητο της γλώσσας και δεύτερον, είναι ανεκτικό σε σφάλµατα. Τα δύο αυτά πλεονεκτήµατα οφείλονται στην χρήση της 1-sliding τεχνικής. Τέλος, το n-gram ευρετήριο εµφανίζει και κάποια µειονεκτήµατα. Το µέγεθος του τείνει να είναι µεγάλο και η απόδοση των ερωτηµάτων τείνει να µην είναι καλή. Για το λόγο αυτό διάφορες τεχνικές µελετώνται για την µείωση µεγέθους των n-gram ευρετηρίων. Εφαρµογές Υπάρχουν πολλές εφαρµογές του n-gram ευρετηρίου όπως αναζήτηση συµβολοσειρών, προσεγγιστική αναζήτηση συµβολοσειρών, ανάκτηση πληροφορίας, και ταίριασµα όµοιων ακολουθιών στη Βιοπληροφορική. Η ανάκτηση πληροφορίας είναι η διεργασία όπου αναζητά έγγραφα που περιέχουν µία συµβολοσειρά µια βάσης δε δοµένων κειµένου από ένα ερώτηµα. Το ανεστραµµένο ευρετήριο χρησιµοποιείται ευρέως για την διευκόλυνση της ανάκτησης πληροφορίας. Γενικά, για την κατασκευή του ευρετηρίου, οι λέξεις χρησιµοποιούνται ως όροι ευρετηριοποίησης. Ωστόσο, λόγω της γλώσσας µε ουδέτερα χαρακτηριστικά, τα n-grams που χρησιµοποιούνται συχνά στις ασιατικές γλώσσες όπως τα κορεάτικα, κινέζικα και ιαπωνικά, όπου η εξαγωγή των λέξεων δεν είναι απλή. Σε 14

27 σύγκριση µε το ανεστραµµένο ευρετήριο που βασίζεται σε λέξη, το n-gram ευρετήριο έχει συγκρίσιµη ακρίβεια στην αναζήτηση, αλλά έχει ένα µεγαλύτερο µέγεθος ευρετηρίου και χαµηλότερη απόδοση. Το ταίριασµα ο µοίων ακολουθιών στη Βιοπληροφορική είναι µία λειτουργία που αναζητά ακολουθίες ό µοιες µε ενός δοσµένου ερωτήµατος συµβολοσειράς από µία DNA ή πρωτεινική βάση δεδοµένων. Οι περισσότερες µέθοδοι που έχουν προταθεί εκτελούν ακολουθιακή σάρωση και δεν χρησιµοποιούν ευρετήρια. Με σκοπό την άυξηση της απόδοσης, µέθοδοι που βασίζονται σε τεχνικές ευρετηρίου έχουν προταθεί. Η µέθοδος CAFÉ χρησιµοποιεί n-gram ευρετήρια, και πιο συγκεκριµένα 3-grams για πρωτεινικές ακολουθίες και 9-grams για ακολουθίες DNA. Η απόδοση της CAFÉ είναι πολύ καλύτερη σε σχέση µε προηγούµενες µεθόδους ενώ αντίθετα το µέγεθος του ευρετηρίου της CAFÉ τείνει να είναι σηµαντικ ά µεγαλύτερο από την αρχική βάση δεδοµένων. 1.2 Τεχνικές Δεικτοδότησης N-grams Αναζήτηση Προτύπων Οι Βάσεις Δεδοµένων όλο και περισσότερο αποθηκεύουν δεδοµένα διαφόρων τύπων όπως κείµενα, DNA ακολουθίες, και εικόνες. Αυτά τα δεδοµένα είναι, το λιγότερο, µερικώς µη δοµηµένα, το οποίο δηµιουργεί την ανάγκη για ολοκληρωµένες αναζητήσεις (ή ταίριασµα προτύπων (patterns)). Στην κύρια µνήµη, το ταίριασµα ενός πρότυπου P µε µία συµβολοσειρά S τρέχει σε O( S / P ) στην καλύτερη περίπτωση. Η αναζήτηση πολύ µεγάλων συν όλων δεδοµένων απαιτεί ένα ευρετήριο, παρά τις µεγάλες απαιτήσεις για χώρους αποθήκευσης και τους πιθανούς µεγάλους χρόνους κατασκευής των ευρετηρίων. Τα συστήµατα για έγγραφα που αναπτύσσονται σήµερα χρησιµοποιούν σχεδόν αποκλειστικά για ευρετηριοποίηση λέξεων ανεστραµµένα αρχεία (inverted files) για την αναζήτηση λέξεων-κλειδιών. 15

28 Εντούτοις, η ανάγκη για πλήρη ταίριασµα προτύπων σε αρχεία καταχωρήσεων όπου η έννοια της λέξης δεν υπάρχει, η παραπάνω τεχνική κυριαρχεί ως λύση. Τα δέντρα και οι πίνακες επιθεµάτων παρέχουν µία κλάση ευρετηρίων για το εύρεση προτύπων και είναι γεγονός ότι τα δέντρα επιθεµάτων δουλεύουν καλύτερα όταν χωράνε στην RAM. Ωστόσο, προσπάθειες για την δηµιουργία εκδόσεων οι οποίες λειτουργούν από δίσκους είναι σύγχρονες και σε πειραµατικό στάδιο, και τυπικά επικεντρώνονται σε συγκεκριµένες εφαρµογές. Η βιβλιογραφία αποδίδει αυτό στην κακή τοπικότητα των αναφορών, στα σύνθετα σχήµατα σελιδοποίησης (paging schemes) και τις δο µικές αλλοιώσεις που προκαλούνται από τις εισαγωγές σε µία δο µή. Ένας πίνακας επιθεµάτων αποθηκεύει δείκτες σε µία λίστα από επιθέµατα τα οποία ταξινοµούνται µε λεξικογραφική σειρά, και χρησιµοποιεί δυαδική αναζήτηση για ταίριασµα προτύπων. Ωστόσο, µία τυπική αρχιτεκτονική Βάσης Δεδοµένων αποθηκεύει καταχωρήσεις σε µπλοκ και υποστηρίζει δυναµικές εισαγωγές και διαγραφές οι οποίες κάνουν δύσκολη την συντήρηση της ακολουθιακής αποθήκευσης. Ένας πίνακας επιθεµάτων χρειάζεται O(log2N) µπλοκ προσπελάσεις για αναζήτηση, όπου N είναι το µέγεθος (αριθµός χαρακτήρων) µιας Βάσης Δεδοµένων D. Δύο προσεγγίσεις που απευθύνονται στην ευρετηριοποίηση και βασίζονται σε λειτουργία από δίσκο για πλήρη ταίριασµα προτύπων είναι τα String B-Tree και τα n-gram ανεστραµµένα ευρετήρια. Τα String B-Tree είναι βασικά ένας συνδυασµός των B+-Tree και Patricia Tries. Η γενική δοµή είναι πηγάζει από το B+-Tree, όπου τα κλειδιά είναι δείκτες σε επιθέµατα στην Βάση Δεδοµένων. Κάθε κόµβος είναι οργανωµένος όπως σε ένα Patricia Trie, που βοηθάει στην καθοδήγηση των λειτουργιών αναζήτησης και εισαγωγής. Έ να String B-Tree βρίσκει όλες τις επαναλήψεις ενός πρότυπου P σε O( P + logbn) προσβάσεις δίσκου, όπου B είναι το µέγεθος του µπλοκ. Μία άλλη κατεύθυνση για τις ανάγκες αναζήτησης κειµένου είναι τα n-gram ανεστραµµένα ευρετήρια (n συνεχόµενα σύµβολα) αντί για ολόκληρες λέξεις. Είναι φιλικά προς τον δίσκο διότι βασίζονται σε διαδοχικές σαρώσεις, παρέχουν καλή τοπικότητα 16

29 των αναφορών, και εύκολα προσαρµόζονται στην σελιδοποίηση και τον διαµερισµό. Ωστόσο, η αναζήτηση είναι γραµµικό κόστος, και στο µέγεθος της Βάσης Δεδοµένων και στο µέγεθος του προτύπου. Στην εργασία των Cedric du Mouza και Witold Litwin (Mouza et al., 2009), παρουσιάζεται µία νέα δο µή δεδοµένων για πλήρη-κειµένου αναζήτηση που βασίζεται σε ευρετήρια και ονοµάζεται Αλγεβρική Υπογραφή Ευρετηρίου (Algebraic Signature Index ή AS-Index). Ακολουθεί την οδό ενός ανεστραµµένου αρχείου που βασίζεται σε n-grams. Η νέα ελκυστική του ιδιότητα, µοναδική σε σχέση µε την δηµοσίευση της εργασίας, είναι ο σταθερός χρόνος αναζήτησης στο δίσκο, ανεξάρτητος α πό το µέγεθος της Βάσης Δεδοµένων και το µήκος των προτύπων. Αυτό πηγάζει από την βασική προσέγγιση Βάσεων Δεδοµένων για µεγάλης κλίµακας ευρετηριοποίηση (καλείται κατακερµατισµός ή hashing). Τα πειράµατά τους δείχνουν ότι το AS-Index αποτελεί µία πολύ γρήγορη λύση για την αναζήτηση προτύπων σε µία Βάση Δεδοµένων. Η αναζήτηση στο AS-Index χρειάζεται µόνο δύο αναζητήσεις δίσκου (disk lookups) όταν η hash διεύθυνση χωράει στην κύρια µνήµη. Επίσης, αποδεικνύεται από τα πειράµατά τους ότι είναι µία τάξη µεγέθους γρηγορότερο από τα n-gram ευρετήρια και δύο φορές γρηγορότερο από τα String B-Trees. Η βασική παραλλαγή του AS-Index έχει επιβάρυνση αποθήκευσης περίπου από 5 έως 6. Η παραλλαγή του σχήµατός τους ευρετηριοποιεί µόνο επιλεγµένα n-grams και έχει λιγότερη επιβάρυνση αποθήκευσης στα κόστη των αργών χρόνων αναζήτησης. Όλες αυτές οι ιδιότητες κάνουν το AS-Index µία πρακτική λύση για την ευρετηριοποίηση κειµένου. Σε παρακάτω υποενότητα θα παρουσιάσουµε µία συνοπτική επισκόπηση του AS-Index. Επισκόπηση του AS-Index Το AS-Index είναι κλασικό hash αρχείο µε µεταβλητού µήκους κάδους (εικόνα 1.12). Οι κάδοι δείχνονται από την hash διεύθυνση. Η απλότητα και η απόδοση τέτοιων αρχείων αποτελεί πόλο έλξης για µεγάλο 17

30 αριθµό εφαρµογών. Το κύριο πλεονέκτηµα είναι ο σταθερός χρόνος πρόσβασης, ο οποίος είναι ανεξάρτητος από το µέγεθος του αρχείου και το µέγεθος του προτύπου. Ο σταθερός χρόνος δεν είναι πιθανός για µία tree/trie µέθοδο πρόσβασης. Κάθε κάδος αποθηκεύει µία λίστα από καταχωρήσεις, κάθε µία ευρετηριοποιεί µερικά n-gram στην Βάση Δεδοµένων. Το βασικό AS-Index είναι πυκνό, ευρετηριοποιώντας κάθε n-gram. Η hash λειτουργία παρέχει στον κάδο για µία καταχώρηση που χρησιµοποιεί το n-gram τιµή ίση µε το hash κλειδί. Η hash λειτουργία είναι συγκεκριµένη: Στηρίζεται σ ε αλγεβρικές υπογραφές των n-grams. Η hash δοµή χρησιµοποιεί βασικούς µηχανισµούς για δυναµικότητα, επεκτασιµότητα και διανοµή. Εικόνα Ταίριασµα µε χρήση του AS-Index Μία αναζήτηση για ένα πρότυπο P όπως φαίνεται στην παραπάνω εικόνα περιγράφεται ως εξής: Πρώτον, γίνεται προεπεξεργασία του P για 18

31 τρεις υπογραφές (i) του αρχικού n-gram S1, (ii) του τελικού n-gram S2 και (iii) του επιθέµατος Sp του P µετά το S1. Εφαρµόζοντας hashing στο S1 εντοπίζουµε τον κάδο µε κάθε καταχώρηση e1 ευρετηριοποιώντας ένα n- gram στην Βάση Δεδοµένων µε την υπογραφή του S1. Αντίστοιχα, εντοπίζουµε και τους άλλους κάδους. Θεωρούµε µόνο εκείνα τα ζευγάρια των καταχωρήσεων που βρίσκονται στην ίδια εγγραφή και την σωστή απόσταση µεταξύ τους. Έτσι εντοπίζουµε κάθε συµβολοσειρά S που ταιριάζει µε το P στο αρχικό και τελικό του n-gram, το λιγότερο µε υπογραφή. Ένας αλγεβρικός υπολογισµός AS(e1, e2, Sp) καθορίζει πότε το Sp µπορεί να ταιριάζει µε το επίθεµα του S. Η µέθοδος είναι πιθανολογική στην φύση της, µε µικρή πιθανότητα λαθών. Μπορεί να αποφευχθεί ακόµη και η µικρή πιθανότητα λανθασµένου ταιριάσµατος µε την σύγκριση συµβόλου µε σύµβολο µεταξύ του προτύπου και το αντίστοιχο κοµµάτι της εγγραφής. Περιορίζοντας της προσβάσεις δίσκου στους δύο κάδους που σχετίζονται µε το πρώτο και το τελευταίο n-gram του P, η αναζήτηση στο AS-Index τρέχει ανεξάρτητα από το µέγεθος του P. Το κόστος κάθε διαδικασίας αναζήτησης περιορίζεται στο διάβασµα των δύο αυτών κάδων. Ο hash κατάλογος από µόνος τους µπορεί να γίνει cached από την RAM, ή χρειάζεται το πολύ δύο επιπλέον προσβάσεις δίσκου. Με τον κατάλληλο µηχανισµό δυναµικού hashing που διανέµει τις καταχωρήσεις στην δο µή και κλιµακώνει ο µαλά, το µέγεθος του κάδου αναµένεται να παραµένει οµοιόµορφο αρκετά ώστε να επιτρέψει στο AS-Index να τρέ ξει σε σταθερό χρόνο, ανεξάρτητα από το µέγεθος της Βάσης Δεδοµένων. Συνοπτικά, το AS-Index αποτελεσµατικά αναγνωρίζει ταιριάσµατα µόνο µε δύο αναζητήσεις, για κάθε µήκος προτύπου. Αυτό το αποτέλεσµα επιτυγχάνεται µέσω της εκτεταµένης χρήσης των ιδιοτήτων των αλγεβρικών υπογραφών που έχουν ορίσει και περιγράψει οι συγγραφείς της συγκεκριµένης εργασίας (Mouza et al., 2009). Για λόγους ερευνητικούς και βιβλιογραφικούς παραθέτουµε στην παρακάτω εικόνα τον αλγόριθµο που ανέπτυξαν οι ερευνητές της εργασίας. 19

32 Εικόνα Ο αλγόριθµος AS-Search Ολοκληρώνοντας, µπορούµε να πούµε ότι η µέθοδος των συγγραφέων αποτελεί µία νέα προσέγγιση για την αναζήτηση συµβολοσειρών σε Βάσεις Δεδοµένων, βασιζόµενη σε αλγεβρικές υπογραφές και αλγεβρικούς υπολογισµούς. Η συνεισφορά από την εργασίας τους είναι ένας απλός και γρήγορος αλγόριθµος ο οποίος βρίσκει πρότυπα αυθαίρετου µήκους σε µία Βάση Δεδοµένων αυθαίρετου µεγέθους σε σταθερό χρόνο. Από την ανάλυση και τα πειράµατα στο (Mouza et al., 2009) φαίνεται ότι ξεπερνούν άλλες προσεγγίσεις που βασίζονται σε δίσκο. Μέχρι την στιγµή της δηµοσίευσής της, η εργασία τους αποτελεί µία νέα προσέγγιση για ευρετηριοποίηση, που λαµβάνεται υπόψη της την ερµηνεία των χαρακτήρων σαν σύµβολα σε µία µαθηµατική δοµή για την ανάπτυξη νέων τεχνικών υπολογισµού. 20

33 1.2.2 Ταίριασµα Συµβολοσειρών Η εύρεση όλων των περιπτώσεων από µία διατεταγµένη ακολουθία από bytes (για παράδειγµα µία συµβολοσειρά) σε ένα µεγάλο αρχείο αποτελεί ένα θεµελιώδες πρόβληµα ταιριάσµατος προτύπων. Αποτελεσµατικές λύσεις µε πραγµατικού χρόνου επιδόσεις είναι ελκυστικές για πολλές εφαρµογές, για παράδειγµα online αναζήτηση συµβολοσειρών, λογισµικά επεξεργασίας λέξεων, υπολογιστική βιολογία και ψηφιακή ιατροδικαστική αναζήτηση προτύπων. Οι κοινότητες Βάσεων Δεδοµένων και IR έχουν κάνει σχετική έρευνα για ζητήµατα αναζήτησης συµβολοσειρών, για παράδειγµα προσεγγίσεις επιλογής συµβολοσειρών και top-k ενώσεις, και ψηφιακή ιατροδικαστική αναζήτηση. Στην εργασία τους οι Nan Tang, Lefteris Sidirourgos και Peter Boncz (Tang et al., 2009) επικεντρώνονται στο βασικό πρόβληµα του ακριβούς ταιριάσµατος συµβολοσειρών, αλλά και παρέχουν σηµειώσεις µε εκείνες τις τεχνικές που λύνουν το πρόβληµα. Εστιάζουν στις ακόλουθες πτυχές αποτελεσµατικότητας του προβλήµατος ευρετηριοποίησης ακριβών αναζητήσεων συµβολοσειρών: χρόνος δηµιουργίας ευρετηρίου, χώρος/µέγεθος ευρετηρίου, χρόνος απόκρισης ερωτηµάτων. Αυτές οι παραπάνω πτυχές αποτελεσµατικότητας επηρεάζονται από τις ακόλουθες διαστάσεις: µέγεθος δεδοµένων (επεκτασιµότητα), διανοµή δεδοµένων, συγκεκριµένα στη συχνότητα διανοµής των συστεγαζόµενων γραµµάτων, το µήκος κάθε ερωτήµατος. 21

34 Ιδανικά, θέλουµε να πετύχουµε ένα ευρετήριο το οποίο να έχει µέγεθος παρόµοιο (ή µικρότερο) από τα δεδοµένα εισόδου, να µπορεί να δηµιουργηθεί σε χρόνο κοντά στο ακολουθιακό I/O πέρασµα των δεδοµένων, και να παρέχει χρόνο απόκρισης ερωτηµάτων κοντά στο ακολουθιακό πέρασµα των αποτελεσµάτων των ερωτηµάτων. Και όλα αυτά για κάθε δεδοµένα και κάθε διανοµή ερωτηµάτων. Όλοι αυτοί οι στόχοι είναι πολύ δύσκολο να επιτευχθούν όλοι µαζί, και γίνεται ακόµα δυσκολότερο όταν διαχειριζόµαστε σύνολα δεδοµένων (datasets) µε ο µοιόµορφη παρά ασύµµετρη διανοµή. Τεχνικές Επιθεµάτων Στην κοινότητα των αλγορίθµων, ένα δέντρο επιθεµάτων και ένας πίνακας επιθεµάτων µελετώνται ως δείκτες π ου επιτρέπουν την γρήγορη αναζήτηση συµβολοσειρών. Εξαιτίας του µεγάλου όγκου της πληροφορίας που βρίσκεται στους κόµβους και τις ακµές του δέντρου επιθεµάτων, η επιβάρυνση αποθήκευσης είναι 10 έως 20 φορές σε σχέση µε τα δεδοµένα εισόδου σε καλές υλοποιήσεις, που κάνει τα δέντρα σε πολλές περιπτώσεις µη πρακτικά στις περισσότερες εφαρµογές. Ο πίνακας επιθεµάτων είναι καλύτερος σε σχέση µε τον χώρο αφού απλά κατασκευάζει έναν πίνακα των θέσεων, όπου οι θέσεις αυτές δείχνουν σε επιθέµατα στην συµβολοσειρά µε λεξικογραφική διάταξη. Και για τα δέντρα επιθεµάτων αλλά και για τους πίνακες επιθεµάτων, υπάρχουν γνωστοί αλγόριθµοι µε χωρική και χρονική πολυπλοκότητα O( σ ), όπου σ είναι το µέγεθος της συµβολοσειράς δεδοµένων εισόδου σ. Η εξαιρετική ιδιότητα των πινάκων επιθεµάτων είναι ότι ανεξάρτητα από το ερώτηµα (µικρό ή µεγάλο, συχνό ή σπάνιο), η αναζήτηση είναι απλά µία δυαδική αναζήτηση καθορισµένου κόστους. Μερικές φορές αυτή η δυαδική αναζήτηση, που οδηγεί σε log σ (σε µία συµβολοσειρά σ) I/Os,. Ως εκ τ ούτου, αυτό το µειονέκτηµα µπορεί να µετριαστεί µε την δηµιουργία αραιού RAM B-tree ευρετηρίου στην κορυφή του πίνακα. Ατυχώς, ωστόσο, όλοι οι γνωστοί αλγόριθµοι κατασκευής πινάκων επιθεµάτων δεν κλιµακοποιούνται για µεγάλα σύνολα δεδοµένων. Όταν το µέγεθος των δεδοµένων υπερβαίνει την µνήµη, η απόδοση της 22

35 δηµιουργίας του ευρετηρίου επιδεινώνεται σηµαντικά εξαιτίας της ανάγκης για κοντά στο σ τυχαία γραψίµατα στον δίσκο. Ως αποτέλεσµα, ο καλύτερος κλιµακούµενος αλγόριθµος για γραµµική κατασκευή πίνακα επιθεµάτων, έχει βρεθεί ότι είναι για δεδοµένα µόνο 5 GB. Η δουλειά των (Tang et al., 2009) επικεντρώνεται σε κλιµακούµενες τεχνικές που µπορούν να χρησιµοποιηθούν για τεράστια σύνολα δεδοµένων, όπου τα σύνολα δεδοµένων µπορεί να είναι για παράδειγµα ένα σύνολο από εικόνες σε σκληρούς δίσκους (µεγέθους terabyte και άνω). Τεχνικές Gram Η βασική ιδέα των q-grams είναι η κατασκευή ενός ευρετηρίου πάνω σε όλα τα εµφανιζόµενα πρότυπα από q συστεγαζόµενων γραµµάτων (κυρίως επικεντρωνόµαστε σε bytes αναλόγως το αλφάβητο ένα byte µπορεί να περιέχει λιγότερα ή περισσότερα από ένα γράµµατα). Η παρακάτω εικόνα δείχνει µια συµβολοσειρά για ένα σλόγκαν των Ολυµπιακών Αγώνων του Πεκίνο. Εικόνα 1.13 Συµβολοσειρά και Λίστες Καταχωρήσεων της. Μιλώντας γενικά, ολόκληρη η συµβολοσειρά ευρετηριοποιείται µε χρήση q-grams, µε κάθε q-gram να συσχετίζεται µε µία λίστα από καταχωρήσεις. Οι καταχωρήσεις µπορούν να αποθηκευτούν χρησιµοποιώντας IR µηχανές που ειδικεύονται σε διαδικασίες ανεστραµµένων λιστών, αλλά επίσης έχει δ ειχθεί ότι ένα DBMS µπορεί επίσης να χρησιµοποιηθεί για την αποθήκευση τέτοιων δεδοµένων. Ένα 23

36 δοθέν ερώτηµα ρ (για ακριβή εύρεση) χωρίζεται επίσης σε q-grams G. Εκτελώντας συγχώνευση-ένωση (merge join) στην αναρτηµένη λίστα που σχετίζεται µε το κάθε q-gram στο G, µπορούµε να αναγνωρίσουµε όλες τις επαναλήψεις του ρ. Τα IR συστήµατα επαναλαµβανόµενα βελτιστοποιούν την διεργασία αναρτηµένων λιστών επιλέγοντας ένα merge join το οποίο τοποθετεί τις µικρότερες λίστες στη αρχή. Επίσης, δεν είναι αυστηρά απαραίτητο να ενωθούν οι αναρτηµένες λίστες όλων των εµφανιζόµενων q-grams. Οι αναρτηµένες λίστες µπορεί να κλαδευτούν εφόσον όλα τα γράµµατα στο ερώτηµα παραµένουν επικαλυµµένα από το λιγότερο ένα µη κλαδεµένο gram. Μία τυπική προσέγγιση στην διαδικασία gram ερωτηµάτων είναι η διάταξη των µικρότερων αναρτηµένων λιστών πρώτα και το κλάδεµα των µεγαλύτερων λιστών εφόσον το ερώτηµα παραµένει επικαλυµµένο. Σύγκριση Η δηµιουργία ενός (ανεστραµµένου) ευρετηρίου που βασίζεται σε gram συνοψίζεται στην χρήση µία γρήγορη κλιµακωτή µέθοδο ταξινόµησης, επιτυγχάνοντας τους στόχους επεκτασιµότητας. Σχετικά µε την πλευρά των ερωτηµάτων, η πολυπλοκότητα της διαδικασίας ερωτηµάτων είναι γραµµική στον όγκο όλων των προσεγγισµένων (µη κλαδεµένων) αναρτηµένων λιστών. Το θετικό σηµείο είναι ότι η προσέγγιση του προτύπου είναι ακολουθιακή, και έτσι αποτελεσµατική. Σε σύνολα δεδοµένων κειµένου, υπάρχει παραποίηση στην q-gram διανοµή, το οποίο έχει ως αποτέλεσµα ότι στις µεγάλες αναρτηµένες λίστες γίνεται κλάδεµα στα σχέδια των ερωτηµάτων, βελτιώνοντας κατά πολύ των χρόνο ερωτηµάτων. Το βασικό µειονέκτηµα των δεικτών που βασίζονται σε q-gram είναι ο χώρος αποθήκευσης: 1. κάθε byte αποθηκεύεται q φορές σε καταχωρήσεις του ευρετηρίου πχ., στο παράδειγµα των Ολυµπιακών Αγώνων της Εικόνας το byte 'e' αποθηκεύεται τρεις φορές στα 'one', 'ne ' και 'e w'. 24

37 2. κάθε byte αποθηκεύεται σαν µία ανάρτηση, και στην περίπτωση συνόλων δεδοµένων µεγέθους terabyte το καθένα χρειάζεται έξι bytes για την κάθε µία. Οι αναρτηµένες λίστες αποτελούν µονότονοι αυξανόµενοι αριθµοί, και ως εκ τούτου αποθηκεύονται τακτικά σαν διαφορές (κενά) και συµπιεσµένες. Οι παραποιηµένες διανοµές δεδοµένων συµπιέζονται καλά, δίνοντας µία µείωση µεγέθους τάξεως a > 2x. Ακόµα και µε την συµπίεση, οι gram δείκτες έχουν µέγεθος 2-3x της εισόδου στην περίπτωση των παραποιηµένων δεδοµένων. Στα πιο ο µοιόµορφα δεδοµένα όπως σκληροί δίσκοι µε δυαδικά βίντεο αρχεία, υπάρχουν τάξεις µεγέθους πιο διαφορετικών q-grams (βλέπε παρακάτω πίνακα), και οι περισσότερες αναρτηµένες λίστες είναι µικρές και έτσι δεν µπορούν να συµπιεστούν, έτσι ώστε ο χώρος αποθήκευσης επιδεινώνεται κατά 6x (επιπλέον, το κέρδος από τις κλαδεµένες λίστες µέσω της διαδικασίας ερωτηµάτων είναι πολύ λίγο). Σηµειώνουµε ότι οι πίνακες επιθεµάτων, οι οποίοι περιέχουν πλήρως µετατιθεµένους πίνακες µε καταχωρήσεις, είναι εξ ορισµού µη συµπιεσµένες, και πάραυτα καταλαµβάνουν 6x χώρο. Ένα ακόµη µειονέκτηµα των πινάκων επιθεµάτων είναι ότι όταν το αποτέλεσµα ενός ερωτήµατος χρησιµοποιείται σε πολύπλοκες διαδικασίες ερωτηµάτων πχ., στην περίπτωση ταιριάσµατος συµβολοσειράς regexp, ή όταν σε XML Βάσεις Δεδοµένων οι περιορισµοί των λέξεων κλειδιών είναι συνδυασµένος µε δοµικούς περιορισµούς, πολλαπλά αποτελέσµατα είναι αναγκαίο να ενωθούν. Δοθείσας της διάταξης των gram δεικτών, η ένωση είναι φθηνή, λαµβάνοντας υπόψη ότι οι πίνακες επιθεµάτων αναγκαία αναδιατάσσουν το αποτέλεσµα. Επιµέρους q-gram δείκτες Η επιλογή των επιµέρους q-grams που θα συµπεριληφθούν στο επιµέρους ευρετήριο πρέπει να ικανοποιούν τους ακόλουθους δύο στόχους: 25

38 κάθε q-gram πρέπει να έχει µία ταξινοµηµένη λίστα των καταχωρήσεις µε σκοπό την ελαχιστοποίηση των I/O κατά την διάρκεια της προσκόµισης των καταχωρήσεων, και η τελευταία υποψήφια λίστα θα πρέπει να αρκετά µικρή ώστε να µειώνει το κόστος της ταυτοποίησης κατά των raw δεδοµένων. Αυτές οι δύο προϋποθέσεις συγκλίνουν στο ευρετήριο µόνο εξαιρετικά επιλεκτικά q-grams π.χ., αυτά µε µικρό αριθµό καταχωρήσεων. Πιο επίσηµα, ελαχιστοποιείται η συνάρτηση å (g i ), όπου η F (g i ) F giîg' υποδηλώνει την ακολουθία των q-gram gi. Αυτό το πρόβληµα µπορεί να αναχθεί στο Set Covering πρόβληµα. Σε όρους του Set Covering προβλήµατος, το διάστηµα που θα καλυφθεί είναι όλες οι θέσεις της συµβολοσειράς σ πχ. όλα τα p Î S = {1,..., n}, όπου n είναι το µήκος της σ. Η i συλλογή όλων των αναρτηµένων λιστών P(gi) των q-grams gi, που εµφανίζονται στο σ χρησιµοποιούνται για να καλύψουν το διάστηµα S = {1,..., n}. Το βάρος της κάθε P(gi) είναι ο αριθµός των στοιχείων στην λίστα. Το βαροζυγισµένο σύνολο κορυφών πρόβληµα έχει µελετηθεί σε µεγάλο βαθµό και η βέλτιστη λύση µπορεί να προσεγγιστεί από τον ακόλουθο άπληστο αλγόριθµο µε προσεγγιστικό παράγοντα H( n lnn + 1). Έστω g (g ) = F(g )/ P(g ) Ç S µία συνάρτηση βάρους, που θεωρεί ότι η i i i συχνότητα του q-gram F (g i ) και ο αριθµός των καταχωρήσεων µπορούν να καλυφθούν στη συνέχεια. Σε κάθε βήµα, το q-gram gi µε την ελάχιστη τιµή της βεβαρηµένης συνάρτησης g (g i ) διαλέγεται και προστίθεται στο µερικό ευρετήριο. Στη συνέχεια, όλες οι καταχωρήσεις που η λίστα καταχωρήσεων µπορεί να καλύψει αφαιρούνται από το σύνολο S. Το σύνολο S περιέχει όλες τις ακάλυπτες θέσεις µέχρι αυτήν τη στιγµή. Τελικά, η συνάρτηση g (g i ) επαναυπολογίζεται για όλα τα µη χρησιµοποιηµένα q-grams. Η διαδικασία επαναλαµβάνεται µε την επιλογή το επόµενου µικρότερου βεβαρηµένου q- gram, µέχρι όλες οι θέσεις να καλυφθούν, δηλαδή µέχρι S=0. 26

39 Ο άπληστος αλγόριθµος παράγει µία καλή προσέγγιση της βέλτιστης λύσης σε πολυωνυµικό στο µέγεθος του σ και τον αριθµό των λιστών καταχωρήσεων χρόνο. Ωστόσο, η πολυπλοκότητα παραµένει τετραγωνική, αφού όταν τα n και G είναι µεγάλα, ο κλασικός άπληστος αλγόριθµος αποτυγχάνει: παίρνει ώρες στο να επιλέξει 3-grams από ένα έγγραφο µεγέθους 64MB. Signature-based q-gram δείκτες Υπάρχουν δυο βασικοί περιορισµοί που αφορούν τους επιµέρους q-gram δείκτες: µερικά πολύ συχνά q-grams αναπόφευκτα επιλέγονται για την διασφάλιση του ότι κάθε byte της συµβολοσειράς σ καλύπτεται κατά την διάρκεια αξιολόγησης των ερωτηµάτων, τα ευρετηριοποιηµένα επιµέρους q-grams ενδέχεται να µην είναι επαρκή για να απαντήσουν πλήρως ένα ερώτηµα p, µε αποτέλεσµα την δηµιουργία ενός καταλόγου υποψηφίων. Για να ψαλιδίσουµε τα ψευδώς θετικά από τις λίστες υποψηφίων, η συµβολοσειρά σ πρέπει να εξεταστεί, προκαλώντας χρονοβόρες I/O προσπελάσεις. Για την αντιµετώπιση των ανωτέρω περιορισµών, προτείνεται η χρήση υπογραφών (signatures). Μία υπογραφή s ενός q-gram g ορίζεται ως η συνένωση των δυο bytes που φυλάνε το g στην συµβολοσειρά σ. Πιο συγκεκριµένα, έστω ένα q-gram gi και P(g i ) = { p} η λίστα καταχωρήσεων του. Τότε, η υπογραφή s του gi στην θέση p είναι s = s[p- 1] s[p + q] ένα q- gram µπορεί να έχει τόσες υπογραφές όσες ο αριθµός των καταχωρήσεων στην λίστα καταχωρήσεων του P. Η συλλογή µε όλες τις υπογραφές ενός q- gram g, µαζί µε την λίστα καταχωρήσεων του ορίζεται και ως s-gram. Επίσης, το q-gram g καλείται και infix του s-gram. Τέλος, το πρώτο byte της υπογραφής s αναφέρεται και ως s[1], το δεύτερο ως s[2] κ.ο.κ.. Εάν τα s[1], s[2] δεν αντιστοιχούν σε byte (για παράδειγµα δείχνουν σε θέσεις πριν 27

40 την αρχή ή µετά το τέλος της συµβολοσειράς σ) τότε το σύµβολο $ χρησιµοποιείται. QS-Grams Η σύµπτυξη των q-grams και s-grams καλείται qs-grams µε τους ακόλουθους στόχους: να διατηρήσει λιγότερα grams για τις καταχωρήσεις ευρετηρίου, διάσπαση µεγάλων λιστών καταχωρήσεων για βελτιωµένη απόδοση ερωτήµατος, και συγχώνευση σύντοµων καταχωρήσεων για την καλύτερη αναλογία συµπίεσης. Η παρακάτω εικόνα απεικονίζει µια γενική µορφή του qs-gram. Δύο ιστογράµµατα απαιτούνται, τα Hs και Hq για τα s-grams και q-grams αντίστοιχα. Θεωρώντας ότι q=3, ο αριθµός των διακριτών q-grams είναι 2²⁴ και των q-grams 2⁴. To ιστόγραµµα Hs µπορεί να είναι πολύ µεγάλο για να χωρέσει στην µνήµη, αν και µε κάποιες τεχνικές µπορεί να χωρέσει στην δευτερεύουσα µνήµη. Εικόνα 1.14 Επισκόπηση του QS-Gram 28

41 Όπως φαίνεται στην παραπάνω εικόνα, υπάρχουν λιγότερα q-grams από s-grams και κατά µέσο όρο, η συχνότητα ενός q-gram είναι υψηλότερη από ενός s-gram. Ας υποθέσουµε ότι ένα όριο t χρησιµοποιείται για να καθοριστεί αν ένα gram είναι συχνό ή όχι, τα grams ταξινοµούνται ως εξής: 1. Σπάνια q-grams (frequency < t) δεν θα διαχωριστούν καθόλου. Αυτά τα q-grams διατηρούνται σε ένα λεξικό q-gram, όπως φαίνεται στο δεξιό µέρος της εικόνας. 2. Συχνά s-grams (frequency < t) καταλήγουν σε µία ιδιωτική λίστα καταχωρήσεων. Αναφερόµενοι στο αριστερό µέρος του Ηs στην εικόνα, ανήκουν σε ένα λεξικό s-gram. 3. Για τα grams ανάµεσα δηλ. Q-grams µς συχνότητα όχι λιγότερη από t και s-grams µε συχνότητα λιγότερη από t, µία προσέγγιση που βασίζεται σε κατακερµατισµό χρησιµοποιείται. Εάν ένα q-gram g έχει µεγάλη λίστα καταχωρήσεων, αλλά έχει πολλά s-grams µε µικρές λίστες καταχωρήσεων, η συνάρτηση κατακερµατισµού h() χρησιµοποιείται για την συνένωση των s-gram λιστών σε µία. Για την κατασκευή του q-gram λεξικού που βασίζεται σε κατακερµατισµό, ένα αριθµός από buckets κατανέµεται δυναµικά σε κάθε q-gram σύµφωνα µε τις συχνότητες των q-grams. Για παράδειγµα, εάν ένα q-gram ge µε συχνότητα 35 είναι να διαχωριστεί και το όριο t = 10, τέσσερα buckets θα διατεθούν για το ge. Καθώς η συνάρτηση κατακερµατισµού τυχαία συνενώνει σπάνιες υπογραφές, ο αριθµός των καταχωρήσεων που καταλήγουν στα buckets προσεγγίζει το t. Τα κλειδιά στο q-gram ευρετήριο που βασίζεται σε κατακερµατισµό είναι απλά q-grams που στοιχίζονται σε σειρά, και οδηγούνται σε ένα array από buckets. Για την αναζήτηση ενός σπάνιου s- gram, το infix q-gram g που επιστρέφεται από την αναζήτηση πρώτο, µετά την εφαρµογή την συνάρτησης κατακερµατισµού h() στο s για τον υπολογισµό του επιµέρους bucket, όπως φαίνεται στην εικόνα Ο 29

42 κύριος λόγος της χρήσης της συνάρτησης κατακερµατισµού είναι η συνένωση µικρών λιστών καταχωρήσεων των s-grams που συνδέονται µε ένα q-gram, έτσι ώστε να έχουµε περίπου ίσου µήκους t λιστών καταχωρήσεων. Η βεβαιότητα ότι οι λίστες καταχωρήσεων έχουν το λιγότερο επιτρεπτό µέγεθος εξασφαλίζεται µε το ότι ακόµα και σε skewed gram κατανοµές ο όγκος αποθήκευσης κυριαρχείται από καταχωρήσεις και όχι από το λεξικό, και διασφαλίζει επίσης ότι η συµπίεση είναι λειτουργική για όλες τις καταχωρήσεις N-Gram Ευρετήριο δυο ή Περισσοτέρων Επιπέδων Το δυο επιπέδων n-gram ανεστραµµένο ευρετήριο (two-level n-gram inverted index ή απλά n-gram/2l index) µειώνει σηµαντικά το µέγεθος και βελτιώνει την απόδοση ερωτήµατος καθώς διατηρεί τα πλεονεκτήµατα του n-gram ευρετηρίου. Το µεγάλο µέγεθος του n-gram ευρετηρίου οφείλεται κυρίως στην πλεονασµατικότητα των πληροφοριών θέσης. Στο n-gram/2l ευρετήριο οι θέσεις πληροφορίας αναπαριστούν το αναγνωριστικό (identifier) του εγγράφου και τα offsets εντός του εγγράφου που τα n-gram εµφανίζονται. Αυτό το προτεινόµενο ευρετήριο εξαλείφει τον πλεονασµό της θέσης πληροφορίας που υπάρχει στο n-gram ευρετήριο. Η βασική ιδέα για την εξάλειψη του πλεονασµού της θέσης πληροφορίας είναι η κατασκευή του ευρετηρίου σε δυο βήµατα. Για την κατασκευή δυο βηµάτων, τα συνεχόµενα n-gram θεωρούνται ως υποακολουθία και αποθηκεύει α) τις θέσεις της υποακολουθίας στα έγγραφα και β) τις θέσεις των n-grams στην υποακολουθία. Το ευρετήριο για τις υποακολουθίες ονοµάζεται back-end index και το ευρετήριο για τα n-grams front-end index. Το n-gram/2l ευρετήριο έχει τρεις εξαιρετικές ιδιότητες. Πρώτον, το µέγεθος του n-gram/2l ευρετηρίου είναι κλιµακούµενο µε το µέγεθος της βάσης δεδοµένων. Ο λόγος του µεγέθους του n-gram/2l ευρετηρίου προς το µέγεθος του συµβατικού n-gram ευρετηρίου µειώνεται όταν το µέγεθος της βάσης δεδοµένων µεγαλώνει. Έτσι, η µείωση του µεγέθους του ευρετηρίου είναι αξιοσηµείωτη σε µεγάλες βάσεις δεδοµένων. Δεύτερον, η απόδοση 30

43 ερωτήµατος του n-gram/2l ευρετηρίου σε σχέση µε το συµβατικό n-gram ευρετήριο αυξάνει καθώς η βάση δεδοµένων µεγαλώνει, κάνοντας την βελτίωση της επίδοσης του ερωτήµατος αξιοσηµείωτη σε µεγάλες βάσεις δεδοµένων. Τρίτον, ο χρόνος εκτέλεσης ερωτήµατος αυξάνει ελαφρώς µόνο όταν το µήκος του ερωτήµατος µεγαλώνει, σε αντίθεση µε το n-gram ευρετήριο όπου αυξάνει δραµατικά. Δοµή Ευρετηρίου Η παρακάτω εικόνα απεικονίζει την δοµή του n-gram/2l ευρετηρίου, που περιέχει το back-end index και το front-end index. Το back-end index αποθηκεύει τα απόλυτα offsets των υποακολουθιών µέσα στα έγγραφα, και το front-end index τα σχετικά offsets των n-grams µέσα στις υποακολουθίες. Εικόνα Δοµή του n-gram/2l ευρετηρίου 31

44 Αλγόριθµος Κατασκευής Ευρετηρίου Το n-gram/2l ευρετήριο κατασκευάζεται µέσα από µια διαδικασία που περιγράφεται στα επόµενα τέσσερα βήµατα: 1. εξαγωγή υποακολουθιών, 2. κατασκευή του back-end index, 3. εξαγωγή των n-grams και 4. κατασκευή του front-end index. Κατά την εξαγωγή των υποακολουθιών, το µήκος των υποακολουθιών είναι σταθερό και ίσο µε m, και οι συνεχόµενες υποακολουθίες επικαλύπτουν η µία την άλλη κατά n-1. Ο λ όγος αυτής της υπερκάλυψης είναι αποτροπή χασίµατος ή επανάληψης n-grams, για παράδειγµα εξαγωγή ούτε περισσότερων ούτε λιγότερων από όσα χρειάζονται. Το Θεώρηµα (Kim et al., 2005, Θεώρηµα 1 - σελίδα 4) αποδεικνύει την ορθότητα αυτής µεθόδου. Έπειτα, η (n-1)-καλυπτόµενη υποακολουθία µήκους m καλείται ως m-υποακολουθία. Το n αναφέρεται στο µήκος των n-gram, και m το µήκος των m-υποακολουθιών. Η παρακάτω εικόνα δείχνει τον αλγόριθµο κατασκευής του n- gram/2l ευρετηρίου. Αυτός ο αλγόριθµος καλείται n-gram/2l Index Building. Στο βήµα 1, ο αλγόριθµος εξάγει m-υποακολουθίες από ένα σύνολο από έγγραφα τέτοιες ώστε να επικαλύπτονται η µία από την άλλη κατά n-1. Θεωρώντας ότι το έγγραφο είναι µία ακολουθία από c0, c1,, cn-1 χαρακτήρες, ο αλγόριθµος εξάγει τις m-υποακολουθίες ξεκινώντας από τον ên - n+ 1ú χαρακτήρα ci*(m-n+1) για όλα τα i µε 0 i ê ëm- n+ 1 ú. Εάν το µήκος της û τελευταίας m-υποακολουθίας είναι λιγότερο από m, ο αλγόριθµος τοποθετεί κενούς χαρακτήρες στην m-υποακολουθία έτσι ώστε να εξασφαλιστεί το µήκος m. Στο βήµα 2, ο αλγόριθµος κατασκευάζει το backend index χρησιµοποιώντας τις m-υποακολουθίες που ελήφθησαν από το 32

45 βήµα 1. Γι α κάθε m-υποακολουθία s που διαπιστώνεται f φορές σε ένα έγγραφο d στα offsets o1,..., of µία καταχώρηση < d, [ o1,..., of ] > προσαρτίζεται στην λίστα καταχωρήσεων του s. Στο βήµα 3, ο αλγόριθµος εξάγει τα n-grams από το σύνολο των m-υποακολουθιών που ελήφθησαν από το βήµα 1 µε την χρήση της 1-sliding τεχνικής. Στο βήµα 4, ο αλγόριθµος κατασκευάζει το front-index χρησιµοποιώντας τα n-grams που ανακτήθηκαν στο βήµα 3. Για κάθε n-gram g που διαπιστώνεται f φορές σε µία m-υποακολουθία u στα offsets o1,..., of, µία καταχώρηση < d, [ o1,..., of ] > προσαρτίζεται στην λίστα καταχωρήσεων του g. Εικόνα Αλγόριθµος Κατασκευής n-gram/2l Ευρετηρίου 33

46 Παράδειγµα Στην εικόνα παρακάτω φαίνεται ένα παράδειγµα της κατασκευής του n-gram/2l ευρετηρίου. Έστω ότι n=2 και m=4. Το σχεδιάγραµµα (a) της εικόνας δείχνει το σύνολο των εγγράφων και το (b) το σύνολο των 4- υποακολουθιών που εξάγονται από τα έγραφα. Εφόσον οι 4-υποακολουθίες εξάγονται µε τέτοιο τρόπο ώστε να επικαλύπτονται κατά 1 (δηλ. n-1), αυτές που εξάγονται από το έγγραφο 0 είναι οι ABCD, DDAB, και BBCD. Το σχεδιάγραµµα (c) δείχνει το back-end index που κατασκευάζεται από αυτές τις 4-υποκαλουθίες. Εφόσον η 4-υποακλουθία ABCD εµφανίζεται στα offsets 0, 3 και 6 στα έγγραφα 0, 3 και 4 αντίστοιχα, οι καταχωρήσεις <0,[0]>, <3,[3]>, και <4,[6]> προσαρτίζονται στην λίστα καταχωρήσεων της 4-υποακολουθίας ABCD. Το σχεδιάγραµµα (d) δείχνει το σύνολο των 4- υποακολουθιών και των αναγνωριστικών τους. Το σχεδιάγραµµα (e) δείχνει το σύνολο των 2-grams που εξάγονται από τις 4-υποακολουθίες του (d). Εφόσον τα 2-grams εξάγονται µε την 1-sliding τεχνική, αυτά που θα εξαχθούν από την 4-υποακολοθία 0 είναι τα AB, BC, και CD. Το σχεδιάγραµµα (f) δείχνει το front-end index που κατασκευάζεται από αυτά τα 2-grams. Αφού το 2-gram AB εµφανίζεται στα offsets 0, 2, 1, και 2 στις 4-υποακολουθίες 0, 3, 4, και 5 αντίστοιχα, οι καταχωρήσεις <0,[0]>, <3,[2]>, <4,[1]>, και <5,[2]> προσαρτίζονται στην λίστα καταχωρήσεων του 2-gram AB. 34

47 Εικόνα Παράδειγµα n-gram/2l Ευρετηρίου Αλγόριθµος Επεξεργασίας Ερωτήµατος Ο αλγόριθµος επεξεργασίας ερωτήµατος περιλαµβάνει τα ακόλουθα δυο βήµατα: (1) αναζήτηση στο front-end index για την ανάκτηση υποψήφιων αποτελεσµάτων και (2) αναζήτηση στο back-end index µε σκοπό να βελτιωθούν τα υποψήφια αποτελέσµατα. Στο πρώτο βήµα, επιλέγονται οι m-υποακολουθίες που καλύπτουν ένα ερώτηµα συµβολοσειράς µε την αναζήτηση στο front-end index µε τα n-grams που εξάγονται από το ερώτηµα συµβολοσειράς. Οι m-υποακολουθίες που δεν καλύπτουν το ερώτηµα συµβολοσειράς φιλτράρονται από αυτό το βήµα. Στο δεύτερο βήµα επιλέγονται τα έγγραφα που έχουν ένα σύνολο από m-υποακολουθίες {Si} που περιέχουν το ερώτηµα συµβολοσειράς από την αναζήτηση στο back-end index µε τις m-υποακολουθίες που ανακτήθηκαν στο πρώτο βήµα. Τα έγγραφα που περιέχουν µία ή περισσότερες m-υποακολουθίες που ανακτήθηκαν κατά το πρώτο βήµα αναπαριστούν ένα σύνολο από υποψήφια αποτελέσµατα που ικανοποιούν τις αναγκαίες συνθήκες του ερωτήµατος. Τα 35

48 τελικά αποτελέσµατα µπορούν να ληφθούν στο δεύτερο βήµα µε µια διαδικασία βελτίωσης που αφαιρεί τα λανθασµένα θετικά αποτελέσµατα. Η παρακάτω εικόνα παρουσιάζει περιγραφικά τα βήµατα και την εκτέλεση του αλγορίθµου n-gram/2l Index Searching. Εικόνα Αλγόριθµος n-gram/2l Index Searching Στο βήµα 1, ο αλγόριθµος διαχωρίζει το ερώτηµα συµβολοσειράς Q σε πολλαπλά n-grams και αναζητά στις λίστες καταχωρήσεων αυτών των n- grams στο front-end index. Έπειτα, εκτελείται outer join συγχώνευση µεταξύ αυτών των λιστών καταχωρήσεων χρησιµοποιώντας το αναγνωριστικό των m-υποακολουθιών που καλύπτει το Q. Δεδοµένου ότι µία m-υποακολουθία καλύπτει το Q, τυπικά δεν έχει όλα τα n-grams που εξάγονται από το Q, ο αλγόριθµος εκτελεί συγχώνευση outer join στο βήµα 1.2. Εδώ, ο αλγόριθµος χρησιµοποιεί την offset πληροφορία των 36

49 καταχωρήσεων που θα συγχωνευτούν µε σκοπό να ελέγξει εάν η m- υποακολουθία καλύπτει το Q. Στο βήµα 2 ο αλγόριθµος εκτελεί outer join συγχώνευση µεταξύ των λιστών καταχωρήσεων χρησιµοποιώντας το αναγνωριστικό ως χαρακτηριστικό ένωσης (join attribute). Αναγνωρίζει το σύνολο των m-υποακολουθιών που έχουν τα ίδιο αναγνωριστικό εγγράφου di και εκτελεί µια βελτί ωση. Στο βήµα 2.1 ο αλγόριθµος χρησιµοποιεί την offset πληροφορία των καταχωρήσεων που θα συγχωνευτούν µε σκοπό να ελέγξει εάν αυτό το σύνολο των m-υποακολουθιών περιέχει το Q. Εάν ναι, το di επιστρέφεται ως αποτέλεσµα ερωτήµατος Στατική Δοµή Κλαδέµατος N-Gram Ευρετηρίων (ΤinyLex) Τα ανεστραµµένα ευρετήρια που χρησιµοποιούν ακολουθίες από χαρακτήρες (n-grams) ως όρους παρέχουν έναν ανεκτικό σε σφάλµατα και ανεξάρτητο γλώσσας τρόπο για ερωτήµατα σε αυθαίρετες υποσυµβολοσειρές και για προσεγγιστικό ταίριασµα σε ένα κείµενο, αλλά παρουσιάζουν και έναν αριθµό από πρακτικά προβλήµατα: έχουν ένα πολύ µεγάλο αριθµό από όρους, έχουν πολύ κοστοβόρους worst-case χρόνους ερωτηµάτων και δεν µπορούν να αντιµετωπίσουν πολύ µικρά ερωτήµατα συµβολοσειράς. Στα ευρετήρια π ου βασίζονται σε κείµενο, η στατική δο µή κλαδέµατος ευρετηρίου επιτυγχάνει µείωση του του µεγέθους του ευρετηρίου διατηρώντας την ακρίβεια σε βάρος της ανάκλησης. Αξιοποιώντας τη µοναδική δοµή ένταξης n-gram όρων µε διαφορετικά µήκη, δείχνεται ότι το µέγεθος του λεξικού του n-gram ευρετηρίου µπορεί να µειωθεί από 7 έως 15 φορές χωρίς καµία απώλεια της ανάκλησης, και χωρίς καµία αύξηση ούτε στο µέγεθος του ευρετηρίου ή στο χρόνο ερωτήµατος. Επειδή το λεξικό αποθηκεύεται συνήθως στην κύρια µνήµη, αυτό µειώνει σηµαντικά τη µνήµη που απαιτείται για τα ερωτήµατα. Ταυτόχρονα, η κατασκευή του [Derrick Coetzee, 2008] είναι το πρώτο επικαλυπτόµενο δείκτη ευρετήριο για την τοποθέτηση συντονίσιµων worst-case ορίων για ψευδώς θετικά και επιτρέπει αποτελεσµατικά ερωτήµατα σε συµβολοσειρές οποιουδήποτε µήκους. 37

50 Θεωρούµε το ακόλουθο ακριβούς ταιριάσµατος πρόβληµα: Δοθέντος µιας συλλογής από έγγραφα, εντοπίστε γρήγορα όλες τις εµφανίσεις τυχαίων συµβολοσειρών σ' αυτήν την συλλογή. Η συλλογή αυτή µπορεί να περιέχει κάθε είδους δεδοµένου, δοµηµένο µε οποιοδήποτε τρόπο. Τα τυπικά ανεστραµµένα ευρετήρια που βασίζονται σε λέξεις παρέχουν µικρή βοήθεια για την αναζήτηση αρχείων που δεν έχουν σαφή δοµή των λέξεων, όπως αλληλουχίες γονιδιώµατος και δεδοµένα εικόνας. Η αποτελεσµατική αναζήτηση υψηλά δο µηµένων δεδοµένων, όπως αρχεία γλώσσας προγραµµατισµού ή XML, συνήθως απαιτεί ειδικές γνώσεις της γραµµατικής και µια ακριβή φάση parsing. ένα απλό ευρετήριο που βασίζεται σε λέξη, δεν θα είναι αποτελεσµατικό για την αναζήτηση σε µια βάσης δεδοµένων πηγαίου κώδικα για το "%s" ή σε µια LATEX βάση δεδοµένων για x^2/4. Τα ευρετήρια που βασίζονται σε λέξη είναι επίσης εξαρτώµενα από τη γλώσσα: οι stopword λίστες τους και οι αλγόριθµοι που προκύπτουν εξαρτώνται ειδικά από την γλώσσα-πηγή, και για κείµενα γραµµένα σε ασιατικές γλώσσες ακόµη και το σπάσιµο της λέξης απαιτεί σύνθετες τεχνικές που σχετίζονται µε την γλώσσα. Για τους λόγους αυτούς, τα ευρετήρια που βασίζονται σε λέξη δεν είναι καλά προσαρµοσµένα σε ένα σύστηµα που πρέπει να ψάξει ετερογενή δεδοµένα µε οµοιόµορφο τρόπο. Τα κλασικά n-gram ευρετήρια, τα οποία αποθηκεύουν την τοποθεσία κάθε ακολουθίας n χαρακτήρων εισόδου για συγκεκριµένο n, ξεπερνούν αυτούς τους περιορισµούς. Είναι ανεξάρτητα της γλώσσας και εύκολα γενικεύσιµα γ ια προσεγγιστικό ταίριασµα, το οποίο είναι σηµαντικό για εφαρµογές Βιοπληροφορικής καθώς επίσης και για ερωτήµατα σε κείµενα που περιέχουν OCR σφάλµατα ή τυπογραφικά λάθη. Η επιλογή του n είναι στη πρόθεση του κατασκευαστή και επιλέγεται µε βάση το τι είναι πιο αποτελεσµατικό για την εκάστοτε εφαρµογή: εάν το n είναι πολύ µικρό, κάθε όρος θα έχει µεγάλη λίστα καταχωρήσεων και τα ερωτήµατα θα απαιτούν µεγάλους αριθµούς από αναζητήσεις όρων, κάνοντας τα ερωτήµατα ακριβά, ενώ καθώς το n αυξάνεται ο αριθµός των όρων και το συµπιεσµένο µέγεθος ευρετηρίου αυξάνει εκθετικά. 38

51 Μια σηµαντική σχεδιαστική επιλογή σε ένα n-gram ευρετήριο είναι είτε η αποθήκευση των offset λιστών κάθε n-gram σε κάθε έγγραφο είτε η αποθήκευση µόνο των λιστών εγγράφων. Εάν οι offset λίστες αποθηκεύονται, τότε η επίτευξη υψηλής ακρίβειας και ανάκλησης για τα αποτελέσµατα του ερωτήµατος είναι απλή, µε τη χρήση offset σχετικών πληροφοριών για την ευθυγράµµιση των λιστών καταχωρήσεων πριν από την διασταύρωση, για παράδειγµα το σύστηµα [Kim et al., 2005] χρησιµοποιεί αυτή τη µέθοδο. Για µικρές τιµές του n, το µέγεθος του ευρετηρίου χωρίς τις offset λίστες είναι γραµµικό, αλλά καθώς το n αυξάνει ο αριθµός των όρων αυξάνει εκθετικά µε το n και η αποθήκευση του λεξικού αρχίζει να καταστρέφει τον χώρο του ευρετηρίου. Επειδή τα λεξικά αποθηκεύονται στην κύρια µνήµη, το µέγεθος του λεξικού επιδρά στον χρόνο φόρτωσης και στις απαιτήσεις σε µνήµη της µηχανής ερωτηµάτων. Επιπλέον, η απόρριψη των λιστών καταχωρήσεων εισάγει ένα νέο πρόβληµα: τα ερωτήµατα συντηρητικά υπερεκτιµήσιµα. Στην γλώσσα της σχετικότητας των ερωτηµάτων, διατηρείται η τέλεια ανάκληση, αλλά µπορεί να έχει αυθαίρετα χαµηλή ακρίβεια. Ωστόσο, τα κλασικά n-gram ευρετήρια χωρίς offset πληροφορία δεν σχεδιάζονται για να παρέχουν worst-case εγγυήσεις ακρίβειας. Για παράδειγµα, εάν ένα n-gram ευρετήριο σε µία συλλογή περιέχει πολλές εκτελέσεις ενός απλού χαρακτήρα θα τείνει να έχει πολύ φτωχή συµπεριφορά σε ερωτήµατα που περιέχουν υψηλές εκτελέσεις αυτού του χαρακτήρα. Αυτή η απρόβλεπτη συµπεριφορά είναι ένα σοβαρό πρόβληµα για διαδραστικές εφαρµογές, όπου ο χρήστης θα πρέπει να αντιµετωπίζεις µεγάλες καθυστερήσεις επεξεργασίας για ερωτήµατα που παράγουν µικρά σύνολα αποτελεσµάτων. Ένα άλλο πρόβληµα µε τα κλασικά n-gram ευρετήρια είναι ότι τα ερωτήµατα σε συµβολοσειρές µικρότερες από n χαρακτήρες είναι ακριβά και περίπλοκα: µπορούν να βρεθούν κατά την ανάκτηση όλων των όρων του ευρετηρίου που περιέχουν το ερώτηµα και ενοποιώντας τα. Λαµβάνοντας υπόψιν ότι ο αριθµός των όρων που ανακτώνται αυξάνει γραµµικά καθώς τα 39

52 ερωτήµατα συµβολοσειρών γίνονται µεγαλύτερα, το ευρετήριο αυξάνεται εκθετικά καθώς γίνονται µικρότερα, και ένα δευτερεύων ευρετήριο απαιτείται στο λεξικό για τον εντοπισµό αυτών των όρων. Η εναλλακτική του να υπάρχουν λίστες καταχωρήσεων για όλα τα n-grams µήκους το πολύ n αυξάνει σηµαντικά το µέγεθος ευρετηρίου, συνήθως διπλασιάζοντάς το. Το TinyLex αποτελεί ένα n-gram ευρετήριο που ελαχιστοποιεί το µέγεθος του λεξικού και εξαλείφει την worst-case συµπεριφορά κρατώντας ανταγωνιστικά την ανάκληση και την ακρίβεια σε σχέση µε τα κλασικά n- gram ευρετήρια. Αυτό επιτυγχάνεται µε την επιλεκτική ενσωµάτωση n- grams πολλαπλών µηκών, και αποτελεσµατικά παρέχει ένα αυθαίρετα µεγάλο πλαίσιο. Η κατασκευή του επιτρέπει επίσης απλά, αποτελεσµατικά ερωτήµατα σε µικρές συµβολοσειρές. Επειδή τα TinyLex ευρετήρια χρησιµοποιούν πολλών µηκών n-gram, δεν παραµετροποιούνται από το µήκος του n-gram, αντιθέτως παραµετροποιούνται από µια οριακή τιµή t τοποθετώντας ενός άνω όριο για τον αριθµό των ψευδώς θ ετικά αποτελεσµάτων του ερωτήµατος. Το ευρετήριο κατασκευάζεται µε µια διαδικασία multipass που εξετάζει το µήκος ενός n-gram την φορά, αρχίζοντας µε το µικρότερο, και υπολογίζει το µέγεθος του ερωτήµατος του κάθε τέτοιου n-gram. Ένα n-gram προστίθεται στο λεξικό αν η πραγµατική λίστα καταχωρήσεων είναι σηµαντικά µικρότερη από τον κατάλογο ερωτηµάτων του. Με την παρακολούθηση των επιµέρους αποτελεσµάτων του ερωτήµατος και το κλάδεµα του καταλόγου των υποψήφιων n-grams από πέρασµα σε πέρασµα, η αποδοτική κατασκευή του ευρετηρίου πάνω από ένα ευρύ φάσµα µηκών γίνεται πρακτικά δυνατή. Ορισµοί Θεωρούµε το παρακάτω απλοποιηµένο πρόβληµα: έστω ότι έχουµε µία συλλογή εγγράφων και ένα όριο t, και θέλουµε να εξασφαλίσουµε ότι, για κάθε συµβολοσειρά µήκους µεταξύ nmin και nmax εµφανίζεται στην συλλογή εγγράφων, το αποτέλεσµα του ερωτήµατος έχει το πολύ t ψευδώς θετικά. Με 40

53 άλλα λόγια, το αποτέλεσµα του ερωτήµατος σε συµβολοσειρές που δεν εµφανίζονται στην συλλογή είναι (προς το παρόν) άνευ σηµασίας. Τυπικά, θεωρούµε το αλφάβητο Σ, τέτοιο ώστε S : Σ * (Σ * ) που αποδίδει το σύνολο όλων των υποσυµβολοσειρών µιας συγκεκριµένης συµβολοσειράς, και η συλλογή εγγράφων θεωρείται ως µια συλλογή των συµβολοσειρών Di στο συνάρτηση ερωτήµατος Σ * ( i! ). Κάθε ευρετήριο προϋποθέτει µία Q : Σ * (!) ερωτήµατος για κάποια δοσµένη συµβολοσειρά, και που παράγει το αποτέλεσµα ( ) = n : s S( D n ) P s { } η πραγµατική λίστα καταχωρήσεων για το s. Επιδιώκουµε ένα ευρετήριο αποδίδοντας ένα Q που ικανοποιεί την: s Σ * (n min s n max P(s) > 0 Q(s) P(s) t (1) Όπως σε ένα τυπικό ανεστραµµένο ευρετήριο, επιλέγουµε ένα λεξικό L (Σ * ) και το ευρετήριο αποθηκεύει ρητά την P(s) για όλα τα s L. Σε ένα τυπικό ανεστραµµένο ευρετήριο, το Q ορίζεται ως Q(q) = s S(q) P(s) εάν T (q) L αλλιώς Q(q) =, όπου T(q) είναι το term set του q, δηλαδή ένα σύνολο από πιθανούς όρους ευρετηρίου που εξάγονται από το q. Για τα ευρετήρια που βασίζονται σε λέξεις, αυτοί είναι οι λέξεις του q. Για τα κλασικά n-gram ευρετήρια αυτοί είναι οι υποσυµβολοσειρές του q µε σταθερό µήκος. Εφόσον το s S(q) προϋποθέτει ότι P(s) P(q), έχουµε Q(q) P(q). Οι όροι που δεν υπάρχουν στο λεξικό δεν θα εµφανιστούν πουθενά. Ωστόσο, σε ένα µεταβλητού µήκους ευρετήριο όπως το TinyLex, έχουµε T(q) = S(q), και κάθε L τέτοιο ώστε S(q) L για όλα τα ερωτήµατα q που επιστρέφουν αποτελέσµατα θα είναι πολύ µεγάλα για σαφή παρουσίαση. Για να αποφύγουµε αυτό το πρόβληµα, θεωρούµε ότι οι όροι που δεν υπάρχουν στο Q(q) = λεξικό ρητά εµφανίζονται παντού, και ορίζουµε ότι: s (S(q) L) P(s). 41

54 Απλή Κατασκευή Σάρωσης Οι απαιτήσεις ικανοποιούνται µε την χρήση µεταβλητού µήκους n- gram ευρετηρίου που περιέχει όρους µε διάφορα µήκη. Ας αναφερθούµε σε ένα απλό παράδειγµα. Θεωρούµε ότι το ευρετήριο περιέχει το n-gram jugg και ότι θέλουµε να προσδιορίσουµε εάν θα πρέπει να προσθέσουµε το juggl στο ευρετήριο. Σε πολλές συλλογές, το juggl θα έχει ακριβώς την ίδια λίστα καταχωρήσεων µε το jugg. Κάθε ερώτηµα συµβολοσειράς που περιέχει το juggl επίσης περιέχει το jugg, έτσι προσθέτοντας το juggl δεν καταργεί επιπλέον έγγραφα, και δεν θα πρέπει να προστεθεί. Πιο γενικά, εάν το Q(s) είναι κοντά στο P(s), η πρόσθεση του s στο L θα πρόσθεση µικρή πληροφορία. Για να εκµεταλλευτούµε αυτό, κατασκευάζουµε έναν multipass άπληστο αλγόριθµο, ο οποίος παρουσιάζεται αναλυτικά στην παρακάτω εικόνα. Η διαδικασία κάνει ένα πέρασµα από την συλλογή για κάθε τιµή του n από nmin έως nmax, ξεκινώντας µε το µικρότερο, και υπολογίζει την λίστα καταχωρήσεων του κάθε n-gram στην συλλογή (γραµµές 3-6). Στο τέλος κάθε περάσµατος, το µερικώς κατασκευασµένο ευρετήριο ερωτάται για κάθε n-gram που συναντά κατά το πέρασµα (γραµµή 8). Κάθε n-gram που εµφανίζει t ή περισσότερα ψευδώς θετικά, προστίθεται στο ευρετήριο (γραµµές 9 12). Εικόνα 1.19 Ψευδοκώδικας Απλής Κατασκευής Ευρετηρίου 42

55 Το ευρετήριο που προκύπτει θα ικανοποιεί την σχέση (1) της προηγούµενης υποενότητας εξαιτίας του ότι ο αλγόριθµος έχει επισκεφτεί κάθε συµβολοσειρά που ικανοποιεί την συνθήκη nmin s nmax Λ P(s) > 0, και την προσθέτει (την συµβολοσειρά) στο L εάν δεν ικανοποιείται η συνθήκη Q(s) - P(s) t, και Q(s) = P(s) για κάθε s L. Επιπλέον, αυτό το σύνολο είναι ελάχιστο µε την έννοια ότι το Q συνεπάγεται από κάθε κατάλληλο υποσύνολο του L που αποτυγχάνει να ικανοποιήσει την συνθήκη (1): επειδή µόνο όροι µεγαλύτερου ή ίσου µεγέθους προστίθενται µετά την πρόσθεση ενός δοθέντος n-gram, και κανένας όρος δεν µπορεί να είναι υποσυµβολοσειρά του s, δεν επηρεάζουν το Q(s). Έτσι, εάν το s ικανοποιεί την Q(s) - P(s) > t όταν αυτό προστίθεται, θα ικανοποιεί ξανά αυτήν εάν το s από µόνο του αφαιρείται. Από την άλλη πλευρά, αυτή η κατασκευή δεν παράγει απαραίτητα το µικρότερο πιθανό L που ικανοποιεί την (1). Για παράδειγµα, θεωρούµε ότι έχουµε τρία έγγραφα 0, 1 και 2 και πέντε διακριτά n-grams µήκους µεταξύ 1 και 2 µε P(a) = {0, 1}, P(b) = {0, 2}, P(aa) = P(ab) = P(ba) = {0}. Θέτοντας t = 1, η κατασκευή παράγει το L = {aa, ab, ba}, αλλά επίσης το L = {a, b} ικανοποιεί την (1). Δηλαδή, δεν προσπαθούµε να ελαχιστοποιήσουµε το L. Η κατανοµή των n-gram µηκών στο λεξικό που παράγεται από αυτόν τον αλγόριθµο είναι µη τετριµµένη και ακολουθεί ένα προβλέψιµο πρότυπο: ο αριθµός των n-grams αυξάνει δραµατικά σε µία µέγιστη τιµή, εξαρτώµενη από την συλλογή, και έπειτα µειώνεται σε µία ουρά από µικρές τιµές έως ότου µηδενιστεί. Γενίκευση για τον Χειρισµό όλων των Ερωτηµάτων Το ευρετήριο που περιγράφηκε µέχρι στιγµής λειτουργεί για ένα περιορισµένο σύνολο ερωτηµάτων, και η κατασκευή γρήγορα γίνεται ανέφικτη όταν το nmax αυξάνει. Οι λόγοι που συµβαίνει αυτό είναι δύο. Ο πρώτος είναι ότι απαιτεί εντοπισµό κάθε λίστας καταχωρήσεων κάθε n-gram 43

56 που υπάρχει στην συλλογή. Για µεγάλες τιµές του n, τα περισσότερα n- grams είναι µοναδικά και εµφανίζονται σε µία θέση, έτσι η αποθήκευση αυτών των λιστών απαιτεί συνήθως χώρο αποθήκευσης µερικές φορές το µέγεθος της συλλογής, ακόµη και όταν σχεδόν όλα δεν ικανοποιούν την συνθήκη ένταξης στο L. Ο δεύτερος είναι ότι το µέγεθος του ερωτήµατος συµβολοσειράς q µεγαλώνει, τα ερωτήµατα γίνονται πιο ακριβά εξαιτίας του ότι το S(q) L µεγαλώνει. Για την αντιµετώπιση αυτών των παραπάνω λόγων, σηµειώνουµε ότι εάν P(s) > 0, τότε η Q(s) - P(s) t υποδηλώνεται από την ισχυρότερη συνθήκη: Q(s) t + 1 [σχέση (2)]. Καλούµε αυτήν ως κληρονοµική συνθήκη εξαιτίας του ότι έχει πολύ χρήσιµη ιδιότητα, δηλαδή εάν ισχύει για το s θα ισχύει και για όλες τις υποσυµβολοσειρές του s. Αυτό επιτυγχάνεται µε δυο τρόπους. Πρώτον, κατά την σάρωση της συλλογής, αγνοούµε κάθε n-gram που ικανοποιεί την κληρονοµική συνθήκη και δεν εντοπίζουµε τις λίστες καταχωρήσεών τους. Εάν αυτά συναντιούνται πολλαπλές φορές, ερωτώνται κάθε φορά. Για µεγάλο n, αυτό έχει νόηµα, καθώς τα περισσότερα n-grams θα αποκλειστούν από την κληρονοµική συνθήκη και επίσης θα εµφανιστούν πολύ σπάνια. Δεύτερον, κατά την διάρκεια της σάρωσης στην συλλογή, εάν συναντήσουµε ένα n-gram που δεν ικανοποιεί την κληρονοµική συνθήκη σε ένα offset i, δεν χρειάζεται να επισκεφθούµε τις θέσεις i 1 ή i στο επόµενο πέρασµα. Διατηρώντας µία λίστα των offsets σε κάθε έγγραφο και κλαδεύοντας αυτήν κατά την διάρκεια της σάρωσης, κάθε πέρασµα επιτυχώς µικρότερο. Αυτό επίσης παρέχει µία βολική συνθήκη τερµατισµού: όταν η offset λίστα αδειάσει, θα έχουµε απαριθµήσει όλα τα πιθανά n-grams στην συλλογή τα οποία θα έχουν t ή περισσότερα ψευδώς θετικά, επιτρέποντας την αποτελεσµατική κατασκευή του ευρετηρίου για nmax =. Επίσης, εάν θέσουµε nmin = 1, η εγγύηση αυτή παρέχεται σέ όλες τις υποσυµβολοσειρές της συλλογής και µπορούµε να αφαιρέσουµε την συνθήκη nmin s nmax από την (1): s Σ * P(s) > 0 Q(s) P(s) t (3) 44

57 Μία σηµαντική ερώτηση είναι κατά πόσον η συνθήκη P(s) > 0 µπορεί να αφαιρεθεί επίσης. Είναι φυσικό για τους χρήστες να κάνουν ερωτήµατα για συµβολοσειρές εκτός της συλλογής, και το λεξικό που παράγεται από αυτήν την κατασκευή µπορεί να αποδίδει µεγάλο αριθµό ψευδών θετικών για τέτοια ερωτήµατα. Το κλειδί βρίσκεται στην (3): εάν Q(s) - P(s) t + 1, τότε P(s) = 0. Με άλλο λόγια, εάν κάνουµε ερώτηµα για το s και έπειτα σαρώσουµε t + 1 έγγραφα από το αποτελέσµατα του ερωτήµατος χωρίς να πάρουµε το s, τότε µπορούµε µε ασφαλή τρόπο να συµπεράνουµε ότι το s δεν εµφανίζεται ούτε στα υπολειπόµενα έγγραφα. Αυτό µας επιτρέπει να παρέχουµε µία ισχυρή χωρίς συνθήκες worst-case εγγύηση: s Σ * P(s) > 0 Q'(s) P(s) t +1 (4) όπου Q'(s), µε P(s) Q'(s) Q(s), το σύνολο των εγγράφων που διαβάζονται µε τη γραµµική φάση σάρωσης της διαδικασίας ερωτήµατος. Επιπρόσθετες Βελτιώσεις Για την επιπλέον επιτάχυνση της κατασκευής του ευρετηρίου, σηµειώνουµε ότι για κάθε s µε s = n, το Q(s) µπορεί να υπολογιστεί ως η τοµή των Q(s1) και Q(s2), όπου s1 και s2 είναι δυο υποσυµβολοσειρές του s µήκους n 1. To Q(si) µπορεί να είναι είτε P(si), εάν το Q(si) έχει προστεθεί στο λεξικό είτε η λίστα ερωτήµατος που παράχθηκε στο προηγούµενο πέρασµα. Έτσι, λαµβάνουµε όλα τα αποτελέσµατα ερωτήµατος από κάθε προηγούµενο πέρασµα. Αυτό δεν απαιτεί µνήµη που είναι απαγορευτική, εφόσον χρειαζόµαστε µόνο αποτελέσµατα ερωτήµατος για συµβολοσειρές που ικανοποιούν την κληρονοµική συνθήκη. Συνδυάζοντας αυτήν την βελτίωση µε τις βελτιώσεις στην κληρονοµική συνθήκη που περιγράψαµε παραπάνω, συγκεντρώνουµε την διαδικασία κατασκευής στην παρακάτω εικόνα. 45

58 Εικόνα 1.20 Βελτιωµένος Ψευδοκώδικας Κατασκευής Ευρετηρίου Σε αυτήν την διαδικασία, κάθε αποτέλεσµα ερωτήµατος κατασκευάζεται από τον συνδυασµό των προηγούµενων υπολογισµένων αποτελεσµάτων ερωτήµατος (γραµµή 9). Εάν ένα n-gram s έχει προστεθεί στο ευρετήριο, το Q(s) θα ισούται µε την λίστα καταχωρήσεων του (γραµµή 20). Τα n-grams που δ εν ικανοποιούν την κληρονοµική συνθήκη, απορρίπτονται και αγνοούνται (γραµµές 10 και 11). Η λίστα µε τα offsets, που αρχικά περιέχει όλα τα offsets από όλα τα έγγραφα (γραµµή 3), κλαδεύεται όταν ένα n-gram δεν ικανοποιεί την κληρονοµική συνθήκη (γραµµή 12). Τελικά, ένα χρήσιµο κόλπο για την επιτάχυνση της κατασκευής ευρετηρίου και τον περιορισµό χρήσης της µνήµης είναι ο διαχωρισµός κάθε 46

59 περάσµατος σε δύο περάσµατα, το πρώτο που µετρά τις συχνότητες εγγράφων κάθε όρου που ικανοποιεί την κληρονοµική συνθήκη, χρησιµοποιώντας αυτήν την πληροφορία για το κλάδεµα των όρων, και έπειτα το δεύτερο πέρασµα για την κατασκευή των λιστών καταχωρήσεων των υπολειπόµενων όρων N-grams για Μεγάλες Βάσεις Δεδοµένων Με την ραγδαία αύξηση της τεχνολογίας, οι σύγχρονες επιστήµες έχουν ανάγκη από µεγάλες βάσεις δεδοµένων για την αποθήκευση τεραστίου όγκου πληροφορίας και δεδοµένων που χρειάζονται για µελέτες, πειράµατα και έρευνες. Η Βιοπληροφορική είναι από αυτές. Η ανάλυση του DNA και των πρωτεϊνικών ακολουθιών είναι µία από τις πιο σηµαντικές προκλήσεις στον τοµέα της Βιοπληροφορικής εξαιτίας του µεγάλου όγκου των βιολογικών δεδοµένων. Το µέγεθος αυτών των βάσεων δεδοµένων αυξάνεται εκθετικά, και η ανάκτηση των ακολουθιών αποτελεί ένα από τα κύρια πεδία έρευνας. Η ανάγκη γ ια υλοποίηση αποτελεσµατικών εργαλείων για βιολογικές αναζητήσεις και ανάκτηση πληροφορίας είναι εξαιρετικά σηµαντική εξαιτίας του ότι είναι αρκετά χρονοβόρα διαδικασία που έχει µεγάλες απαιτήσεις σε µνήµη, απαιτεί µεγάλο χώρο αποθήκευσης και επίσης απαιτεί γρήγορη CPU ταχύτητα. Μία από τις µεθόδους που µπορούν να αυξήσουν την ταχύτητα της αναζήτησης και τις πρόσβασης στην βάση δεδοµένων αποτελεί η ευρετηριοποίηση. Γενικά, ο κύριος λόγος χρήσης της τεχνικής της ευρετηριοποίησης των βάσεων δεδοµένων είναι η γρηγορότερη αναζήτηση και οι λιγότεροι υπολογιστική κύκλοι της CPU. Υπάρχουν αρκετά υπολογιστικά εργαλεία που έχουν υλοποιηθεί κατά καιρούς και που επικεντρώνονται σε αυτόν τον σκοπό. Ο αλγόριθµος µετασχηµατισµού ευρετηρίου χρησιµοποιεί ειδική τεχνική µετασχηµατισµού για τη κατασκευή του ευρετηρίου. Η ακολουθία θα πρέπει να αλλάξει σε ένα διάνυσµα ως προς το χρόνο και τη συχνότητα. Το πλεονέκτηµα αυτού του είδους της µεθόδου είναι ότι παρακάµπτει τις 47

60 περισσότερες από τις µη σχετικές ακολουθίες και διασπά το πραγµατικό πρόβληµα αναζήτησης µόνο σε κοµµάτια της αρχικής βάσης δεδοµένων. Η µέθοδος κατασκευής bitmap ευρετηρίων χρησιµοποιείται για να συµπυκνώσει και να κωδικοποιήσει τις ακολουθίες της βάσης δεδοµένων σε µικρότερες ακολουθίες ευρετηρίου. Το κύριο πλεονέκτηµα αυτή της µεθόδου είναι η µείωση του χρόνου απόκρισης αλλά προσθέτει επιβάρυνση χώρου. Τα στοιχεία (components) του αλγόριθµου είναι η BIS διαδικασία κατασκευής, η φάση φιλτραρίσµατος και η ανάλυση του αποτελέσµατος. Στις τεχνικές ευρετηριοποίησης µε χωρικά µητρώα (matrix space indexing), ερευνώνται δυο σηµαντικές τεχνικές µε σκοπό την υποστήριξη γρήγορης αξιολόγησης ερωτηµάτων για τοπική στοίχιση. Μία νέα έννοια εισήχθη που έχει φιλτράρισµα δύο φάσεων δηλαδή annotate query sequence και finding homology candidates Ένα από τα σηµαντικά χαρακτηριστικά αυτού του αλγορίθµου είναι ότι είναι χωρίς απώλειες αλγόριθµος φιλτραρίσµατος. Τα n-gram µπορούν να οριστούν ως µία ακολουθία n συνεχόµενων χαρακτήρων. Η n-gram µέθοδος χρησιµοποιείται σε διάφορα πεδία της επιστήµης συµπεριλαµβανοµένου της στατιστικής επεξεργασία φυσικής γλώσσας και της ανάλυση της γενετικής ακολουθίας. Τα αντικείµενα αυτής της µεθόδου µπορούν να είναι γράµµατα, λέξεις ή πρωτεϊνικές ακολουθίες, ανάλογα δηλαδή µε την εκάστοτε εφαρµογή. Το σύνολο των n-gram αποτελεσµάτων µπορεί να παραχθεί µε την µετακίνηση ενός παραθύρου (window) n κουτιών (boxes) πάνω στο κείµενο. Αυτό µπορεί να γίνει µε την χρήση της 1-sliding τεχνικής που έχουµε αναφέρει σε προηγούµενη υποενότητα. Για τα ευ ρετήρια που βασίζονται σε n-gram, ο αλγόριθµος κατασκευής τους µπορεί να αποτελέσει µία λύση για αναζήτηση σε µεγάλες βάσεις δεδοµένων. Η χρήση της αρχιτεκτονικής παράλληλου προγραµµατισµού µπορεί να δώσει καλύτερα αποτελέσµατα για το θέµα αυτό. Μία τεχνική προτείνεται στο (Hammad et al., 2009). 48

61 Μεθοδολογία Η µεθοδολογία του (Hammad et al., 2009) περιλαµβάνει δυο φάσεις οι οποίες α) χτίζουν το ευρετήριο ακολουθιακά, και β) παραλληλοποιούν τον αλγόριθµο µετασχηµατισµού n-gram. Η επόµενη εικόνα παρουσιάζει το γενικό σχήµα της αρχιτεκτονικής του συστήµατος. Υπάρχουν τέσσερα βασικά βήµατα που ισχύουν γενικά στα συστήµατα ευρετηριοποίησης (και ειδικότερα στην περίπτωση του (Hammad et al., 2009)) και είναι τα εξής: 1. Κατέβασµα της βάσης δεδοµένων µε πρωτεϊνικές ακολουθίες. 2. Κατασκευή του ευρετηρίου κάνοντας χρήση του αλγορίθµου µετασχηµατισµού n-gram. 3. Επικάλυψη της αναζήτησης ερωτήµατος χρησιµοποιώντας τον n- gram αλγόριθµο. 4. Τέλος, αναζήτηση του επικαλυµµένου ερωτήµατος στο ευρετήριο και ανάκτησή του. 49

62 Εικόνα 1.21 Γενικό Σχήµα Πέρα από τα χαρακτηριστικά των συστηµάτων ευρετηριοποίησης, υπάρχουν δυο λόγοι που πρέπει να ληφθούν υπόψιν κατά την παραλληλοποίηση του υπάρχοντος ακολουθιακού αλγορίθµου: α) που πρέπει να γίνει διάσπαση δεδοµένων ή διαδικασία διάσπασης και β) επικοινωνία των νηµάτων (threads) µεταξύ κάθε διαδικασίας στον αλγόριθµο. Κατά το στάδιο του σχεδιασµού του παράλληλου αλγόριθµου, παίρνεται η απόφαση του που θα διασπαστούν οι υπολογιστικές δραστηριότητες και τα δεδοµένα σε µικρότερες διεργασίες. Η παρακάτω εικόνα αναπαριστά την ακριβή χαρτογράφηση των αλγορίθµων στους πολυεπεξεργαστές. 50

63 Εικόνα Χαρτογράφηση Αλγορίθµων στους Πολυεπεξεργαστές 51

64 Αρχικά, ο αριθµός των νηµάτων έχει αρχικοποιηθεί και στην συνέχεια η ακολουθιακή διεργασία του αλγορίθµου καθορίζει από που θα διαβαστούν τα δεδοµένα από την βάση δεδοµένων. Έπειτα τα δεδοµένα διασπώνται και διανέµονται σε κάθε νήµα όπου κάθε νήµα εκτελεί την διεργασία επικάλυψης για κάθε µπλοκ δεδοµένων για την κατασκευή του ευρετηρίου. Υπάρχουν δύο βασική τρόποι για την διάσπαση της υπολογιστικής εργασίας σε παράλληλες διεργασίες: decomposition σε τοµείς και λειτουργικό decomposition. Στο (Hammad et al., 2009) χρησιµοποιείται decomposition σε τοµείς εξαιτίας του ότι έχουµε να κάνουµε µε ανεξάρτητα δεδοµένα, και δεν υπάρχει καµία απολύτως σχέση µεταξύ δυο διαφορετικών πακέτων από δεδοµένα. Αυτή η διαδικασία σπάει τα σχετικά δεδοµένα σε µεγάλα κοµµάτια για εργασία και τα διανέµει σε πολλαπλές διεργασίες. Στο πρόβληµα µε τις µεγάλες βάσεις δεδοµένων, οι ακολουθίες της βάσης δεδοµένων διανέµονται στους επεξεργαστές. Ο αριθµός των µεγάλων κοµµατιών που σπάνε τα δεδοµένα εξαρτάται από τον αριθµό των επεξεργαστών. Η παρακάτω εικόνα περιγράφει την διαδικασία που ακολουθήθηκε στο (Hammad et al., 2009). 52

65 Εικόνα 1.23 Διαχωρισµός Δεδοµένων Αποτελέσµατα Τα πειράµατα που έγιναν στο (Hammad et al., 2009) εξάγουν τα ακόλουθα συµπεράσµατα για: Χωρικό κόστος: Κατά την χρήση n-grams µε τιµές στο n 2, 3 και 4 το µέγεθος του ευρετηρίου τείνει να είναι µεγαλύτερο από την αρχική βάση δεδοµένων. Αντιθέτως, και όπως ήταν προσδοκώµενο, χρησιµοποιώντας n- grams για τιµές του n 5 και 6, το µέγεθος του ευρετηρίου γίνεται µικρότερο 53

66 από το µέγεθος της αρχικής βάσης δεδοµένων. Έτσι µπορεί να θεωρηθεί ότι εξοικονοµήθηκε χώρος. Χρονικό κόστος: Κατά την χρήση µικρού συνόλου δεδοµένων, η ακολουθιακή διεργασία έδωσε ένα ελάχιστο του µέσου χρονικού κόστους σε σύγκριση µε την παράλληλη και µε την αύξηση του µεγέθους συνόλου δεδοµένων και του αριθµού των νηµάτων, ο µέσος όρος του κόστους του χρόνου άρχισε να µειώνεται, ενώ το καλύτερο αποτέλεσµα όταν χρησιµοποιούνται 8 νήµατα. Με τον τρόπο αυτό, µπορούµε να συµπεράνουµε ότι η ακολουθιακή είναι οικονοµική από πλευράς κόστους σε µικρό σύνολο δεδοµένων και τα αποτελέσµατα δείχνουν ό τι η παράλληλη είναι πιο οικονοµική σε µεγάλα σύνολα δεδοµένων. Ταχύτητα: Η παράλληλη διεργασία είναι σαφώς καλύτερη όταν διαχειριζόµαστε µεγάλα σύνολα δεδοµένων, ενώ η ακολουθιακή διεργασία τείνει να είναι οικονοµικότερη όταν έχουµε µικρά σύνολα δεδοµένων. Αποδοτικότητα: Μπορούµε να συµπεράνουµε ότι αποτυγχάνεται να έχουµε υψηλή απόδοση, δηλαδή η µέγιστη απόδοση επιτυγχάνεται όταν χρησιµοποιούνται 2 νήµατα και η χαµηλότερη απόδοση η οποία επιτυγχάνεται όταν χρησιµοποιούνται 8 νήµατα. Ο λόγος στο µέγεθος των συνόλων δεδοµένων Μεταβλητού Μήκους Grams (V-grams) Η πληροφορία κειµένου είναι διαδεδοµένη στα συστήµατα πληροφορίας, πολλές εφαρµογές έχουν αυξηµένη ανάγκη για την υποστήριξη προσεγγιστικών ερωτηµάτων συµβολοσειράς σε συλλογές δεδοµένων. Αυτά τα ε ρωτήµατα ρωτούν για, δοθείσας µιας συλλογής από συµβολοσειρές, αυτές τις συµβολοσειρές που είναι παρόµοιες µε µία δοθείσα συµβολοσειρά ή αυτές από µία άλλη συλλογή µε συµβολοσειρές. Αυτή η συλλογή µπορεί να περιέχει τιµές από ένα κελί ενός πίνακα, ένα σύνολο από λέξεις ενός λεξικού, ή ένα προ-ορισµένο σύνολο από ονόµατα οντοτήτων όπως διευθύνσεις και ονόµατα µιας εταιρίας. Για να γίνει πιο κατανοητό αυτό παραθέτουµε κάποια ενδεικτικά παραδείγµατα. 54

67 Όταν ένας χρήστης χρησιµοποιεί ένα SQL ερώτηµα σε ένα DBMS, οι τιµές εισόδου µπορεί να µην ταιριάζουν µε κάποιες καταχωρήσεις, εξαιτίας πιθανών σφαλµάτων στο ερώτηµα, ανακολουθιών στα δεδοµένα ή περιορισµένης γνώσης για τα δεδοµένα. Η υποστήριξη query relaxation, µπορεί να επιστρέψει τις καταχωρήσεις της βάσης δεδοµένων (π.χ. Steven Spielberg ) που είναι παρόµοιες µε το περιεχόµενο του ερωτήµατος (π.χ. Steve Spielberg ), έτσι ώστε ο χρήστης να µπορεί να βρει καταχωρήσεις που µπορεί να τον ενδιαφέρουν. Άλλο παράδειγµα ο έλεγχος ορθογραφίας (spellchecking). Δοθέντος ενός εγγράφου εισόδου, ένας ελεγκτής ορθογραφίας µπορεί να βρίσκει πιθανές υποψήφιες λέξεις από µία τυπογραφικά δοσµένη λέξη µέσω της αναζήτησης στο λεξικών αυτών των λέξεων για λέξεις όµοιες στην δοσµένη λέξη. Σ' αυτές τις τεχνικές κυρίως χρησιµοποιείται η edit distance συνάρτηση λόγω της εφαρµοστικότητάς της σε πολλαπλές εφαρµογές. Πολλοί αλγόριθµοι που επικεντρώνονται σε προσεγγιστικά ερωτήµατα χρησιµοποιούν αυτήν την συνάρτηση. Αυτοί οι αλγόριθµοι εφαρµόζονται σε ευρετήρια που χρησιµοποιούν n-grams. Δίληµµα Επιλογής Μήκους Gram Το µήκος των grams µπορεί να επηρεάσει σηµαντικά την απόδοση των παραπάνω αλγορίθµων. Στα πειράµατα του (Li, Wang et al., 2007) µπορεί κανείς να το διαπιστώσει αυτό. Οι αλγόριθµοι που βασίζονται σε σταθερό µήκος για τα n-grams παρουσιάζουν ένα δίληµµα για την επιλογή αυτού του µήκους των n-grams. Αυτοί οι αλγόριθµοι χρησιµοποιούν διάφορες τεχνικές φιλτραρίσµατος για το κλάδεµα των συµβολοσειρών. Ένα σηµαντικό φίλτρο ονοµάζεται φίλτρο µέτρησης (ή filter count ) που χρησιµοποιείται ως εξής. Εάν η edit distance µεταξύ δύο συµβολοσειρών είναι µέσα σε ένα όριο, τότε µπορούν να µοιραστούν αρκετά κοινά grams. Ένα κάτω όριο του αριθµού των κοινών grams εξαρτάται από το µήκος των grams και από το όριο της edit distance. Εάν αυξηθεί το µήκος των grams, 55

68 θα υπάρχουν λιγότερες συµβολοσειρές που µοιράζονται ένα gram, κάνοντας τις ανεστραµµένες λίστες να είναι µικρότερες. Αυτό µπορεί να προκαλέσει αύξηση χρόνου για την συνένωση των ανεστραµµένων λιστών. Από την άλλη πλευρά, θα υπάρχει ένα κάτω όριο για τον αριθµό των κοινών grams που µοιράζεται από παρόµοιες συµβολοσειρές, που προκαλεί ένα λιγότερο επιλεκτικό count filter για την εξάλειψη των ανόµοιων ζευγαριών συµβολοσειρών. Ο αριθµός των ψευδώς θετικών µετά την συνένωση των λιστών θα αυξηθεί, προκαλώντας αύξηση του χρόνου υπολογισµού των πραγµατικών τους edit distances (µια αρκετά χρονικά κοστοβόρα διαδικασία) µε σκοπό να επιβεβαιωθεί εάν είναι η απάντηση στο ερώτηµα που έχει τεθεί. Στο (Li, Wang et al., 2007) παρουσιάζεται µία τεχνική που καλείται VGRAM, που σκοπό έχει να αυξήσει την απόδοση τέτοιων αλγορίθµων. Η κύρια ιδέα του είναι συνετή επιλογή υψηλής ποιότητας grams µεταβλητού µήκους από µια συλλογή από συµβολοσειρές για την υποστήριξη ερωτηµάτων πάνω στην συλλογή. Από µια άλλη οπτική, το VGRAM µπορεί να θεωρηθεί ως µια κατασκευή ευρετηρίου που σχετίζεται µε µία συλλογή από συµβολοσειρές, στην οποία θέλουµε να υποστηρίξουµε και προσεγγιστικά ερωτήµατα. Η τεχνική αυτή µπορεί να αναλυθεί ως εξής: Ανάλυση των συχνοτήτων των µεταβλητού µήκους grams στις συµβολοσειρές και επιλογή ενός συνόλου από grams, που καλείται gram dictionary (gram λεξικό), τέτοιο ώστε κάθε επιλεγµένο gram στο λεξικό να µην είναι τόσο συχνό στις συµβολοσειρές. Για µια συµβολοσειρά, παράγεται ένα σύνολο από grams µεταβλητού µήκους χρησιµοποιώντας το gram λεξικό. Μπορεί πλέον να δειχθεί εάν δυο συµβολοσειρές είναι µέσα στην edit distance k, και τότε τα σύνολά τους από grams έχουν επίσης αρκετές οµοιότητες που σχετίζονται µε την k. Αυτό το σύνολο ο µοιοτήτων µπορεί να χρησιµοποιηθεί για την βελτίωση της απόδοσης υπαρχόντων αλγορίθµων. 56

69 Σηµαντικοί Ορισµοί Έστω Σ ένα αλφάβητο. Για µια συµβολοσειρά s από χαρακτήρες του Σ, ορίζουµε ως s το µήκος του s, s[i] ο i-οστός χαρακτήρας του s (ξεκινώντας από το 1), και s[i, j] την υποσυµβολοσειρά από τον i-οστό µέχρι τον j-οστό χαρακτήρα. Q-Grams: Για µια συµβολοσειρά s και ένα θετικό ακέραιο q, το positional q-gram της s είναι ένα ζεύγος (i, g), όπου g είναι το q-gram της s που ξεκινάει από i-οστό χαρακτήρα. Το σύνολο των positional q-grams της s, ορίζεται ως G(s,q) και προκύπτει από την ολίσθηση ενός παραθύρου µήκους q πάνω στους χαρακτήρες της συµβολοσειράς s. Υπάρχουν s - q + 1 positional q-grams στο G(s,q). Για παράδειγµα, έστω q = 3 και s = university, τότε το G(s,q) = {(1, uni), (2, niv), (3, ive), (4, ver), (5, ers), (6, rsi), (7, sit), (8, ity)}. Προσεγγιστικά Ερωτήµατα Συµβολοσειρών: Η edit distance µεταξύ δύο συµβολοσειρών s1 και s2 είναι ο ελάχιστος αριθµός λειτουργιών επεξεργασίας (edit operations) απλών χαρακτήρων που απαιτείται για το µετασχηµατισµό του s1 σε s2. Οι λειτουργίες επεξεργασίας περιλαµβάνουν την εισαγωγή, την διαγραφή και την αλλαγή. Η edit distance µεταξύ δύο συµβολοσειρών s1 και s2 ορίζεται ως ed(s1, s2). Για παράδειγµα, ed( Steven Spielburg, Steve Spielberg ) = 2. Θεωρούµε δυο τύπους από προσεγγιστικών ερωτηµάτων συµβολοσειράς για µία δοθείσα συλλογή από συµβολοσειρές S (πιθανώς µε αντίγραφα). (1) Approximate-string selections: για ένα ερώτηµα Q, βρες όλες τις συµβολοσειρές s στο S τέτοιες ώστε ed(q, s) k, όπου k ένα όριο απόστασης. (2) Approximate-string joins: για µια συλλογή S (πιθανώς όµοιο µε το S), βρες τα ζευγάρια συµβολοσειρών S x S των οποίων η edit distance δεν είναι µεγαλύτερη από ένα όριο k. 57

70 Μεταβλητού Μήκους Grams και Gram Λεξικό Έστω S Μια συλλογή από συµβολοσειρές, στις οποίες θέλουµε να χρησιµοποιήσουµε VGRAM. Η τεχνική χρησιµοποιεί δυο ακέραιες παραµέτρους, qmax και qmin, όπου qmin < qmax, και θεωρούµε grams µήκους µεταξύ qmin και qmax. Η µετατροπή των συµβολοσειρών σε ένα σύνολο από µεταβλητού µήκους grams, γίνεται µε την χρήση ενός προ-ορισµένου συνόλου από grams, που καλείται gram λεξικό, το οποίο προκύπτει από το S. Εάν ένα gram g1 είναι ένα κατάλληλο πρόθεµα ενός gram g2, καλούµε το g1 ως gram-πρόθεµα του g2, και το g2 ως gram-επέκταση του g1. Για παράδειγµα, το gram uni είναι gram-πρόθεµα του univ, ενώ το τελευταίο είναι gram-επέκταση του πρώτου. Ένα gram λεξικό είναι ένα σύνολο από grams D µήκους µεταξύ qmin και qmax. Σηµειώνουµε ότι το gram λεξικό µπορεί να κατασκευαστεί ανεξάρτητα από µια συλλογή από συµβολοσειρές S, ακόµη και για λόγους απόδοσης προσπαθούµε να υπολογίσουµε το gram λεξικό µε την ανάλυση των gram συχνοτήτων στην συλλογή συµβολοσειρών. Ένα gram λεξικό µπορεί να αποθηκευτεί ως δέντρο συχνοτήτων (trie). Το trie είναι ένα δέντρο, και κάθε ακµή επισηµαίνεται από έναν χαρακτήρα. Για να διακρίνουµε ένα gram από τα gram-επέκταση του, προεπεξεργαζόµαστε τα grams στο D µε την προσθήκη στο τέλος κάθε gram ενός ειδικού χαρακτήρα τέλους ο οποίος δεν α νήκει στο αλφάβητο Σ, π.χ. #. Μία διαδροµή από τη ρίζα σε ένα φύλλο (για τους αντίστοιχους κόµβους) αντιστοιχεί σε ένα gram στο D (ο χαρακτήρας τέλους δεν είναι µέρος του gram). Καλούµε αυτό το gram ως corresponding gram του κόµβου φύλλου. Επιπλέον, για κάθε gram στο D, υπάρχει ένα αντίστοιχο µονοπάτι από την ρίζα στο φύλλο πάνω στο trie. Η παρακάτω εικόνα απεικονίζει µία τέτοια κατασκευή. 58

71 Εικόνα 1.24 Strings / Gram dictionary as a trie / Reversed gram trie Παραγωγή Μεταβλητού Μήκους Grams Για την π ερίπτωση που θέλουµε να χρησιµοποιήσουµε σταθερού µήκους grams, µπορούµε εύκολα να παράγουµε ένα σύνολο από q-grams για µια συµβολοσειρά µε ολίσθηση ενός παραθύρου µεγέθους q πάνω στις συµβολοσειρές από αριστερά προς τα δεξιά. Όταν χρησιµοποιούµε ένα λεξικό D για την παραγωγή ενός συνόλου από µεταβλητού µήκους grams για µια συµβολοσειρά s, µπορούµε επίσης να χρησιµοποιήσουµε ολίσθηση παραθύρου πάνω στην s, αλλά το µέγεθος του παραθύρου ποικίλει, εξαρτώµενο από την συµβολοσειρά s και τα grams στο λεξικό D. Διαισθητικά, σε κάθε βήµα, παράγουµε ένα gram για την µεγαλύτερη υποσυµβολοσειρά (ξεκινώντας από την παρούσα θέση) που ταιριάζει µε ένα gram στο λεξικό. Εάν δεν υπάρχει τέτοιο gram στο λεξικό D, παράγουµε ένα gram µήκους qmin. Αντιθέτως, ένα positional gram (a, g) το οποίο αντιστοιχεί σε µία συµβολοσειρά s[a, b] έχει ενταχθεί από µία υποσυµβολοσειρά s[a', g'] ενός προηγούµενου positional gram (a', g'), για παράδειγµα στο a' a b b' αγνοούµε το positional gram (a, g). Ο αλγόριθµος φαίνεται στην παρακάτ ω εικόνα. Ξεκινάµε θέτοντας την παρούσα θέση στον πρώτο χαρακτήρα της συµβολοσειράς s. Σε κάθε 59

72 βήµα, από την παρούσα θέση, αναζητούµε τη µέγιστη υποσυµβολοσειρά της s που εµφανίζεται στο gram λεξικό D χρησιµοποιώντας το trie. Εάν δεν µπορούµε να βρούµε τέτ οια υποσυµβολοσειρά, θεωρούµε την υποσυµβολοσειρά µήκους qmin που ξεκινά από αυτήν την θέση. Σε κάθε περίπτωση ελέγχουµε εάν αυτή η υποσυµβολοσειρά είναι κατάλληλη υποσυµβολοσειρά από τις ήδη παραγόµενες υποσυµβολοσειρές (θεωρώντας ότι την πληροφορία θέσης της s). Εάν ισχύει, δεν παράγουµε positional gram γι' αυτήν την νέα υποσυµβολοσειρά, εφόσον έχει ήδη ενταχθεί από ένα προηγούµενο positional gram. Αλλιώς, παράγουµε ένα positional gram γι' αυτήν την υποσυµβολοσειρά. Μετακινούµε την παρούσα θέση κατά ένα χαρακτήρα προς τα δεξιά. Επαναλαµβάνουµε το προηγούµενο βήµα µέχρι η θέση να γίνει µεγαλύτερη από s - qmin + 1. Το παραγόµενο σύνολο των positional grams για την συµβολοσειρά s ορίζεται ως VG(s, D, qmin, qmax ) ή απλώς VG(s) εάν οι άλλοι παράµετροι είναι ξεκάθαροι στο πλαίσιο. Εικόνα 1.25 Αλγόριθµος VGEN Για παράδειγµα, θεωρούµε την συµβολοσειρά s = universal και ένα gram λεξικό D = {ni, ivr, sal, uni, vers}. Έστω qmin = 2 και qmax = 4. 60

73 Θέτοντας p = 1 και G ={}, ο αλγόριθµος ξεκινά αρχικά στον χαρακτήρα u. Η µέγιστη υποσυµβολοσειρά που ξεκινά µε u που εµφανίζεται στο D είναι η uni. Έτσι ο αλγόριθµος παράγει ένα positional gram (1, uni) και το εισάγει στο VG. Στη συνέχεια ο αλγόριθµος µετακινείται στον χαρακτήρα n. Ξεκινώντας από αυτόν το χαρακτήρα, η µέγιστη υποσυµβολοσειρά που ξεκινά από n και εµφανίζεται στο λεξικό D είναι η ni. Ωστόσο αυτό το υποψήφιο positional gram (2, ni) έχει ενταχθεί από το προηγούµενο positional gram, και έτσι ο αλγόριθµος δεν το εισάγει στο VG. Ο αλγόριθµος µετακινείται σ τον επόµενο χαρακτήρα που είναι το i. Δεν υπάρχει υποσυµβολοσειρά που να ξεκινά µε i που να ταιριάζει µε κάποιο gram στο D, έτσι ο αλγόριθµος παράγει το positional gram (3, iv) µήκους qmin = 2. Εφόσον δεν έχει ενταχθεί από κάποιο άλλο positional gram στο VG, ο αλγόριθµος το εισάγει στο VG. Ο αλγόριθµος συνεχίζει µέχρι την θέση s - qmin + 2 που αντιστοιχεί στον χαρακτήρα l. Το παραγόµενο σύνολο από positional gram είναι: VG = {(1, uni), (2, ni), (4, vers), (7, sal)}. Κατασκευή Gram Λεξικού Ένας αφελής τρόπος να συλλέξουµε τις συχνότητες των q-grams είναι ο ακόλουθος. Για κάθε συµβολοσειρά s στο S, για κάθε q µεταξύ qmin και qmax, παράγουµε όλα τα q-grams της s. Για κάθε q-gram, µετράµε την συχνότητά του. Αυτή η προσέγγιση είναι υπολογιστικά ακριβή, εφόσον παράγει πάρα πολλά grams µε τις συχνότητες τους. Για να λύσουµε αυτό το πρόβληµα, χρησιµοποιούµε το trie για να συλλέξουµε τις συχνότητες των grams. Ο αλγόριθµος του (Li, Wang et al., 2007) αποφεύγει την παραγωγή όλων των grams για τις συµβολοσειρές σύµφωνα µε το παραπάνω. Δοθείσας µιας συµβολοσειράς s, για κάθε ακέραιο q στο [qmin, qmax - 1], και για κάθε positional gram (p, g), υπάρχει ένα positional gram (p, g') για το qmax -gram-επέκταση g'. Για παράδειγµα, θεωρούµε µία συµβολοσειρά s = university, και το positional gram της (2, niv). Έστω qmin = 2 και qmax = 4. Υπάρχει επίσης ένα positional gram (2, nive) που ξεκινά από την ίδια θέση. Έτσι, µπορούµε να παράγουµε qmax-grams για τις συµβολοσειρές 61

74 ώστε να µετρήσουµε στο trie χωρίς να παράγουµε τα µικρότερα grams, εκτός από αυτά τα grams στο τέλος της συµβολοσειράς. Σύµφωνα µε αυτό, ο αλγόριθµος συλλέγει gram συχνότητες ως εξής: κάθε κόµβος n στο trie έχει µία τιµή συχνότητας n.freq. Αρχικοποιούµε το trie ώστε να είναι άδειο. Για κάθε συµβολοσειρά s, αρχικά παράγουµε όλα τα positional qmax-grams. Για κάθε ένα από αυτά, εντοπίζουµε τον αντίστοιχο κόµβο φύλλο, ή εισάγουµε αυτόν στο trie εάν το gram δεν υπάρχει (η συχνότητα γι' αυτόν έχει αρχικοποιηθεί στο 0). Για κάθε κόµβο στο µονοπάτι από την ρίζα στον κόµβο φύλλο, συµπεριλαµβανοµένου κι αυτού, αυξάνουµε την συχνότητα κατά 1. Σε κάθε q-οστό κόµβο (qmin q qmax ) στο µονοπάτι, δηµιουργούµε έναν κόµβο φύλλο προσαρτώντας µία ακµή µε τον ειδικό χαρακτήρα #, εάν αυτός ο κόµβος δεν υπάρχει. Αυτός ο νέος κόµβος αναπαριστά το γεγονός του ότι το qmax-gram έχει ένα gram-πρόθεµα µήκους q που τελειώνει σε αυτόν τον νέο κόµβο φύλλο. Σηµειώνουµε ότι, γι' αυτόν τον κόµβο φύλλο n' κάθε τέτοιου gram-πρόθεµα δεν αυξάνουµε την συχνότητα του n' κατά 1, εφόσον ο γονικός κόµβος του έχει κάνει το µέτρηµα ήδη. Αντιµετωπίζουµε αυτούς τους χαρακτήρες στο τέλος της συµβολοσειράς ξεχωριστά, αφού δεν παράγουν positional qmax-grams. Πιο συγκεκριµένα, για κάθε θέση p = s - qmax + 2,, s - qmin + 1 της συµβολοσειράς, παράγουµε ένα positional gram µήκους s - p + 1, και επαναλαµβάνουµε την ίδια διαδικασία στο trie που αναφέραµε παραπάνω. Για παράδειγµα, εάν qmin = 2 και qmax = 4, για την συµβολοσειρά s = university χρειάζεται να παράγουµε τα ακόλουθα positional grams (8, ity) και (9, ty) µήκους µεταξύ 2 και 3, και να κάνουµε το µέτρηµα στο trie. Μετά το βήµα 1, έχουµε κατασκευάσει το trie µε µία συχνότητα σε κάθε κόµβο. Στην παρακάτω εικόνα βλέπουµε το trie που αφορά τις συµβολοσειρές που αναφέραµε στην εικόνα Η συχνότητα 2 στο κόµβο n43 σηµαίνει ότι το gram stic έχει εµφανιστεί 2 φορές στις συµβολοσειρές. Η συχνότητα 3 στον κόµβο n10 σηµαίνει ότι το gram st έχει εµφανιστεί 3 φορές στις συµβολοσειρές. 62

75 Εικόνα 1.26 Gram-Frequency Trie Στο δεύτερο βήµα κλαδεύουµε συνετά το trie και χρησιµοποιούµε τα υπολειπόµενα grams για να σχηµατίσουme ένα gram λεξικό. Η διαίσθηση του κλαδέµατος είναι η ακόλουθη. (1) Κρατάµε τα µικρά grams αν είναι δυνατόν: Εάν ένα gram g έχει χαµηλή συχνότητα, θα εξαλειφθούν από το trie όλα τα grams-επέκταση του g. (2) Εάν ένα gram είναι πολύ συχνό, να κρατήσει κάποια από εκτεταµένη γραµµάρια της, κρατάµε κάποια από τα grams-επέκταση του. Ως ένα απλό παράδειγµα, θεωρούµε ένα gram ab. Αν η συχνότητά του είναι χαµηλή, τότε θα το κρατήσουµε στο gram λεξικό. Αν η συχνότητα του είναι πολύ υψηλή, θα εξετάσουµε την τήρηση αυτού του gram και των gram-επέκταση του, όπως aba, abb, abc, κλπ. Ο στόχος είναι ότι, µε τη διατήρηση αυτών των gram-επέκταση στο λεξικό, ο αριθµός των συµβολοσειρών που παράγουν ένα ab gram θα µπορούσε να γίνει µικρότερος, δεδοµένου ότι µπορούν να δηµιουργηθούν τα gram-επέκταση αντί του ab. Τυπικά, επιλέγουµε ένα όριο συχνότητας, το οποίο συµβολίζουµε µε T. Κλαδεύουµε το trie καλώντας την συνάρτηση που απεικονίζεται στην παρακάτω εικόνα, παίρνοντας ως παραµέτρους την ρίζα του trie και το όριο συχνότητας T. 63

76 Εικόνα 1.27 Κλάδεµα για την Επιλογή Gram Σε κάθε βήµα ελέγχουµε εάν ο παρών κόµβος n έχει παιδί που είναι κόµβος φύλλο (ένας κόµβος φύλλο έχει από τ ον γονέα του µία ακµή που σηµατοδοτείται από τον χαρακτήρα τέλους #). Εάν δεν έχει παιδί κόµβο φύλλο, τότε το µονοπάτι από ρίζα σε αυτόν τον κόµβο αντιστοιχεί σε ένα gram µικρότερο του qmin, έτσι καλούµε την συνάρτηση για κάθε ένα από τα παιδιά του. Εάν α υτός ο κόµβος έχει παιδί κόµβο φύλλο L, τότε υπάρχει ένα gram g που αντιστοιχεί στο L. Θεωρούµε ότι η συχνότητα του κόµβου n ως n.freq. Εάν δεν είναι ήδη µεγαλύτερη από T, τότε κρατάµε αυτό το gram. Επιπλέον, αφαιρούµε τα παιδιά του n εκτός από το L, και αναθέτουµε την συχνότητα του n στο L. Μετά το βήµα κλαδέµατος, ο κόµβος n έχει ένα παιδί κόµβο φύλλο L. 64

77 Εάν n.freq > Τ, θέλουµε να κρατήσουµε µερικά από τα gramεπέκταση του g, ελπίζοντας ότι η νέα συχνότητα στον κόµβο L θα είναι όχι µεγαλύτερη του T. Ο α λγόριθµος της εικόνας 1.28 επιλέγει το µέγιστο υποσύνολο των παιδιών του n (εκτός του L), έτσι ώστε το άθροισµα των συχνοτήτων σε αυτούς τους κόµβους και η L.freq να µην είναι µεγαλύτερες από T. Για τα υπολειπόµενα παιδιά (χωρίς το L) καλούµε επαναληπτικά την συνάρτηση για κάθε ένα από αυτά µε σκοπό το κλάδεµα του υποδέντρου. Η επόµενες τρεις πολιτικές κλαδέµατος είναι πιθανές να χρησιµοποιηθούν για την επιλογή του µέγιστου υποσυνόλου των παιδιών που θα αφαιρεθούν (γραµµή 12): SmallFirst: επιλογή των παιδιών µε τις µικρότερες συχνότητες. LargeFirst: επιλογή των παιδιών µε τις µεγαλύτερες συχνότητες. Random: τυχαία επιλογή παιδιών έτσι ώστε η νέα L.freq µετά την απορρόφηση των συχνοτήτων των επιλεγµένων παιδιών να µην είναι µεγαλύτερη από T. Για παράδειγµα, στο trie της παραπάνω εικόνας, θεωρούµε ότι το όριο T = 2. Ο αλγόριθµος φτάνει στον κόµβο n10, του οποίου η συχνότητα είναι 3 δηλ. µεγαλύτερη από T. Ο κόµβος έχει ένα παιδί κόµβο φύλλο, n22 του οποίου η συχνότητα είναι 0, που σηµαίνει ότι δεν υπάρχει υποσυµβολοσειρά του st στο σύνολο δεδοµένων χωρίς ένα gram-επέκταση του st. Ο κόµβος n10 έχει δυο ακόµα παιδιά, το n20 µε συχνότητα 2 και το n21 µε συχνότητα 1. Χρησιµοποιώντας την SmallFirst πολιτική, ο αλγόριθµος επιλέγει να κλαδέψει το n21, και ανανεώνει την συχνότητα του n22 σε 1. Χρησιµοποιώντας την LargeFirst πολιτική, ο αλγόριθµος επιλέγει το n20 για κλάδεµα, και ανανεώνει την συχνότητα του n22 σε 2. Με την χρήσης της Random πολιτικής, ο αλγόριθµος επιλέγει τυχαία ένα από αυτά τα παιδιά ώστε να το κλαδέψει, και προσθέτει την αντίστοιχη συχνότητα σε αυτήν του n22. 65

78 1.3 Χρήσεις στην Βιοπληροφορική Ταξινόµηση και Οµαδοποίηση Βιολογικών Ακολουθιών Ο αριθµός και το µέγεθος των βιολογικών ακολουθιών έχει µεγαλώσει δραµατικά τα τελευταία χρόνια. Ένας µεγάλος όγκος από πληροφορία απαιτεί νέους τρόπους επεξεργασίας τους µε πιο αποτελεσµατικούς τρόπους. Δύο από τα πιο σηµαντικά πρόβληµα είναι η ταξινόµηση και η οµαδοποίηση τέτοιων ακολουθιών. Η γενετική πληροφορία κάθε οργανισµού είναι γραµµένη σε έναν κώδικα από DNA ακολουθίες, και η DNA ακολουθία κάθε οργανισµού µπορεί να ανακτηθεί από διάφορες τεχνικές. Χρησιµοποιώντας αυτές τις ακολουθίες, είναι πλέον πιθανό ο καταλογοποίηση και ο χαρακτηρισµός κάθε συνόλου από ζωντανούς οργανισµούς. Χρησιµοποιώντας τέτοιες συγκρίσεις µπορούµε να εκτιµήσουµε την θέση κάθε οργανισµού στο γενεαλογικό δέντρο των ζωντανών οργανισµών. Υπάρχουν διάφορες τεχνικές για την κατασκευή δέντρων που χρησιµοποιούνται στην Βιοπληροφορική. Οι περισσότερες από αυτές, άµεσα ή έµµεσα, βασίζονται σε ακολουθίες. Η στοίχιση τέτοιων ακολουθιών είναι κοστοβόρα, και επιπλέον είναι πρακτικά αδύνατο η στοίχιση συγκεκριµένων γονιδιωµάτων καθώς διαφέρουν σε µέγεθος, αριθµό γονιδίων και στοίχιση γονιδίων. Εξαιτίας αυτού, υπάρχει ανάγκη για τεχνικές ταξινόµησης και ο µαδοποίησης που δεν βασίζονται αποκλειστικά σε στοίχιση ακολουθιών. Οι τεχνικές αυτές δεν είναι απαραίτητο να βασίζονται σε βιολογικά µοντέλα, είναι απαραίτητο να µπορούν να προσφέρουν µια καλή προοπτική στον χειρισµό αυτών των προβληµάτων. Μια πρόσφατη µέθοδος που έχει παρουσιαστεί στο [Qi et al., 2004], δεν απαιτεί πολλαπλή στοίχιση και είναι σχετιζόµενη µε µεθόδους που βασίζονται σε n-grams. Τα δυο προβλήµατα που αναφέρουµε είναι: Ταξινόµηση: Για διάφορες δοθείσες οικογένειες γονιδιωµάτων και δοθέντος ενός γονιδιώµατος, ο καθορισµός του που ανήκει αυτό το γονιδίωµα. 66

79 Οµαδοποίηση: Ορισµός µιας διαδικασίας για ο µαδοποίηση γονιδιωµάτων χρησιµοποιώντας αποκλειστικά στατιστικές ιδιότητες υποσυµβολοσειρών και η οποία διαδικασία, θα πρέπει να είναι αποτελεσµατική, χωρίς επιτήρηση και να µην απαιτεί κάποια ιδιαίτερη γνώση για την χρήση της αλλά θα είναι κατά κάποιο τρόπο αυτοµατοποιηµένη. Απαντήσεις γι αυτά τα προβλήµατα που αναφέρθηκαν παραπάνω µπορούν να δοθούν µε την χρήση τεχνικών που βασίζονται σε n-grams. Οι τεχνικές αυτές, δηλαδή χρήση των n-grams, δεν απαιτούν βήµατα προπεξεργασίας όπως για παράδειγµα στοίχιση ακολουθιών Σύγκριση Βιολογικών Ακολουθιών Είναι σηµαντικό να αναφέρουµε ότι οι τέσσερις βάσεις του DNA είναι οι ίδιες για όλους τους ζωντανούς οργανισµούς. Κάθε κοµµάτι DNA µπορεί να προσδιοριστεί από µια ακολουθία και αυτή του η ακολουθία µπορεί να το αναπαραστήσει επαρκώς. Με χρήση τεχνικών n-grams µπορούµε να οµαδοποιήσουµε DNA ακολουθίες που αναπαριστούν ολόκληρα γονιδιώµατα. Οι DNA ακολουθίες είναι γραµµικά κείµενα από ένα αλφάβητο τεσσάρων χαρακτήρων: {A, T, G, C}. Ένα ολοκληρωµένο γονιδίωµα ενός ζωντανού οργανισµού είναι ένα πολύ µεγάλο κείµενο, συνήθως κάποιων χιλιάδων ή εκατοµµυρίων χαρακτήρων. Τα κοµµάτια ενός γονιδιώµατος καλούνται γονίδια. Το γονιδίωµα επίσης περιέχει ένα µικρό σύνολο από γονίδια που κωδικοποιούνται για το δοµικό RNA. Οι µέθοδοι που χρησιµεύουν για ταξινόµηση γονιδιωµάτων, βασίζονται σε σύγκριση των επιλεγµένων γονιδιακών στοιχείων. Ωστόσο, υπάρχουν και µέθοδοι για την σύγκριση ακολουθιών που δεν σχετίζονται µε την γονιδιακή δο µή και κατασκευή. Αξιοσηµείωτες είναι οι µέθοδοι που βασίζονται σε n-grams. Η πιο αποδεκτή προσέγγιση για την σύγκριση γονιδιωµάτων είναι ο υπολογισµός της ο µοιότητας που υπάρχει ανάµεσα σε ένα ή περισσότερα 67

80 οµόλογα γονίδια των γονιδιωµάτων. Οι µέθοδοι που βασίζονται στην καταµέτρηση των επαναλήψεων µιας λέξης δεν µπορούν να αντικαταστήσουν τις µεθόδους που βασίζονται στην εξερεύνηση των οµολόγων. Για παράδειγµα, έστω ένα ολιγονουκλεοτίδιο που για n = 4 έχει 256 διαφορετικά 4-grams (256 τετρανουκλεοτίδια πάνω στο DNA αλφάβητο). Το σύνολο των συχνοτήτων των τετρανουκλεοτιδίων µπορεί να αντιµετωπιστεί ως ένα στατιστικό δεδοµένο µιας DNA ακολουθίας. Με την χρήση των συχνοτήτων κατανοµής των τετρανουκλεοτιδίων, µπορούµε να συγκρίνουµε ένα ζευγάρι από DNA ακολουθίες. Αυτή η µεθοδολογία απαιτεί ότι το n (το σταθερό µέγεθος των n-grams) είναι σχετικά µικρό που επιτρέπει, λογική και στατιστικά αιτιολογηµένη, υπολογιστική σύγκριση ακολουθιών. Τέλος, το πρόβληµα του αριθµού των n-grams που θα επιλεχθούν είναι διαδοµένο. Συνήθως, επιλέγονται όλα τα n-grams αν και αυτό µπορεί να αποδειχθεί αρκετά κοστοβόρο. Για τον λόγο αυτό έχουν ερευνηθεί διάφορες τεχνικές που στοχεύουν σε βελτιστοποίηση των ήδη υπαρχουσών για την επιλογή του αριθµού των n-grams Συγκριτική Ανάλυση Πρωτεϊνικών Ακολουθιών Βασικό σηµείο στην κατανόηση των πολύπλοκων βιολογικών συστηµάτων είναι οι πρωτεΐνες. Η µορφή και η λειτουργία τους είναι κατ' αρχήν κωδικοποιηµένη σε χαρακτηριστικές ακολουθίες αµινοξέων. Η ακριβής σχέση µεταξύ µιας πρωτογενούς πρωτεϊνικής ακολουθίας, της τρισδιάστατης δο µής της και της λειτουργίας της σε ένα πολύπλοκο κυτταρικό περιβάλλον, είναι ένα από τα πιο θεµελιώδη αναπάντητα ερωτήµατα στη βιολογία. Μεγάλες ποσότητες γονιδιακών και πρωτεϊνικών δεδοµένων ακολουθιών για τον homo sapiens και άλλων οργανισµών έχουν γίνει πρόσφατα διαθέσιµα, µαζί µε ένα αυξανόµενο µέρος της δο µής των πρωτεϊνών και των δεδοµένων λειτουργίας. Η αναµενόµενη εκθετική αύξηση στην ποσότητα των δεδοµένων κατά την επόµενη δεκαετία δηµιουργεί µια ευκαιρία για την αντιµετώπιση του προβλήµατος 68

81 χαρτογράφησης των ακολουθιών µε όλο και πιο εξελιγµένες µεθόδους που βασίζονται σε δεδοµένα. Τέτοιες µέθοδοι έχουν αποδειχθεί εξαιρετικά επιτυχηµένες στον τοµέα της φυσικής γλώσσας, και είναι άµεσα υπεύθυνες για την επιτυχία της αυτόµατης αναγνώρισης ο µιλίας, την κατάταξη εγγράφων, την εξόρυξη πληροφοριών, τη στατιστική µηχανική µετάφραση και άλλες ενδιαφέρουσες εργασίες κατά τη διάρκεια των τελευταίων δύο δεκαετιών. Η χαρτογράφηση των βιολογικών ακολουθιών σε µορφή και λειτουργία πρωτεϊνών είναι εννοιολογικά παρόµοια µε την χαρτογράφηση των λέξεων σε ερµηνεία. Αυτή η αναλογία µελετάται εντατικά τα τελευταία χρόνια. Έτσι, η ανάλυση n-gram λέξεων έχει βρει εφαρµογές σε βιολογικές ακολουθίες, χρησιµοποιώντας διάφορους τύπους από λεξιλόγια. Η στατιστική ανάλυση των βιολογικών ακολουθιών απαιτεί n-gram ταίριασµα συµβολοσειρών και αναζητήσεις συµβολοσειρών. Εξαιτίας του µεγάλου µεγέθους των γονιδιακών δεδοµένων, η αναζήτηση για υποσυµβολοσειρές αποτελεί ένα προκλητικό υπολογιστικό πρόβληµα. Η αναζήτηση υποσυµβολοσειρών σε µεγάλα κείµενα δεδοµένων ένα πρόβληµα που έχει µελετηθεί αρκετά στην επιστήµη των υπολογιστών, µε εφαρµογές που µεταξύ άλλων περιλαµβάνουν σ υµπίεση δεδοµένων, ανάκτηση πληροφορίας και επεξεργασία κειµένου. Δοµές δεδοµένων όπως δέντρα επιθεµάτων και πίνακες επιθεµάτων έχουν χρησιµοποιηθεί ως προτιµώµενες δο µές δεδοµένων για εφαρµογές αυτού του τύπου, και πιο σύγχρονα για εφαρµογές που χειρίζονται βιολογικά δεδοµένα. Όταν οι πίνακες επιθεµάτων συµπληρώνονται µε άλλες ακολουθίες δεδοµένων, παρέχουν πρόσθετη λειτουργικότητα στο µειωµένο υπολογιστικό κόστος. Έτσι, επιτρέπουν την αναζήτηση µιας υποσυµβολοσειράς µήκους P σε µια συµβολοσειρά µήκους Ν σε O(P + log N) χρόνο, και απαιτούν O(N) χώρο για την κατασκευή, η οποία είναι ανταγωνιστική µε εκείνες των δέντρων επιθεµάτων. Προεπεξεργασµένοι πίνακες επιθεµάτων µπορούν πλέον να χρησιµοποιηθούν για την αποτελεσµατική εξαγωγή n-gram στατιστικών και να τα συγκρίνουν ανάµεσα σε διάφορα γονιδιώµατα. 69

82 Για την εξαγωγή n-gram στατιστικών δεδοµένων από γονιδιώµατα, µπορούµε να χρησιµοποιήσουµε τις παρακάτω διεργασίες: 1. Καταµέτρηση του αριθµού και του µήκους των πρωτεϊνών. 2. Καταµέτρηση των n-grams και των πιο συχνών n-grams. 3. Καταµέτρηση των n-grams µε καθορισµένο µήκος. 4. Προσδιορισµός σχετικών συχνοτήτων των καθορισµένων n-grams. 5. Αναγνώριση των µεγαλύτερων επαναλαµβανόµενων ακολουθιών. 6. Τοπικοποίηση των n-grams για την οµαδοποίηση των πρωτεϊνών. 7. Αναγνώριση n-gram γείτονα (αριστερά και δεξιά). 8. Κατανοµή των n-gram συχνοτήτων σε συγκεκριµένες ακολουθίες πρωτεϊνών από τις παγκόσµιες στατιστικές. 9. Η προεπεξεργασία των δεδοµένων ακολουθίας για να προετοιµαστούν για ανάλυση σε κάποια εφαρµογή. Οι διεργασίες αυτές εφαρµόζονται σε πρωτεϊνικές ακολουθίες που προέρχονται από κάποιον ζωντανό οργανισµό Μοντελοποίηση Ενεργειών Χρηστών µε Χρήση N-grams Η αναζήτηση πληροφορίας είναι µία θεµελιώδης δραστηριότητα που εµπλέκει πολλαπλές διαδράσεις µεταξύ ενός χρήστη και ενός συστήµατος αναζήτησης. Με την άνθηση των online µηχανών αναζήτησης, άρχισε και η αποθήκευση των δραστηριοτήτων των χρηστών, που είναι γνωστές ως search transaction logs. Αυτά τα δεδοµένα είναι χρήσιµα για δυο λόγους: Πρώτον, µπορούν να δώσουν πληροφορίες γ ια την ανθρώπινη συµπεριφορά πάνω στην αναζήτηση πληροφορίας, δηλαδή τι θέλουν οι χρήστες και πώς οι ίδιοι θα προχωρήσουν ώστε να λάβουν το αποτέλεσµα αυτό της αναζήτησης. Δεύτερον, τα log δεδοµένων µπορούν να χρησιµοποιηθούν ώστε να βελτιώσουν την εµπειρία αναζήτησης από την πλευρά του χρήστη. 70

83 Η φύση των διαδράσεων χρήστη συστήµατος αναζήτησης εξαρτάται από πολλούς παράγοντες, συµπεριλαµβανοµένων µεταξύ άλλων τα χαρακτηριστικά του χρήστη, το τύπο αναζήτησης κτλ.. Ο βασικός όγκος των ερευνών γίνεται σε δ εδοµένα που προκύπτουν από αναζητήσεις στο διαδίκτυο. Μια καλή εφαρµογή όλων αυτών είναι η ανάλυση των log από την µηχανή αναζήτησης του PubMed. Θα πρέπει να σηµειώσουµε εδώ τα σύνολα δεδοµένων που προκύπτουν από το PubMed είναι αρκετά διαφορετικά από τις κοινές µηχανές αναζήτησης όπως Google ή Yahoo, εξαιτίας του συγκεκριµένου πληροφοριακού υλικού που προσφέρει, το δηµογραφικό προφίλ των χρηστών και τις ανάγκες των χρηστών. Η ιδέα πίσω από την ανάλυση είναι να κωδικοποιηθούν οι ενέργειες των χρηστών και να µοντελοποιηθούν σε ένα n-gram µοντέλο γλώσσας. Στο (Lin and Wilbur, 2008) παρουσιάζεται µία πειραµατική µελέτη πάνω σ' αυτό το θέµα. Τα n-gram µοντέλα µπορούν εντοπίσουν κανονικότητες στις ενέργειες των χρηστών, βασισµένα µόνο στο σκληρό χαρακτηρισµό των δράσεων τους. Με αυτές τις τεχνικές, είµαστε σε θέση να προσδιορίσουµε συνδυασµούς δραστηριότητας και χαρακτηρίσουµε ενδιαφέροντα πρότυπα συµπεριφοράς. Συνολικά, τα µοντέλα είναι σε θέση να προβλέψουν σωστά την επόµενη ενέργεια του χρήστη για το ήµισυ του χρόνου. Θεωρούµε ότι αυτό είναι πολλά υποσχόµενο, λαµβάνοντας υπόψη ότι δεν υπάρχουν πληροφορίες σχετικά µε τη σηµασιολογία των ενεργειών του χρήστη (π.χ., τα ερωτήµατα που έχουν γίνει, τα περιεχόµενα των σελίδων που έκαναν κλικ, κλπ.). Φυσικά, τα µοντέλα µπορούν να εµπλουτιστούν µε αυτά τα δεδοµένα για να παρέχουν µια πιο ακριβή εικόνα της συµπεριφοράς των χρηστών. Ωστόσο, το µεγαλύτερο εµπόδιο σε αυτό δεν είναι τεχνολογικό, αλλά µάλλον σχετίζεται µε τις πολιτικές σχετικά µε την παραβίαση της ιδιωτικής ζωής και κυκλοφορία προσωπικών ευαίσθητων δεδοµένων. Για µια συζήτηση µπορεί κάποιος να ανατρέξει στο (Murray και Teevan, 2007). Ενώ η µοντελοποίηση του χρήστη µπορεί να είναι ενδιαφέρουσα από µόνη της, απώτερος στόχος µας είναι να αξιοποιήσουµε αυτά τα µοντέλα για να βελτιώσουµε την εµπειρία αναζήτησης. Πιο γενικά θα πρέπει να 71

84 αναφέρουµε ότι τα transaction logs µπορούν να βοηθήσουν στην κατανόηση του πως οι χρήστες του PubMed αναζητούν πληροφορίες και αποτελούν µια αξιοσέβαστη πηγή για την κατασκευή υπολογιστικών µοντέλων για τις ενέργειες των χρηστών. Αυτές οι ενέργειες µπορούν να κωδικοποιηθούν ακολουθίες συµβολοσειρών και να εντοπιστούν n-gram µοντέλα γλώσσας. Τέλος, η εφαρµογή των τεχνικών επεξεργασίας φυσικής γλώσσας για την αντιµετώπιση του προβλήµατος ανάκτησης πληροφοριών αποτελεί ένα παράδειγµα του πώς οι δύο τοµείς θα µπορούσαν να συνεργαστούν παραγωγικά. 72

85 2 ΒΕΒΑΡΗΜΕΝΕΣ ΑΚΟΛΟΥΘΙΕΣ 2.1 Εισαγωγικές Έννοιες Βεβαρηµένες Ακολουθίες Οι βεβαρηµένες ακολουθίες σχηµατίζονται από τα σύµβολα ενός αλφαβήτου Σ, µόνο που σε κάθε θέση είναι δυνατόν να έχουµε την εµφάνιση περισσοτέρων από ένα συµβόλων εκεί. Έτσι λοιπόν, σαν ορισµό για µια βεβαρηµένη ακολουθία[23] θα µπορούσαµε να πούµε ότι: Ορισµός: Μια βεβαρηµένη ακολουθία (ή αλλιώς weighted sequence) W = W 1W2 W n, είναι µια ακολουθία, όπου κάθε θέση Wi αποτελείται από ένα σύνολο από διατεταγµένα ζεύγη, όπου κάθε ζεύγος είναι της µορφής (σ, πi(σ)), όπου π i(σ) είναι η πιθανότητα να εµφανίζεται ο χαρακτήρας σ στη π θέση i. Συνεπώς σε κάθε θέση Wi, για κάθε i έχουµε: i (s) = 1 s. Ένα παράδειγµα µιας βεβαρηµένης ακολουθίας µε αλφάβητο Σ = {A, G, C, T} φαίνεται στην παρακάτω εικόνα. 73

86 Εικόνα 2.1 Παράδειγµα Βεβαρηµένης Ακολουθίας Παρατηρούµε ότι στις θέσεις 1-4, 6, 7, 9-11 έχουµε την εµφάνιση µόνο ενός συµβόλου του αλφαβήτου µε πιθανότητα 1 (την οποία θέση την καλούµε στέρεη (solid)), στην θέση 5 έχουµε εµφάνιση των A, C µε πιθανότητα 0.5 αντίστοιχα και στην θέση 8 έχουµε εµφάνιση του Α µε πιθανότητα 0.5 και εµφάνιση των C, T µε πιθανότητες 0.3 και 0.2 αντίστοιχα. Οι απλές συµβολοσειρές που µπορούν να παραχθούν από µια βεβαρηµένη ακολουθία είναι το πολύ Σ ⁿ, αν σε κάθε µία από τις n θέσεις επιλέξουµε ένα από τα πιθανά σύµβολα Βεβαρηµένο Δέντρο Επιθεµάτων Το βεβαρηµένο δένδρο επιθεµάτων (weighted suffix tree) αποτελεί µια γενί κευση του δένδρου επιθεµάτων που δεικτοδοτεί όλες τις παραγόµενες συµβολοσειρές µιας βεβαρηµένης ακολουθίας που έχουν πιθανότητα εµφάνισης µεγαλύτερη ή ίση του 1/k, όπου k µία σταθερά. Έτσι λοιπόν σαν ορισµό ενός βεβαρηµένου δένδρου επιθεµάτων θα µπορούσαµε να πούµε ότι: Έστω X µια βεβαρηµένη ακολουθία. Για κάθε επίθεµα που ξεκινά στη θέση i ορίζουµε µια λίστα µε όλες τις βεβαρηµένες υποσυµβολοσειρές τέτοιες ώστε καθεµία από αυτές έχει πιθανότητα εµφάνισης µεγαλύτερη από l/k, για µια σταθερά k. Κάθε τέτοια υποσυµβολοσειρά τη συµβολίζουµε ως X i, j, όπου j είναι η σειρά απαρίθµησής της, χωρίς συγκεκριµένο τρόπο απαρίθµησης. Ορίζουµε ως WST(X), το βεβαρηµένο δέντρο επιθεµάτων µιας βεβαρηµένης ακολουθίας X, το συµπαγές trie ενός υποσυνόλου όλων των βεβαρηµένων υποακολουθιών που ξεκινούν σε κάθε επίθεµα X i του Χ$, $ ÏΣ, έχοντας 74

87 πιθανότητα εµφάνισης µεγαλύτερη του l/k. Έστω L(u) η ετικέτα µονοπατιού του u στο WST(X), η οποία προκύπτει από τη συνένωση των ετικετών των πλευρών κατά µήκος του µονοπατιού από τη ρίζα στον u. Ένα φύλλο u του WST(X) αποθηκεύει την τιµή i αν j > 0 τέτοιο ώστε L(u) = Xi,j[1..n] και π(x i, j[1..n]) 0, όπου το j > 0 συµβολίζει την j-στη βεβαρηµένη υποσυµβολοσειρά που ξεκινά στη θέση i. Ορίζουµε ως λίστα φύλλων, LL(u), του u τη λίστα όλων των τιµών στο υπόδεντρο µε ρίζα τον u. Θα χρησιµοποιήσουµε ένα παράδειγµα για να δείξουµε τον παραπάνω ορισµό. Θεωρούµε την βεβαρηµένη ακολουθία της προηγούµενης εικόνας και υποθέτουµε ότι ενδιαφερόµαστε να αποθηκεύσουµε όλα τα επιθέµατα µε πιθανότητα εµφάνισης µεγαλύτερη από µια προ-ορισµένη παράµετρο. Θα κατασκευάσουµε το δέντρο επιθεµάτων για την συχνότητα ενσωµατώνοντας την έννοια της πιθανότητας εµφάνισης του κάθε επιθέµατος. Για την ακολουθία της παραπάνω εικόνας µε π(xi,j) 1/4, για µια κατάλληλη υποσυµβολοσειρά Xi,j, τα ακόλουθα πιθανά προθέµατα για κάθε επίθεµα: Προθέµατα για το επίθεµα X[1..11] : X1,1=ACTTATCATTT, π(x1,1)=0,25 και X1,2=ACTTCTCATTT, π(x1,2)=0,25 Προθέµατα για το επίθεµα X[2..11] : X2,1=CTTATCATTT, π(x2,1)=0,25 και X2,2=CTTCTCATTT, π(x2,2)=0,25 κ.ο.κ. Το βεβαρηµένο δέντρο επιθεµάτων του παραπάνω παραδείγµατος για τις προηγούµενες υπολέξεις φαίνεται στην ακόλουθη εικόνα. 75

88 Εικόνα 2.2 Βεβαρηµένο Δέντρο Επιθεµάτων 2.2 Αλγόριθµοι και Τεχνικές Χαρτογράφηση Βεβαρηµένων Ακολουθιών Οι εφαρµογές για την υπολογιστική βιολογία που έχουν αναπτυχθεί τις τελευταίες δεκαετίες συνδέονται κατά κύριο λόγο µε την τεχνολογία που παράγει τα δεδοµένα που εξετάζονται. Οι αλγόριθµοι, και οι παράµετροι των εφαρµογών, είναι συντονισµένοι µε τέτοιο τρόπο ώστε να καταργούν τους εγγενείς περιορισµούς της τεχνολογίας. Για παράδειγµα, το µήκος των δεδοµένος που θα επεξεργαστούν, ή η αναλογία ποιότητα / σφάλµα (quality / error) που σχετίζεται µε τα δεδοµένα, είναι κρίσιµα στοιχεία που θα πρέπει να εξεταστούν για την επιλογή των κατάλληλων δοµών δεδοµένων για προεπεξεργασία, αποθήκευση, ανάλυση, και σύγκριση ακολουθιών. Επιπλέον, ο τρόπος µε τον οποίο οι λύσεις βελτιώνονται επηρεάζει και την επιστήµη των υπολογιστών αλλά και την βιοτεχνολογία. Με το πέρασµα των ετών, εξελιγµένοι αλγόριθµοι έχουν αναπτυχθεί για την συναρµολόγηση ολόκληρων γονιδιωµάτων, από ένα απλό βακτηριακό γονιδίωµα έως το ανθρώπινο. Αυτοί οι αλγόριθµοι ακολουθούν την διαδικασία των τεχνολογιών για ακολουθίες. 76

89 Υπάρχουν κατηγορίες ακολουθιών, όπου θέσεις της ακολουθίας συνοδεύονται από πιθανότητες που σχετίζονται µε την εµφάνιση κάποιο χαρακτήρα από ένα δεδοµένο αλφάβητο σ' αυτήν την θέση. Στο τοµέα της Βιοπληροφορικής οι χαρακτήρες αυτοί του αλφαβήτου αντιστοιχούν στις τέσσερις βάσεις A, C, G και T. Αυτές οι ακολουθίες, όπου η πιθανότητα εµφάνισης ενός χαρακτήρα σε κάποια θέση είναι δοσµένη, αποκαλούνται βεβαρηµένες ακολουθίες. Σ' αυτήν την ενότητα θα ασχοληθούµε να την αποτελεσµατική χαρτογράφηση και οµαδοποίηση βεβαρηµένων ακολουθιών που αναφέρονται σε κάποιο συγκεκριµένο γονιδίωµα. Στο σηµείο αυτό θα παρουσιάσουµε κάποιους χρήσιµους ορισµούς που θα µας χρειαστούν στην συνέχεια. Μια συµβολοσειρά είναι ακολουθία µηδενικών ή περισσότερων συµβόλων από ένα αλφάβητο Σ, και πιο συγκεκριµένα Σ = {A, C, G, T}. Το µήκος της ακολουθίας x ορίζεται ως x. Το i-οστό σύµβολο της ακολουθίας ορίζεται ως x[i]. Μια συµβολοσειρά w είναι υποσυµβολοσειρά της x εάν x = uwv, όπου u, v ανήκουν στο Σ*. Ορίζουµε µε x[i...j] την συµβολοσειρά της x που ξεκινά στην θέση i και τελειώνει στην θέση j. Μία βεβαρηµένη ακολουθία για ένα αλφάβητο Σ είναι µια ακολουθία s = s[1...n] από σύνολα ζευγών. Πιο συγκεκριµένα, κάθε s[i] είναι ένα σύνολο ((q1, π i(q1)), (q2, π i(q2)),..., (q Σ, π i(q Σ ))), όπου π i(qj) είναι η πιθανότητα εµφάνισης του χαρακτήρα qj στην θέση i. Για κάθε θέση 1 i n το άθροισµα των πιθανοτήτων ισούται µε 1. Για δύο συµβολοσειρές x και y, τέτοιες ώστε x = y, η απόσταση Hamming δη(x, y) είναι ο αριθµός των θέσεων κατά τις οποίες οι δυο συµβολοσειρές διαφέρουν, δηλαδή έχουν διαφορετικούς χαρακτήρες. Τυπικά έχουµε 1 x[i] y[i] = 1 εάν x[i] y[i] αλλιώς 1 x[i] y[i] = 0. δ Η (x, y) = x i=1 1 x[i] y[i] (1), όπου 77

90 2.2.2 Ακριβές Ταίριασµα Προτύπων Για το πρόβληµα του ακριβούς ταιριάσµατος προτύπων ορίζουµε το παρακάτω πρόβληµα: Βρείτε κατά πόσον το βεβαρηµένο πρότυπο pi = pi[1...l], για όλα τα 0 i r, εµφανίζεται µε το πολύ k-mismatches (αναντιστοιχίες) στο t = t[1...n], µε l π πιθανότητα το πολύ γ, εάν j (q j ) γ j=1. Στο παραπάνω πρόβληµα ορίζουµε τα εξής: οι παραγόµενες σύντοµες εµφανίσεις σαν το σύνολο p0, p1, pr-1, όπου r > 10⁷, και τις αποκαλούµε πρότυπα. Το µήκος κάθε προτύπου είναι τυπικά µεταξύ 25 και 50 bp (base pairs) και το συµβολίζουµε µε l. Θεωρούµε ότι τα δεδοµένα απορρέουν από υψηλής ποιότητας µεθόδους ακολουθιών και έτσι θεωρούµε τα πρότυπα µε το πολύ µ = 3 µη-στέρεα (non-solid) σύµβολα. Η ακολουθία γονιδιωµάτων είναι η t = t[1...n], όπου n > 10⁸, και k 0 ένα όριο. Στο συγκεκριµένο πρόβληµα θα επικεντρωθούµε στο εξής : το pi εµφανίζεται στο t µια ακριβώς φορά. Ο στόχος µας είναι να βρούµε τις εµφανίζεις του προτύπου pi, για όλα τα 0 i r, στο κείµενο t = t[1...n]. Πιο συγκεκριµένα, ενδιαφερόµαστε κατά πόσον το pi εµφανίζεται στο t ακριβώς µια φορά. Με σκοπό αυτή η διαδικασία να είναι αποτελεσµατική θα χρησιµοποιήσουµε ένα παραλληλισµό σε επίπεδο λέξης για τον µετασχηµατισµό κάθε υποσυµβολοσειράς µήκους l του t σε µία υπογραφή (signature). Παίρνουµε την υπογραφή σ(x) µιας συµβολοσειράς x, µε τον µετασχηµατισµό της σε 78

91 δυαδικό ισοδύναµο χρησιµοποιώντας 2-bits-per-base (2 bits ανά βάση) κωδικοποίηση του DNA αλφάβητου, και αποθηκεύοντας την δεκαδική της τιµή σε µία λέξη υπολογιστή. Στόχος είναι να προ-επεξεργαστούµε το κείµενο t και να δηµιουργήσουµε δυο λίστες Λ και Λ'. Και οι δυο λίστες κρατούν στοιχεία του τύπου (i, σ( zi)), όπου το i αναπαριστά την αρχική θέση της συµβολοσειράς zi = t[i...i + l 1]. Η λίστα Λ κρατά κάθε αντίγραφο υποσυµβολοσειράς µήκους l του t, ενώ η λίστα Λ' κρατά κάθε µοναδική υποσυµβολοσειρά µήκους l του t. Αλγόριθµος Βήµα 1: Χωρίζουµε το κείµενο µε την βοήθεια ενό ς παραθύρου (µηχανισµός ολίσθησης παραθύρου ) του οποίου το µήκος είναι l, σε ένα σύνολο από υποσυµβολοσειρές z1, z2, z3,, zn-l+1, όπου zi = t[i...i + l 1], για όλα τα 1 i n l + 1. Υπολογίζουµε την υπογραφή σ(zi) κάθε υποσυµβολοσειράς zi, και την τοποθετούµε στο ζεύγος (i, σ(zi)), και προσθέτουµε αυτό το ζεύγος σε µία λίστα L. Σηµειώνουµε ότι, αµέσως µετά τον υπολογισµό της σ(zi), τότε κάθε σ(zi) για όλα τα 2 i n l + 1, µπορεί να υπολογισθεί σε συνεχή χρόνο (χρησιµοποιώντας shift-type διαδικασία). Βήµα 2: Ταξινοµούµε την λίστα L µε βάση το πεδίο υπογραφών σ(zi), χρησιµοποιώντας έναν γνωστό αλγόριθµο ταξινόµησης π.χ. Quicksort (Cormen et al., 2001). Βήµα 3: Διατρέχουµε ακολουθιακά την ταξινοµηµένη λίστα L και ελέγχουµε κατά πόσον οι υπογραφές στην L[i] και L[i+1] είναι ίσες ή όχι, για όλα τα 1 i n l + 1. Εάν είναι ίσες, τότε οι κωδικοποιηµένες υποσυµβολοσειρές L[i] και L[i+1] είναι αντίγραφα, και τότε θα πρέπει να ελέγξουµε κατά πόσον οι υπογραφές στις L[i] και L[i-1] είναι ίσες ή όχι. Ε άν είναι ίσες, τότε η κωδικοποιηµένη υποσυµβολοσειρά στη L[i] είναι αντίγραφο, η οποία έχει ήδη προστεθεί στην λίστα Λ. Εάν δεν είναι ίσες, προσθέτουµε την L[i] 79

92 στην Λ. Εάν οι L[i] και L[i+1] δεν είναι ίσες, ελέγχουµε εάν οι L[i] και L[i-1] είναι ίσες ή όχι. Εάν δεν είναι ίσες, τότε η κωδικοποιηµένη υποσυµβολοσειρά στη L[i] είναι αντίγραφο η οποία έχει ήδη προστεθεί στην λίστα Λ. Εάν δεν είναι ίσες, τότε η κωδικοποιηµένη υποσυµβολοσειρά στη L[i] είναι µοναδική και προστίθεται στην λίστα Λ'. Κύριο Βήµα : Θεωρ ούµε ότι έχουµε ένα βεβαρηµένο ερώτηµα (weighted query) pi = pi [1...l], για όλα τα 0 i r. Τότε έχουµε pi = pi [1] pi [2] pi[l] (σχέση 2). Για κάθε pis pi, 1 s Σ ⁿ υπολογίζουµε την υπογραφή σ(pis). Επιπλέον, ελέγχουµε εάν η σχέση l π j (q j ) γ j=1 ικανοποιείται. Μπορούµε να ελέγξουµε κατά πόσον το pi εµφανίζεται στο t ακριβώς µια φορά, χρησιµοποιώντας δυαδική αναζήτηση µε τον εξής τρόπο: Εάν υπάρχει µόνο ένα pi, τέτοιο ώστε pis pi. AND σ(pis) Λ'. Τότε το pi είναι ένα µοναδικό πρότυπο, και τότε ο αλγόριθµος επιστρέφει στην αρχική θέση του t. Εάν υπάρχουν ένα ή περισσότερα pi, τέτοια ώστε pis pi. AND σ(pis) Λ, ή περισσότερα από ένα pi, τέτοια ώστε pis pi. AND σ(pis) Λ', τότε το pi εµφανίζεται στο t περισσότερες από µια φορές. Εάν σ(pis) Λ και σ(pis) Λ', για όλα τα pis pi, τότε το pi δεν εµφανίζεται στο t. Στο βήµα 1 του αλγόριθµου, υπολογίζουµε τις υπογραφές σε Ο( l / w n) χρόνο. Στο βήµα 2, ο χρόνος που απαιτείται για την ταξινόµηση της λίστας L είναι Ο( l / w nlogn). Στο βήµα 3, η δηµιουργία των δυο λιστών Λ και Λ' απαιτεί Ο( l / w r Σ µ l logn) χρόνο. Ο( l / w n) χρόνο. Το κύριο βήµα τρέχει σε 80

93 Έτσι, ο ολικός χρόνος είναι Ο( l / w nlogn + l / w r Σ µ l logn), ο οποίος πρακτικά είναι Ο(nlogn + rl logn). Σηµειώνουµε ότι στην περίπτωση που έχουµε 2l > w, όπου w είναι µε 32 ή 64 στην πράξη, ο αλγόριθµος µπορεί εύκολα να τροποποιηθεί ώστε να αποθηκεύει τις υπογραφές σε 2l / w λέξεις υπολογιστή. Ο αλγόριθµος που µόλις περιγράφηκε έχει παρουσιαστεί στο (Antoniou et al., 2009b) Υπολογισµός Επαναλήψεων και Κανονικοτήτων Οι βιολογικές βεβαρηµένες ακολουθίες χρησιµοποιούνται εκτενώς στην µοριακή βιολογία σαν προφίλ των οικογενειών πρωτεϊνών, και συχνά για την αναπαράσταση των ακολουθιών που παράγονται από κάποια µέθοδο. Σε αυτήν την ενότητα θα παρουσιάσουµε δυο θεµελιώδη προβλήµατα στον τοµέα των βιολογικών βεβαρηµένων ακολουθιών: (i) υπολογισµός τ ων επαναλήψεων και (ii) υπολογισµός των κανονικοτήτων. Οι αλγόριθµοι που θα περιγραφούν (Christodoulakis et al., 2006) µπορούν να χρησιµοποιηθούν σαν βασική πυλώνες κατασκευής εξελιγµένων αλγορίθµων που µπορούν να εφαρµοστούν πάνω σε βεβαρηµένες ακολουθίες. Υπολογισµός των Επαναλήψεων Στις στέρεες ακολουθίες, οι αλγόριθµοι των Crochemore (1981) και (Karp et al., 1972) είναι ευρέως γνωστοί και έχουν O(nlogn) χρονική πολυπλοκότητα για τον υπολογισµό των επαναλήψεων. Η διαφορά τους είναι ότι ο πρώτος αλγόριθµος υπολογίζει τις επαναλήψεις όλων των πιθανών µηκών ενώ ο δεύτερος µπορεί να υπολογίσει επαναλήψεις προκαθορισµένου µήκους. Ο αλγόριθµος του Crochemore αποτυγχάνει να βρει επαναλήψεις σε βεβαρηµένες ακολουθίες σε χρόνο O(nlogn). Στην πραγµατικότητα, χρειάζεται O(n²) χρόνο για να υπολογίσει όλες τις επαναλήψεις. Ωστόσο ο αλγόριθµος των Karp et al. (αλγόριθµος KMR) µπορεί να εφαρµοστεί για τον υπολογισµό των επαναλήψεων σε βεβαρηµένες ακολουθίες. 81

94 Σ' αυτό το σηµείο θα αναφερθούµε συνοπτικά στον αλγόριθµο του Crochemore και τις εφαρµογής του σε βεβαρηµένες ακολουθίες. Δοθείσας µιας συµβολοσειράς t µήκους n, ο αλγόριθµος προχωρά σε n/2 στάδια, όπου στο στάδιο i ένα διάνυσµα Ei µήκους O(n) υπολογίζεται. Το διάνυσµα Ei είναι ένα διάνυσµα από ακέραιους (που α ποκαλούνται κλάσεις) που αντιπροσωπεύουν έναν παράγοντα µήκους i. Μια επανάληψη µήκους i µπορεί τότε να αναγνωριστεί ξεκινώντας από την θέση j του t εάν και µόνο εάν Ei [j] = Ei [j+1] = = Ei [j+k], για κάποιο k. Η πολυπλοκότητα O(nlogn) δεν µπορεί να επιτευχθεί εάν το διάνυσµα Ei υπολογίζεται εκ του µηδενός. Αντί αυτού, το διάνυσµα Ei υπολογίζεται στο στάδιο i µε την τροποποίηση ενός περιορισµένου αριθµού από θέσεις του διανύσµατος που λαµβάνονται στο προηγούµενο στάδιο, το Ei-1. Εφόσον το Ei-1 περιέχει ακέραιους που αντιπροσωπεύουν έναν παράγοντα µήκους i-1, και το Ei περιέχει ακέραιους που αντιπροσωπεύουν έναν παράγοντα µήκους i, θα περίµενε κάποιος ότι όλες οι τιµές του Ei είναι διαφορετικές από τις τιµές του Ei-1. Το κόλπο είναι ότι αυτές οι τιµές του Ei-1 δεν τροποποιούνται στο Ei, αλλά σιωπηρά καθορίζουν νέους παράγοντες µήκους i. Οι τιµές του Ei-1 που θα έπρεπε να τροποποιηθούν βασίζονται σε έναν αριθµό από εµφανίσεις του κάθε ακέραιου (παράγοντα) στο Ei, π.χ. οι τιµές που θα τροποποιηθούν είναι αυτές των παραγόντων που εµφανίζονται λιγότερα συχνά. Για παράδειγµα, για κάποια συµβολοσειρά t {a, b}*, θεωρούµε ότι ο ακέραιος 7 στο E3 αντιπροσωπεύει τον παράγοντα aba. Στο επόµενο στάδιο παράγοντες µε µήκος 4 υπολογίζονται. Έτσι ο ακέραιος 7 του E3 θα χωριστεί σε δύο υποκλάσεις : αυτήν που µετά το aba ακολουθεί ένα a (δηλαδή abaa) και αυτήν που µετά το aba ακολουθεί ένα b (δηλαδή abab). Εάν γνωρίζουµε ότι το abaa εµφανίζεται πιο συχνά από το abab µπορούµε να αφήσουµε χωρίς τροποποίηση όλες αυτές τις θέσεις του E3 που περιέχουν το 7 ακολουθούνται από a (το 7 αντιπροσωπεύει σε αυτό το στάδιο τον παράγοντα abaa) και να αναθέσουµε έναν νέο ακέραιο αυτές τις θέσεις στο Ei-1 που περιέχουν το 7 και ακολουθούνται από b. Φυσικά, η ίδια διαδικασία θα πρέπει να ακολουθηθεί και για όλους τους ακέραιους (κλάσεις) του Ei-1. 82

95 Το πρόβληµα στις βεβαρηµένες ακολουθίες γίνεται ξεκάθαρο: δεν µπορούµε να αυξήσουµε τους παράγοντες έµµεσα. Έχουµε να ανανεώσουµε τις πιθανότητες εµφάνισής τους σε κάθε βήµα έτσι ώστε να γνωρίζουµε κατά πόσο αυτές οι επαναλήψεις έχουν πιθανότητα µεγαλύτερη από k. Ως αποτέλεσµα, θα πρέπει να επεξεργαστούµε όλες τις κλάσεις, που µας οδηγεί σε αλγόριθµο O(n²) χρόνου. Στο (Iliopoulos et al., 2003b) δεν εντοπίστηκε αυτό το πρόβληµα, και ισχυρίστηκαν ότι η πολυπλοκότητα είναι O(nlogn), το οποίο όπως φαίνεται είναι λανθασµένο. Εναλλακτικά, θα µπορούσε κάποιος να προσπαθήσει να βρει όλες τις επαναλήψεις χωρίς να υπολογίσει πιθανότητες, και στην συνέχεια να υπολογίσει τις πιθανότητες των πραγµατικών επαναλήψεων. Αυτό δεν είναι καλύτερη λύση διότι το µήκος κάθε επανάληψης µπορεί να είναι O(n) για κάθε επανάληψη. Επιπλέον, εάν δεν υπολογίσουµε πιθανότητες σε ολόκληρο τον αλγόριθµο µπορεί να καταλήξουµε µε O( Σ ⁿ) παράγοντες. Έτσι από ότι φαίνεται, η υιοθέτηση αυτής της προσέγγισης για την αναζήτηση επαναλήψεων σε βεβαρηµένες ακολουθίες µπορεί πιθανώς να οδηγήσει σε αλγόριθµο O(n²) χρόνου. Αλγόριθµος KMR Ο αλγόριθµος KMR υπολογίζει ισοδύναµες κλάσεις, παρόµοια µε τον αλγόριθµο του Crochemore, αλλά προχωρά σ ε logn στάδια O(n) χρόνου το καθένα. Εφαρµόστηκε µε επιτυχία στο (Iliopoulos et al., 2004b). Σε ολόκληρο των αλγόριθµο, ακέραιοι (που καλούνται ισοδύναµες κλάσεις) χρησιµοποιούνται για να αντιπροσωπεύουν παράγοντες. Εφόσον κάθε θέση σε µία βεβαρηµένη ακ ολουθία µπορεί να περιέχει περισσότερα από ένα σύµβολα, περισσότεροι από έναν παράγοντες του ίδιου µήκους µπορούν να ξεκινήσουν από την ίδια θέση. Η αναγνώριση των επαναλήψεων πέφτει στην αναγνώριση των θέσεων που περιέχουν το λιγότερο έναν κοινό παράγοντα. Αυτές οι θέσεις καλούνται ισοδύναµες. Πιο τυπικά µπορούµε να δώσουµε το εξής ορισµό: Δοθείσας µιας βεβαρηµένης ακολουθίας t, οι θέσεις i και j είναι a-ισοδύναµες (a {1, 2,, n} και i, j {1, 2,, n-a+1} γράφεται ieaj ) εάν κα µόνο εάν υπάρχει το λιγότερο µια υποσυµβολοσειρά f µήκους a, που ξεκινά και στις δύο θέσεις i και j. 83

96 Μια σχέση ισοδυναµίας Ea αναπαρίσταται ως ένα n a + 1 διάνυσµα, Ea[1...n a + 1], ενός συνόλου από ακέραιους, όπου κάθε Ea[i] περιέχει τις ετικέτες των ισοδύναµων κλάσεων του Ea στις οποίες κάθε παράγοντας ξεκινά στην θέση i που ανήκει. Το παρακάτω λήµµα αποτελεί τον βασικό µηχανισµό του αλγορίθµου KMR. Λήµµα: Για ακέραιους i, j, a, b µε b a έχουµε iea+bj ακριβώς, όταν ieaj και i + beaj + b (1), ή, ισοδύναµα, όταν ieaj και i + aebj + a. Για την επίλυση του προβλήµατος του εντοπισµού επαναλαµβανόµενων υποσυµβολοσειρών µήκους d πάνω σε µια βεβαρηµένη ακολουθία t, ο αλγόριθµος KMR λειτουργεί ως εξής: 1. Σκανάρει την βεβαρηµένη ακολουθία t για να κατασκευάσει την σχέση E1. 2. Χρησιµοποιεί το παραπάνω λήµµα για να κατασκευάσει τις êëlog2 d úû σχέσεις Ε2, Ε4, Ε8,..., Εr, όπου r = Χρησιµοποιεί το παραπάνω λήµµα για να κατασκευάσει την σχέση Ed από τις σχέσεις E1, Ε2,..., Εr. Το πρώτο στάδιο του αλγόριθµου είναι straightforward. H περιγραφή της κατασκευής κάθε νέας ισοδύναµης σχέσης από µια ήδη από τις υπάρχουσες (χρησιµοποιούνται συνεχώς στα στάδια 2 και 3) θα περιγραφεί στην συνέχεια. Αυτή η διαδικασία χρησιµοποιεί ea+eb στοίβες, P(1),, P(ea) και Q(1),, Q(eb), όπου ea, eb αναπαριστούν τον αριθµό των διακριτών κλάσεων ισοδυναµίας στα Ea και Eb αντίστοιχα. 84

97 Τα βήµατα του αλγορίθµου KMR µπορούν να περιγραφούν αναλυτικά στα εξής παρακάτω βήµατα: Βήµα 1: Ταξινοµούµε το διάνυσµα Ea χρησιµοποιώντας P-στοίβες. Έτσι, διατρέχοντας το Ea, για κάθε παράγοντα x σε κάθε θέση i, ωθείτε η i στο P(x). Σηµειώνουµε ότι η ίδια θέση i, µπορεί να έχει ωθηθεί σε περισσότερες από µία στοίβες. Έτσι µέχρι στιγµής, έχοντας την ίδια θέση i σε περισσότερες από µια P-στοίβες δεν προκαλείται κάποιο πρόβληµα, εφόσον αυτές οι στοίβες είναι διακριτές. Αλλά, για λόγους εξήγησης, ας τις διακρίνουµε µε το εξής τρόπο: θα χρησιµοποιήσουµε το ix για να ορίσουµε την θέση i όταν αναφέρεται στον παράγοντα x που ξεκινά σ αυτήν την θέση και το ix για την θέση i, που αντιπροσωπεύει έναν δεύτερο παράγοντα x' ( x). Βήµα 2: Αναδύουµε (Pop) κάθε P(x) µέχρι να είναι άδεια η σειρά κατά την οποία οι στοίβες αναδύονται δεν έχει σηµασία, καθώς καµία στοίβα δεν αναδύεται πριν η προηγούµενη αναδυόµενη λίστα είναι άδεια. Καθώς ο αριθµός ix αναδύεται από την P(x), ωθούµε αυτό στην Q(y) y Eb[d + a} παρέχοντας αυτό d + a n (a + b - 1). Σηµειώνουµε ότι µπορεί να υπάρχουν περισσότεροι από έναν παράγοντες y µήκους b που ξεκινούν στην θέση d + a. Έτσι, η θέση ix θα ωθηθεί σε όλες τις κατάλληλες Q στοίβες. Ωστόσο, όταν µία άλλη στοίβα P, ας πούµε P(x ) αναδύεται, είναι πιθανό ότι η ίδια θέση ix (που αναφέρεται σε διαφορετικό παράγοντα) να ωθηθεί στην ίδια στοίβα Q σαν ix. Έχοντας το ότι δεν έχουµε διακρίνει την ix από την ix, θα µπορούσαµε να έχουµε τελειώσει µε την ίδια θέση i που εµφανίζεται περισσότερες από µια φορές στην ίδια στοίβα Q(y). Βήµα 3: Τέλος, κατασκευάζουµε το Ea+b: Επιτυχώς αναδύουµε κάθε Q-στοίβα µέχρι να αδειάσει. Ξεκινάµε µε µία µεταβλητή µετρητή κλάσης c το οποίο αρχικοποιούµε στο 1. Καθώς κάθε ix αναδύεται από 85

98 µια δοθείσα στοίβα Q(y) ελέγχουµε κατά πόσον το x είναι ίσο µε το x, όπου x είναι ο παράγοντας που αντιπροσωπεύεται από την θέση j που µόλις αναδύθηκε από την ίδια στοίβα. Εάν ισχύει αυτό, τότε έχουµε iea+bj ακριβώς, όταν ieaj και i + beaj + b. Εποµένως εισάγουµε τον c στο σύνολο Ea+b[d]. Αλλιώς έχουµε i + beaj + b αλλά όχι ieaj. Ως εκ τούτου, εισάγουµε τον c+1 στο Ea+b[d] και αυξάνουµε το c σε c+1. Όταν η στοίβα Q(y) είναι εξαντληµένη, τότε η αύξηση του c σε c+1 γίνεται πριν την έναρξη της ανάδυσης της επόµενης Q-στοίβας. Όταν η ix είναι το πρώτο στοιχείο από την Q-στοίβα, εισάγουµε το c στο Ea+b[d] αυτόµατα. Υπολογισµός των Κανονικοτήτων Οι κανονικότητες σε µια ακολουθία µπορεί να έρθουν υπό πολλές µορφές. Μπορούν να αντιστοιχούν σε κατά προσέγγιση επαναλήψεις τυχαία διασκορπισµένες κατά µήκος της ακολουθίας, ή σε επαναλήψεις που συµβαίνουν µε ένα περιοδικό ή περίπου περιοδικό τρόπο. Το µήκος και ο αριθµός των επαναλαµβανόµενων στοιχείων που κάποιος επιθυµεί να είναι σε θέση να προσδιορίσει µπορεί να είναι εξαιρετικά µεταβλητό. Στην ενότητα αυτή, παρουσιάζουµε την επέκταση του αλγόριθµου KMR από τους (Christodoulakis et al., 2006) για τον υπολογισµό καλυµµάτων στις βεβαρηµένες ακολουθίες. Τα καλύµµατα σε βεβαρηµένες ακολουθίες εµπίπτουν σε δύο κατηγορίες: (1) να επιτρέπουν επικαλύψεις για την επιλογή διαφορετικών συµβόλων από µία µόνο θέση και (2) παράγοντες που επικαλύπτονται επιλέγουν τα ίδια σύµβολα για επικαλυπτόµενες περιοχές. Παρατηρούµε ότι το πρώτο είδος των καλύψεων επιτρέπει συνόρων λιγότερο καλύµµατα για να αλληλεπικαλύπτονται, ενώ η δεύτερη δεν το κάνει. Για παράδειγµα, θεωρούµε την παρακάτω βεβαρηµένη ακολουθία: 86

99 Ο παράγοντας AC την πρώτη κατηγορία: εµφανίζεται στις θέσεις 1, 2, 4 και 5. Σε αυτήν την περίπτωση, η εµφάνιση του AC στην θέση 1 διαλέγει το γράµµα C στην θέση 2, καθώς η εµφάνιση στη θέση 2 διαλέγει το γράµµα Α για την θέση 2. Το ίδιο συµβαίνει και στις εµφανίσεις του AC στις θέσεις 4 και 5. Για να εντοπίσουµε τα καλύµµατα µήκους d, πρώτα χρησιµοποιούµε ον αλγόριθµο KMR για να βρούµε όλες τις µήκους d επαναλήψεις. Έπειτα ξοδεύοντας O(n) επιπλέον χρόνο (έτσι O(nlogn) ολικός χρόνος) µπορούµε να βρούµε κάποιο από τα είδη των καλυµµάτων: Τύπος (1): για κάθε παράγοντα που εµφανίζεται στη θέση 1 (υπάρχει ένας σταθερός αριθµός από αυτούς) σαρώνουµε το Ed για τις εµφανίσεις του ίδιου παράγοντα. Εάν η απόσταση των συνεχόµενων εµφανίσεων είναι πάντα µικρότερη του d ένα κάλυµµα έχει βρεθεί. Τύπος (2): για κάθε πα ράγοντα που εµφανίζεται στη θέση 1, υπολογίζουµε το σύνορο πίνακα του (O(d) χρόνο). Σαρώνουµε το Ed όπως στον τύπο (1), µόνο που τώρα απορρίπτουµε εµφανίσεις που ξεκινούν σε θέσεις διαφορετικές για κάποιο σύνορο της προηγούµενης εµφάνισης. Ο υπολογισµός τ ου τύπου (1) καλυµµάτων είναι straightforward. Από την άλλη πλευρά, τα καλύµµατα τύπου (2) αντιµετωπίζουν µία δυσκολία: πως µπορεί το σύνορο πίνακα του παράγοντα να υπολογιστεί, εφόσον οι παράγοντες αντιπροσωπεύονται µόνο από ακέραιους, και οι πραγµατικοί παράγοντες (συµβολοσειρές) δεν αποθηκεύονται; Προφανώς, δεν υπάρχει άλλως τρόπος από την αποθήκευση των πραγµατικών συµβολοσειρών που αντιστοιχούν σε αριθµούς που αντιπροσωπεύουν 87

100 παράγοντες. Η χωρική πολυπλοκότητα γι αυτό είναι O(nd), εφόσον υπάρχουν το π ολύ O(n) παράγοντες µήκους d. Η χρονική πολυπλοκότητα παραµένει ανεπηρέαστη από το γεγονός ότι οι πραγµατική παράγοντες αναγνωρίζονται και αποθηκεύονται. Για παράδειγµα, θεωρούµε ότι συνδυάζοντας τις σχέσεις ισοδυναµίας Ea και Eb θα λάβουµε το Ea+b. Η αναγνώριση ενός παράγοντα στο Ea+b απαιτεί µόνο σταθερό χρόνο εφόσον µπορεί να κατασκευαστεί από την συνένωση ενός παράγοντα από το Ea µε έναν παράγοντα από το Eb. Ακριβές Ταίριασµα Προτύπων Το πρόβληµα για το ακριβές ταίριασµα προτύπων µπορεί να ορισθεί ως εξής: Ορισµός: Δοθέντος ενός στέρεου προτύπου p = p[1 m], ένα βεβαρηµένο κείµενο t = t[1 n] και µιας δοθείσας αυθαίρετης σταθεράς 0 < k 1, βρες όλες τις εµφανίσεις του p στο t µε πιθανότητα ταιριάσµατος µεγαλύτερη του k. Ο αλγόριθµος KMR µπορεί να δώσει λύση σε αυτό το πρόβληµα. Ωστόσο, αυτός ο αλγόριθµος έχει εξασφαλισµένες πολυπλοκότητες στην περίπτωση που το k είναι πολύ µεγάλο. Θεωρούµε ότι m = p. Ο υπολογισµός όλων των επαναλήψεων µήκους m γίνεται σε χρόνο O((n + m)logm). Αλλά, ενδιαφερόµαστε µόνο στις επαναλήψεις (i, j) της Εm-κλάσης τέτοιες ώστε i = 1 και j > m + 1. Μια απλή διάσχιση όλων των κλάσεων του Em σε γραµµικό χρόνο αρκεί για τον εντοπισµό των ταιριασµάτων. Η χωρική πολυπλοκότητα του αλγορίθµου µειώνεται σε γραµµική από τον online υπολογισµό των σχέσεων ισοδυναµίας. 88

101 2.2.4 Το Βεβαρηµένο Δέντρο Επιθεµάτων Σε αυτήν την ενότητα παρουσιάζουµε το βεβαρηµένο δέντρο επιθεµάτων, µια αποτελεσµατική δο µή δεδοµένων για τον υπολογισµό κανονικοτήτων συµβολοσειρών σε βεβαρηµένες ακολουθίες από βιολογικά δεδοµένα. Οι βιολογικές βεβαρηµένες ακολουθίες µπορούν να µοντελοποιήσουν σηµαντικές βιολογικές διαδικασίες όπως DNA Assembly Process ή DNA-Protein Binding Process. Ως εκ τούτου το ταίριασµα προτύπων ή ο εντοπισµός επαναλαµβανόµενων προτύπων, σε βιολογικές βεβαρηµένες ακολουθίες αποτελούν πολύ σηµαντικές διεργασίες για την µετάφραση της γονιδιακής έκφρασης και κανονικότητας. Αλγόριθµοι Κατασκευής Σε αυτήν την υπο ενότητα θα περιγράψουµε έναν αποτελεσµατικό αλγόριθµο για την κατασκευή του βεβαρηµένου δέντρου επιθεµάτων για µια βεβαρηµένη ακολουθία X = X[1..n], όπου n το µήκος της. Αρχικά, θα περιγράψουµε την απλοϊκή προσέγγιση, η οποία είναι τετραγωνική σε χρόνο. Το βεβαρηµένο δέντρο επιθεµάτων είναι ένα γενικευµένο δέντρο επιθεµάτων (Generalized Suffix Tree ή GST) αποτελούµενο από όλες τις υπολέξεις µε πιθανότητα εµφάνισης µεγαλύτερη από l/k, για µια σταθερά k. Το βεβαρηµένο δέντρο επιθεµάτων µπορεί να κατασκευαστεί ως εξής: Για κάθε i, (2 i n), παράγουµε τις συµβολοσειρές Si,j που ξεκινούν από την θ έση i και έχουν πιθανότητα εµφάνισης µεγαλύτερη ή ίση από 1/k. Κατασκευάζουµε το γενικευµένο δένδρο επιθεµάτων του συνόλου των παραγοµένων συµβολοσειρών Si,j. Η απλοϊκή ανάλυση υποθέτει ότι κάθε επίθετα που ξεκινά σε συγκεκριµένη θέση i µπορεί πιθανώς να συνεχίσει µέχρι το τέλος της συµβολοσειράς. Έτσι, το επίθεµα i µπορεί µήκος έως n i + 1. Εάν στο βήµα 1 όλες οι θέσεις της ακολουθίας πρέπει να εξεταστούν τότε αυτό το βήµα 89

102 κοστίζει O(n²) και O(n) διακριτές συµβολοσειρές παράγονται. Η δεύτερη παρατήρηση οδηγεί σε ένα O(n²) πάνω όριο για το βήµα 2 αντίστοιχα. Η παραπάνω απλοϊκή ανάλυση δεν είναι βέλτιστη εφόσον ο χρόνος της κατασκευής είναι O(n²). Έτσι στη συνέχεια θα παρουσιάσουµε εναλλακτική αποτελεσµατική προσέγγιση. Η µέθοδος περιλαµβάνει τρεις φάσεις: Χρωµατισµός, Παραγωγή και Κατασκευή. Χρησιµοποιώντας ως παράδειγµα την βεβαρηµένη ακολουθία της προηγούµενης ενότητας, τα βήµατα της µεθοδολογίας είναι : Α) Χρωµατισµός Σαρώνουµε όλες τις θέσεις i, (2 < i < n), της ακολουθίας και τις χρωµατίζουµε ανάλογα µε τα εξής κριτήρια: χρωµατίζουµε την θέση i µαύρη, αν κανένα από τα διαθέσιµα σύµβολα δεν έχει πιθανότητα εµφάνισης µεγαλύτερη του 1 1/k. χρωµατίζουµε την θέση i γκρι, αν ένα από τα διαθέσιµα σύµβολα έχει πιθανότητα εµφάνισης µεγαλύτερη του 1 1/k. χρωµατίζουµε την θέση i λευκή, αν ένα από τα διαθέσιµα σύµβολα έχει πιθανότητα εµφάνισης ίση µε 1. Παρατηρούµε ότι: 1) στις λευκές θέσεις έχουµε µία µόνο επιλογή και τα γινόµενα των πιθανοτήτων εµφάνισης δεν µειώνονται, 2) στις γκρι θέσεις έχουµε µία µόνο επιλογή αλλά το γινόµενο φθίνει και 3) στις µαύρες θέσεις έχουµε περισσότερες από µία επιλογές εποµένως αυτές συµβάλουν στην δηµιουργία νέων συµβολοσειρών. Τις µαύρες θέσεις καθώς τις χρωµατίζουµε τις τοποθετούµε στο δεξιό άκρο µίας λίστας Β. Αυτή η λίστα λαµβάνεται ως είσοδος στο επόµενο βήµα του αλγορίθµου. Ο αλγόριθµος του χρωµατισµού απεικονίζεται στην παρακάτω εικόνα: 90

103 Εικόνα 2.3 Αλγόριθµος Χρωµατισµού B) Παραγωγή Μετά την φάση του χρωµατισµού, ξεκινά η δεύτερη φάση που ονοµάζεται φάση παραγωγής έχοντας ως είσοδο την βεβαρηµένη ακολουθία, τον πίνακα χρωµάτων και την λίστα B. Σαρώνουµε όλες τις µαύρες θέσεις k της λίστας Β από τα αριστερά προς τα δεξιά. Σε κάθε τέτοια θέση k παράγουµε τις συµβολοσειρές Sk,j που ξεκινούν από αυτή την θέση. Η παραγωγή όπως περιγράφηκε και στην απλοϊκή προσέγγιση γίνεται µε συνεχείς προεκτάσεις προς τα δεξιά κατά ένα χαρακτήρα όσο συναντάµε µία λευκή ή γκρι θέση. Σε κάθε µαύρη θέση που συναντάται οι επιλογές είναι παραπάνω από µία οπότε δηµιουργούνται παραπάνω από µία συµβολοσειρές. Η παραγωγή των συµβολοσειρών αυτών θα µπορούσε να υλοποιηθεί χρησιµοποιώντας µια δεντρική δοµή όπου τα φύλλα σηµειώνονται σε µία λίστα. Για κάθε λευκή ή γκρι θέση όλα τα φύλλα προεκτείνονται µε έναν 91

104 κόµβο ενώ στις µαύρες θέσεις εξετάζονται ποια φύλλα και από ποιες επιλογές συµβόλων µπορούν να προεκταθούν χωρίς να παραβιάζεται το όριο 1/k. Τέτοιες προεκτάσεις εισάγονται ως απόγονοι του τρέχοντος φύλλου της λίστας ενώ αυτό διαγράφεται από λίστα και εισάγονται στην θέση του οι νέοι κόµβοι. Εικόνα 2.4 Παραγωγή Όλων των Πιθανών Υπολέξεων Εικόνα 2.5 Προεκταµένες και Πραγµατικές Υπολέξεις Για κάθε συµβολοσειρά που είναι προς επέκταση φυλάγεται και στο αντίστοιχο φύλλο το γινόµενο των πιθανοτήτων εµφάνισης π καθώς και το γινόµενο Π όπου κάθε γκρι θέση έχει αντιµετωπισθεί ως λευκή (δηλαδή δεν έχει µειώσει καθόλου το γινόµενο). Η προέκταση µιας συµβολοσειράς σταµατά µόλις το γινόµενο Π πέσει κάτω από το κατώφλι 1 /k. Παρατηρήστε ότι η πραγµατική θέση που θα έπρεπε να είχε σταµατήσει η αντίστοιχη προέκταση βρίσκεται πιο αριστερά από τη θέση που βρισκόµαστε. Η πρώτη θέση καλείται πραγµατική θέση ενώ η τρέχουσα προεκταµένη θέση ενώ η διαφορά τους D σε θέσεις επίσης σηµειώνεται µαζί µε κάθε συµβολοσειρά (Εικόνα 2.7). Τονίζεται ότι µόνο οι π ραγµατικές συµβολοσειρές πρέπει να 92

105 εισαχθούν στην δο µή δεικτοδότησης µέχρι το πραγµατικό σηµείο που µπορούν να προεκταθούν. Η περιττή προέκταση που τους γίνεται χρειάζεται για να αντιµετωπισθεί το ενδεχόµενο ένα επίθεµα της αρχικής συµβολοσειράς να τερµατίζει δεξιότερα από αυτή εξαιτίας των µικρών αλλοιώσεων που προκαλούν οι γκρι θέσεις. Μόλις τελειώσει αυτή η διαδικασία για µια µαύρη θέση επαναλαµβάνεται για την επόµενη γειτονική προς τα δεξιά της. Ο αλγόριθµος της παραγωγής απεικονίζεται στην παρακάτω εικόνα: Εικόνα 2.6 Αλγόριθµος Παραγωγής Γ) Κατασκευή Έχοντας δηµιουργήσει όλες τις συµβολοσειρές από κάθε µαύρη θέση τις εισάγουµε µε κατάλληλο τρόπο σε ένα γενικευµένο δένδρο επιθεµάτων. 93

106 Κάθε τέτοια συµβολοσειρά αρχικά την εισάγουµε µαζί µε ένα µέρος των επιθεµάτων της και στην συνέχεια αφαιρούνται από όλα αυτά το πλεονάζον µέρος D. Αν για παράδειγµα µια τέτοια συµβολοσειρά είναι η Ζ' = X[i.. i + f ' - 1] οπότε και Ζ = X[i.. i + f ' - 1] (f f') η πραγµατική συµβολοσειρά (χωρίς την προέκταση), τότε παρατηρούµε ότι: Δεν είναι αναγκαίο να εισάγουµε κάθε επίθεµα του Χ που αρχίζει από την επόµενη προς τα δεξιά µαύρη θέση αφού όπως είδαµε και στο 2ο βήµα του αλγορίθµου θα το συµπεριλάβει όταν σε επόµενο βήµα εκείνη θα είναι η τρέχουσα µαύρη θέση. Ένα επί θεµα του Χ' µπορεί να προεκτείνεται πιο δεξιά από την πραγµατική θέση i + f - 1 (όπου η πραγµατική συµβολοσειρά τερµατίζει) αφού οι γκρι θέσεις λαµβάνονται υπόψη ως λευκές µε πιθανότητα 1. Τέλος παρατηρήστε ότι κανένα από τα πιθανά αυτά επιθέµατα δεν πρόκειται να τερµατίζει δεξιότερα από την θέση i + f - 1 (την προεκταµένη θέση). Τα επιθέµατα του εκάστοτε Χ' εισάγονται στο γενικευµένο δένδρο επιθεµάτων και σηµειώνονται σε µια λίστα L. Αν DX', είναι το πλεονάζον τµήµα του Χ' όπως δείχνει και η εικόνα 2.9 τότε το πλεονάζον τµήµα για τα υπόλοιπα επιθέµατα θα είναι και αυτό το πολύ DX' και αναγκαίο είναι να αναληφθεί από όλα τα εισαγόµενα επιθέµατα. Ξεκινώντας από το φύλλο που αντιστοιχεί στην Χ', κινούµαστε προς την ρίζα κατά DX' χαρακτήρες και σε εκείνο το σηµείο µεταφέρεται το αρχικό φύλλο. Με αυτό τον τρόπο το πλεονάζον τµήµα απαλείφεται από την Χ' και στην δο µή υπάρχει η επιθυµητή Χ. Από το σηµείο αυτό πηγαίνουµε στον πατέρα και ακολουθώντας τον σύνδεσµο επιθεµάτων βρίσκουµε την θέση που πρέπει να τοποθετηθεί το φύλλο του επόµενου επιθέµατος. Για να γίνει αυτό αναγκαίο είναι να συγκριθούν λ χαρακτήρες όπου l = (D - D ), όσοι δηλαδή και οι 1 1 X ' X ' χαρακτήρες που διαφέρουν τα πλεονάζοντα τµήµατα σε δύο διαδοχικά επιθέµατα. Στην γενικότερη περίπτωση θα έχουµε d d+ 1 l d X ' X ' = (D - D ). 94

107 Αθροίζοντας τα κόστη αυτά συνολικά θα κάθε συµβολοσειρά χρειάζεται χρόνος Ο(DX') για να αποµακρυνθούν τα πλεονάζοντα τµήµατα από τα αντίστοιχα επιθέµατα που έχουν εισαχθεί στην δο µή. Συνεπώς για κάθε παραγόµενη συµβολοσειρά χρειάζεται και αυτός ο επιπρόσθετος χρόνος για να καταλήξει η δοµή στην τελική ορθή µορφή της. Εικόνα 2.7 Εισαγωγή Επιθεµάτων Κλείνοντας τον αλγόριθµο κατασκευής πρέπει να προσθέσουµε ότι θεωρούµε ότι καµία θέση της βεβαρηµένης ακολο υθίας δεν εµφανίζει το καθένα από τα σύµβολα της µε πιθανότητα µικρότερη από 1/k. Αυτό θα σήµαινε ότι όλες οι παραγόµενες συµβολοσειρές δεν µπορούν να συµπεριλάβουν αυτή τη θέση αφού κανένα σύµβολο δεν έχει ικανή πιθανότητα εµφάνισης. Αν κάτι τέτοιο συµβαί νει τότε η βεβαρηµένη ακολουθία σπάει στα δύο σε εκείνα τα σηµεία και ο αλγόριθµος εφαρµόζεται για τις ακολουθίες που προκύπτουν. Ο αλγόριθµος της κατασκευής απεικονίζεται στην παρακάτω εικόνα: 95

108 Εικόνα 2.8 Αλγόριθµος Κατασκευής Χωρική και Χρονική Ανάλυση Σε αυτήν την ενότητα µελετάµε την ανάλυση του παραπάνω αλγορίθµου όσον αφορά την χωρική και χρονική πολυπλοκότητα. Η ανάλυση αυτή βασίζεται στα παρακάτω λήµµατα. Για τις αποδείξεις τους µπορεί κάποιος να ανατρέξει στο (Iliopoulos et al., 2006). Λήµµα (3.3 από (Iliopoulos et al., 2006)). Το πολύ Ο Σ log k/log k συµβολοσειρές µπορούν να ξεκινούν από κάθε θέση διακλάδωσης (µαύρες θέσεις) i ( 1 i n) της βεβαρηµένης ακολουθίας. k 1 Λήµµα (3.4 από (Iliopoulos et al., 2006)). Ο αριθµός των υπολέξεων µε πιθανότητα εµφάνισης µεγαλύτερη ή ίση µε το όριο 1/k είναι το πολύ O(n). Λήµµα (3.6 από (Iliopoulos et al., 2006)). Το βήµα Παραγωγής του αλγορίθµου χρειάζεται χρόνο 0(n). Λήµµα (3.6 από (Iliopoulos et al., 2006)). Το βήµα Κατασκευής του αλγορίθµου χρειάζεται χρόνο 0(n). 96

109 Θεώρηµα (3.1 από (Iliopoulos et al., 2006)). Η χρονική και η χωρική πολυπλοκότητα της κατασκευής του βεβαρηµένου δένδρου επιθεµάτων WST µιας βεβαρηµένης ακολουθίας, n θέσεων, είναι γραµµική ως προς το µήκος της βεβαρηµένης ακολουθίας (O(n)). Απόδειξη. Το βεβαρηµένο δέντρο επιθεµάτων, το οποίο είναι µιας συµπαγής trie δοµή δεδοµένων, αποθηκεύει O(n) υπολέξεις (από το Λήµµα 3.4 του (Iliopoulos et al., 2006)) και έτσι ο χώρος είναι O(n). Κανένα από τα βήµατα του αλγορίθµου δεν χρειάζεται περισσότερο από O(n) χρόνο, οπότε και η ολική χρονική πολυπλοκότητα είναι O(n) Εφαρµογές Βεβαρηµένου Δέντρου Επιθεµάτων Το βεβαρηµένο δένδρο επιθεµάτων µοιράζεται τα δοµικά χαρακτηριστικά του δένδρου επιθεµάτων, κληρονοµεί την ικανότητα να απαντάει σε µεγάλο εύρος ερωτηµ άτων. Στη συνέχεια παρουσιάζουµε µερικές από τις πιο ευρέως διαδοµένες εφαρµογές του βεβαρηµένου δένδρου επιθεµάτων. Εύρεση Προτύπων ως εξής. Το πρόβληµα εύρεσης προτύπων σε βεβαρηµένες ακολουθίες ορίζεται Πρόβληµα. Δοθέντος ενός προτύπου p και µιας βεβαρηµένης ακολουθίας S, βρείτε τις θέσεις εκκίνησης του p στην X, που κάθε µια έχει πιθανότητα εµφάνισης µεγαλύτερη του 1/k. Αρχικά κατασκευάζουµε το βεβαρηµένο δέντρο επιθεµάτων για την X µε παράµετρο k. Διακρίνουµε δύο περιπτώσεις. Αν το p αποτελείται αποκλειστικά από µη βεβαρηµένες θέσεις, συλλαβίζουµε το p από τη ρίζα του δέντρου, µέχρις ότου σε έναν εσωτερικό κόµβο u είτε έχουµε συλλαβίσει 97

110 ολόκληρο το p, στην οποία περίπτωση αναφέρουµε στην έξοδο όλα τα στοιχεία του LL(u), ή δεν µπορούµε να προχωρήσουµε περισσότερο, οπότε αναφέρουµε αποτυχία. Αν το p περιέχει βεβαρηµένες θέσεις, το διασπούµε σε στέρεα πρότυπα, σε χρόνο O( p ), το καθένα µε πιθανότητα εµφάνισης µεγαλύτερη από 1/k, και ταιριάζουµε το καθένα από αυτά χρησιµοποιώντας την παραπάνω διαδικασία. Προφανώς, το ταίριασµα προτύπου µπορεί να επιλυθεί χρησιµοποιώντας την παραπάνω διαδικασία σε O(m + a) χρόνο, m = ρ και a είναι το µέγεθος της εξόδου, µε O(n) προεπεξεργασία και O(n) χώρο. Υπολογισµός Επαναλήψεων Ένα από τα ερωτήµατα που έχει έντονο βιολογικό ενδιαφέρον είναι η ανακάλυψη επαναλήψεων µέσα σε µία συµβολοσειρά. Για απλές συµβολοσειρές έχουν προταθεί πολλές µέθοδοι για την ανακάλυψη επαναλήψεων. Κάνοντας χρήση του βεβαρηµένου δέντρου επιθεµάτων µπορούµε να υπολογίσουµε σε γραµµικό χρόνο, όλες τις επαναλήψεις σε µια βεβαρηµένη ακολουθία Χ. Πιο συγκεκριµένα υπολογίζουµε τις επαναλήψεις όλων των υπολέξεων u, µε Pr{u} 1/k, για κάθε u. Αυτή η εκδοχή του προβλήµατος παρουσιάζει ιδιαίτερο βιολογικό ενδιαφέρον. Πρόβληµα. Δοθείσης σταθµισµένης ακολουθίας Χ και ακεραίου k, ζητάµε να βρεθούν όλες οι επαναλήψεις όλων δυνατών υπολέξεων u, µεpr{u} 1/k, για κάθε u. Αρχικά κατασκευάζουµε το βεβαρηµένο δένδρο επιθεµάτων µε παράµετρο k και διαπερνούµε από κάτω προς τα πάνω (bottom-up). Σε κάθε εσωτερικό κόµβο u µε LL(u) > 1 αναφέρουµε στην έξοδο τα στοιχεία του LL(u) σε ζεύγη. Αυτή η διαδικασία χρειάζεται O(n) χρόνο (από το Λήµµα 3.4 του (Iliopoulos et al., 2006)). 98

111 Στο παράδειγµα των εικόνων 2.1 και 2.2, η µέγιστη επανάληψη είναι η λέξη CTT, η οποία εµφανίζεται στα επιθέµατα: (X2,1, X8,2), (X2,2, X8,2) (µε πιθανότητα µεγαλύτερη από 1/4). Ο χρόνος που απαιτείται για τη λύση είναι O(n + a), όπου µε a συµβολίζουµε το µέγεθος της απάντησης. Εύρεση Μέγιστης Κοινής Υποσυµβολοσειράς µεταξύ συνόλου Βεβαρηµένων ακολουθιών Ένα κλασσικό πρόβληµα στην ανάλυση συµβολοσειρών είναι η εύρεση της µέγιστης κοινής συµβολοσειράς δύο συµβολοσειρών Χ1 και Χ2. Θα επαναδιατυπώσουµε το πρόβληµα της µέγιστης κοινής υποσυµβολοσειράς για να το χρησιµοποιήσουµε σε βεβαρηµένες ακολουθίες. Πρόβληµα. Δοθέντων δυο σταθµισµένων συµβολοσειρών Χ 1 και Χ 2, ζητούµενο είναι να βρεθεί η µέγιστη κοινή συµβολοσειρά µε πιθανότητα εµφάνισης µεγαλύτερη από 1/k σε κάθε µία συµβολοσειρά. Ένας απλός και αποδοτικός τρόπος για την εύρεση της µέγιστης κοινής υποσυµβολοσειράς, δοθ έντων δυο σταθµισµένων ακολουθιών Χ1 και Χ2 είναι να κατασκευάσουµε το γενικευµένο βεβαρηµένο δέντρο επιθεµάτων για τα Χ1 και Χ2. Η ετικέτα µονοπατιού σε κάθε εσωτερικό κόµβο είναι µια υποσυµβολοσειρά κοινή στα Χ1 και Χ2 και µε πιθανότητα εµφάνισης µεγαλύτερη από 1/k. Ο αλγόριθµος απλά βρίσκει τον κόµβο µε το µεγαλύτερο βάθος συµβολοσειράς (ή ισοδύναµα µε το µεγαλύτερο µήκος ετικέτας µονοπατιού) που έχει στο υποδέντρο του φύλλα και από τις δυο ακολουθίες. Μια διαπέραση µέσω προδιάταξης του βεβαρηµένου δέντρου επιθεµάτων αρκεί για τον υπολογισµό του µεγαλύτερου βάθους συµβολοσειράς. Μπορούµε εύκολα να πούµε ότι η παραπάνω διαδικασία ολοκληρώνεται σε χρόνο O(n1 + n2) όπου n1 = Χ1 και n2 = X2. 99

112 3 ΒΕΒΑΡΗΜΕΝΕΣ ΑΚΟΛΟΥΘΙΕΣ ΜΕ ΧΡΗΣΗ N-GRAMS Σε αυτό το κεφάλαιο, θα αντιµετωπίσουµε το πρόβληµα του χειρισµού βεβαρηµένων ακολουθιών. Αυτό το αντιµετωπίζουµε µε την αξιοποίηση του µηχανισµού των ανεστραµµένων αρχείων και στοχεύοντας σε εφαρµογές επεξεργασίας κειµένου, όπου τα «εµπλεκόµενα» έγγραφα δεν µπορούν να διαχωρίζονται σε λέξεις (όπως κείµενα που αντιπροσωπεύουν βιολογικές ακολουθίες) ή ο διαχωρισµός των λέξεων είναι δύσκολη διαδικασία και περιλαµβάνει επιπλέον γλωσσικές γνώσεις (κείµενα για παράδειγµα σε ασιατικές γλώσσες). Εκτός του ότι παρέχουµε έναν χειρισµό των βεβαρηµένων ακολουθιών χρησιµοποιώντας n-grams, παρουσιάζουµε συνοπτικά επίσης και µια µελέτη κατασκευής n-gram ανεστραµµένων ευρετηρίων αποτελεσµατικά σε χώρο. Οι προτεινόµενες τεχνικές συνδυάζουν την κλασική απλή n-gram ευρετηρίαση, µε την πρόσφατα προτεινόµενη τεχνική δύο επίπεδων n-gram ανεστραµµένων ευρετηρίων (two-level n-gram inverted index). Τα τελικά αποτελέσµατα είναι νέες δοµές δεδοµένων για την n-gram ευρετηρίαση, οι οποίες έχουν καλύτερες επιδόσεις όσον αφορά την κατανάλωση χώρου από τα υφιστάµενα. Τα πειραµατικά αποτελέσµατα µας είναι ενθαρρυντικά και απεικονίζουν ότι οι τεχνικές αυτές µπορούν σίγουρα να χειριστούν 100

113 αποτελεσµατικά σε σχέση µε το χώρο n-gram ευρετήρια σε σύγκριση µε τις ήδη υπάρχουσες µεθόδους. 3.1 Θεωρητική Προσέγγιση Η διαφορά µεταξύ βεβαρηµένων ακολουθιών και κανονικών συµβολοσειρών είναι ότι στην πρώτη περίπτωση, επιτρέπουµε σε κάθε θέση την εµφάνιση περισσότερων του ενός χαρακτήρα, τον καθένα µε µία ορισµένη πιθανότητα (Makris and Theodoridis, 2011). Συγκεκριµένα, η βαροζυγισµένη λέξη W = W 1W 2 W n είναι µία ακολουθία θέσεων, όπου κάθε wi θέση συνίσταται ένα σύνολο ζευγαριών. Κάθε ζευγάρι έχει τη µορφή, (σ, π i(σ)), όπου πi(σ) είναι η πιθανότητα να εµφανίζεται ο χαρακτήρας σ στη θέση i. Συνεπώς σε κάθε θέση W i, για κάθε i έχουµε: πi(s)=1. Επιπλέον, συνήθως θεωρείται ότι µια πιθανή υπολέξη (subword) αξίζει τον κόπο να εξετασθεί εάν η πιθανότητα της ύπαρξής της είναι µεγαλύτερη από 1/k, µε k µια παράµετρος που καθορίζει ο χρήστης. Προκειµένου να χειριστούµε βεβαρηµένες ακολουθίες, µια δοµή δεδοµένων παρουσιάζεται στο (Iliopoulos et al., 2006), το Βεβαρηµένο Δέντρο Επιθεµάτων (Weighted Suffix Tree), το οποίο θα µπορούσε να θεωρηθεί ως το πλέον κατάλληλο για την γενίκευση του αλγορίθµου των δένδρων επιθεµάτων. Η καινοτοµία στην προσέγγισή µας είναι ότι, για πρώτη φορά, εκµεταλλευόµαστε τα ανεστραµµένα αρχεία και τα n-grams για τον χειρισµό των βεβαρηµένων ακολουθιών, παρέχοντας έτσι µια ενδιαφέρουσα εναλλακτική λύση στο Βεβαρηµένο Δέντρο Επιθεµάτων για µια ποικιλία εφαρµογών που αφορούν βεβαρηµένες ακολουθίες. Η προσέγγισή µας είναι ενδιαφέρουσα, δεδοµένου ότι προσφέρει ενδιαφέρουσες εναλλακτικές λύσεις για τις προσεγγίσεις που χρησιµοποιούν συστοιχίες επιθεµάτων και δέντρα επιθεµάτων µε ανεστ ραµµένα αρχεία. Αυτό έλειπε στη βιβλιογραφία, σε αντίθεση µε τις παραδοσιακές εφαρµογές αναζήτησης προτύπου, όπως στις µηχανές αναζήτησης όπου προσφέρονται δύο εναλλακτικές λύσεις (βλέπε 101

114 για παράδειγµα (Puglisi et al., 2006), (Transier και Sanders, 2008)). Εµείς δεν θα µπούµε σε λεπτοµέρειες των διαφόρων λειτουργιών ταύτισης προτύπων, αλλά απλώς θα επικεντρωθούµε στο πώς να µετατρέψουµε αποτελεσµατικά σε σχέση µε το χώρο βεβαρηµένες ακολουθίες σε κανονικές και στη συνέχεια να τις χειριστούµε χρησιµοποιώντας τη γνωστή τεχνική των n-grams. Ο στόχος µας δεν είναι µόνο σε βιολογικές, αλλά και σε εφαρµογές σε φυσική γλώσσα. Τα n-grams είναι ακολουθίες διαδοχικών στοιχείων κειµένου (είτε λέξεις είτε σύµβολα), που χρησιµοποιούνται ευρέως στην Ανάκτηση Πληροφορίας (Ogawa και Iwasaki, 1995), (Lee και Ahn, 1996), (Navarro και Baeza-Yates, 1998), (Millar et al., 2000), (Navarro et al., 2000), (Navarro et al., 2001), (Gao et al., 2002), (Mayfield και McNamee, 2003), (Kim et al., 2007), (Yang et al., 2007), (Buttcher et al., 2010), (Croft et al., 2010), ιδιαίτερα σε εφαρµογές που χρησιµοποιούν κείµενο που δεν µπορούν να διαχωριστούν σε λέξεις. Τα ευρετήρια που παράγονται µε την n-gram ανεστραµµένη τεχνική ευρετηριοποίησης, έχουν µια σειρά από πλεονεκτήµατα. Ένα από αυτά είναι ότι δουλεύουν σε οποιοδήποτε είδος ακολουθιών, ακόµα και αν η ακολουθία αποτελείται από λέξεις οι οποίες δεν έχουν καµία πρακτική σηµασία, όπως αλληλουχίες DNA και πρωτεϊνών. Επιπλέον, η τεχνική των n-gram είναι γλώσσα ουδέτερη, δεδοµένου ότι µπορεί ν α εφαρµοστεί σε διαφορετικές γλώσσες. Ένα άλλο σηµαντικό πλεονέκτηµα είναι ότι αυτή η µέθοδος ευρετηρίασης είναι ανεκτική σε σφάλµατα, ανεχόµενη τα λάθη που συµβαίνουν κατά τη διάρκεια της κατασκευής του ευρετηρίου. Αυτό είναι που χρησιµοποιεί για την κατασκευή του, η 1-sliding τεχνική. Παρ' όλα αυτά, το n-gram ανεστραµµένο ευρετήριο έχει και κάποια µειονεκτήµατα. Το µέγεθος τείνει να είναι πολύ µεγάλο και η απόδοση των ερωτηµάτων τείνει να είναι αναποτελεσµατική. Αυτός είναι ο λόγος για τον οποίο µια µεγάλη έρευνα έχει πραγµατοποιηθεί σχετικά µε το πώς να χρησιµοποιείται αυτή η τεχνική αποτελεσµατικά (Kim et al., 2005), (du Mouza et al., 2009), (Tang et al., 2009). Στο (Kim et al., 2005), προτείνεται µια αποτελεσµατική µέθοδος για την κατασκευή ενός ευρετηρίου δύο επιπέδων. Πιο συγκεκριµένα, η 102

115 µέθοδος αυτή φαίνεται να µειώνει σηµαντικά το µέγεθος του ευρετηρίου και βελτιώνει την απόδοση των ερωτηµάτων σε σύγκριση µε την απλή n-gram ανεστραµµένη τεχνική ευρετηριοποίησης. Διατηρώντας παράλληλα όλα τα πλεονεκτήµατα του n-gram ανεστραµµένου ευρετηρίου. Αυτή η τεχνική εξάγει υποσυµβολοσειρές σταθερού µήκους m από την αρχική ακολουθία και στη συνέχεια εφαρµόζει την κλασική τεχνική n-gram για κάθε µία από αυτές τις εξαγόµενες συµβολοσειρές. Όπως φαίνεται στο (Kim et al., 2005), αυτή η τεχνική µπορεί να προσφέρει σηµαντικές βελτιώσεις σε σχέση µε το χώρο, αλλά όπως µπορεί να παρατηρηθεί στα πειραµατικά µας αποτελέσµατα, όταν η αρχική ακολουθία δεν είναι αρκετά επαναλαµβανόµενη, η απόδοση αυτής της τεχνικής ευρετηρίασης δύο επιπέδων επιδεινώνεται. Πιο αναλυτικά, προτείνουµε τρεις νέες τεχνικές για το χειρισµό βεβαρηµένων ακολουθιών χρησιµοποιώντας n-gram ευρετηρίαση. Θα πρέπει να σηµειωθεί ότι αυτά τα γενικευµένα δέντρα επιθεµάτων είναι βεβαρηµένα δέντρα επιθεµάτων που προκύπτουν από το αρχικό σύνολο των βεβαρηµένων ακολουθιών. Επιπλέον, τα πειράµατα και στα δύο συνθετικά και πραγµατικά δεδοµένα εκτελούνται προκειµένου να επικυρωθεί η απόδοση των κατασκευών µας και η µείωση του χώρου που προσφέρουν. Η δουλειά µας µπορεί να θεωρηθεί τόσο µια πειραµατική έρευνα για τις βεβαρηµένες ακολουθίες, καθώς και µια έρευνα για την επικύρωση της αποτελεσµατικότητας χώρου των νέων και προηγουµένων προτεινόµενων κατασκευών στο τοµέα της n-gram ευρετηρίασης. Το υπόλοιπο του κεφαλαίου οργανώνεται ως εξής. Στην υποενότητα 2, το σχετικό έργο καθώς και η συνεισφορά. Στην υποενότητα 3, παρουσιάζουµε τις τεχνικές χειρισµού βεβαρηµένων ακολουθιών. Στη συνέχεια, στην υποενότητα. Παρακάτω στην υποενότητα 4 παρουσιάζεται µια αναφορά στα πειραµατικά αποτελέσµατά µας. Τέλος, στην υποενότητα 5 παρουσιάζεται ο επίλογος του κεφαλαίου και παρουσιάζουµε µελλοντικά βήµατα και ανοιχτά προβλήµατα. 103

116 3.2 Σχετικές Εργασίες και Συνεισφορά Στο (Christodoulakis et al., 2006), ένα σύνολο αποδοτικών αλγορίθµων για τα προβλήµατα συµβολοσειρών, που αφορούν βεβαρηµένες ακολουθίες που προκύπτουν στον τοµέα της υπολογιστικής βιολογίας, παρουσιάστηκαν προσαρµόζοντας την παραδοσιακή ταίριασµα προτύπων τεχνική για το βαροζυγισµένο σενάριο. Με σκοπό το προσεγγιστικό ταίριασµα π ροτύπου σε µία βεβαρηµένη ακολουθία, µία µέθοδος παρουσιάστηκε στο (Amir et al., 2006) για το πολλαπλασιαστικό µοντέλο εκτίµησης πιθανότητας. Ειδικότερα, δύο διαφορετικοί ορισµοί για Hamming καθώς και για την Απόσταση Μετασχηµατισµού (edit distance) σε βεβαρηµένες ακολουθίες, δόθηκαν. Επιπλέον, θα πρέπει να αναφερθούµε σε κάποιες πιο πρόσφατες τεχνικές, όπως αυτές παρουσιάζονται στα (Zhang et al., 2010a), (Zhang et al., 2010β), (Alatabbi et al., 2012), (Zhang et al., 2012), οι οποίες εκτός του ότι επεκτείνουν προηγούµενες προσεγγίσεις, µπορούν επίσης να χρησιµοποιούν το Equivalence Class Tree για το διαθέσιµο πρόβληµα. Από αυτές τις εργασίες, ειδική µνεία αξίζει η έρευνα στο (Zhang et al., 2010α), η οποία γενικεύει την προσέγγιση του (Iliopoulos et al., 2006), έτσι ώστε να χειρίζεται αποτελεσµατικά τα διάφορα προβλήµατα προσεγγιστικών και ακριβών ταιριασµάτων προτύπων σε βεβαρηµένες ακολουθίες. Επιπλέον, υπάρχει µια σύνδεση µε το πιθανολογικό δέντρο επιθεµάτων, το οποίο είναι ουσιαστικά ένα στοχαστικό µοντέλο που χρησιµοποιεί ένα δένδρο επιθεµάτων σαν δοµή ευρετηρίου. Η σύνδεση αυτή έχει ως στόχο να αναπαρασταθεί συµπαγώς η δεσµευµένη κατανοµή των πιθανοτήτων για ένα σύνολο ακολουθιών. Κάθε κόµβος του αντίστοιχου πιθανοτικού δέντρου επιθεµάτων συνδέεται µε ένα διάνυσµα πιθανοτήτων που αποθηκεύει την κατανοµή πιθανοτήτων για το επόµενο σύµβολο, δίνοντας την ετικέτα του κόµβου όπως στο προηγούµενο τµήµα (Marsan και Sagot, 2000), (Sun et al., 2004). Στην παρούσα ενότητα, θα µας απασχολήσουν κυρίως οι τεχνικές προ-επεξεργασίας που παρουσιάζονται στο (Iliopoulos et al., 2006), όπου 104

117 παρουσιάστηκε µια αποτελεσµατική δο µή δεδοµένων για τον υπολογισµό κανονικοτήτων συµβολοσειρών σε βεβαρηµένες ακολουθίες. Αυτή η δο µή δεδοµένων ονοµάζεται Βεβαρηµένο Δέντρο Επιθεµάτων (Weighted Suffix Tree). Η προσέγγισή µας, ωστόσο µπορεί επίσης να προσαρµόζεται ώστε να ενσωµατώνει τις τεχνικές που παρουσιάζονται στο (Zhang et al., 2010a). Όπως περιγράφεται αναλυτικά στο (Iliopoulos et al., 2006), το βεβαρηµένο δέντρο επιθεµάτων διαφέρει από το πιθανολογικό δέντρο επιθεµάτων, δεδοµένου ότι δεν µοντελοποιεί οποιαδήποτε στοχαστική διαδικασία, αλλά αποθηκεύει όλες τις πιθανές υπολέξεις, σύµφωνα µε τις δεδοµένες πιθανότητες. Το βεβαρηµένο δένδρο επιθεµάτων σχεδιάστηκε για να λύσει τα προβλήµατα που ασχολούνται µε την αποτελεσµατική διαχείριση των βεβαρηµένων ακολουθιών στην βέλτιστη πολυπλοκότητα του χρόνου. Η προσαρµογή του δέντρου επιθεµάτων στο βεβαρηµένο δένδρο επιθεµάτων επιτυγχάνεται µε την ενσωµάτωση των πιθανοτήτων εµφάνισης για κά θε επίθηµα, όπου κάθε επίθηµα αντιµετωπίζεται ως µία κανονική υποσυµβολοσειρά. Ειδικότερα, για κάθε επίθεµα αρχίζοντας από την θέση i, αποθηκεύουµε το πρώτους χαρακτήρες l σε ένα σύνολο, έτσι ώστε το π(xi xi+l-1) 1/k. Δηλαδή, έχουµε βάλει στην άκρη χαρακτήρες όπου η πιθανότητα εµφάνισης για κάθε έναν από αυτούς, είναι µεγαλύτερη από το 1/k. Το κύριο κίνητρο για το χειρισµό των βεβαρηµένων ακολουθιών προέρχεται από την Υπολογιστική Μοριακή Βιολογία. Ωστόσο, υπάρχουν πιθανές εφαρµογές στην Κρυπτανάλυση και σε µουσικά κείµενα (βλ. για µια συζήτηση στον τοµέα των ακαθόριστων συµβολοσειρών, οι οποίες συµβολοσειρές έχουν σε θέσεις, σύνολο συµβόλων (Holub και Smyth, 2003), (Holub et al., 2008)). Στην Κρυπτανάλυση, αποκωδικοποιηµένα σύµβολα µπορούν να µοντελοποιηθούν ως σύνολο γραµµάτων µε διαφορετικές πιθανότητες, ενώ στη µουσική, µεµονωµένες νότες µπορεί να ταιριάζουν µε ακόρντα ή νότες µε διαφορετικές πιθανότητες. Επιπλέον, η αναπαράστασή µας των n-grams και των ευρετικών µεθόδων συµπίεσης χώρου είναι γενικής φύσεως σχετικά µε τον αποτελεσµατικό χειρισµό πολυγλωσσικών 105

118 εγγράφων σε µηχανές αναζήτησης του διαδικτύου και γενικά σε εφαρµογές ανάκτησης πληροφοριών. Χαρακτήρες n-grams χρησιµοποιούνται κυρίως στις CJK (Κινέζικη, Ιαπωνική και Κορεάτικη) γλώσσες που από την φύση τους δεν µπορούν εύκολα να διαχωρίζονται σε λέξεις. Σε αυτές τις γλώσσες, η 2-gram ευρετηρίαση φαίνεται να λειτουργεί καλά. Για παράδειγµα στο (Manning et al., 2008), αναφέρεται ότι σε αυτές τις γλώσσες, οι χαρακτήρες µοιάζουν περισσότερο µε συλλαβές από γράµµατα και ότι οι περισσότερες λέξεις είναι µικρές στον αριθµό των χαρακτήρων, και επίσης τα όρια των λέξεων είναι µικρά, και σε αυτές τις περιπτώσεις είναι καλύτερο να χρησιµοποιούνται N- grams. Επιπλέον, τα n-grams είναι χρήσιµα στην Οπ τική Αναγνώριση Χαρακτήρων (Optical Character Recognition) όπου το κείµενο είναι δύσκολο να κατανοηθεί και δεν είναι δυνατόν να έχουµε διακοπές λέξεων. Επιπλέον, τα n-grams είναι χρήσιµα σε εφαρµογές όπως wildcard ερωτήµατα και διόρθωση ορθογραφίας. Στην παρούσα ενότητα απεικονίζουµε τη χρησιµότητα των ευρετικών µεθόδων συµπίεσης χώρου σε µια σειρά από βιολογικά δεδοµένα για παραδειγµατικούς λόγους. Ωστόσο, όπως φαίνεται στο (Kim et al., 2005), µπορούµε επίσης να τις εφαρµόσουµε σε έγγραφα φυσικής γλώσσας. Όπως στο (Kim et al., 2005), εκτελέσαµε µια σειρά από πειράµατα σε βιολογικά δεδοµένα ώστε να απεικονίσουµε την ορθότητα της προσέγγισής µας. Με το ίδιο σκεπτικό όπως και στο (Kim et al., 2008), αναµένουµε ότι τα ευρήµατά µας θα µπορούσαν να είναι εξίσου χρήσιµα σε κείµενα φυσικής γλώσσας, ακόµη και σε φυσικά κείµενα που µπορούν να διαχωριστούν σε λέξεις. Έχουµε επικεντρωθεί σε βιολογικά δεδοµένα εφόσον οι διαδικτυακές βιολογικές βάσεις δεδοµένων (Makris and Theodoridis, 2011) είναι η κύρια εφαρµογή των βεβαρηµένων ακολουθιών. Ωστόσο, οι ευρετικές µας συµπίεσης χώρου για την εφαρµογή των n-grams, είναι γενικής χρηστικότητας και µπορεί να εφαρµοστεί αποτελεσµατικά σε όλες τις εφαρµογές που χρησιµοποιούν κείµενο (CJK γλώσσες, κατά προσέγγιση αντιστοίχιση, και κατανεµηµένα σε λέξεις κείµενα φυσικής γλώσσας). Όσον 106

119 αφορά αυτές τις εφαρµογές γλώσσας, το πειραµατικό περιβάλλον θα είναι το ίδιο µε τη διαφορά ότι στα κατανεµηµένα σε λέξεις κείµενα φυσικής γλώσσας, θα µπορούσαµε να περιορίσουµε περαιτέρω τον διαχωρισµό των υποακολουθιών ώστε να είναι στα όρια των λέξεων και όχι στο εσωτερικό των λέξεων. 3.3 Αλγόριθµοι Αρχικά περιγράφουµε τις τεχνικές που βασίζονται σε n-gram για τον χειρισµό κανονικών ακολουθιών, οι οποίες παρουσιάζονται στο (Kim et al., 2005). Στην συνέχεια θα εξηγήσουµε πώς αυτές µπορούν να προσαρµοστούν κατάλληλα έτσι ώστε να µπορούµε να χειριστούµε βεβαρηµένες ακολουθίες. Ο αλγόριθµος που προτάθηκε από (Kim et al., 2005) προσπαθεί να βελτιώσει το straightforward ανεστραµµένου αρχείου σχήµα που παράγει τα n-grams on the fly χρησιµοποιώντας τεχνική κυλιόµενου παραθύρου. Στην συνέχεια ο αλγόριθµος τα αποθηκεύει σε ένα ανεστραµµένο αρχείο µε αντικατάστασή του από ένα δύο επιπέδων σχήµα, το φαίνεται να είναι πιο αποδοτικό σε σχέση µε το χώρο. Ειδικότερα, αυτό το νέο δύο επιπέδων σχήµα βασίζεται στην ακόλουθη προσέγγιση: (i) κάθε µία από τις αρχικές ακολουθίες υποβάλλεται σε επεξεργασία και ένα σύνολο από υποακολουθίες µήκους m εξάγεται µε τέτοιο τρόπο ώστε κάθε µία να επικαλύπτει την άλλη κατά n-1 σύµβολα, (ii) ένα ανεστραµµένο ευρετήριο (το οποίο ονοµάζεται back-end index) κατασκευάζεται για αυτές τις συµβολοσειρές, καθώς και για το αρχικό σύνολο ακολουθιών, λαµβάνοντας υπόψη τις υποσυµβολοσειρές ως ξεχωριστές λέξεις, (iii) όλα τα n-grams σε κάθε υποσυµβολοσειρά εξάγονται, (iv) ένα ανεστραµµένο ευρετήριο (το οποίο ονοµάζεται front-end index) κατασκευάζεται αναφέροντας όλες τις υποσυµβολοσειρές ως έγγραφα και τα n-grams ως λέξεις. Αυτό το σχήµα, το οποίο καλείται από τον 107

120 δηµιουργό του n-gram/2l-v, µπορεί να εφαρµοστεί σε κάθε κείµενο και σε µερικές περιπτώσεις, αποφέρει ως αποτέλεσµα σηµαντική µείωση χώρου. Εάν το κείµενο µπορεί να χωριστεί σε λέξεις (κείµενο φυσικής γλώσσας), άλλο ένα σχήµα n-gram/2l-v παρέχεται. Έτσι, οι υποακολουθίες ορίζονται ως συνεχόµενες ακολουθίες από λέξεις κειµένου, µε την αξιοποίηση της διαισθητικής παρατήρησης ότι οι λέξεις παρουσιάζουν επαναληπτικότητα σε ένα κείµενο φυσικής γλώσσας. Τα πειράµατά τους έδειξαν ότι εάν εφαρµοστεί n-gram/2l-v σε κείµενο φυσικής γλώσσας, παρατηρούνται δείγµατα κέρδους σε χώρου, σε σχέση µε την αρχική τεχνική. Θα προσπαθήσουµε να προσαρµόσουµε τις τεχνικές τους µε την παρουσίαση τριών αλγορίθµων για τον χειρισµό βεβαρηµένων ακολουθιών, οι οποίοι βασίζονται στην αξιοποίηση της τεχνικής που παρουσιάζεται στο (Kim et al., 2005) η Τεχνική Εντοπισµός Υποακολουθιών Στην πρώτη τεχνική, σχηµατίζουµε τις ξεχωριστές ακολουθίες καθώς χωρίζουµε κάθε βεβαρηµένη ακολουθία σε βεβαρηµένες υποακολουθίες, κάθε µία µήκους m. Κάθε µία από αυτές τις βεβαρηµένες υποακολουθίες χρησιµοποιείται για την παραγωγή κανονικών υποσυµβολοσειρών από φάση παραγωγής κανονικών υποσυµβολοσειρών του αλγορίθµου του (Iliopoulos et al., 2006) (σ.267, αλγόριθµος 2). Σ αυτήν τη φάση, η παραγωγή µιας υποσυµβολοσειράς σταµατά όταν η αθροιστική πιθανότητα της φτάνει το όριο 1/k. Η αθροιστική πιθανότητα υπολογίζεται µε το πολλαπλασιασµό των σχετικών πιθανοτήτων εµφάνισης του κάθε χαρακτήρα σε κάθε θέση. Κάθε παραγόµενη υποσυµβολοσειρά έχει µέγιστο µέγεθος m και για κάθε υποσυµβολοσειρά, παράγουµε όλα τα πιθανά n-grams. Μετά από αυτήν τη διαδικασία, αποθηκεύουµε όλα τα παραγόµενα n-grams σε ένα n-gram/2l σχήµα. Όσον αφορά την φάση παραγωγής, όλες οι θέσεις στις βεβαρηµένες ακολουθίες σκανάρονται διεξοδικά και σε κάθε θέση διακλάδωσης 108

121 (branching position), µία λίστα µε τις πιθανές υποσυµβολοσειρές, ξεκινώντας από αυτήν την θέση, δηµιουργείται. Έπειτα, κινούµενοι από αριστερά προς τα δεξιά, οι τρέχουσες υπολέξεις επεκτείνονται µε την προσθήκη του ίδιου ενιαίου χαρακτήρα, κάθε φορά που προκύπτει µία θέση διακλάδωσης. Αντίθετα, υπάρχει επίσης µια δηµιουργία νέων υπολέξεων στις θέσεις διακλάδωσης, όπου παρέχονται δυνητικά πολλές επιλογές. Ο αλγόριθµος της παραπάνω τεχνικής µπορεί να περιγραφεί ως εξής: input weighted sequence X, array COLOR, list B, length m of subsequences, length n of n-grams output n-gram/2l index S: primary list of subsequences (with black branches) Seq: final list of subsequences (without black branches) W: list of subsequences // step 1 - produce subsequences with black branches for i B.front() to B.back() do /* Scan list from left to right Each node can have color WHITE or BLACK (for branches). In case of BLACK π(σ) */ for all COLOR[i] = BLACK: πi(σ) 1/k do Wj l BLACK positions and length m end for S.add_back(Wj) end for /* S contains subsequences, each of them has length m Also each subsequence contains l BLACK positions */ // step 2 - extraction of final m-subsequences with no black branches for s S.front() to S.back() do produce separated m-subsequences for all COLOR[i] = BLACK end for Seq.add_back(s) if last_subsequence.length < m add blank characters to last_subsequence end if // step 3 - record duplicate subsequences for Seq = s1, s2,, si do if sk = sl, k < l < i remove sl from Seq end if end for // step 4 - record additional information and construct back-end inverted index for all s Seq.front() to Seq.back() do record the offsets of the m-subsequences end for 109

122 if subsequence seq occurs in s at offsets o0, o1,..., oi append a posting < s, [o0, o1,..., oi]> to the posting list of s end if // step 5 - extraction of n-grams for all characters c s do extract n-grams end for // step 6 - construct front-end inverted index if n-gram n occurs in s at offsets o0, o1,..., oi append a posting <s, [o0, o1,..., oi]> to the posting list of n end if Εικόνα 3.1 Αλγόριθµος εντοπισµού υποακολουθιών η Τεχνική On the fly n-grams Αυτή η τεχνική είναι απλούστερη καθώς δεν έχουµε την ανάγκη να αναπτύξουµε όλες τις ακολουθίες. Σε αντίθεση µε την προηγούµενη τεχνική, πρέπει απλά να παράγουµε όλα τα πιθανά n-grams, και µετά από κάθε αναφορά, τις αντίστοιχες βεβαρηµένες ακολουθίες καθώς και τα offsets τους. Ως εκ τούτου, δεν έχουµε να αναπτύξουµε ξεχωριστές ακολουθίες, όπως στην προηγούµενη προσέγγιση, αλλά µόνο να διαχωρίσουµε κάθε γενικευµένη ακολουθία σε κοµµάτια, το καθένα µήκους m, και για κάθε τέτοιο κοµµάτι απλά να παράγουµε τα ζητούµενα n-grams. Έτσι, αυτό το συγκεκριµένο σχήµα είναι από την φύση του one-level και το παρουσιάζουµε σαν χρήση εξαιτίας της απλότητάς του. Ωστόσο, όπως επισηµαίνεται στα πειράµατα, υπάρχουν περιπτώσεις όπου αυτή η τεχνική υπερκερνά σε θέµατα χώρου την προηγούµενη τεχνική. Ο αλγόριθµος της παραπάνω τεχνικής µπορεί να περιγραφεί ως εξής: 110

123 input weighted sequence X, array COLOR, list B, length m of subsequences, length n of n-grams output n-gram/2l index S: primary list of subsequences (with black branches) Seq: final list of subsequences (without black branches) W: list of subsequences // step 1 - produce m-subsequences with black branches for i B.front() to B.back() do /* Scan list from left to right Each node can have color WHITE or BLACK (for branches) */ produce separated subsequences Wj where i = m (with length m) S.add_back(Wj) end for /* S contains subsequences, each of them has length m Each subsequence starts from the second digit of the previous subsequence */ // step 2 - analyze m-subsequences with black branches to m-subsequences without black branches for s S.front() to S.back() do if m-subsequence s has COLOR[i] = BLACK analyze to its m-subsequences end if Seq.add_back(s) end for // step 3 - record additional information for all s Seq.front() to Seq.back() do record the offsets of the m-subsequences end for if subsequence seq occurs in s at offsets o0, o1,..., oi append a posting < s, [o0, o1,..., oi]> to the posting list of s end if // step 4 - extraction of n-grams for all characters c s do extract n-grams end for // step 5 - construct one level inverted index if n-gram n occurs in s at offsets o0, o1,..., oi append a posting <s, [o0, o1,..., oi]> to the posting list of n end if Εικόνα 3.2 Αλγόριθµος On the fly 111

124 η Τεχνική Offline Εντοπισµός Σ' αυτήν την τελευταία τεχνική ενσωµατώνουµε τη φάση παραγωγής υποσυµβολοσειρών του (Iliopoulos et al., 2006) (p.267, algorithm 2), όπου το τελικό σκανάρισµα των θέσεων στις βεβαρηµένες ακολουθίες οδηγεί σε µία λίστα από πιθανές υποσυµβολοσειρές. Στη συνέχεια, χωρίς τον αρχικό διαχωρισµό κάθε βεβαρηµένης ακολουθίας σε κοµµάτια µήκους m (το εφαρµόζουµε σε ολόκληρες τις ακολουθίες ), ο offline εντοπισµός ολοκληρώνεται. Πιο λεπτοµερέστατα, όλες οι υποσυµβολοσειρές που πληρούν την πιθανότητα περιορισµού εµφάνισης, που αναφέρθηκε στην πρώτη τεχνική, παράγονται. Μετά την ολοκλήρωση της φάσης παραγωγής, εισάγουµε όλες τις παραγόµενες υποσυµβολοσειρές σε µία εφαρµογή δύο επιπέδων ανεστραµµένου αρχείου (two-level inverted file). Αυτή η τρίτη τεχνική φαίνεται να λιγότερο αποτελεσµατική σε σχέση µε τον χώρο σε σύγκριση µε τις παραπάνω δύο τεχνικές που αναφέραµε. Ωστόσο, επιχειρούµε να χειριστούµε αυτή προτείνοντας ένα σύνολο ευρετικών µηχανισµών συµπίεσ ης χώρου, οι οποίοι πιστεύουµε ότι είναι ανεξάρτητου ενδιαφέροντος. Αυτοί οι µηχανισµοί θα περιγραφούν σε επόµενη υποενότητα Παραδείγµατα Τεχνικών Θα παρουσιάσουµε ένα παράδειγµα κατά το οποίο θεωρούµε ότι υπάρχει πιθανότητα να εµφανιστούν όλοι οι χαρακτήρες του αλφάβητου της ακολουθίας (A, G, C & T) στα offset που εµφανίζεται branch (αυτά τα indexes του παραδείγµατος περιλαµβάνουν όλους τους πιθανούς συνδυασµούς που µπορεί να προκύψουν ). Για λόγους ευκολίας, θεωρούµε ισοπίθανη την εµφάνιση όλων των χαρ ακτήρων του αλφαβήτου της ακολουθίας (A, G, C, T) στα offsets όπου υπάρχει branch. Έστω έχουµε την βεβαρηµένη ακολουθία σαν είσοδο TG*TA*CACC µήκους s = 10 όπου στα offset 2 και 5 εµφανίζονται branches. 112

125 Subsequences Identification Με βάση την µέθοδο Subsequences Identification παράγουµε αρχικά όλες τις πιθανές υποακολουθίες µε µήκος υποακολουθίας m = 4: TG*T, TA*C & CACC. Αυτό σηµαίνει ότι ο µέγιστος αριθµός των παραγόµενων υποακολουθιών, θεωρώντας ότι υπάρχει πιθανότητα να εµφανιστούν όλοι οι χαρακτήρες του αλφάβητου της ακολουθίας (A, G, C & T) σε offset που εµφανίζεται branch, θα είναι: TGAT, TGGT, TGCT, TGTT, TAAC, TAGC, TACC, TATC & CACC. Το back-end index που κατασκευάζεται από αυτήν την µέθοδο θα είναι το εξής: TGAT 0,[0] TGGT 0,[0] TGCT 0,[0] TGTT 0,[0] TAAC 0,[3] TAGC 0,[3] TACC 0,[3] TATC 0,[3] CACC 0,[6] Η πρώτη στήλη περιέχει όλες τις πιθανές υποακολουθίες µήκους m=4 που µπορούν να παραχθούν από την ακολουθία εισόδου. Η δεύτερη στήλη περιέχει ένα ζεύγος (a,[b]) όπου το a είναι το id της εισόδου (στο συγκεκριµένο παράδειγµα το id εισόδου είναι για όλες 0 καθώς µιλάµε για µία είσοδο) και b το offset (θέση) της υποακολουθίας πάνω στην ακολουθία. Στην συνέχεια εφαρµόζουµε την n-gram τεχνική ευρετηριοποίησης στις υποακολουθίες για n=2. 113

126 Το front-end index που δηµιουργείται από αυτήν την µέθοδο θα είναι το εξής: TG 0,[0] 1,[0] 2,[0] 3,[0] GA 0,[1] GG 1,[1] GC 2,[1] 5,[2] GT 1,[2] 3,[1] AT 0,[2] 8,[1] CT 2,[2] TT 3,[2] TA 4,[0] 5,[0] 6,[0] 7,[0] AA 4,[1] AG 5,[1] AC 4,[2] 5,[1] 8,[1] CC 6,[2] 8,[2] TC 7,[2] CA 8,[0] Η πρώτη στήλη περιέχει όλες τα πιθανά n-grams (στο συγκεκριµένο παράδειγµα 2-grams) που µπορούν να παραχθούν από τις υποακολουθίες. Οι επόµενες στήλες περιέχουν ένα ζεύγος (a,[b]) όπου το a είναι το id της υποακολουθίας (στο συγκεκριµένο παράδειγµα τα id των υποακολουθιών είναι από 0 έως 8 εφόσον έχουµε 9 παραγόµενες υποακολουθίες στο πρώτο βήµα) και b το offset (θέση) του n-gram πάνω στην υποακολουθία. 114

127 On the fly Με βάση αυτήν την µέθοδο εφαρµόζουµε on the fly, πράγµα που σηµαίνει ότι εφαρµόζουµε κατευθείαν τεχνική n-gram ευρετηριοποίησης πάνω στην βεβαρηµένη ακολουθία (ίδια βεβαρηµένη ακολουθία µε το προηγούµενο παράδειγµα) για n=2. Τα παραγόµενα n-grams απεικονίζονται στην πρώτη στήλη του πίνακα. TG 0,[0] GA 0,[1] GG 0,[1] GC 0,[1] 0,[5] GT 0,[1] 0,[2] AT 0,[2] 0,[4] CT 0,[2] TT 0,[2] TA 0,[3] AA 0,[4] AG 0,[4] AC 0,[4] 0,[5] 0,[7] CC 0,[5] 0,[8] TC 0,[5] CA 0,[6] Η πρώτη στήλη περιέχει όλες τα πιθανά n-grams (στο συγκεκριµένο παράδειγµα 2-grams) που µπορούν να παραχθούν από την ακολουθία εισόδου. Οι επόµενες στήλες περιέχουν ένα ζεύγος (a,[b]) όπου το a είναι το id της ακολουθίας εισόδου (στο συγκεκριµένο παράδειγµα το id εισόδου 115

128 είναι για όλες 0 καθώς µιλάµε για µία είσοδο) και b το offset (θέση) του n- gram πάνω στην ακολουθία. Παρατηρώντας τις δύο τεχνικές, είναι προφανές ότι για πολύ µικρές ακολουθίες εισόδου (τάξεως ελαχίστων bytes που χρησιµοποιήσαµε στο παράδειγµά µας) τα ευρετήρια που δηµιουργούνται δεν εµφανίζουν ουσιαστικές διαφορές ως προς το µέγεθός τους. Αυξάνοντας όµως το µέγεθος τις ακολουθίας (τάξεως MB και πάνω) είναι προφανές ότι, και όπως προκύπτει από τα πειραµατικά δεδοµένα, εµφανίζονται µεγάλες διαφορές στα µεγέθη των ευρετηρίων. Offline Identification Στην τρίτη και τελευταία µέθοδο, παράγουµε αρχικά όλες τις ακολουθίες εισόδου που προέρχονται από την weighted ακολουθία. Η ακολουθία εισόδου είναι TG*TA*CACC και οπότε οι παραγόµενες ακολουθίες εισόδου που µπορεί να προκύψουν από την αρχική είναι οι εξής: TGATAACACC, TGATAGCACC, TGATACCACC, TGATATCACC, TGGTAACACC, TGGTAGCACC, TGGTACCACC, TGGTATCACC, TGCTAACACC, TGCTAGCACC, TGCTACCACC, TGCTATCACC, TGTTAACACC, TGTTAGCACC, TGTTACCACC, TGTTATCACC. Στην συγκεκριµένη µέθοδο εφαρµόζουµε τεχνική n-gram ευρετηριοποίησης για την δηµιουργία 2-level index. Μόνο που σ αυτήν την περίπτωση έχουµε id ακολουθιών εισόδου από 0 έως 15 κατά την δηµιουργία του back-end index. Με την ίδια λογική του subsequence identification δηµιουργούµε το back-end index για υποακολουθίες µήκους m=4 που παράγονται από τις ακολουθίες εισόδου και στην συνέχεια δηµιουργούµε το front-end index για n-grams n=2 (2-grams). 116

129 3.4 Πειράµατα Πειραµατικές Ρυθµίσεις Στα πειράµατά µας, χρησιµοποιήσαµε τυχαίες βεβαρηµένες ακολουθίες για να ελέγξουµε τις n-gram τεχνικές. Επίσης εκτελέσαµε πειράµατα µε 10MB δεδοµένα µε αντίστοιχα αποτελέσµατα. Τα πειραµατικά µας δεδοµένα κατεβάστηκαν από τις NCBI βάσεις δεδοµένων (ftp://ftp.ncbi.nih.gov/genomes). Επιπλέον χρησιµοποιήσαµε τις ίδιες παραµέτρους (m για το µήκος των υποσυµβολοσειρών και s για το µέγεθος σε bytes) για όλες τις παραπάνω τεχνικές. Ο υπολογιστής όπου εκτελέστηκαν τα πειράµατα, ήταν ένας Intel Core i5-2410m 2.3 GHz CPU µε 3GB (1x1GB and 1x2GB in 2xDual Channel) RAM. Οι τεχνικές που εφαρµόστηκαν στα πειραµατικά δεδοµένα που αναφέρθηκαν παραπάνω είναι: (i) Subsequences Identification, (ii) On the fly n-grams Identification και (iii) Offline Identification Αποτελέσµατα Βεβαρηµένων Ακολουθιών Όπως φαίνεται στους παρακάτω πίνακες, η offline προσέγγιση εµφανίζει την χειρότερη χωρική πολυπλοκότητα, όπως αναµένουµε. Ο λόγος είναι ότι όλοι οι πιθανοί συν δυασµοί ακολουθιών παράγονται, όχι µόνο αυτές που χρειάζονται από το two-level σχήµα. Από την άλλη πλευρά, η offline προσέγγιση είναι περισσότερο ευέλικτη εφόσον µπορεί να ενσωµατώσει διαφορετικές τιµές για τις µεταβλητές s και n. 117

130 Εικόνα 3.3 Βεβαρηµένες Ακολουθίες για Διαφορετικά Μεγέθη του s (a) n=2, (b) n=3 και (c) n=4 118

131 Όσον αφορά τις άλλες δύο τεχνικές, η on the fly προσέγγιση είναι πιο ισχυρή και σταθερή σε επιδόσεις που οφείλεται στην σταθερή αλγοριθµική συµπεριφορά κατά το χειρισµό κάθε δυνατής εισόδου. Ο εντοπισµός υποακολουθιών, αν και καλύτερος για µικρές τιµές του s, συµπεριφέρεται χειρότερα για µεγαλύτερες τιµές. Αυτό µπορεί να αποδοθεί στην έλλειψη επαναλήψεων, που είναι ένα ζωτικής σηµασίας συστατικό της επιτυχίας της ευρετικής αυτής της µεθόδου, όταν η τιµή του s αυξάνεται. 119

132 4 ΣΥΜΠΕΡΑΣΜΑΤΑ ΚΑΙ ΜΕΛΛΟΝΤΙΚΗ ΚΑΤΕΥΘΥΝΣΗ 4.1 Συµπεράσµατα και Επίλογος Το n-gram/2l ευρετήριο µειώνει σηµαντικά το µέγεθος και βελτιώνει την απόδοση του ερωτήµατος σε σχέση πάντα µε το απλό n-gram ευρετήριο. Η καινοτοµία της προσέγγισής του έγκειται στην εξεύρεση των πλεονασµών των πληροφοριών θέσης που υπάρχουν στο n-gram ευρετήριο και την εξάλειψη των εν λόγω πλεονασµών. Η χωρική πολυπλοκότητα του n- gram/2l ευρετηρίου είναι ( ( )) και έτσι η µείωση του Ο S avg ngram + avg doc µεγέθους του ευρετηρίου γίνεται πιο αισθητή καθώς το µέγεθος της βάσης δεδοµένων µεγαλώνει. Καθώς η χρονική πολυπλοκότητα είναι η ίδια µε την χωρική, η βελτίωση της απόδοσης του ερωτήµατος γίνεται επίσης αισθητή καθώς το µέγεθος της βάσης δεδοµένων αυξάνεται. Οι ιδιότητες του n- gram/2l ευρετηρίου το κάνουν ικανό να µπορεί να χειριστεί αποτελεσµατικά βιολογικά δεδοµένα. Το Βεβαρηµένο Δέντρο Επιθεµάτων αποτελεί µια αποτελεσµατική δοµή δεδοµένων για την επίλυση ενός ευρέος φάσµατος προβληµάτων σε βεβαρηµένες ακολουθίες όπως: ταίριασµα προτύπων, ταυτοποίηση των 120

133 επαναλήψεων, µεγαλύτερη κοινή υποσυµβολοσειρά σε βεβαρηµένες µοριακές ακολουθίες, και υπολογισµού των καλυµµάτων. Το Βεβαρηµένο Δέντρο Επιθεµάτων µπορεί επίσης να χρησιµοποιηθεί για την ανάλυση των βεβαρηµένων ακολουθιών σε άλλες εφαρµογές της επιστήµης των υπολογιστών. Στην παρούσα Δ ιατριβή παρουσιάσαµε ένα σύνολο από αλγοριθµικές τεχνικές για αποτελεσµατικό χειρισµό βεβαρηµένων ακολουθιών χρησιµοποιώντας ανεστραµµένα αρχεία. Επίσης, όλες οι µέθοδοι αντιµετωπίζουν αποτελεσµατικά βεβαρηµένες ακολουθίες χρησιµοποιώντας τον n-gram µηχανισµό. Τρεις τεχνικές επιπλέον παρουσιάστηκαν, οι οποίες λειτουργούν ως εναλλακτικές σε άλλες τεχνικές που χρησιµοποιούν κυρίως δέντρα επιθεµάτων. Η έρευνα ολοκληρώθηκε µε την παρουσίαση ενός γενικού framework το οποίο µπορεί να χρησιµοποιηθεί για την µείωση της χωρικής πολυπλοκότητας των two-level ανεστραµµένων αρχείων για n- grams. Στο µέλλον, σκοπεύουµε να πειραµατιστούµε µε διάφορους διαδραστικούς αλγορίθµους ανεστραµµένων αρχείων, µε σκοπό να δοκιµαστεί η αποτελεσµατικότητα του χρόνου του σχήµατος µας, όταν χειριζόµαστε τέτοια ερωτήµατα. Θα µπορούσαµε ίσως να ενσωµατώσουµε κάποιες επιπλέον δοµές δεδοµένων, όπως αυτές (Kaporis et al., 2003) ως ένα καλά µελετηµένο σχέδιο. Τελευταίο, αλλά όχι λιγότερο σηµαντικό, επίσης σχεδιάζουµε να εφαρµόσουµε την τεχνική µας σε κείµενα φυσικής γλώσσας. 121

134 4.2 Μελλοντική Κατεύθυνση Στην παρούσα υποενότητα θα παρουσιάσουµε περιγραφικά κάποιες θεωρητικές σκέψεις ως προτεινόµενες τεχνικές κατασκευής ευρετηρίων για καλύτερη χωρική απόδοση κάνοντας χρήση τεχνικών caching. 1 η ΠΡΟΤΕΙΝΟΜΕΝΗ ΤΕΧΝΙΚΗ Η αναζήτηση επαναλαµβανόµενων µοτίβων, αποτελεί σηµαντικό υπολογιστικό πρόβληµα στη Βιοπληροφορική, ειδικά µετά τη χαρτογράφηση του ανθρώπινου γονιδιώµατος, αφού στοχεύει στην αναγνώριση δεικτώνmarkers, που υποδεικνύουν σηµαντικές θέσεις ή λειτουργικά τµήµατα στις βιολογικές ακολουθίες. Στις βιολογικές ακολουθίες εµφανίζεται πολύ συχνά το φαινόµενο της επαναληπτικότητας γονιδίων. Πέρα από τις πολλαπλές εµφανίσεις ενός γονιδίου σε ένα γονιδίωµα, υπάρχει και η περίπτωση συνεχόµενων εµφανίσεων ενός γονιδίου. Επίσης στο γονίδιο υπάρχει µεγάλη πιθανότητα συνεχόµενων εµφανίσεων µιας υποακολουθίας, οι οποίες ονοµάζονται tandem repeats και οι οποίες είναι χρήσιµες σε γενεαλογικά τεστ και στην αναζήτηση κληρονοµικών χαρακτηριστικών του ατόµου. Στην µέθοδο που προτείνουµε δεν λαµβάνουµε υπόψιν µας ένα όριο διακριτών επαναλήψεων µιας υποακολουθίας αλλά λαµβάνουµε υπόψιν µας όλες τις συνεχόµενες εµφανίσεις αυτής της υποακολουθίας. Από την ακολουθία εισόδου βρίσκουµε και εξάγουµε τις συνεχόµενες επαναλαµβανόµενες m-υποακολουθίες. Έστω ότι υπάρχουν k συνεχόµενες επαναλήψεις για µια m-υποακολουθία. Την m-υποακολουθία που εµφανίζεται k συνεχόµενες φορές την οδηγούµε και την αποθηκεύουµε σε ένα ανεστραµµένο ευρετήριο. Με το ίδιο τρόπο οδηγούµε και αποθηκεύουµε στο ανεστραµµένο ευρετήριο όλες εκείνες της m-υποακολουθίες που εµφανίζουν έναν αριθµό συνεχόµενων επαναλήψεων. Το ευρετήριο αυτό πλέον µας δίνει την απαραίτητη πληροφορία για τον αριθµό των επαναλήψεων συγκεκριµένων υποακολουθιών, τις συγκεκριµένες 122

135 υποακολουθίες καθώς και τις θέσεις τους. Το σύνολο των υποακολουθιών που αποµένουν τις οδηγούµε και τις αποθηκεύουµε σε ένα άλλο ξεχωριστό ανεστραµµένο ευρετήριο δυο επιπέδων. Με την µέθοδο αυτή αναµένουµε να έχουµε αποδοτικότερα χωρικά ευρετήρια. 2 η ΠΡΟΤΕΙΝΟΜΕΝΗ ΤΕΧΝΙΚΗ Μια συγκεκριµένη πρόταση είναι να επεκτείνουµε τις προτάσεις που προτείνουµε στην Διπλωµατική, µε την οποία θα έχουµε ως αποτέλεσµα καλύτερη πιθανή απόδοση στην διαδικασία ερωτήµατος. Η πρόταση αυτή πιθανώς να εµφανίζει καλύτερα αποτελέσµατα στη διαδικασία ερωτήµατος όχι στην αρχή αλλά στην συνέχεια της χρήσης της. Αυτό σηµαίνει ότι όσες περισσότερες εκτελέσεις του αλγορίθµου θα έχουµε, τόσο καλύτερα αποτελέσµατα στην διαδικασία ερωτήµατος θα παίρνουµε. Η λογική είναι η εξής: έχουµε αρχικά κατασκευάσει τα ευρετήριά µας σύµφωνα µε τις τεχνικές που έχουµε προτείνει στην Διπλωµατική. Κάθε φορά που γίνεται ένα ερώτηµα, αποθηκεύουµε αυτήν πληροφορία σε ένα array. Μετά από ένα κ αθορισµένο αριθµό ερωτηµάτων τον οποίο τον καθορίζουµε εµείς, ελέγχουµε ποιες συγκεκριµένες υποακολουθίες επιστράφηκαν και πόσες φορές σαν αποτέλεσµα του ερωτήµατος. Αν ικανοποιούν ένα όριο εµφανίσεων που θέτουµε εµείς, τις αποθηκεύουµε σε ένα άλλο νέο ευρετήριο δυο επιπέδων ενώ οι υπόλοιπες παραµένουν στο παλιό. Όταν επαναληφθεί ο καθορισµένος αριθµός ερωτηµάτων, επαναλαµβάνουµε την ίδια διαδικασία και ανανεώνουµε τα δυο ευρετήρια. Έτσι καθώς ο αριθµός των ερωτηµάτων αυξάνεται, η τεχνική αυτή µπορεί να κατηγοριοποιεί συνεχώς τις υποακολουθίες σύµφωνα µε το πόσο σηµαντικές είναι αυτές για τους χρήστες (αφού αυτοί κάνουν τα ερωτήµατα και η επαναληπτικότητα συγκεκριµένων ερωτηµάτων µπορεί να θεωρηθεί στοιχείο για το πόσο σηµαντικές είναι συγκεκριµένες υποακολουθίες για τους χρήστες). Αυτή η ευρετική τεχνική αυτή βασίζεται σε µια λογική 123

136 µάθησης, και περιµένουµε µε την συνεχή της χρήση να έχουµε καλύτερα επιστρεφόµενα αποτελέσµατα. Η διαφορά µας µε άλλες τεχνικές εντοπισµού σηµαντικών υποακολουθιών σε βιολογικές ακολουθίες είναι ότι µελετάµε αυτή την «σηµαντικότητα» πλέον από την πλευρά της χρήσης, δηλαδή αυτού που κάνει τα ερωτήµατα (αναζητήσεις) και όχι από κριτήρια που καθορίζει αυθαίρετα ο χρήστης. 124

137 Βιβλιογραφία [1] Alatabbi, A., Crochemore, M., Iliopoulos C.S. and Okanlawon, T Overlapping repetitions in weighted sequence, CUBE, pp [2] Amir, A., Iliopoulos, C. S., Kapah, O. and Porat, E Approximate matching in weighted sequences. Combinatorial Pattern Matching: [3] Buttcher, S., Clarke, C.L. and Cormack, G Information Retrieval. Implementing and Evaluating Search Engines. The MIT Press. [4] Christodoulakis, M., Iliopoulos, C. S., Mouchard, L., Perdikuri, K., Tsakalidis, A. and Tsichlas, K Computation of Repetitions and Regularities of Biologically Weighted Sequences. Journal of Computational Biology (JCB) 13(6): [5] Culpepper, J. S. and Moat, A Ecient Set Intersection for Inverted Indexing. ACM Transactions on Information Systems (TOIS), Vol. 29, Article 1. [6] Guseld, D Algorithms on Strings, Trees and Sequences: Computer Science and Computational Biology. ISBN-13: [7] Iliopoulos, C. S., Makris, Ch., Panagis. Y., Perdikuri K., Theodoridis, E. and Tsakalidis, A The Weighted Sux Tree: An Ecient Data Structure for Handling Molecular Weighted Sequences and its Applications. Fundam. Inform. (FUIN) 71(23): [8] Iliopoulos, C.S., Miller, M. and Pissis, S Parallel Algorithms for Mapping Short degenerate and Weighted DNA Sequences to a Reference genome, Int. J. Found. Comput. Sci., 23(2), pp [9] Kaporis, A., Makris, Ch., Sioutas, S., Tsakalidis, A., Tsichlas, K. and Zaroliagis, Ch Improved Bounds for Finger Search on a RAM. Springer-Verlag Berlin Heidelberg, ESA, LNCS 2832, [10] Kim, M. S., Whang, K. Y., Lee, J. G. and Lee M. J N-Gram/2L: A Space and Time Ecient Two-Level n-gram Inverted Index Structure. Proceedings of the 125

138 31st VLDB Conference. [11] Makris, Ch. and Theodoridis, E String Data Structures for Computational Molecular Biology, in Algorithms in Computational Molecular Biology: Techniques, Approaches and Applications, Willey and Sons publishers. [12] Marsan, L. and Sagot M.-F Extracting structured motifs using a sux tree - algorithms and application to promoter consensus identication. RECOMB: [13] McCreight, E.M A Space Economical Sux Tree Construction Algorithm. Journal of the ACM, 23: [14] du Mouza, C., Litwin, W., Rigaux, P. and Schwarz, T AS-Index: A Structure for String Search using n-grams and Algebraic Signatures. Proceedings of the 23rd International Conference on Computational Linguistics, p [15] Sun, Z., Yang, J. and Deogun, J.-S Misae: A new approach for regulatory motif extraction. CSB: [17] Tang, N., Sidirourgos, L. and Boncz, P Space-economical partial gram indices for exact substring matching. Proceedings of the 18th ACM CIKM. [18] Zhang, H. Guo, Q. and Iliopoulos, C.S. 2010, An Algorithmic Framework for Motif Discovery Problems in Weighted Sequences. Algorithms and Complexity, 7th International Conference, CIAC, pp [19] Zhang, H., Guo, Q. and Iliopoulos, C.S Varieties of Regularities in Weighted Sequences Algorithms and Complexity, Algorithmic Aspects in Information and Management, 6th International Conference, AAIM. [20] Zhang, H., Guo, Q. and Iliopoulos, C.S Locating Tandem Repeats in Weighted Biological Sequences. Emerging Intelligent Computing Technology and Applications, 8th International Conference, ICIC. [21] Derrick Coetzee TinyLex: static n-gram index pruning with perfect recall. In Proceedings of the 17th ACM conference on Information and knowledge management (CIKM '08). ACM, New York, NY, USA, [22] M. Kim, K. Whang, and J. Lee, n-gram/2l-approximation: a two-level n-gram inverted index structure for approximate string matching. In Proceedings of Comput. Syst. Sci. Eng [23] Αποδοτική διαχείριση κειµενικής πληροφορίας, δεικτοδότηση, αποθήκευση, επεξεργασία και εφαρµογές, Θεοδωρίδης Ευάγγελος, Διδακτορική Διατριβή, Πανεπιστήµιο Πατρών, Τµήµα Μηχανικών Η/Υ και Πληροφορικής, 2009 [24] Εισαγωγή στην Βιοπληροφορική, Αικατερίνη Περδικούρη, Αθανάσιος 126

139 Τσακαλίδης, Πανεπιστηµιακές Σηµειώσεις, Πανεπιστήµιο Πατρών, Τµήµα Μηχανικών Η/Υ και Πληροφορικής, 2004 [25] Μελέτη Αποδοτικών Αλγορίθµων για Αποδοτική Διαχείριση Ερωτηµάτων Σύζευξης Λιστών σε Ανεστραµµένα Αρχεία, Klev Diamanti, Διπλωµατική Εργασία, Πανεπιστήµιο Πατρών, Τµήµα Μηχανικών Η/Υ και Πληροφορικής, 2012 [26] Jehad A.H. Hammad, Nur'Aini Abdul Rashid, Fast Database Indexing for Large Protein Sequence Collections Using Parallel N-Gram Transformation Algorithm, World Academy of Science, Engineering and Technology (WASET), Vol. 49, pp [27] T. Watanabe, H. Tsukada, and H. Isozaki, A Succinct N-gram Language Model. In Proceedings of ACL/AFNLP (Short Papers). 2009, [28] C. Li, B. Wang, and X. Yang, VGRAM: Improving Performance of Approximate Queries on String Collections Using Variable-Length Grams. In Proceedings of VLDB. 2007, [29] CAFE: a computational tool for the study of gene family evolution. / De Bie, T; Cristianini, N; Demuth, JP; Hahn, MW. In: Bioinformatics, Vol. 22, 2006, p [30] Klev Diamanti, Andreas Kanavos, Christos Makris and Thodoris Tokis, Handling Weighted Sequences employing Inverted Files and Suffix Trees, WEBIST 2014, short paper [31] Compression of inverted indexes for fast query evaluation. Falk Scholer, Hugh E. Williams, John Yiannis, and Justin Zobel. SIGIR, page ACM, (2002). [32] 127

140 128

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Κεφ.11: Ευρετήρια και Κατακερματισμός Κεφ.11: Ευρετήρια και Κατακερματισμός Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Κεφ. 11: Ευρετήρια-Βασική θεωρία Μηχανισμοί ευρετηρίου χρησιμοποιούνται για την επιτάχυνση

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Τεχνικές κατασκευής δένδρων επιθεµάτων πολύ µεγάλου µεγέθους και χρήσης

Διαβάστε περισσότερα

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

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινοµηµένα Αρχεία Φυσική διάταξη των εγγραφών

Διαβάστε περισσότερα

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

Περίληψη ιπλωµατικής Εργασίας Περίληψη ιπλωµατικής Εργασίας Θέµα: Εναλλακτικές Τεχνικές Εντοπισµού Θέσης Όνοµα: Κατερίνα Σπόντου Επιβλέπων: Ιωάννης Βασιλείου Συν-επιβλέπων: Σπύρος Αθανασίου 1. Αντικείµενο της διπλωµατικής Ο εντοπισµός

Διαβάστε περισσότερα

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

Ανάκτηση Πληροφορίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #10 εικτοδότηση και Αναζήτηση Φοίβος Μυλωνάς fmylonas@ionio.gr Ανάκτηση Πληροφορίας 1 Άδεια

Διαβάστε περισσότερα

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα 2 Βήματα Επεξεργασίας Τα βασικά βήματα στην επεξεργασία

Διαβάστε περισσότερα

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Το εσωτερικό ενός Σ Β Επεξεργασία Ερωτήσεων 1 Εισαγωγή ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήµατος Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασµός) Προγραµµατισµός (Σχεσιακή Άλγεβρα, SQL) ηµιουργία/κατασκευή Εισαγωγή εδοµένων

Διαβάστε περισσότερα

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

Ανάκτηση Πληροφορίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #11 Suffix Arrays Φοίβος Μυλωνάς fmylonas@ionio.gr Ανάκτηση Πληροφορίας 1 Άδεια χρήσης Το παρόν

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Ερώτημα 1. Μας δίνεται μια συλλογή από k ακολοθίες, k >=2 και αναζητούμε το πρότυπο Ρ, μεγέθους n. Πρώτο Σύνολο Ασκήσεων 2014-2015 Κατερίνα Ποντζόλκοβα, 5405 Αθανασία Ζαχαριά, 5295 Ερώτημα 1 Μας δίνεται μια συλλογή από k ακολοθίες, k >=2 και αναζητούμε το πρότυπο Ρ, μεγέθους n. Ο αλγόριθμος εύρεσης

Διαβάστε περισσότερα

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 1 ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήµατος Επεξεργασία Ερωτήσεων Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασµός) Προγραµµατισµός (Σχεσιακή Άλγεβρα, SQL)

Διαβάστε περισσότερα

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή (ως τρόπος οργάνωσης αρχείου) μέγεθος

Διαβάστε περισσότερα

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα Βάσεις

Διαβάστε περισσότερα

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

Επεξεργασία Ερωτήσεων Εισαγωγή Επεξεργασία Ερωτήσεων Σ Β Βάση εδομένων Η ομή ενός ΣΒ Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 1 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 2 Εισαγωγή Εισαγωγή ΜΕΡΟΣ 1 (Χρήση Σ Β ) Γενική

Διαβάστε περισσότερα

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

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1 Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1 Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ.Χατζόπουλος 2 Δένδρο αναζήτησης είναι ένας ειδικός τύπος δένδρου που χρησιμοποιείται για να καθοδηγήσει την αναζήτηση μιας

Διαβάστε περισσότερα

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

Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια Ευαγγελία Πιτουρά 1 τιμή γνωρίσματος Ευρετήρια Ένα ευρετήριο (index) είναι μια βοηθητική δομή αρχείου που κάνει πιο αποδοτική την αναζήτηση μιας εγγραφής σε ένα αρχείο Το ευρετήριο καθορίζεται

Διαβάστε περισσότερα

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

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο Κατακερματισμός 1 Αποθήκευση εδομένων (σύνοψη) Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο Παραδοσιακά, μία σχέση (πίνακας/στιγμιότυπο) αποθηκεύεται σε ένα αρχείο Αρχείο δεδομένων

Διαβάστε περισσότερα

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

Επεξεργασία Ερωτήσεων Εισαγωγή Επεξεργασία Ερωτήσεων ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήματος 1. Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασμός) 2. Προγραμματισμός (Σχεσιακή Άλγεβρα, SQL) ημιουργία/κατασκευή Εισαγωγή εδομένων

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση ΚΕΦΑΛΑΙΟ 18 18 Μηχανική Μάθηση Ένα φυσικό ή τεχνητό σύστηµα επεξεργασίας πληροφορίας συµπεριλαµβανοµένων εκείνων µε δυνατότητες αντίληψης, µάθησης, συλλογισµού, λήψης απόφασης, επικοινωνίας και δράσης

Διαβάστε περισσότερα

Δυναμικός Κατακερματισμός

Δυναμικός Κατακερματισμός Δυναμικός Κατακερματισμός Καλό για βάση δεδομένων που μεγαλώνει και συρρικνώνεται σε μέγεθος Επιτρέπει τη δυναμική τροποποίηση της συνάρτησης κατακερματισμού Επεκτάσιμος κατακερματισμός μια μορφή δυναμικού

Διαβάστε περισσότερα

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2018-2019 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)

Διαβάστε περισσότερα

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

Επεξεργασία Ερωτήσεων Εισαγωγή Σ Β Σύνολο από προγράμματα για τη διαχείριση της Β Επεξεργασία Ερωτήσεων Αρχεία ευρετηρίου Κατάλογος συστήματος Αρχεία δεδομένων ΒΑΣΗ Ε ΟΜΕΝΩΝ Σύστημα Βάσεων εδομένων (ΣΒ ) Βάσεις Δεδομένων 2007-2008

Διαβάστε περισσότερα

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2017-2018 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ ΜΑΘΗΜΑ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΑΚΑ. ΕΤΟΣ 2012-13 Ι ΑΣΚΟΝΤΕΣ Ιωάννης Βασιλείου Καθηγητής, Τοµέας Τεχνολογίας

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΕΠΛ 035 - ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΙΑ ΗΛΕΚΤΡΟΛΟΓΟΥΣ ΜΗΧΑΝΙΚΟΥΣ ΚΑΙ ΜΗΧΑΝΙΚΟΥΣ ΥΠΟΛΟΓΙΣΤΩΝ Ακαδηµαϊκό έτος 2017-2018 Υπεύθυνος εργαστηρίου: Γεώργιος

Διαβάστε περισσότερα

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

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων 2009-2010: Ευρετήρια 1 Ευρετήρια 1 Ευρετήρια Ένα ευρετήριο (index) είναι μια βοηθητική δομή αρχείου που κάνει πιο αποδοτική την αναζήτηση μιας εγγραφής σε ένα αρχείο Το ευρετήριο καθορίζεται (συνήθως) σε ένα γνώρισμα του αρχείου

Διαβάστε περισσότερα

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

Ανάκτηση Πληροφορίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #08 Συµπίεση Κειµένων Φοίβος Μυλωνάς fmylonas@ionio.gr Ανάκτηση Πληροφορίας 1 Άδεια χρήσης

Διαβάστε περισσότερα

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

Πληροφορική 2. Δομές δεδομένων και αρχείων Πληροφορική 2 Δομές δεδομένων και αρχείων 1 2 Δομή Δεδομένων (data structure) Δομή δεδομένων είναι μια συλλογή δεδομένων που έχουν μεταξύ τους μια συγκεκριμένη σχέση Παραδείγματα δομών δεδομένων Πίνακες

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Φεβρουαρίου 0 / ένδρα Ενα δένδρο είναι

Διαβάστε περισσότερα

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

Διαβάστε περισσότερα

Περιεχόμενα. Περιεχόμενα

Περιεχόμενα. Περιεχόμενα Περιεχόμενα xv Περιεχόμενα 1 Αρχές της Java... 1 1.1 Προκαταρκτικά: Κλάσεις, Τύποι και Αντικείμενα... 2 1.1.1 Βασικοί Τύποι... 5 1.1.2 Αντικείμενα... 7 1.1.3 Τύποι Enum... 14 1.2 Μέθοδοι... 15 1.3 Εκφράσεις...

Διαβάστε περισσότερα

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους Επίλυση Προβληµάτων µε Greedy Αλγόριθµους Περίληψη Επίλυση προβληµάτων χρησιµοποιώντας Greedy Αλγόριθµους Ελάχιστα Δέντρα Επικάλυψης Αλγόριθµος του Prim Αλγόριθµος του Kruskal Πρόβληµα Ελάχιστης Απόστασης

Διαβάστε περισσότερα

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

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1 Ευρετήρια 1 Ευρετήρια Ένα ευρετήριο (index) είναι μια βοηθητική δομή αρχείου που κάνει πιο αποδοτική την αναζήτηση μιας εγγραφής σε ένα αρχείο Το ευρετήριο καθορίζεται (συνήθως) σε ένα γνώρισμα του αρχείου

Διαβάστε περισσότερα

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων Γλωσσική Τεχνολογία Ακαδημαϊκό Έτος 2011-2012 Ημερομηνία Παράδοσης: Στην εξέταση του μαθήματος ΑΣΚΗΣΗ Δημιουργία Ευρετηρίων Συλλογής Κειμένων Σκοπός της άσκησης είναι η υλοποίηση ενός συστήματος επεξεργασίας

Διαβάστε περισσότερα

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1 Κατακερματισμός 4/3/2009 Μ.Χατζόπουλος 1 H ιδέα που βρίσκεται πίσω από την τεχνική του κατακερματισμού είναι να δίνεται μια συνάρτησης h, που λέγεται συνάρτηση κατακερματισμού ή παραγωγής τυχαίων τιμών

Διαβάστε περισσότερα

Κεφάλαιο 14. οµές Ευρετηρίων για Αρχεία. ιαφάνεια 14-1

Κεφάλαιο 14. οµές Ευρετηρίων για Αρχεία. ιαφάνεια 14-1 ιαφάνεια 14-1 Κεφάλαιο 14 οµές Ευρετηρίων για Αρχεία Copyright 2007 Ramez Elmasri and Shamkant B. NavatheΕλληνικήΈκδοση, ιαβλος, Επιµέλεια Μ.Χατζόπουλος 1 Θα µιλήσουµε για Τύποι Ταξινοµηµένων Ευρετηρίων

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΚΕΦΑΛΑΙΑ 3 και 9 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΕΣ Δεδομένα αφαιρετική αναπαράσταση της πραγματικότητας και συνεπώς μία απλοποιημένη όψη της δηλαδή.

Διαβάστε περισσότερα

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή

Διαβάστε περισσότερα

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

Επεξεργασία Ερωτήσεων Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Εισαγωγή ΣΔΒΔ Σύνολο από προγράµµατα για τη διαχείριση της ΒΔ Αρχεία ευρετηρίου Κατάλογος ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ Αρχεία δεδοµένων συστήµατος Σύστηµα Βάσεων Δεδοµένων (ΣΒΔ)

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort 1, c 3, a 3, b 7, d 7, g 7, e B 0 1 3 4 5 6 7 8 9 1 BucketSort (Ταξινόμηση Κάδου) - Αρχικά θεωρείται ένα κριτήριο κατανομής με βάση το οποίο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

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

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ δείκτες ως εξής P 1 K 1 P

Διαβάστε περισσότερα

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 20 Huffman codes 1 / 12 Κωδικοποίηση σταθερού μήκους Αν χρησιμοποιηθεί κωδικοποίηση σταθερού μήκους δηλαδή

Διαβάστε περισσότερα

Υπερπροσαρμογή (Overfitting) (1)

Υπερπροσαρμογή (Overfitting) (1) Αλγόριθμος C4.5 Αποφυγή υπερπροσαρμογής (overfitting) Reduced error pruning Rule post-pruning Χειρισμός χαρακτηριστικών συνεχών τιμών Επιλογή κατάλληλης μετρικής για την επιλογή των χαρακτηριστικών διάσπασης

Διαβάστε περισσότερα

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

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια Βάσεις Δεδομένων 2017-2018 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ

Διαβάστε περισσότερα

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

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια Ευαγγελία Πιτουρά 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ δείκτες

Διαβάστε περισσότερα

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Γραφήματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Γραφήματα Κατευθυνόμενο Γράφημα Ένα κατευθυνόμενο γράφημα G είναι ένα ζευγάρι (V, E) όπου V είναι ένα

Διαβάστε περισσότερα

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος Εισαγωγή στους Αλγόριθµους Αλγόριθµοι Τι είναι αλγόριθµος; Τι µπορεί να υπολογίσει ένας αλγόριθµος; Πως αξιολογείται ένας αλγόριθµος; Παύλος Εφραιµίδης pefraimi@ee.duth.gr Αλγόριθµοι Εισαγωγικές Έννοιες

Διαβάστε περισσότερα

Ανάκληση Πληποφοπίαρ. Information Retrieval. Διδάζκων Δημήηριος Καηζαρός

Ανάκληση Πληποφοπίαρ. Information Retrieval. Διδάζκων Δημήηριος Καηζαρός Ανάκληση Πληποφοπίαρ Information Retrieval Διδάζκων Δημήηριος Καηζαρός Διάλεξη 4η: 04/03/2017 1 Phrase queries 2 Ερωτήματα φράσεως Έστω ότι επιθυμούμε ν απαντήσουμε ερωτήματα της μορφής stanford university

Διαβάστε περισσότερα

#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα

#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα #2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα ηµήτρης Ν. Σερπάνος Εργαστήριο Συστηµάτων Υπολογιστών Τµήµα Ηλεκτρολόγων Μηχ. & Τεχνολογίας Υπολογιστών Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα Αλγόριθµοι:

Διαβάστε περισσότερα

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

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

Λύση (από: Τσιαλιαμάνης Αναγνωστόπουλος Πέτρος) (α) Το trie του λεξιλογίου είναι Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών HY463 - Συστήματα Ανάκτησης Πληροφοριών 2006-2007 Εαρινό Εξάμηνο 3 η Σειρά ασκήσεων (Ευρετηρίαση, Αναζήτηση σε Κείμενα και Άλλα Θέματα) (βαθμοί 12: όποιος

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και

Διαβάστε περισσότερα

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

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΜΑΘΗΜΑ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΑΚΑΔ. ΕΤΟΣ 2011-12 ΔΙΔΑΣΚΟΝΤΕΣ Ιωάννης Βασιλείου Καθηγητής Τιμολέων Σελλής Καθηγητής Άσκηση 1

Διαβάστε περισσότερα

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

Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον Δανάη Κούτρα Eργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Εθνικό Μετσόβιο Πολυτεχνείο Θέματα Σκοπός της διπλωματικής

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Δοµές Δεδοµένων. 18η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης Δοµές Δεδοµένων 18η Διάλεξη Ισορροπηµένα δέντρα Ε. Μαρκάκης Περίληψη Επανάληψη των Τυχαιοποιηµένων ΔΔΑ, Στρεβλών ΔΔΑ, Δέντρων 2-3-4 Δέντρα κόκκινου-µαύρου Λίστες Παράλειψης Χαρακτηριστικά επιδόσεων - συµπεράσµατα

Διαβάστε περισσότερα

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

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 Κεφάλαιο 2 Δοµές Δεδοµένων Ι Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 Δοµές Δεδοµένων Ι Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε

Διαβάστε περισσότερα

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016

Διαβάστε περισσότερα

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 12/10/2017

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams Αλέκα Σεληνιωτάκη Ηράκλειο, 26/06/12 aseliniotaki@csd.uoc.gr ΑΜ: 703 1. Περίληψη Συνεισφοράς

Διαβάστε περισσότερα

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

Αλγόριθμοι Ταξινόμησης Μέρος 4 Αλγόριθμοι Ταξινόμησης Μέρος 4 Μανόλης Κουμπαράκης Δομές Δεδομένων και Τεχνικές 1 Μέθοδοι Ταξινόμησης Βασισμένοι σε Συγκρίσεις Κλειδιών Οι αλγόριθμοι ταξινόμησης που είδαμε μέχρι τώρα αποφασίζουν πώς να

Διαβάστε περισσότερα

ιαφορική εντροπία Σεραφείµ Καραµπογιάς

ιαφορική εντροπία Σεραφείµ Καραµπογιάς ιαφορική εντροπία Σεραφείµ Καραµπογιάς Για πηγές διακριτού χρόνου µε συνεχές αλφάβητο, των οποίων οι έξοδοι είναι πραγµατικοί αριθµοί, ορίζεται µια άλλη ποσότητα που µοιάζει µε την εντροπία και καλείται

Διαβάστε περισσότερα

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Βασισμένο σε μια εργασία των Καζαρλή, Καλόμοιρου, Μαστοροκώστα, Μπαλουκτσή, Καλαϊτζή, Βαλαή, Πετρίδη Εισαγωγή Η Εξελικτική Υπολογιστική

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ Τα δεδομένα (data) είναι η αφαιρετική αναπαράσταση της πραγματικότητας και συνεπώς μία απλοποιημένη όψη της. Η συλλογή των ακατέργαστων δεδομένων και ο συσχετισμός

Διαβάστε περισσότερα

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

Πρόβληµα (ADT) Λεξικού. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Λεξικό, Union - Find 2 Πρόβληµα (ADT) Λεξικού Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Λεξικό, Union - Find 2 Πρόβληµα (ADT) Λεξικού Δυναµικά µεταβαλλόµενη συλλογή αντικειµένων που αναγνωρίζονται µε κλειδί (π.χ. κατάλογοι,

Διαβάστε περισσότερα

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems Ημερομηνία Παράδοσης: 0/1/017 την ώρα του μαθήματος ή με email: mkarabin@csd.uoc.gr Γενικές Οδηγίες α) Επιτρέπεται η αναζήτηση στο Internet και στην βιβλιοθήκη

Διαβάστε περισσότερα

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 22 Counting sort, bucket sort και radix sort 1 / 16 Ιδιότητες αλγορίθμων ταξινόμησης ευστάθεια (stable

Διαβάστε περισσότερα

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

Κεφάλαιο 5 ο : Αλγόριθµοι Σύγκρισης Ακολουθιών Βιολογικών εδοµένων Κεφάλαιο 5 ο : Αλγόριθµοι Σύγκρισης Ακολουθιών Βιολογικών εδοµένων Σε αυτό το κεφάλαιο παρουσιάζουµε 2 βασικούς αλγορίθµους σύγκρισης ακολουθιών Βιολογικών εδοµένων τους BLAST & FASTA. Οι δυο αλγόριθµοι

Διαβάστε περισσότερα

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

Κεφάλαιο 10 Ψηφιακά Λεξικά Κεφάλαιο 10 Ψηφιακά Λεξικά Περιεχόμενα 10.1 Εισαγωγή... 213 10.2 Ψηφιακά Δένδρα... 214 10.3 Υλοποίηση σε Java... 222 10.4 Συμπιεσμένα και τριαδικά ψηφιακά δένδρα... 223 Ασκήσεις... 225 Βιβλιογραφία...

Διαβάστε περισσότερα

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

Βασικές Έννοιες Δοµών Δεδοµένων Δοµές Δεδοµένων Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος Βασικές Έννοιες

Διαβάστε περισσότερα

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

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Διαχείριση Συγκρούσεων με Ανοικτή Διεύθυνση a) Linear

Διαβάστε περισσότερα

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

Επιµέλεια Θοδωρής Πιερράτος εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,

Διαβάστε περισσότερα

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

Insert (P) : Προσθέτει ένα νέο πρότυπο P στο λεξικό D. Delete (P) : Διαγράφει το πρότυπο P από το λεξικό D Dynamic dictionary matching problem Έχουμε ένα σύνολο πρότυπων D = { P1, P2,..., Pk } oπου D το λεξικό και ένα αυθαίρετο κειμενο T [1,n] To σύνολο των πρότυπων αλλάζει με το χρόνο (ρεαλιστική συνθήκη).

Διαβάστε περισσότερα

Εξωτερική Ταξινόμηση. Μ.Χατζόπουλος 1

Εξωτερική Ταξινόμηση. Μ.Χατζόπουλος 1 Εξωτερική Ταξινόμηση Μ.Χατζόπουλος 1 Γιατί είναι απαραίτητη; Κλασσικό Πρόβλημα της Πληροφορικής Πολλές φορές θέλουμε να παρουσιάσουμε δεδομένα σε ταξινομημένη μορφή Είναι σημαντική για την απαλοιφή διπλοτύπων

Διαβάστε περισσότερα

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

Γ. Κορίλη Αλγόριθµοι ροµολόγησης - Γ. Κορίλη Αλγόριθµοι ροµολόγησης http://www.seas.upenn.edu/~tcom50/lectures/lecture.pdf ροµολόγηση σε ίκτυα εδοµένων Αναπαράσταση ικτύου µε Γράφο Μη Κατευθυνόµενοι Γράφοι Εκτεταµένα έντρα Κατευθυνόµενοι

Διαβάστε περισσότερα

Advanced Data Indexing

Advanced Data Indexing Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Αναζήτηση Δέντρα (2 ο Μέρος) Διαχρονικά -Δέντρα (Persistent -trees) Σε μερικές εφαρμογές βάσεων/δομών δεδομένων όπου γίνονται ενημερώσεις μας ενδιαφέρει

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού και κατασκευή BFS δένδρου σε σύγχρονο γενικό δίκτυο Παναγιώτα Παναγοπούλου Περίληψη Εκλογή αρχηγού σε γενικά δίκτυα Ορισμός του προβλήματος Ο αλγόριθμος FloodMax

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System) 2.1.1 Εισαγωγή στη διαχείριση αρχείων Οι Η/Υ αποθηκεύουν τα δεδομένα και τα επεξεργάζονται. Εφαρμογή Προγράμματος C:\Documents and Settings\user\Τα έγγραφά μου\leitourgika.doc Λ.Σ. File System Γι αυτό

Διαβάστε περισσότερα

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

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΑΣΚΗΣΗ ΔΕΥΤΕΡΗ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΑΣΚΗΣΗ ΔΕΥΤΕΡΗ ΜΑΘΗΜΑ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΑΚΑΔ. ΕΤΟΣ 2007-2008 14.02.2008 EΠΙΣΤΡΕΦΕΤΑΙ ΔΙΔΑΣΚΩΝ Ιωάννης Βασιλείου, Καθηγητής,

Διαβάστε περισσότερα

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Πτυχιακή Εξεταστική Ιούλιος 2014 Διδάσκων : Ευάγγελος Μαρκάκης 09.07.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες

Διαβάστε περισσότερα

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση, Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14-1

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

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος ΑΛΓΟΡΙΘΜΟΙ Στο σηµείωµα αυτό αρχικά εξηγείται η έννοια αλγόριθµος και παραθέτονται τα σπουδαιότερα κριτήρια που πρέπει να πληρεί κάθε αλγόριθµος. Στη συνέχεια, η σπουδαιότητα των αλγορίθµων συνδυάζεται

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Μάθημα: Λειτουργικά Συστήματα Συστήματα Αρχείων Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) Λειτουργικά Συστήματα 1 Αρχεία με Χαρτογράφηση

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort

Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Ο αλγόριθμος ταξινόμησης Radix Sort -Δυο εκδοχές: Most Significant Digit (MSD) και Least Significant

Διαβάστε περισσότερα

Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών. ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης

Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών. ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης Ονοµατεπώνυµο: Αριθµός Μητρώου: Τελική Εξέταση (3 ώρες) Ηµεροµηνία: 7

Διαβάστε περισσότερα

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

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων ΙΙ Ενότητα 5 Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Δεδομένων ΙΙ Ενότητα 5: Δομές Ευρετηρίων - ISAM Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

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

Διαχρονικές δομές δεδομένων Διαχρονικές δομές δεδομένων Μια τυπική δομή δεδομένων μεταβάλλεται με πράξεις εισαγωγής ή διαγραφής Π.χ. κοκκινόμαυρο δένδρο εισαγωγή 0 18 0 5 39 73 1 46 6 80 Αποκατάσταση ισορροπίας 5 39 73 0 46 6 80

Διαβάστε περισσότερα