16 septembre 2013 Algorithme Boyer-Moore-Horspool IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool
Boyer-Moore-Horspool Décalage en fonction du caractère du texte aligné au dernier caractère du mot T a c b M
Boyer-Moore-Horspool Décalage en fonction du caractère du texte aligné au dernier caractère du mot T a c b M
Boyer-Moore-Horspool Décalage en fonction du caractère du texte aligné au dernier caractère du mot T a c b M Pré-traitement pour calculer les décalages en fonction du mot et de l'alphabet
Boyer-Moore-Horspool Pré-traitement : Mot : aabcaab Alphabet : {a, b, c} caractère a b c décalage
Boyer-Moore-Horspool Pré-traitement : Mot : aabcaab Alphabet : {a, b, c} caractère a b c décalage 1
Boyer-Moore-Horspool Pré-traitement : Mot : aabcaab Alphabet : {a, b, c} caractère a b c décalage 1 4
Boyer-Moore-Horspool Pré-traitement : Mot : aabcaab Alphabet : {a, b, c} caractère a b c décalage 1 4 3
Boyer-Moore-Horspool caractère a b c décalage 1 4 3 + 4 T a c b M Nombre d'occurrences = 0
Boyer-Moore-Horspool caractère a b c décalage 1 4 3 T a c b M Nombre d'occurrences = 0
Boyer-Moore-Horspool caractère a b c décalage 1 4 3 T a c b M Nombre d'occurrences = 1
Boyer-Moore-Horspool caractère a b c décalage 1 4 3 + 4 T a c b M Nombre d'occurrences = 1
Boyer-Moore-Horspool caractère a b c décalage 1 4 3 T a c b M Nombre d'occurrences = 1
Boyer-Moore-Horspool caractère a b c décalage 1 4 3 + 3 T a c b M Nombre d'occurrences = 1
Boyer-Moore-Horspool caractère a b c décalage 1 4 3 T a c b M Nombre d'occurrences = 1
Boyer-Moore-Horspool (2 car.) Généralisation à deux caractères car1 car2 T a c b M Plus efficace lorsque l'alphabet est petit
Boyer-Moore-Horspool (2 car.) Pré-traitement pour 2 caractères : Mot : aabcaab (taille de 7) 76543210 (position droite -> gauche) Alphabet : {a, b, c} car2 car1 a b c
Boyer-Moore-Horspool (2 car.) Pré-traitement pour 2 caractères : Mot : aabcaab (taille de 7) 76543210 (position droite/gauche) Alphabet : {a, b, c} car2 car1 a b c 2
Boyer-Moore-Horspool (2 car.) Pré-traitement pour 2 caractères : Mot : aabcaab (taille de 7) 76543210 (position droite/gauche) Alphabet : {a, b, c} car2 car1 a b c 2 3
Boyer-Moore-Horspool (2 car.) Pré-traitement pour 2 caractères : Mot : aabcaab (taille de 7) 76543210 (position droite/gauche) Alphabet : {a, b, c} car2 car1 a b c 2 4 3
Boyer-Moore-Horspool (2 car.) Pré-traitement pour 2 caractères : Mot : aabcaab (taille de 7) 76543210 (position droite/gauche) Alphabet : {a, b, c} car2 car1 a b c 2 5 4 3
Boyer-Moore-Horspool (2 car.) Pré-traitement pour 2 caractères : Mot : aabcaab (taille de 7) 76543210 (position droite/gauche) Alphabet : {a, b, c} car2 car1 a b c 2 5 4 3 aa a déjà été vu
Boyer-Moore-Horspool (2 car.) Pré-traitement pour 2 caractères : Mot : aabcaab (taille de 7) 76543210 (position droite/gauche) Alphabet : {a, b, c} car2 car1 a b c 2 5 7 4 3 Affecter 7 à toutes les occurrences non-vues dans la colonne a
Boyer-Moore-Horspool (2 car.) Pré-traitement pour 2 caractères : Mot : aabcaab (taille de 7) 76543210 (position droite/gauche) Alphabet : {a, b, c} car2 car1 a b c 2 5 8 7 4 3 Valeur de taille du mot + 1 pour les occurrences non-rencontrées
Boyer-Moore-Horspool (2 car.) 5 8 7 4 3 + 5 – 1 = 4 T a c b M Nombre d'occurrences = 0
Boyer-Moore-Horspool (2 car.) 5 8 7 4 3 T a c b M Nombre d'occurrences = 1
Boyer-Moore-Horspool (2 car.) 5 8 7 4 3 + 5 – 1 = 4 T a c b M Nombre d'occurrences = 1
Boyer-Moore-Horspool (2 car.) 5 8 7 4 3 + 8 – 1 = 7 T a c b M Nombre d'occurrences = 1
Boyer-Moore-Horspool (2 car.) 5 8 7 4 3 T a c b M Nombre d'occurrences = 1 Fin
NOTE TP1 Alphabet utilisé dans la séquence d'E. coli : {A, C, G, T, R, Y, N, W, S, M, K, B} Code Base A Adénine C Cytosine G Guanine T Thymine R A ou G Y C ou T N A, C, G ou T W A ou T S G ou C M A ou C K G ou T B C, G ou T