Reconnaissance de motifs avec erreurs

un entier k, un motif p et un nom de fichier, et qui affiche les lignes du fichier dont un sous-mot est filtré par le motif à k erreur près au plus.
Les motifs considérés peuvent être de trois classes de difficulté croissante. Je présente ici le cas le plus simple où le motif se réduit à un mot m. Le mot m' diffère de au plus une erreur d'un autre mot m, Notez que cette relation entre les mots est symétrique et reflexive On dira que les mots m et m' diffèrent de au plus k erreurs, lorsqu'il existe k+1 mots e0, …, ek, avec

2.2  Reconnaissance des sous-mots

Selon le cours, étant donné un motif p, on peut construire un automate fini qui reconnaît l'ensemble des mots filtrés par le motif reconnaître les mots dont un sous-mot est filtré par p.
Dans le cas simple ou le motif se réduit à un mot m = L'ensemble des mots filtrés par m se réduit à m et l'automate est déterministe et facile à construire. notés e0, … , en, son état initial est e0, son état Voici par exemple l'automate associé au mot coucou.
Utiliser cet automate pour reconnaître si un mot quelconque est égal à coucou n'a pas d'intérêt, mais cet automate se revèle Notons que, si à un instant quelconque l'état final en appartient à Ei, alors une occurence du mot m est identifiée. bits, voire par des entiers quand la taille du mot m est inférieure automates sont parfois dénommés shift-or.
Les automates se révèlent encore plus intéressants lorsqu'il s'agit de reconnaître les sous-mots du texte qui diffèrent de m de au plus k En se limitant pour simplifier à une seule erreur, Notons µj le préfixe de taille j de m. détecter les lignes d'un texte dont un sous-mot est filtré par un un motif p à k erreurs près. On se simplifiera la vie en ne considérant que le jeu de caractère Dans un premier temps on pourra traiter le cas des motifs restreints à un mot. Puis on considérera des motifs plus généraux, Le motif « . » filtre n'importe quel caractère, tandis que le motif « # » filtre n'importe quel mot.
Les motifs optionnels
Noté c?, ce motif filtre le mot vide et le mot formé de la De même, le motif « .? » filtre le mot vide et tous les mots réduits Il s'agit de compiler un motif en un automate non-déterministe,