Ο αλγόριθμος του Ukkonen Βεργούλης Θανάσης 2008. Το suffix trie Το suffix trie του string D=“book”. 1 3 4 2 b o o k o o k k k $ $ $ $

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Indexing.
Advertisements

Παράδειγμα 2: Υπολογισμός αθροίσματος με επαναληπτική εντολή: για...από...μέχρι... με βήμα Να βρεθεί και να εκτυπωθεί το άθροισμα των άρτιων αριθμών από.
Παράδειγμα 1:Ταξινόμηση Φυσαλίδας
Γραφήματα & Επίπεδα Γραφήματα
A Peer-to-peer Framework for Caching Range Queries O. D. Sahin A. Gupta D. Agrawal A. El Abbadi Παρουσίαση: Καραγιάννης Τάσος, Κρεμμυδάς Νίκος, Μαργαρίτη.
Γλώσσα C & Unix Τμήμα Πληροφορικής, ΑΠΘ B’ εξάμηνο
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Εισαγωγή στη Βιοπληροφορική 3η διάλεξη Μάθημα Ελεύθερης Επιλογής Τομέα Λογικού των Υπολογιστών Εαρινό Εξάμηνο Ακαδ. Έτους Χ. Mακρης- Α. Περδικούρη.
Πολυπλοκότητα Παράμετροι της αποδοτικότητας ενός αλγόριθμου:
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
Τεχνικές κατασκευής δένδρων επιθεμάτων πολύ μεγάλου μεγέθους και χρήσης τους για γρήγορη αναζήτηση βιολογικών δεδομένων Βασίλης Πολυχρονόπουλος.
Ο Αλγόριθμος FP-Growth. Αλγόριθμος FP-Growth Ο αλγόριθμος χρησιμοποιεί μια συμπιεσμένη αναπαράσταση της βάσης των συναλλαγών με τη μορφή ενός FP-δέντρου.
Ψηφιακά Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να χρησιμοποιήσουμε την παραπάνω αναπαράσταση.
Δομές Δεικτοδότησης Δέντρο Επιθεμάτων- Suffix Tree
Μια Μπεϋζιανή Μέθοδος για την Επαγωγή Πιθανοτικών Δικτύων από Δεδομένα ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΜΗΧ/ΚΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ B. Μεγαλοοικονόμου, Χ. Μακρής.
Εργασία Η υλοποίηση του αλγορίθμου συγχώνευσης θα πρέπει να χρησιμοποιεί την ιδέα των ροών (streams). Θα πρέπει να υπάρχουν δύο διαφορετικά είδη.
Γραφήματα & Επίπεδα Γραφήματα
Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Δυναμική Διατήρηση Γραμμικής Διάταξης Διατηρεί μια γραμμική διάταξη δυναμικά μεταβαλλόμενης συλλογής στοιχείων. Υποστηρίζει τις λειτουργίες: Έλεγχος της.
A Balanced Tree Structure for Peer-to-Peer Networks
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
Ψηφιακά Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να χρησιμοποιήσουμε την παραπάνω αναπαράσταση.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου.
Γράφοι: Προβλήματα και Αλγόριθμοι
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι12-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος του Prim και ο αλγόριθμος του Kruskal.
Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών.
ΘΕΩΡΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ ΠΑΡΟΥΣΙΑΣΗ ΣΤΑ ΚΕΦΑΛΑΙΑ 7.4 – 7.6 NP ΠΛΗΡΟΤΗΤΑ.
Στοίβα, Ουρά.
Αλγόριθμοι συνέχεια 2.2.4, 2.2.5,
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
Χωρικοί-χρονικοί συμβιβασμοί
Αναζήτηση – Δέντρα (2 ο Μέρος) Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων)
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ.
Δομές Δεδομένων - Ισοζυγισμένα Δυαδικά Δένδρα (balanced binary trees)
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Λεξικό, Union – Find Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Τετάρτη, 15 Απριλίου 2015Τετάρτη, 15 Απριλίου 2015Τετάρτη, 15 Απριλίου 2015Τετάρτη, 15 Απριλίου 2015Τμ.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι 8-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: 2-3 Δένδρα, Υλοποίηση και πράξεις Β-δένδρα B-Δένδρα.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι13-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος Dijkstra για εύρεση βραχυτέρων μονοπατιών.
Παράδειγμα B + -Tree Υποθέτουμε B + -Tree τάξης 3 (α=2, b=3)  Κάθε φύλλο θα έχει 2 ως 3 το πολύ στοιχεία  Κάθε εσωτερικός κόμβος θα έχει 2 ως 3 το πολύ.
1 ΤΜΗΜΑ ΜΠΕΣ Αλγόριθμοι Αναζήτησης Εργασία 1 Τυφλή Αναζήτηση.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές TSP, Μέτρα κεντρικότητας, Dijkstra Data Engineering Lab.
Ελαφρύτατες διαδρομές TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A.
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΠΑΡΆΡΤΗΜΑ ΛΕΥΚΑΔΑΣ ΥΠΕΥΘΥΝΗ ΚΑΘΗΓΉΤΡΙΑ Δρ. ΤΣΙΝΤΖΑ ΠΑΝΑΓΙΩΤΑ Οι παρουσιάσεις του μαθήματος βασίζονται στο.
ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΥΣ Άπληστη Αναζήτηση και Αναζήτηση Α* ΣΠΥΡΟΣ ΛΥΚΟΘΑΝΑΣΗΣ, ΚΑΘΗΓΗΤΗΣ.
Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα:
Δυναμικός Κατακερματισμός
Επίλυση Προβλημάτων με Αναζήτηση
Προβλήματα Ικανοποίησης Περιορισμών
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Δένδρα.
Κλάσεις και αντικείμενα
Δένδρα Δένδρο είναι ένα συνεκτικό άκυκλο γράφημα. Δένδρο Δένδρο Δένδρο
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Κεφάλαιο 4 :: Σημασιολογική Ανάλυση
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο
Ισοδυναμία ΜΠΑ με ΠΑ Για κάθε ΜΠΑ Μ υπάρχει αλγόριθμος ο οποίος κατασκευάζει ΠΑ Μ’ αιτιοκρατικό ώστε να αναγνωρίζουν την ίδια ακριβώς γλώσσα. Καθώς το.
Θεωρία & Αλγόριθμοι Γράφων Αποστάσεις
Συντομότερα Μονοπάτια
Προβλήματα Ικανοποίησης Περιορισμών (Επιπλέον Διαφάνειες) Μανόλης Κουμπαράκης Τεχνητή Νοημοσύνη.
Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης
Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε στοιχείο έχει ένα κλειδί από ολικά διατεταγμένο σύνολο Θέλουμε να υποστηρίξουμε δύο.
Ψηφιακό Δέντρο (Trie) και Δέντρο Επιθεμάτων (Suffix tree)
ΠΛΗΡΟΦΟΡΙΚΗ Γ΄ Γυμνασίου Α΄ Τρίμηνο
(2,4) Trees 11/15/2018 8:56 PM (2,4) Δέντρα (2,4) Δέντρα.
Διαχρονικές Δομές Δεδομένων
Δυναμικός Κατακερματισμός
Μεταγράφημα παρουσίασης:

