thesis

Analyse et conception d’algorithmes de recherche de motifs

Defense date:

Jan. 1, 2012

Edit

Institution:

Paris 13

Disciplines:

Authors:

Abstract EN:

This thesis addresses the following issue: given a pattern X over an alphabet A, how to efficiently build the minimal automaton of A∗X used to sequentially parse a text and find occurrences of the pattern in the text. For a single word u, Knuth-Morris-Pratt algorithm simulates the minimal automaton of A∗u, and that automaton can be constructed in linear time, with respect to the length of u. For a finite set of words, the classical construction due to Aho and Corasick builds a deterministic and complete automaton of A∗X, but unfortunately not necessarily minimal. We first consider the case where X is a set of m words whose sum of lengths is n, where m is fixed, and propose an algorithm for generically constructing the minimal automaton. It is based on Brzozowski’s minimization algorithm, and uses sparse lists to achieve a linear time complexity, with respect to n. Another solution we propose is a pseudo-minimization algorithm specific to Aho-Corasick automata. It has linear complexity and produces an automaton whose size is between the size of the input automaton and the one of its associated minimal automaton. We then prove that this linear algorithm generically computes the minimal automaton provided that the pattern satisfies the conditions of low-correlation we define. Next, we propose a generically linear algorithm that computes the minimal automaton. Finally, we propose a variant of the pseudo-minimization that builds directly the pseudo-minimal automaton, thus avoiding the construction of the Aho-Corasick automaton.

Abstract FR:

Dans cette thèse, on s’intéresse à la construction efficace de l’automate minimal de A∗X, où X est un motif sur un alphabet A, qui intervient dans la recherche de motifs. Lorsque le motif est un mot seul, l’automate de Knuth-Morris-Pratt est minimal, et la complexité de sa construction est linéaire en la longueur du mot. Pour un ensemble fini de mots, la construction classique de Aho et Corasick produit un automate qui reconnaît le langage A∗X, mais qui n’est pas toujours minimal. On propose dans un premier temps un algorithme qui construit génériquement l’automate minimal de A∗X, lorsque X contient m mots (pour m fixé). Cette construction, inspirée par l’algorithme de minimisation de Brzozowski, utilise des listes creuses pour obtenir une complexité linéaire en temps. Une autre approche pour la construction de cet automate minimal consiste en la minimisation de l’automate de Aho-Corasick, et on présente un algorithme de pseudo-minimisation, de complexité linéaire, qui produit un automate dont la taille est entre celle de l’automate en entrée et celle de l’automate minimal. On démontre ensuite que l’automate obtenu est génériquement minimal, pourvu que le motif satisfasse aux conditions de faible corrélation que l’on définit. On donne ensuite un algorithme de complexitégénériquement linéaire qui produit avec certitude l’automate minimal. Finalement, on présente une construction directe de l’automate pseudo-minimal, évitant ainsi la construction au préalable de l’automate de Aho-Corasick.