• Aucun résultat trouvé

5.4 Génération aléatoire d’automates non-déterministes à isomorphisme près

5.4.6 Expériences

Les expériences ont été menées sur une machine personnelle équipée d’un processeur IntelCore i3-4150 CPU 3.50GHz x 4, 7,7 Gio de mémoire, dans un environnement 64 bits Ubuntu 14.04 OS. L’implémentation a été réalisée par un code non optimisé écrit en Python.

La première expérience consiste à mesurer le temps nécessaire pour se déplacer dans les chaînes de Markov associées aux deux classes N(n) and Nm(m).

Les résultats sont consignés dans les tableaux 5.5et 5.6.

Les étiquettes utilisées pour ces calculs sont celles décrites dans le la section 5.4.5. Pour l’échantillonnage, c’est le n3-ième élément obtenu dans le déplacement qui est renvoyé à partir d’un point de départ arbitraire.

Ces premiers résultats montrent que le passage de 2 à 3 lettres dans l’alphabet utilisé ne semble pas avoir une influence significative sur le temps de calcul.

De même, le fait de majorer ou non le nombre de transitions sortantes par état ne semble pas non plus significatif.

Plusieurs points techniques méritent des améliorations. En particulier le code n’a pas été optimisé, plusieurs calculs sur les étiquettes pourraient être ré-utilisés dans les dépla- cements dans la chaîne. Une programmation plus dynamique est donc envisageable. On peut noter par ailleurs que Python (comparé à C ou Java) n’est sans doute pas le langage le mieux adapté à ce type de calculs. En pratique, le problème d’isomorphisme des graphes orientés, donne des résultats excellents pour des graphes de grande taille (cf [FPSV09]). Il faut retenir aussi que le nombre de pas dans la chaîne (n3) est un facteur clef de l’aug- mentation du temps de calcul (en fonction de n) : le temps moyen pour réaliser un seul pas est multiplié par facteur de 10 environ lorsque l’on passe de n = 20 à n = 90. Le calcul des tailles des groupes d’automorphismes est donc très rapide.

n 10 20 50 70 90

|Σ| = 2 0.02 0.43 32.5 166.1 569.9 |Σ| = 3 0.02 0.56 47.1 248.4 848.1

Table 5.5 – Temps moyen d’échantillonnage pour un automate de N(n)

n 10 20 50 70 90

m = 2, |Σ| = 2 0.2 0.43 32.5 166.1 566.8 m = 2, |Σ| = 3 0.2 0.57 47.0 246.7 847.2 m = 3, |Σ| = 2 0.2 0.43 33.0 167.8 561.9 m = 3, |Σ| = 3 0.2 0.57 47.2 248.6 851.3

Table 5.6 – Temps moyen d’échantillonnage pour un automate de N0m(n)

Les dernières expériences proposent de comparer notre générateur pour les automates de N02(n)• avec le générateur proposé dans [TV05] avec une densité de a-transitions de 2 et 3. Les paramètres de l’agorithme mis en concurrence sont la probabilité pf qu’un état soit final et la densité σ des a-transitions. Plus clairement, l’ensemble des états de l’automate est [[1, n]], l’état 1 est l’unique état initial, on décide pour chaque état de son caractère final avec un tirage de Bernoulli de probabilité pf. Enfin, pour tout état p et toute lettre a on décide si (p, a, q) est une transition avec la probabilité σn. Ainsi pour chaque lettre et chaque état l’espérance de la variable aléatoire qui compte le nombre de transitions sortantes est-elle, pour la lettre et l’état considérés, égale à σ.

L’algorithme a été lancé avec les paramètres pf = 0.2 et σ ∈ {2, 3}. Pour chaque taille on calcul la taille moyenne de s de l’automate minimal associé. L’expérience a été menée avec des automates sur un alphabet à 2 lettres, la taille moyenne a été calculée en engendrant 1000 automates dans chaque cas. Les tableaux5.7et5.8donnent les résultats obtenus.

σ = 2 n 5 8 11 14 17 20 s 1.3 3.0 4.8 5.1 4.5 4.0 σ = 3 n 5 8 11 14 17 20 s 2.8 4.8 4.7 3.8 3.4 3.0

Table 5.7 – Taille moyenne de l’automate minimal déterministe associé aux automates engendrés par le générateur [TV05]

.

N02(n)

n 5 8 11 14 17 20

s 3.7 6.1 7.9 10.0 11.5 13.9