Ο αλγόριθμος του Ukkonen Βεργούλης Θανάσης 2008

Το suffix trie Το suffix trie του string D=“book” b o o k o o k k k $ $ $ $

Exact String Matching (ESM) σε Suffix Trie Αναζήτηση του Q=“ok” b o o k o o k k k $ $ $ $ Διάσχιση από τη ρίζα με βάση το query Τα φύλλα του υποδένδρου του κόμβου στον οποίο σταμάτησε η διάσχιση είναι οι απαντήσεις

Το suffix tree b o o k o o k k k $$$ $ Το suffix tree του string D=“book”. Ο τρόπος αποτίμησης ESM ερωτημάτων είναι παρόμοιος με του suffix trie

Συμβολισμοί D: data string D: data string n = |D| n = |D| Q: query string Q: query string m = |Q| m = |Q| S[i...j]: substring of S S[i...j]: substring of S

Απλοϊκός τρόπος κατασκευής suffix tree 1. Εισήγαγε μία ακμή που να αντιστοιχεί σε όλο το D 2. Θέσε i=2 3. Εισήγαγε στο δένδρο το suffix D[i...n] 4. i++ 5. i==n+1? ΝΑΙ  τέλος ΝΑΙ  τέλος ΟΧΙ  βήμα 3 ΟΧΙ  βήμα 3 O(n 2 ) στη χειρότερη περίπτωση

