ift3295 démonstration 16 septembre 2013 algorithme boyer-moore-horspool

30
IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore- Horspool

Upload: lucinde-chardon

Post on 04-Apr-2015

109 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: IFT3295 Démonstration 16 septembre 2013 Algorithme Boyer-Moore-Horspool

IFT3295Démonstration

16 septembre 2013

Algorithme Boyer-Moore-Horspool

Page 2: 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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