![]()
Précédent : Le spectre des Grandes déviations
Remonter : Aspects théoriques Suivant :
Boîtes
à outils
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 :

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

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 :

produit les séquences suivantes
à partir de 2 :

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
, 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.