Γραμμικοί αλγόριθμοι κατασκευής suffix tree 1973, P. Weiner 1973, P. Weiner 1976, E. M. McCreight 1976, E. M. McCreight 1995, E. Ukkonen 1995, E. Ukkonen

Προαπαιτούμενα – Το implicit suffix tree 1 2 b a n a a $ $ $ n a n a a n $ 4 $ 6 n a n a $ b a n a a n a a a n n a n a 3 suffix tree του “banana” implicit suffix tree του “banana” n

Προαπαιτούμενα – Τα suffix links 1 2 b a n a a $ $ $ n a n a a n $ 4 $ 6 n a n a $ 3 5 suffix tree του “banana” με ενσωματωμένα suffix links Ένα suffix link ξεκινά από έναν κόμβο που αναπαριστά ένα stirng αw (α: χαρακτήρας) και δείχνει στον κόμβο που αναπαριστά το w Suffix links μπορούμε να βάλουμε και σε implicit suffix tree

Κεντρική ιδέα του αλγορίθμου του Ukkonen 1. Κατασκεύασε το implicit suffix tree για το D[1] 2. Θέσε i=2 3. Κατασκεύασε το implicit suffix tree για το D[1...i] βασιζόμενος το implicit suffix tree που έχεις υπολογίσει για το D[1...i-1] 4. i++ 5. i==n+1? ΝΑΙ  Κατασκεύασε το κανονικό suffix tree και τέλος ΝΑΙ  Κατασκεύασε το κανονικό suffix tree και τέλος ΟΧΙ  Βήμα 3 ΟΧΙ  Βήμα 3 O(n 3 ) στη χειρότερη περίπτωση

Κεντρική ιδέα του αλγορίθμου του Ukkonen Ο κεντρικός πυρήνας του αλγορίθμου αποτελείται από μια επαναληπτική διαδικασία. Ο κεντρικός πυρήνας του αλγορίθμου αποτελείται από μια επαναληπτική διαδικασία. Κάθε επανάληψη λέγεται «φάση». Κάθε επανάληψη λέγεται «φάση». Σε κάθε επανάληψη λαμβάνουν χώρα μια σειρά από «επεκτάσεις», έτσι ώστε από το ήδη υπάρχον implicit suffix tree να προκύψει ένα νέο. Σε κάθε επανάληψη λαμβάνουν χώρα μια σειρά από «επεκτάσεις», έτσι ώστε από το ήδη υπάρχον implicit suffix tree να προκύψει ένα νέο.

Κεντρική ιδέα του αλγορίθμου του Ukkonen Σε κάθε φάση, έστω i>1, του αλγορίθμου του Ukkonen γίνονται αλυσιδωτές επεκτάσεις του ήδη υπολογισμένου implicit suffix tree για το prefix D[1...i-1], ώστε στο τέλος της φάσης να έχει κατασκευαστεί το implicit suffix tree για το prefix D[1...i]. Συγκεκριμένα λαμβάνει χώρα μία επέκταση (του παλιού implicit suffix tree) για κάθε δυνατό suffix του καινούριου prefix D[1...i]. Σε κάθε φάση, έστω i>1, του αλγορίθμου του Ukkonen γίνονται αλυσιδωτές επεκτάσεις του ήδη υπολογισμένου implicit suffix tree για το prefix D[1...i-1], ώστε στο τέλος της φάσης να έχει κατασκευαστεί το implicit suffix tree για το prefix D[1...i]. Συγκεκριμένα λαμβάνει χώρα μία επέκταση (του παλιού implicit suffix tree) για κάθε δυνατό suffix του καινούριου prefix D[1...i].

