Éditeur d’automates


Documentation

Cet outil sert à la manipulation d’automates : déterminisation, réduction, suppression des 𝜀-transitions, calcul d’expression régulières équivalentes... Le but de cet outil est de pouvoir vérifier ses réponses, et non de les trouver. Vous pouvez vous déplacer sur l’interface, et dézoomer au besoin, si vous réalisez des automates ayant un grand nombre d’états.

L’éditeur d’automates a deux “modes” : ajout d’état ou ajout de transitions. Les deux premiers boutons du menu permettent de passer respectivement au mode “ajout d’états” et “ajout de transitions.”

En mode ajout d’état, un double-click permet d’ajouter un état. Les états sont automatiquement numérotés. Un click sur un état lui fera changer de type d’état : état normal, état initial (bordure grasse), état final (double bordure). Les états peuvent être déplacés.

En mode ajout de transitions, un click définit l’état de départ de la transition, puis un second click définit l’état d’arrivée de la transition. L’étiquette de la transition est ensuite demandée. Pour obtenir une transition qui “boucle” sur un état, il suffit de faire un double-click sur l’état concerné. Pour obtenir une 𝜀-transition, il suffit d’entrer le caractère ‘&’ comme étiquette de transition. Les transitions sont automatiquement regroupées si elles ont mêmes états de départ et d’arrivée, et les étiquettes sont affichées séparées par des virgules.

Les autres boutons permettent la manipulation d’automates. Attention : les états peuvent changer de place (et même de nom dans le cas de la déterminisation) après la manipulation.

Les actions suivantes opèrent sur les langages des automates, et les expressions régulières.

Des menus contextuels (ouverts avec un click droit) permettent de réaliser plus d’actions. Ces menus diffèrent en fonction de l'objet sélectionné (transition, état, ou aucun objet).

Des raccourcis claviers permettent de réaliser certaines tâches plus facilement. Pour passer en mode “ajout d’état,” on peut appuyer sur ‘s.’ Pour passer en mode “ajout de transitions,” on peut appuyer sur ‘t.’ Pour annuler la dernière action, on peut appuyer sur ‘Ctrl+Z.’ Pour refaire la dernière action annulée, on peut appuyer sur ‘Ctrl+Shift+Z’ ou ‘Ctrl+Y.’

L’agencement des automates est réalisé automatiquement en utilisant un modèle basé sur la loi de Hooke (pour les transitions), la loi de Coulomb (pour les états) et des frottements pour la convergence des positions. L’agencement obtenu n’est pas idéal, mais il est généralement bien mieux que celui obtenu en plaçant les nœuds sur une grille ou sur un cercle.

Ce projet a été réalisé dans le cadre du soutien en informatique en prépa MPI(⋆|𝜀) par Hugo SALOU. En cas de bug, merci de me contacter via Discord (username : hugos29).