230 likes | 302 Vues
Αλφαριθμητικά. Αλφαριθμητικά – Γιατί;. Τα βρίσκουμε παντού: Ψηφιακές Βιβλιοθήκες και κατάλογοι προϊόντων Εξειδικευμένες πηγές πληροφορίας (e.g. Γονίδιακές ή ΒΔ με πατέντες ) Ιστοσελίδες ΒΔ ιδιωτικής πληροφορίας. Δομές δεικτοδότησης για λέξεις. Δομές δεικτοδότησης για πλήρες κείμενο.
E N D
Αλφαριθμητικά – Γιατί; Τα βρίσκουμε παντού: • Ψηφιακές Βιβλιοθήκες και κατάλογοι προϊόντων • Εξειδικευμένες πηγές πληροφορίας (e.g. ΓονίδιακέςήΒΔ με πατέντες) • Ιστοσελίδες • ΒΔ ιδιωτικής πληροφορίας • ... Δομές δεικτοδότησης για λέξεις Δομές δεικτοδότησης για πλήρες κείμενο Οι συλλογές αλφαριθμητικών παρουσιάζουν αλματώδη αύξηση όγκου: • > 100PBδεδομένα κειμένου στο WWW • >100ΤBακολουθιών βάσεων σε ΒΔ γονιδίων
Τύποι Δεδομένων DNA ακολουθίες Αρχεία ήχου/εικόνας Εκτελέσιμα αρχεία Απλό κείμενο Ακολουθία χαρακτήρων ή Bytes Ακριβής Λέξη Πρόθημα/Επίθημα Λέξης Φράση Οποιαδήποτε ακολουθία Πολύπλοκα ταιριάσματα Ερωτήσεις Λέξεων Ερωτήσεις Συμβόλων Τύποι Ερωτήσεων Δύο Οικογένειες Δομών Ευρετηρίασης Δύο προσεγγίσεις Ευρετηρίασης: • Ευρετήρια βασισμένα σε λέξεις,(αποσαφήνιση της έννοιας της λέξης)! • Ανεστραμμένα αρχεία, Αρχεία υπογραφών ή Bitmaps. • Ευρετήρια Πλήρους Κειμένου, κανένας περιορισμός σε κείμενο και ερωτήσεις! • Πίνακας Επιθημάτων, Δένδρο Επιθημάτων, Υβριδικά ευρετήρια, ή B-δένδρο αλφαριθμητικών.
Λεξικό Ανεστραμμένο Αρχείο Κειμ#1 Now is the time for all good men to come to the aid of their country Κειμ#2 It was a dark and stormy night in the country manor. The time was past midnight 2 Ανεστραμμένα Αρχεία (Inverted Files) Η επεξεργασία του ερωτήματος είναι διαδικασία 2 φάσεων: midnight ΚΑΙtime
Μερικές Σκέψεις • Τι είναι λέξη; • Εξαρτάται από την εφαρμογή • Κάποια συμπίεση: κανονική μορφή, ρίζα της λέξης… • Το μέγεθος είναι μικρό • Ο νόμος του Heap λέει ότι V= O(Nb), όπου Nείναι το μέγεθος της συλλογής • Το bείναι πρακτικά μεταξύ 0.4 και 0.6 • Υλοποίηση • Πίνακας: Απλό και αποδοτικό σε σχέση με χώρο, αργές ερωτήσεις • Πίνακας Κατακερματισμού: γρήγορες ακριβείς ερωτήσεις • Δένδρο Προθημάτων: γρήγορες αναζητήσεις προθημάτων, πιο πολύπλοκες • Δομές Δεικτοδότησης πλήρους κειμένου:Γρήγορες πολύπλοκες ερωτήσεις
Δομές Δεικτοδότησης Πλήρους Κειμένου Η ανάγκη για τέτοιες δομές είναι επιτακτική: • Απλά δεδομένα: DNA ακολουθίες, αρχεία ήχου-video, ... • Κείμενα: εξόρυξη δεδομένων, στατιστικά, ... • Λεξικό για ανεστραμμένα αρχεία • Ανίχνευση προβλημάτων ασφαλείας, ιών, ... Μερικές περιπτώσεις σχημάτων δεικτοδότησης: • Πίνακας επιθημάτων ή δέντρο επιθημάτων • B-δένδρο αλφαριθμητικών
P i T T[i,n] • T =This is a visual example • This is a visual example • This is a visual example 3,6,12 Βασικές Έννοιες Το μοτίβο P[1,p] εμφανίζεται στην θέση iτου T[1,n] αν και μόνο αν το P[1,p] είναι πρόθημα του επιθήματος T[i,n] Εμφανίσεις του Pστο T= Όλα τα επιθήματα του Tπου έχουν το Pσαν πρόθημα SUF(T) = Ταξινομημένο σύνολο επιθημάτων του T SUF(D)= Ταξινομημένο σύνολο επιθημάτων όλων των κειμένων στο D
Q(N2) χώρος 5 T = mississippi# SA SUF(T) 12 11 8 5 2 1 10 9 7 4 6 3 # i# ippi# issippi# ississippi# mississippi# pi# ppi# sippi# sissippi# ssippi# ssissippi# Δείκτης Επιθήματος • Πίνακας Επιθημάτων (ΠΕ) • ΠΕ: πίνακας ακεραίων,4N bytes • Κείμενο T: N bytes • 5N bytes χώρου Πίνακας Επιθημάτων(Suffix Array) Ιδιότητα 1Όλα τα επιθήματα στο SUF(T) με πρόθημα Pείναι συνεχόμενα. Ιδιότητα 2 Αρχική θέση είναι η λεξικογραφική του P. T = mississippi# P=si
SA 12 11 8 5 2 1 10 9 7 4 6 3 P είναι μεγαλύτερο 2 προσπελάσεις για κάθε βήμα si Ψάξιμο σε Πίνακα Επιθημάτων Δυαδικό ψάξιμο στο ΠΕ: O(plog2N) χρόνος T = mississippi#
SA 12 11 8 5 2 1 10 9 7 4 6 3 P είναι μικρότερο si Ψάξιμο σε Πίνακα Επιθημάτων Δυαδικό ψάξιμο στο ΠΕ: O(plog2N) χρόνος T = mississippi#
SA 12 11 8 5 2 1 10 9 7 4 6 3 si • Εύρεση σε ΠΕ • O(p(log2N + occ)) χρόνος • O(log2N + occ) στην πράξη Pείναι πρόθημα sippi occ=2 sissippi Pείναι πρόθημα • Δευτερεύουσα Μνήμη • O ((p/B) (log2 N + occ)) I/Os ssippi Pδεν είναι πρόθημα + occ/B logB N Αναφορά των Εμφανίσεων Άμεση Σύγκριση: O(pocc) χρόνο T = mississippi# 4 67 12 11 8 5 2 1 10 9 7 4 6 3 12 11 8 5 2 1 10 9 7 4 6 3
ΟLcp[1,n-1]αποθηκεύει το μεγαλύτερου μήκους πρόθημα μεταξύ διαδοχικών επιθημάτων στο ΠΕ. SA SUF(T) Lcp 12 11 8 5 2 1 10 9 7 4 6 3 12 11 8 5 2 1 10 9 7 4 6 3 12 11 8 5 2 1 10 9 7 4 6 3 # i# ippi# issippi# ississippi# mississippi# pi# ppi# sippi# sissippi# ssippi# ssissippi# 0 0 1 4 0 0 1 0 2 1 3 • Αναζήτηση σε ΠΕ • O ((p/B) log2N + (occ/B)) I/Os • 9Nbytes χώρου P=si occ=2 Ευαίσθητη στην Έξοδο Ανάκτηση T = mississippi# 4 67 βάσηB : δύσκολο !!! 0 0 1 4 0 0 1 0 2 1 3 0 0 1 4 0 0 1 0 2 1 3 + : αυξητική αναζήτηση Συγκρίνουμε με |P| Διατρέχουμε το Lcp μέχρι Lcp[i] < |P|
Min Lcp[i,q-1] < P’s > P’s P q Range Minima > P’s γνωστό ταίριασμα Κόστος: O(1) προσπελάσεις μνήμης Αυξητική Εύρεση(Περίπτωση 1) Αυξητική εύρεση με τον πίνακα LCP: όχι επαναδιαπέραση των χαρακτήρων SA i j
Min Lcp[i,q-1] < P’s > P’s P q Range Minima γνωστό ταίριασμα Κόστος: O(1) προσπελάσεις μνήμης Αυξητική Εύρεση(Περίπτωση 2) Αυξητική εύρεση με τον πίνακα LCP: όχι επαναδιαπέραση των χαρακτήρων SA i j
Min Lcp[i,q-1] > P’s < P’s • Εύρεση σε Πίνακα Επιθημάτων • O(log2N) δυαδικά βήματα • O(p) συγκρίσεις χαρακτήρων για εύρεση • O((p/B) + log2N + (occ/B)) I/Os L Χαρ. Επιθ.>Χαρ. Ερώτησης P Range Minima Χαρ. Επιθ.<Χαρ. Ερώτησης Κόστος: O(L/Β) χαρακτήρες Αυξητική Εύρεση(Περίπτωση 3) Αυξητική εύρεση με τον πίνακα LCP: όχι επαναδιαπέραση των χαρακτήρων SA i q j ΒάσηB : δύσκολο Ιδέα: Ο πίνακας είναι στατικός
P M SA Αντιγραφή προθήματος επιθημάτων • SA + Supra-index • O((p/B) + log2 (N/s) + (occ/B)) I/Os Εδώ δυαδική αναζήτηση s Υβριδική Δομή Εκμετάλλευση RAM: δειγματοληψία του ΠΕ και αντιγραφή πληροφορίας στη RAM Δίσκος Η παράμετρος sεξαρτάται από τηνMκαι επηρεάζει το χρόνο και το χώρο!!
1 3 0 4 2 a b c b b O(p) χρόνος a a b b O(N) χώρος a c (5,8) a b b b c c 7 4 4 8 6 2 5 3 1 2 W(p) I/Oς W(occ) I/Oς;; Πώς;;;; CPAT δένδρο~ 5Nκατά μέσο όρο Όχι (p/B), αλλά ναι (occ/B), κυρίως στατικό και μεγάλο κόστος χώρου Το Δένδρο Επιθημάτων Είναι ένα συμπιεσμένο ψηφιακό δένδροσε όλα τα επιθήματα P = ba Η εύρεση είναι μία διαπέραση μονοπατιού και O(occ) χρόνος a b c c b b b c c b Τι γίνεται με το ΔΕ στην δευτερεύουσα μνήμη; • Μη-ζυγισμένο δένδρο • Δυναμικό T = abababbc# 1 3 5 79 - Μεγάλος χώρος~ 15N
Β-δένδρο Αλφαριθμητικών(String B-tree)(Μία I/O-αποδοτικήΔομή Πλήρους Κειμένου)
B-δένδρο αλφαριθμητικών • Δεικτοδότηση κλειδιών μεγάλου μήκους • Καλή απόδοση χειρότερης περίπτωσης • Εγγυημένα καλή πλήρωση σελίδας Πρόλογος Έχουμε αρκετά ανοικτά θέματα: • Πίνακας Επιθημάτων: δυναμικότητα • Δένδρο Επιθημάτων: δύσκολος διαχωρισμός σε μπλοκκαι Ω(p) I/Oς • Hybrid: Heuristic tuning of the performance Το B-δένδρο χρησιμοποιείται ευρέως σε εφαρμογές μεγάλου μεγέθους δεδομένων: • Ατομικά κλειδιά: ακέραιοι, πραγματικοί,... • Prefix B-tree: bounded length keys ( 255 chars) Δένδρο Επιθημάτων+ B-δένδρο?
Μερικές Σκέψεις Τα αλφαριθμητικά έχουν τυχαίο μήκος: • Δεν μπορούμε να εξασφαλίζουμε Ο(B) αλφαριθμητικά ανά μπλοκ • Mμπορεί να μην είναι σε θέση να αποθηκεύσει ένα ολόκληρο αλφαριθμητικό Αποθήκευση αλφαριθμητικού: • Δείκτες επιτρέπουν να χωρέσουν Ο(B) αλφαριθμητικά σε κάθε μπλοκ • Σύγκριση αλφαριθμητικώναπαιτεί προσπέλαση στο δίσκο και μπορεί να είναι ακριβή Η οργανώσεις δεικτών που έχουμε δει μέχρι τώρα: • Πίνακας Επιθημάτων: απλό αλλά στατικό και όχι βέλτιστο • Ψηφιακό δένδρο (Patricia Trie): πολύπλοκο και πολύ αποδοτικό Dείναι μία συλλογή κειμένων • Αναζήτηση( P[1,p] ): ανάκτησε όλες τις εμφανίσεις του Pστην D • Ενημέρωση( T[1,t] ): ένθεση ή διαγραφή ενός κειμένου Tαπό το D
+ B • Αναζήτηση(P) • O ((p/B)log2N) I/Oς • O (occ/B) I/Oς Είναι δυναμικό !! O(t (t/B)log2N) I/Oς O((p/B)log2B) I/Oς 29 13 20 18 3 23 O(logBN) επίπεδα 29 2 26 13 20 25 6 18 3 14 21 23 29 1 9 5 2 26 10 4 7 13 20 16 28 8 25 6 12 15 22 18 3 27 24 11 14 21 17 23 Δίσκος AATCAGCGAATGCTGCTT CTGTTGATGA 1 3 5 7 9 11 13 15 17 19 20 22 24 26 28 30 1º βήμα: B-δένδρο σε δείκτες Αλφ. P = AT
Χωρίς Λεπτομέρειες… Απόδοση: • Αναζήτηση(P): O(p/B+ logBN+ occ/B) I/Oς • Ενημέρωση(T): O( tlogBN) I/Oς • Χώρος: Ο(N/B) μπλοκ Εφαρμογές: • Διάταξη αλφαριθμητικών [Arge et al., 97] • Πρόβλημα Λεξικού [Ferragina et al., 97] • Πολυδιάσταστες ερωτήσεις [Jagadish et al., 00]
Ανακεφαλαίωση • B-δένδρο • O(N/B) χώρος, O(logBN) ενημέρωση, O(logBN+T/B) ερώτηση • ΒαροζυγισμένοB-δένδρο • Ω(w(v)) ενημερώσεις κάτω από το vμεταξύ διαδοχικών πράξεων στο v • Διαχρονικό B-δένδρο • Ερώτηση σε οποιαδήποτε χρονική εκδοχή του δένδρου • ΕΜ-δένδρο • Μαζικές πράξεις με επιμερισμένο κόστος • Β-δένδρο αλφαριθμητικών • Τα στοιχεία που αποθηκεύονται έχουν μεγάλο μέγεθος