Κανόνες επέκτασης Κανόνας 1: Αν ο αλγόριθμος φτάσει σε κάποιο φύλλο του δένδρου, τότε απλώς προστίθεται ο επιπλέον χαρακτήρας του suffix στο τέλος της ετικέτας της αντίστοιχης ακμής. Κανόνας 1: Αν ο αλγόριθμος φτάσει σε κάποιο φύλλο του δένδρου, τότε απλώς προστίθεται ο επιπλέον χαρακτήρας του suffix στο τέλος της ετικέτας της αντίστοιχης ακμής. Κανόνας 2: Αν τελειώσουν οι χαρακτήρες του τρέχοντος suffix, την ώρα που ο αλγόριθμος είναι στη μέση κάποιας ακμής ή σε κάποιο κόμβο του δένδρου, τότε ο αλγόριθμος δεν κάνει απολύτως τίποτα. Κανόνας 2: Αν τελειώσουν οι χαρακτήρες του τρέχοντος suffix, την ώρα που ο αλγόριθμος είναι στη μέση κάποιας ακμής ή σε κάποιο κόμβο του δένδρου, τότε ο αλγόριθμος δεν κάνει απολύτως τίποτα. Κανόνας 3: Αν ο αλγόριθμος φτάσει σε κάποιο σημείο του δένδρου, στο οποίο δεν υπάρχει κατάλληλος κλάδος για να ακολουθήσει, τότε στο συγκεκριμένο σημείο δημιουργεί έναν νέο κόμβο (αν δεν υπάρχει κάποιος άλλος εκεί ήδη) και κάτω από αυτόν, δημιουργεί έναν επιπλέον κλάδο που αποτελείται από μια ακμή με ετικέτα τον επιπλέον χαρακτήρα και από ένα φύλλο. Κανόνας 3: Αν ο αλγόριθμος φτάσει σε κάποιο σημείο του δένδρου, στο οποίο δεν υπάρχει κατάλληλος κλάδος για να ακολουθήσει, τότε στο συγκεκριμένο σημείο δημιουργεί έναν νέο κόμβο (αν δεν υπάρχει κάποιος άλλος εκεί ήδη) και κάτω από αυτόν, δημιουργεί έναν επιπλέον κλάδο που αποτελείται από μια ακμή με ετικέτα τον επιπλέον χαρακτήρα και από ένα φύλλο.

Βελτιστοποίηση του αλγορίθμου Η μέθοδος του Ukkonen, βελτιώνει την προηγούμενη κεντρική ιδέα ώστε τελικά να έχει πολυπλοκότητα χειρότερης περίπτωσης O(n). Η μέθοδος του Ukkonen, βελτιώνει την προηγούμενη κεντρική ιδέα ώστε τελικά να έχει πολυπλοκότητα χειρότερης περίπτωσης O(n). Για να το κάνει αυτό υιοθετεί μια σειρά από τρικ. Για να το κάνει αυτό υιοθετεί μια σειρά από τρικ.

Τρικ 1: Δείκτης προς το φύλλο του πλήρους string H πρώτη επέκταση κάθε φάσης γίνεται για το πλήρες τρέχον prefix του data string. H πρώτη επέκταση κάθε φάσης γίνεται για το πλήρες τρέχον prefix του data string. Η συγκεκριμένη επέκταση πάντα θα ακολουθεί τον κανόνα 1, και πάντα το φύλλο θα είναι συγκεκριμένο (το φύλλο 1). Η συγκεκριμένη επέκταση πάντα θα ακολουθεί τον κανόνα 1, και πάντα το φύλλο θα είναι συγκεκριμένο (το φύλλο 1). Οπότε μπορούμε να αποφύγουμε την διάσχιση του δένδρου αν προσθέσουμε έναν δείκτη που από τη ρίζα μας κατευθύνει απευθείας στο συγκεκριμένο φύλλο. Οπότε μπορούμε να αποφύγουμε την διάσχιση του δένδρου αν προσθέσουμε έναν δείκτη που από τη ρίζα μας κατευθύνει απευθείας στο συγκεκριμένο φύλλο. Αυτό θα μειώσει τον χρόνο κατάβασης (και συνεπώς το χρόνο της συγκεκριμένης επέκτασης), από O(i)=O(n) σε Ο(1). Αυτό θα μειώσει τον χρόνο κατάβασης (και συνεπώς το χρόνο της συγκεκριμένης επέκτασης), από O(i)=O(n) σε Ο(1).

