Algorithmique et Analyse d’Algorithmes
Algorithmique et Analyse d’Algorithmes
L3 Info
Cours 11 : Recherche de motif
Prétraitement
Benjamin Wack
2016 - 2017
1 / 25
Algorithmique et Analyse d’Algorithmes
La dernière fois
IRappels sur les graphes
IParcours de graphes
IAlgorithmes d’optimisation
Aujourd’hui
IRecherche de motif
IPrétraitement : algorithme de Knuth-Morris-Pratt
2 / 25
Algorithmique et Analyse d’Algorithmes
Plan
Recherche de motif dans un texte
Automate reconnaisseur
Algorithme de Knuth-Morris-Pratt
Principe de l’algorithme de Boyer-Moore
3 / 25
Algorithmique et Analyse d’Algorithmes
Recherche de motif dans un texte
Le problème
On recherche un motif dans un texte, mais en général le motif et le texte
peuvent être :
Ides suites de caractères (ASCII ou pas)
Ides suites d’octets dans un fichier quelconque
Ides séquences ADN (suites de bases ATGC)
I...
Formalisation
Plus généralement, on considère :
Iun alphabet Afini
Ideux suites ordonnées d’éléments de A(le “texte” et le “motif”)
et on cherche à répondre à différentes questions plus ou moins
équivalentes :
Ile motif apparaît-il dans le texte ?
Isi oui, déterminer la première position où il apparaît ;
Idéterminer toutes les positions où ce motif apparaît.
5 / 25
Algorithmique et Analyse d’Algorithmes
Recherche de motif dans un texte
Structures de données et notations
On considère que le texte et le motif sont stockés dans des tableaux, ce
qui permet de se déplacer arbitrairement dans l’un ou dans l’autre.
(Concrètement ce n’est pas forcément le cas : flot/stream...)
On notera :
ITle tableau contenant le texte et nsa longueur.
IMle tableau contenant le motif et ksa longueur.
(indexés à partir de 0)
Par exemple, soit l’alphabet A={a,b,c}.
Si on recherche le motif abaa dans aacabacabaabaaa :
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
a a c a b a c a b a a b a a a
Mprésent aux positions 7 et 10 de T. Ces deux occurrences se
chevauchent : la lettre a=T[10]est commune.
6 / 25
1 / 21 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !