Séance 2 - Application des automates finis à la recherche

publicité
Séance 2 - Application des automates nis à la recherche de motif
Les notes de cours se trouvent ici https://clementj01.users.greyc.fr/algo-texte.
Les personnes qui découvrent les automates nis, peuvent également consulter les deux premiers
CM de : https://terrier.users.greyc.fr/LangCompil.
TD
Déterminer le nombre d'occurrences du motif r = bba∗ dans le texte babbaab, en appliquant la stratégie de recherche (vue en cours) qui utilise un AFN.
Qu 1.
Appliquer l'algorithme du facteur miroir à la recherche du motif GCTGGTGG dans le texte
TACCACTCTACGCTGGTGGCGATCTCTTC.
Qu 2.
TP
Recherche d'un mot à l'aide d'un AFD
Pour retrouver toutes les occurrences d'un mot u dans un texte t, on veut mettre en ÷uvre la
stratégie consistant à construire l'AFD qui accepte toute chaîne suxée par u.
Récupérer le chier automate.py qui dénit une simple classe Automate. Spécialiser cette classe
en une classe AutoRechercheMot qui, à partir du mot u, va dénir les diérents attributs de
l'AFD. On pourra introduire une fonction trans(i,a) calculant la longueur du plus long suxe
de u[:i]a qui est préxe de u.
Écrire une méthode analyser qui prend en argument un texte t et retourne la liste de toutes
les positions initiales du mot u recherché dans le texte t.
Compléter votre programme pour tester l'algorithme sur les chiers fournis au TP précédent
https://clementj01.users.greyc.fr/algo-texte/td1/
Recherche d'un mot par l'algorithme du facteur miroir
On envisage maintenant la stratégie basée sur l'automate des suxes du miroir du mot cherché.
Spécialiser la classe Automate en une classe AutoSuffixesMiroir qui, à partir d'un mot u,
construit l'AFD des suxes de uR .
On pourra commencer par dénir le dictionnaire décrivant la fonction de transition de l'AFD
reconnaissant le mot miroir uR . Puis, en se basant sur le schéma de l'algorithme de déterminisation (cf. https://terrier.users.greyc.fr/LangCompil/2014/CM2.pdf page 11), spécier
l'ensemble des états et la fonction de transition de l'AFD des suxes de uR . Nota bene que
l'état initial de l'AFD des suxes du miroir est exactement l'ensemble des états de l'AFD reconnaissant le miroir.
Écrire une méthode analyser qui prend en argument un texte t et retourne la liste de toutes
les positions initiales du mot u recherché dans le texte t. Cette méthode lit le texte à travers
une fenêtre coulissante de la taille du mot et applique l'automate sur cette fenêtre lue de droite
à gauche en mémorisant la position du dernier suxe de uR rencontré, ce qui permet de déterminer ensuite le décalage à eectuer.
Tester.
Téléchargement