Τρικ 2: Χρήση των suffix links Αντί μετά από κάθε επέκταση ο αλγόριθμος να ξανανεβαίνει στη ρίζα για την επόμενη, ανεβαίνει απλώς ως τον πρώτο προγονικό κόμβο που έχει suffix link, και στη συνέχεια να το ακολουθεί. Αντί μετά από κάθε επέκταση ο αλγόριθμος να ξανανεβαίνει στη ρίζα για την επόμενη, ανεβαίνει απλώς ως τον πρώτο προγονικό κόμβο που έχει suffix link, και στη συνέχεια να το ακολουθεί. Αν δεν υπάρχει τέτοιος προγονικός κόμβος, τότε καταλήγει στη ρίζα. Αν δεν υπάρχει τέτοιος προγονικός κόμβος, τότε καταλήγει στη ρίζα.

Τρικ 2: Χρήση των suffix links i ssi ssip p s si ssip p mississip: mississip, ississip, ssissip, sissip, issip, ssip, sip, ip, p mississip p

Τρικ 3: Το τρικ του skip και count x a x ???? v s(v) a b r a a b r a Θα πρέπει να υπάρχει ένα μονοπάτι “abra” στο υποδένδρο του s(v) Μόνο μια ακμή ξεκινά από «a» |a|=1<|abra| παράκαμψε στον κόμβο στο τέλος της ακμής Αναζήτηση για : μ ήκος : abra 4 braa 31 |br|=2<|bra| παράκαμψε στον κόμβο στο τέλος της ακμής |ac|=2≥|a| παράκαμψε στον χαρακτήρα 1 (“a”) και τέλος c

Πολυπλοκότητα ως τώρα Κάθε φάση να εκτελείται με O(n) συγκρίσεις Κάθε φάση να εκτελείται με O(n) συγκρίσεις Η εκτέλεση του αλγορίθμου να γίνεται με O(n 2 ) συγκρίσεις. Η εκτέλεση του αλγορίθμου να γίνεται με O(n 2 ) συγκρίσεις.

Τρικ 4: Συμπίεση ετικετών και ακμών b o o k o o k k k $$$ $ ,5 2,2 4,5 3,5 το μέγιστο πλήθος ακμών του suffix tree είναι 2n-1  Ο(n) χώρος για αποθήκευση δένδρου  δυνατή η υλοποίηση σε Ο(n) χρόνο.

Τρικ 5: Εάν εφαρμοστεί ο κανόνας 2 μία φορά, σταματά η φάση 1 2 m i s s s i s i s s i s s s i s s 4 s i s s 3 mississ, ississ, ssiss, siss, iss, ss, s mississippi φάση 7, επέκταση 5 Εφαρμογή κανόνα 2

Τρικ 5: Εάν εφαρμοστεί ο κανόνας 2 μία φορά, σταματά η φάση Εφαρμογή του κανόνα 2 συνεπάγεται απραξία Εφαρμογή του κανόνα 2 συνεπάγεται απραξία ΑΡΑ αν σε κάποια φάση εμφανιστεί επέκταση στην οποία εφαρμοστεί ο κανόνας 2, τότε ο αλγόριθμος μπορεί να σταματήσει τη συγκεκριμένη φάση και να ξεκινήσει την επόμενη. ΑΡΑ αν σε κάποια φάση εμφανιστεί επέκταση στην οποία εφαρμοστεί ο κανόνας 2, τότε ο αλγόριθμος μπορεί να σταματήσει τη συγκεκριμένη φάση και να ξεκινήσει την επόμενη.

Τρικ 6: Ο καθολικός δείκτης Αν σε κάποια φάση του αλγορίθμου κατασκευαστεί κάποιο φύλλο, έστω j, το οποίο αντιστοιχεί σε κάποιο suffix D[j...i] του αντίστοιχου prefix D[1...i] του data sequence, τότε σε όλες τις επόμενες φάσεις του αλγορίθμου στην αντίστοιχη επέκταση j θα εφαρμόζεται πάντα ο κανόνας 1, γιατί αυτός είναι ο κανόνας που επεκτείνει τα φύλλα. Αν σε κάποια φάση του αλγορίθμου κατασκευαστεί κάποιο φύλλο, έστω j, το οποίο αντιστοιχεί σε κάποιο suffix D[j...i] του αντίστοιχου prefix D[1...i] του data sequence, τότε σε όλες τις επόμενες φάσεις του αλγορίθμου στην αντίστοιχη επέκταση j θα εφαρμόζεται πάντα ο κανόνας 1, γιατί αυτός είναι ο κανόνας που επεκτείνει τα φύλλα.