Table 5.8 – Taille moyenne de l’automate minimal déterministe associé aux automates engendrés dans N02(n)

.

On peut observer que les deux générateurs fournissent des automates aux caractéris- tiques statistiques différentes.

L’approche par chaîne de Markov conduit semble-t-il à des automates pour lesquels la taille de l’automate minimal associé est plus grande.

Pour comparer les générateurs, nous avons, enfin, lancé une dernière expérience pour comparer la tailles des groupes d’automorphismes obtenus. Rappelons qu’avec la méthode par chaînes de Markov, la taille des groupes d’automorphismes est très proche de 1 en moyenne (voir Table5.2, obtenues sur la chaîne sans la biaiser par l’algorithme de Metro- polis Hastings, mais les résultats sont similaires pour la génération à isomorphisme près). Le tableau5.9rapporte la taille moyennes des groupes d’automorphismes obtenus à l’aide de la méthode de [TV05]. Les différences sont significatives.

5.5

Conclusions et perspectives

Ce chapitre fait suite aux travaux antérieurs [CF12,DFN13] portant sur la génération aléatoire de certaines classes d’automates en s’appuyant sur une méthode de Monte-Carlo par Chaîne de Markov.

Au delà de la contribution qui consiste à construire un générateur pour des auto- mates non-déterministes, on montre surtout comment une application de l’algorithme de Metropolis-Hastings permet d’obtenir un générateur uniforme à isomorphisme près.

Les sections5.4.3,5.4.4et5.4.5sont techniques mais dignes d’intérêt. Elles proposent une étude des classes d’équivalence des automates non-déterministes à partir des groupes pf, pi= 0.2 pf, pi= 0.5 pf, pi = 0.8 pf, pi = 0.2 pf, pi= 0.5 pf, pi= 0.8

σ = 2 σ = 2 σ = 2 σ = 3 σ = 3 σ = 3

n = 5 26 6 25 21 6 24

n = 8 2345 112 2213 2254 102 2441

n = 10 86 500 1343 71472 83072 1303 79203

Table 5.9 – Taille moyenne des tailles des groupes d’automorphismes par la mé- thode [TV05], avec un alphabet à 2 lettres.

d’isomorphismes associés à chacun de ces automates. On montre comment des techniques d’étiquetage permettent un calcul efficace des tailles des groupes d’automorphismes.

Un des buts de cet exposé est de convaincre de la souplesse d’utilisation des techniques de type MCMC pour échantillonner des classes pour lesquelles le caractère spécifiable (au sens de la méthode symbolique) ne représente pas un enjeu. Nous espérons que ce but a été un tant soit peu atteint.

Il est clair que le talon d’Achille de la méthode réside dans la difficulté de l’évaluation du temps de mélange. Le résultat de la section 5.3.2 qui donne une majoration pour la version paresseuse de la chaîne dans le cas de la classe la plus générale réalise un premier pas dans le bon sens. Il est par ailleurs certainement possible de ré-investir la technique qui consiste à plonger la chaîne étudiée dans un produit d’hypercubes, dans d’autres situations.

De façon plus générale, on peut sans doute envisager, pour des générateurs MCMC d’automates à n états, des marches aléatoires dans des graphes de diamètres en O(n) pour lesquels le temps de mélange ne peut guère être espéré inférieur à Θ(n2). Le résultat conjecturé en O n3

semble donc constituer déjà un résultat relativement optimiste. Il interdit cependant d’envisager raisonnablement le tirage aléatoire d’automates de plus de quelques milliers d’états (car il faut prendre aussi en compte le temps de traitement de chaque étape).

Les prolongements naturels à ce chapitre pourraient consister à :

• Définir plus finement des classes intéressantes d’automates en commençant par donner un sens un peu formel à l’adjectif.

• Explorer plus finement les techniques de couplage depuis le passé et de strong stationnary times, soit pour majorer les temps de mélange dans les cas particulier, soit pour obtenir des générateurs parfaits (sans garantie de temps de terminaison) mais sans avoir à calculer des temps de mélange.

• Envisager des expériences portant sur les classes d’automates engendrés afin d’uti- liser les générateurs construits.

Chapitre 6

Génération aléatoire d’automates

déterministes, accessibles et

partiellement ordonnés :

estimation statistique des temps

de mélange

Sommaire

6.1 Introduction . . . 109

6.1.1 Cadre et intérêt. . . 109

Documents relatifs