Thèse soutenue

Structures pour la localisation de motifs

FR  |  
EN
Auteur / Autrice : Mathieu Raffinot
Direction : Maxime Crochemore
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance en 1999
Etablissement(s) : Université de Marne-la-Vallée (1991-2019)

Mots clés

FR

Mots clés contrôlés

Résumé

FR

Cette these porte sur un probleme fondamental de l'informatique, celui de localiser un mot p = p 1p 2p m dans un texte t = t 1t 2t n, tous deux des suites de caracteres sur un alphabet. De nombreux algorithmes existent deja pour le resoudre, comme le knuth-morris-pratt et le boyer-moore. De nouveaux algorithmes sont apparus (vers 1992-1994), en utilisant une nouvelle approche. Elle mene, en utilisant un automate des facteurs ou des suffixes, a des algorithmes, comme le backward dawg matching (bdm) ou le turbobdm, optimaux en moyenne, c'est-a-dire, dans un modele d'independance et d'equiprobabilite des lettres, en complexite moyenne o(n log | |(m)/m) (borne inferieure de a. Yao). Malheureusement ces algorithmes sont plutot theoriques, c'est-a-dire tres compliques, tres gourmands en memoire et peu flexibles (i. E nous ne pouvons pas facilement les etendre pour rechercher une structure plus compliquee qu'un mot). Dans cette these, nous montrons comment (apres un premier chapitre de synthese sur l'automate des suffixes) simuler l'automate des suffixes en utilisant le parallelisme intrinseque des registres du microprocesseur. Nous obtenons ainsi l'algorithme bndm de recherche de d'un mot, optimal en moyenne et tres simple a implementer, mais soumis aux limitations des tailles des mots machines. De facon surprenante et inattendue, cet algorithme est facilement extensible aux classes de caracteres et a un petit ensemble de mots, alors que le bdm ne l'est pas. Cette derniere extension permet d'utiliser notre algorithme pour faire des recherches approchees, qui peuvent, en outre, se combiner avec l'extension aux classes de caracteres. Nous proposons ensuite dans notre troisieme chapitre une nouvelle structure construite a partir du mot p, nommee oracle des facteurs. Cette structure a des proprietes plus faibles que celles de l'automate des suffixes (au lieu de reconnaitre exactement les facteurs, elle en reconnait un sur-ensemble), mais est beaucoup plus simple a construire et occupe beaucoup moins de place memoire. En utilisant cette structure a la place de l'automate des suffixes, nous obtenons des algorithmes de recherche d'un mot aussi efficaces en moyenne (conjectures optimaux) mais plus simples a implementer et beaucoup moins gourmands en place memoire. Dans le quatrieme chapitre, nous obtenons une estimation du nombre moyen d'etats terminaux dans les automates des suffixes en faisant appel a des methodes recentes developpees en analyse asymptotique. Toujours dans le cadre d'une recherche efficace d'un mot dans un texte, un recent courant de pensees a conduit a essayer de rechercher plus rapidement des mots dans des textes compresses que dans l'original. Nous cherchons dans notre cinquieme chapitre a obtenir des algorithmes pratiques efficaces de recherche de mots sur des textes compresses par un algorithme de la famille ziv-lempel. Nous presentons des developpements theoriques accompagnes de resultats experimentaux de performances. Nous etendons ensuite certains de nos algorithmes pour rechercher un ensemble de mots. Nous commencons dans le sixieme chapitre par faire une synthese des algorithmes existants. Nous developpons de nouveaux algorithmes, comme le sbdm, et ameliorons de diverses facons le multibdm pour le rendre efficace en pratique. Nous etendons enfin dans le huitieme et dernier chapitre notre structure d'oracle des facteurs a un ensemble de mots, et nous l'utilisons a la place de l'automate des suffixes dans nos algorithmes. Les resultats experimentaux montrent que les algorithmes obtenus sont les plus efficaces en pratique des que la taille minimale des mots est assez grande (tout en restant petite, de l'ordre de 7 a 10 caracteres, suivant la taille de l'alphabet). Nous avons implementes nos nouveaux algorithmes dans un programme, appele ogrep, le o pour oracle qui rivalise avec les meilleurs logiciels, notamment agrep de wu et manber