Τρικ 6: Ο καθολικός δείκτης Κάθε φάση ξεκινά με μια σειρά από επεκτάσεις στις οποίες εφαρμόζονται οι κανόνες 1 και 3. Κάθε φάση ξεκινά με μια σειρά από επεκτάσεις στις οποίες εφαρμόζονται οι κανόνες 1 και 3. Αν στη φάση i, η τελευταία επέκταση κατά την οποία εφαρμόζεται κάποιος από τους κανόνες 1 ή 3 συμβολιστεί με j i, τότε: Αν στη φάση i, η τελευταία επέκταση κατά την οποία εφαρμόζεται κάποιος από τους κανόνες 1 ή 3 συμβολιστεί με j i, τότε: Στην επόμενη φάση (i+1), όλες οι επεκτάσεις από το 1 ως το j i θα ακολουθήσουν τον κανόνα 1 Στην επόμενη φάση (i+1), όλες οι επεκτάσεις από το 1 ως το j i θα ακολουθήσουν τον κανόνα 1 Στην επόμενη φάση, (i+1), το πλήθος των επεκτάσεων που θα ακολουθήσουν τον κανόνα 1 ή τον κανόνα 3 θα είναι περισσότερες ή ίσες απ’ ότι στην προηγούμενη, δηλαδή j i <=j i +1. Στην επόμενη φάση, (i+1), το πλήθος των επεκτάσεων που θα ακολουθήσουν τον κανόνα 1 ή τον κανόνα 3 θα είναι περισσότερες ή ίσες απ’ ότι στην προηγούμενη, δηλαδή j i <=j i +1.

Τρικ 6: Ο καθολικός δείκτης ΑΡΑ σε κάθε φάση i ο αλγόριθμος γνωρίζει ότι για τις πρώτες επεκτάσεις (από 1 ως ji-1) θα εφαρμοστεί ο κανόνας 1. ΑΡΑ σε κάθε φάση i ο αλγόριθμος γνωρίζει ότι για τις πρώτες επεκτάσεις (από 1 ως ji-1) θα εφαρμοστεί ο κανόνας 1. Επίσης ο αλγόριθμος γνωρίζει ότι ο index τέλους της αντίστοιχης ακμής φύλλου θα είναι πάντα ίσος με i. Επίσης ο αλγόριθμος γνωρίζει ότι ο index τέλους της αντίστοιχης ακμής φύλλου θα είναι πάντα ίσος με i. Οπότε αντί ο αλγόριθμος να τρέχει τις συγκεκριμένες επεκτάσεις και για καθεμία να αυξάνει κατά 1 τον αντίστοιχο δείκτη τέλους, μπορεί να τον αντικαταστήσει με έναν δείκτη που δείχνει σε κάποια καθολική θέση. Οπότε αντί ο αλγόριθμος να τρέχει τις συγκεκριμένες επεκτάσεις και για καθεμία να αυξάνει κατά 1 τον αντίστοιχο δείκτη τέλους, μπορεί να τον αντικαταστήσει με έναν δείκτη που δείχνει σε κάποια καθολική θέση.

Παραγωγή του suffix tree από το implicit suffix tree Αυτό γίνεται απλώς με την αντικατάσταση των καθολικών δεικτών e με την τιμή n από όλες τις ακμές που καταλήγουν σε φύλλα. Αυτό γίνεται απλώς με την αντικατάσταση των καθολικών δεικτών e με την τιμή n από όλες τις ακμές που καταλήγουν σε φύλλα.

Τελική πολυπλοκότητα Τελικά μετά την εφαρμογή όλων των τρικ ο αλγόριθμος καταλήγει να έχει πολυπλοκότητα O(n). Τελικά μετά την εφαρμογή όλων των τρικ ο αλγόριθμος καταλήγει να έχει πολυπλοκότητα O(n).

Τέλος