![Page 1: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/1.jpg)
IFT3295Démonstration
16 septembre 2013
Algorithme Boyer-Moore-Horspool
![Page 2: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/2.jpg)
Boyer-Moore-Horspool
• Décalage en fonction du caractère du texte aligné au dernier caractère du mot
a c b c a a b c a a b b b c c b c a a b
a a b c a a b
T
M
![Page 3: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/3.jpg)
Boyer-Moore-Horspool
• Décalage en fonction du caractère du texte aligné au dernier caractère du mot
a c b c a a b c a a b b b c c b c a a b
a a b c a a b
T
M
![Page 4: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/4.jpg)
Boyer-Moore-Horspool
• Décalage en fonction du caractère du texte aligné au dernier caractère du mot
a c b c a a b c a a b b b c c b c a a b
a a b c a a b
T
M
• Pré-traitement pour calculer les décalages en fonction du mot et de l'alphabet
![Page 5: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/5.jpg)
Boyer-Moore-Horspool
• Pré-traitement :– Mot : aabcaab– Alphabet : {a, b, c}
caractère a b c
décalage
![Page 6: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/6.jpg)
Boyer-Moore-Horspool
• Pré-traitement :– Mot : aabcaab– Alphabet : {a, b, c}
caractère a b c
décalage 1
![Page 7: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/7.jpg)
Boyer-Moore-Horspool
• Pré-traitement :– Mot : aabcaab– Alphabet : {a, b, c}
caractère a b c
décalage 1 4
![Page 8: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/8.jpg)
Boyer-Moore-Horspool
• Pré-traitement :– Mot : aabcaab– Alphabet : {a, b, c}
caractère a b c
décalage 1 4 3
![Page 9: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/9.jpg)
Boyer-Moore-Horspool
a c b c a a b c a a b b b c c b c a a b
a a b c a a b
T
M
caractère a b c
décalage 1 4 3
+ 4
Nombre d'occurrences = 0
![Page 10: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/10.jpg)
Boyer-Moore-Horspool
a c b c a a b c a a b b b c c b c a a b
a a b c a a b
T
M
caractère a b c
décalage 1 4 3
Nombre d'occurrences = 0
![Page 11: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/11.jpg)
Boyer-Moore-Horspool
a c b c a a b c a a b b b c c b c a a b
a a b c a a b
T
M
caractère a b c
décalage 1 4 3
Nombre d'occurrences = 1
![Page 12: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/12.jpg)
Boyer-Moore-Horspool
a c b c a a b c a a b b b c c b c a a b
a a b c a a b
T
M
caractère a b c
décalage 1 4 3
Nombre d'occurrences = 1
+ 4
![Page 13: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/13.jpg)
Boyer-Moore-Horspool
a c b c a a b c a a b b b c c b c a a b
a a b c a a b
T
M
caractère a b c
décalage 1 4 3
Nombre d'occurrences = 1
![Page 14: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/14.jpg)
Boyer-Moore-Horspool
a c b c a a b c a a b b b c c b c a a b
a a b c a a b
T
M
caractère a b c
décalage 1 4 3
Nombre d'occurrences = 1
+ 3
![Page 15: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/15.jpg)
Boyer-Moore-Horspool
a c b c a a b c a a b b b c c b c a a b
a a b c a a b
T
M
caractère a b c
décalage 1 4 3
Nombre d'occurrences = 1
![Page 16: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/16.jpg)
Boyer-Moore-Horspool (2 car.)
• Généralisation à deux caractères
a c b c a a b c a a b b b c c b c a a b
a a b c a a b
T
M
• Plus efficace lorsque l'alphabet est petit
car1 car2
![Page 17: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/17.jpg)
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
car1a b c
a
b
c
![Page 18: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/18.jpg)
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
car1a b c
a 2
b
c
![Page 19: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/19.jpg)
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
car1a b c
a 2
b
c 3
![Page 20: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/20.jpg)
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
car1a b c
a 2
b 4
c 3
![Page 21: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/21.jpg)
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
car1a b c
a 2 5
b 4
c 3
![Page 22: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/22.jpg)
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
car1a b c
a 2 5
b 4
c 3
aa a déjà été vu
![Page 23: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/23.jpg)
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
car1a b c
a 2 5
b 7 4
c 3
Affecter 7 à toutes les occurrences non-vues dans la colonne a
![Page 24: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/24.jpg)
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
car1a b c
a 2 5 8
b 7 8 4
c 3 8 8• Valeur de taille du mot + 1 pour les occurrences non-
rencontrées
![Page 25: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/25.jpg)
Boyer-Moore-Horspool (2 car.)
a c b c a a b c a a b b b c c b c a a b
a a b c a a b
T
M
+ 5 – 1 = 4
Nombre d'occurrences = 0
car2
car1a b c
a 2 5 8
b 7 8 4
c 3 8 8
![Page 26: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/26.jpg)
Boyer-Moore-Horspool (2 car.)
a c b c a a b c a a b b b c c b c a a b
a a b c a a b
T
M
Nombre d'occurrences = 1
car2
car1a b c
a 2 5 8
b 7 8 4
c 3 8 8
![Page 27: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/27.jpg)
Boyer-Moore-Horspool (2 car.)
a c b c a a b c a a b b b c c b c a a b
a a b c a a b
T
M
Nombre d'occurrences = 1
car2
car1a b c
a 2 5 8
b 7 8 4
c 3 8 8
+ 5 – 1 = 4
![Page 28: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/28.jpg)
Boyer-Moore-Horspool (2 car.)
a c b c a a b c a a b b b c c b c a a b
a a b c a a b
T
M
Nombre d'occurrences = 1
car2
car1a b c
a 2 5 8
b 7 8 4
c 3 8 8
+ 8 – 1 = 7
![Page 29: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/29.jpg)
Boyer-Moore-Horspool (2 car.)
a c b c a a b c a a b b b c c b c a a b
a a b c a
T
M
Nombre d'occurrences = 1
car2
car1a b c
a 2 5 8
b 7 8 4
c 3 8 8
Fin
![Page 30: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool](https://reader035.vdocuments.pub/reader035/viewer/2022062318/551d9db4497959293b8d93ac/html5/thumbnails/30.jpg)
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