previous up next top index
Précédent : Le spectre des Grandes déviations Remonter : Aspects théoriques Suivant : Boîtes à outils


Résolution du problème inverse pour les automates finis à l'aide d'un algorithme génétique

Participants : Benoît Leblanc, Evelyne Lutton, en collaboration avec Jean-Paul Allouche, du LRI d'Orsay

Mots-clés : algorithme génétique, problème inverse

Le problème posé est de savoir s'il est possible, à partir d'une séquence de caractères, de remonter, d'un point de vue algorithmique, à l'automate fini qui a pu la générer.

Par exemple,
l'automate :

eqnarray188

produit les séquences suivantes
à partir du caractère A :

eqnarray193

Nous avons actuellement réussi a résoudre le problème dans le cas où l'on suppose que la séquence est issue d'un automate à point fixe, c'est-à-dire d'un automate qui produit des chaînes dont le début reste inchangé au fur et à mesure des itérations.

Par exemple,
l'automate :

eqnarray203

produit les séquences suivantes
à partir de 2 :

eqnarray208

Dans ce cas, la lettre initiale de l'automate est la première lettre de la séquence, et l'algorithme génétique peut se contenter de manipuler des chromosomes qui codent les longueurs des mots associés aux lettres présentes dans la chaîne à analyser. La fonction associée aux chromosomes (que l'on cherche à optimiser) représente la longueur de la séquence-cible correctement identifiée à l'aide des mots induits par les longueurs codées. Pour une séquence de 200 à 300 caractères sur un alphabet de 6 lettres, une solution est trouvée en environ un millier d'évaluations de la fonction à optimiser, ce qui représente une exploration de moins de 2% de l'espace de recherche ( qui est de taille tex2html_wrap_inline1051 , si on considère que l'automate a des mots de taille au maximum 6 caractères).

Un article est en préparation sur ce sujet.